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

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

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

