LLVMFuzzerTestOneInput:
   42|    298|extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   43|       |
   44|    298|  if (!size)
  ------------------
  |  Branch (44:7): [True: 0, False: 298]
  ------------------
   45|      0|    return 0;
   46|       |
   47|    298|  FuzzedDataProvider stream(data, size);
   48|    298|  hash_state *hs;
   49|    298|  if (init(&hs))
  ------------------
  |  |   28|    298|#define init CONCAT_TYPE(_init)
  |  |  ------------------
  |  |  |  |   26|    298|#define CONCAT_TYPE(x) _PASTE2(HASHTYPE, x)
  |  |  |  |  ------------------
  |  |  |  |  |  |   59|    298|#define _PASTE2(x,y) _PASTE(x,y)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   58|    298|#define _PASTE(x,y) x##y
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (49:7): [True: 0, False: 298]
  ------------------
   50|      0|    return 0;
   51|       |
   52|  1.46k|  while (stream.remaining_bytes()) {
  ------------------
  |  Branch (52:10): [True: 1.33k, False: 132]
  ------------------
   53|  1.33k|    size_t num_bytes = stream.ConsumeIntegral<size_t>();
   54|  1.33k|    std::vector<uint8_t> buffer = stream.ConsumeBytes<uint8_t>(num_bytes);
   55|       |
   56|  1.33k|    if (update(hs, buffer.data(), buffer.size()))
  ------------------
  |  |   29|  1.33k|#define update CONCAT_TYPE(_update)
  |  |  ------------------
  |  |  |  |   26|  1.33k|#define CONCAT_TYPE(x) _PASTE2(HASHTYPE, x)
  |  |  |  |  ------------------
  |  |  |  |  |  |   59|  1.33k|#define _PASTE2(x,y) _PASTE(x,y)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   58|  1.33k|#define _PASTE(x,y) x##y
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (56:9): [True: 166, False: 1.16k]
  ------------------
   57|    166|      goto error;
   58|  1.33k|  }
   59|       |
   60|    132|  uint8_t result[DIGEST_SIZE];
   61|       |
   62|    132|#ifndef DIGEST_THIRD_PARAM
   63|    132|  digest(hs, result);
  ------------------
  |  |   30|    132|#define digest CONCAT_TYPE(_digest)
  |  |  ------------------
  |  |  |  |   26|    132|#define CONCAT_TYPE(x) _PASTE2(HASHTYPE, x)
  |  |  |  |  ------------------
  |  |  |  |  |  |   59|    132|#define _PASTE2(x,y) _PASTE(x,y)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   58|    132|#define _PASTE(x,y) x##y
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   64|       |#else
   65|       |  digest(hs, result, DIGEST_SIZE);
   66|       |#endif
   67|       |
   68|    298|error:
   69|    298|  destroy(hs);
  ------------------
  |  |   31|    298|#define destroy CONCAT_TYPE(_destroy)
  |  |  ------------------
  |  |  |  |   26|    298|#define CONCAT_TYPE(x) _PASTE2(HASHTYPE, x)
  |  |  |  |  ------------------
  |  |  |  |  |  |   59|    298|#define _PASTE2(x,y) _PASTE(x,y)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   58|    298|#define _PASTE(x,y) x##y
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   70|    298|  return 0;
   71|    132|}

_Z8md4_initPP10hash_state:
   48|    298|{
   49|    298|    hash_state *hs;
   50|       |    
   51|    298|    if (NULL == md4State) {
  ------------------
  |  Branch (51:9): [True: 0, False: 298]
  ------------------
   52|      0|        return ERR_NULL;
  ------------------
  |  |    5|      0|#define ERR_NULL                1
  ------------------
   53|      0|    }
   54|       |
   55|    298|    *md4State = hs = (hash_state*) calloc(1, sizeof(hash_state));
   56|    298|    if (NULL == hs)
  ------------------
  |  Branch (56:9): [True: 0, False: 298]
  ------------------
   57|      0|        return ERR_MEMORY;
  ------------------
  |  |    6|      0|#define ERR_MEMORY              2
  ------------------
   58|       | 
   59|    298|    hs->A=0x67452301;
   60|    298|    hs->B=0xefcdab89;
   61|    298|    hs->C=0x98badcfe;
   62|    298|    hs->D=0x10325476;
   63|       |
   64|    298|    return 0;
   65|    298|}
_Z11md4_destroyP10hash_state:
   68|    298|{
   69|    298|    free(hs);
   70|    298|    return 0;
   71|    298|}
_Z10md4_updateP10hash_statePKhm:
   84|  1.59k|{
   85|  1.59k|    if (NULL == hs || NULL == buf) {
  ------------------
  |  Branch (85:9): [True: 0, False: 1.59k]
  |  Branch (85:23): [True: 166, False: 1.43k]
  ------------------
   86|    166|        return ERR_NULL;
  ------------------
  |  |    5|    166|#define ERR_NULL                1
  ------------------
   87|    166|    }
   88|       |
   89|  1.43k|    assert(hs->count < 64);
   90|       |
   91|  1.43k|    hs->bitlen += (uint64_t)len * 8;
   92|       |
   93|   266k|    while (len>0)  {
  ------------------
  |  Branch (93:12): [True: 264k, False: 1.43k]
  ------------------
   94|   264k|        unsigned left, tc;
   95|       |
   96|   264k|        left = 64 - hs->count;
   97|   264k|        tc = (unsigned)MIN(left, len);
  ------------------
  |  |   55|   264k|#define MIN(a,b) ((a)<(b)?(a):(b))
  |  |  ------------------
  |  |  |  Branch (55:19): [True: 263k, False: 1.43k]
  |  |  ------------------
  ------------------
   98|   264k|        memcpy(hs->buf+hs->count, buf, tc);
   99|   264k|        hs->count += tc;
  100|   264k|        buf += tc;
  101|   264k|        len -= tc;
  102|       |
  103|   264k|        if (hs->count==64)  {
  ------------------
  |  Branch (103:13): [True: 263k, False: 1.27k]
  ------------------
  104|   263k|            uint32_t X[16], A, B, C, D;
  105|   263k|            unsigned j;
  106|       |            
  107|   263k|            hs->count=0;
  108|  4.47M|            for(j=0; j<16; j++) {
  ------------------
  |  Branch (108:22): [True: 4.21M, False: 263k]
  ------------------
  109|  4.21M|                X[j] = LOAD_U32_LITTLE(&hs->buf[j*4]);
  ------------------
  |  |   95|  4.21M|#define LOAD_U32_LITTLE(p) load_u8to32_little(p)
  ------------------
  110|  4.21M|            }
  111|       |
  112|   263k|            A=hs->A; B=hs->B; C=hs->C; D=hs->D;
  113|       |
  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  115|   263k|            function(A,B,C,D, 0, 3);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  116|   263k|            function(D,A,B,C, 1, 7);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  117|   263k|            function(C,D,A,B, 2,11);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  118|   263k|            function(B,C,D,A, 3,19);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  119|   263k|            function(A,B,C,D, 4, 3);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  120|   263k|            function(D,A,B,C, 5, 7);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  121|   263k|            function(C,D,A,B, 6,11);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  122|   263k|            function(B,C,D,A, 7,19);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  123|   263k|            function(A,B,C,D, 8, 3);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  124|   263k|            function(D,A,B,C, 9, 7);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  125|   263k|            function(C,D,A,B,10,11);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  126|   263k|            function(B,C,D,A,11,19);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  127|   263k|            function(A,B,C,D,12, 3);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  128|   263k|            function(D,A,B,C,13, 7);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  129|   263k|            function(C,D,A,B,14,11);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  130|   263k|            function(B,C,D,A,15,19);
  ------------------
  |  |  114|   263k|#define function(a,b,c,d,k,s) a=ROL(a+F(b,c,d)+X[k],s);  
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  131|       |
  132|   263k|#undef function   
  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  134|   263k|            function(A,B,C,D, 0, 3);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  135|   263k|            function(D,A,B,C, 4, 5);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  136|   263k|            function(C,D,A,B, 8, 9);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  137|   263k|            function(B,C,D,A,12,13);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  138|   263k|            function(A,B,C,D, 1, 3);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  139|   263k|            function(D,A,B,C, 5, 5);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  140|   263k|            function(C,D,A,B, 9, 9);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  141|   263k|            function(B,C,D,A,13,13);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  142|   263k|            function(A,B,C,D, 2, 3);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  143|   263k|            function(D,A,B,C, 6, 5);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  144|   263k|            function(C,D,A,B,10, 9);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  145|   263k|            function(B,C,D,A,14,13);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  146|   263k|            function(A,B,C,D, 3, 3);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  147|   263k|            function(D,A,B,C, 7, 5);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  148|   263k|            function(C,D,A,B,11, 9);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  149|   263k|            function(B,C,D,A,15,13);
  ------------------
  |  |  133|   263k|#define function(a,b,c,d,k,s) a=ROL(a+G(b,c,d)+X[k]+(uint32_t)0x5a827999,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  150|       |
  151|   263k|#undef function  
  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  153|   263k|            function(A,B,C,D, 0, 3);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  154|   263k|            function(D,A,B,C, 8, 9);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  155|   263k|            function(C,D,A,B, 4,11);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  156|   263k|            function(B,C,D,A,12,15);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  157|   263k|            function(A,B,C,D, 2, 3);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  158|   263k|            function(D,A,B,C,10, 9);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  159|   263k|            function(C,D,A,B, 6,11);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  160|   263k|            function(B,C,D,A,14,15);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  161|   263k|            function(A,B,C,D, 1, 3);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  162|   263k|            function(D,A,B,C, 9, 9);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  163|   263k|            function(C,D,A,B, 5,11);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  164|   263k|            function(B,C,D,A,13,15);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  165|   263k|            function(A,B,C,D, 3, 3);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  166|   263k|            function(D,A,B,C,11, 9);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  167|   263k|            function(C,D,A,B, 7,11);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  168|   263k|            function(B,C,D,A,15,15);
  ------------------
  |  |  152|   263k|#define function(a,b,c,d,k,s) a=ROL(a+H(b,c,d)+X[k]+(uint32_t)0x6ed9eba1,s);     
  |  |  ------------------
  |  |  |  |   45|   263k|#define ROL(x, n) (((x) << n) | ((x) >> (32-n) ))
  |  |  ------------------
  ------------------
  169|       |
  170|   263k|            hs->A+=A; hs->B+=B; hs->C+=C; hs->D+=D;
  171|   263k|        }
  172|   264k|    }
  173|       |
  174|  1.43k|    return 0;
  175|  1.43k|}
_Z10md4_digestPK10hash_statePh:
  178|    132|{
  179|    132|    static uint8_t s[8];
  180|    132|    uint32_t padlen;
  181|    132|    hash_state temp;
  182|    132|    unsigned i;
  183|    132|    uint64_t bitlen;
  184|       |
  185|    132|    static const uint8_t padding[64] = {
  186|    132|        0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  187|    132|        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  188|    132|        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  189|    132|        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  190|    132|        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  191|    132|        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  192|    132|        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  193|    132|        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  194|    132|    };
  195|       |
  196|    132|    if (NULL==hs || NULL==digest)
  ------------------
  |  |   30|    132|#define digest CONCAT_TYPE(_digest)
  |  |  ------------------
  |  |  |  |   26|    132|#define CONCAT_TYPE(x) _PASTE2(HASHTYPE, x)
  |  |  |  |  ------------------
  |  |  |  |  |  |   59|    132|#define _PASTE2(x,y) _PASTE(x,y)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   58|    132|#define _PASTE(x,y) x##y
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (196:9): [True: 0, False: 132]
  |  Branch (196:21): [True: 0, False: 132]
  ------------------
  197|      0|        return ERR_NULL;
  ------------------
  |  |    5|      0|#define ERR_NULL                1
  ------------------
  198|       |
  199|    132|    temp = *hs;
  200|       |
  201|    132|    bitlen = temp.bitlen;   /* Save current length */
  202|       |
  203|    132|    padlen= (56<=hs->count) ? 56-hs->count+64: 56-hs->count;
  ------------------
  |  Branch (203:13): [True: 56, False: 76]
  ------------------
  204|    132|    md4_update(&temp, padding, padlen);
  205|       |
  206|  1.18k|    for (i=0; i<8; i++)
  ------------------
  |  Branch (206:15): [True: 1.05k, False: 132]
  ------------------
  207|  1.05k|        s[i] = (uint8_t)(bitlen >> (i*8));
  208|    132|    md4_update(&temp, s, 8);
  209|       |
  210|    132|    STORE_U32_LITTLE(&digest[0], temp.A);
  ------------------
  |  |   98|    132|#define STORE_U32_LITTLE(p, w) u32to8_little((p), &(w))
  ------------------
  211|    132|    STORE_U32_LITTLE(&digest[4], temp.B);
  ------------------
  |  |   98|    132|#define STORE_U32_LITTLE(p, w) u32to8_little((p), &(w))
  ------------------
  212|    132|    STORE_U32_LITTLE(&digest[8], temp.C);
  ------------------
  |  |   98|    132|#define STORE_U32_LITTLE(p, w) u32to8_little((p), &(w))
  ------------------
  213|    132|    STORE_U32_LITTLE(&digest[12], temp.D);
  ------------------
  |  |   98|    132|#define STORE_U32_LITTLE(p, w) u32to8_little((p), &(w))
  ------------------
  214|       |
  215|    132|    return 0;
  216|    132|}

pcd_hash_fuzzer.cc:_ZL18load_u8to32_littlePKh:
   80|  4.21M|{
   81|  4.21M|    uint32_t w;
   82|       |
   83|  4.21M|    u8to32_little(&w, p);
   84|  4.21M|    return w;
   85|  4.21M|}
pcd_hash_fuzzer.cc:_ZL13u8to32_littlePjPKh:
   50|  4.21M|{
   51|       |#ifdef PYCRYPTO_LITTLE_ENDIAN
   52|       |    memcpy(w, p, 4);
   53|       |#else
   54|  4.21M|    *w = (uint32_t)p[0] | (uint32_t)p[1]<<8 | (uint32_t)p[2]<<16 | (uint32_t)p[3]<<24;
   55|  4.21M|#endif
   56|  4.21M|}
pcd_hash_fuzzer.cc:_ZL13u32to8_littlePhPKj:
   38|    528|{
   39|       |#ifdef PYCRYPTO_LITTLE_ENDIAN
   40|       |    memcpy(p, w, 4);
   41|       |#else
   42|    528|    p[0] = (uint8_t)*w;
   43|    528|    p[1] = (uint8_t)(*w >> 8);
   44|    528|    p[2] = (uint8_t)(*w >> 16);
   45|    528|    p[3] = (uint8_t)(*w >> 24);
   46|    528|#endif
   47|    528|}

