RTEMS-6
Annotated Report
libmd
Mon Mar 1 00:32:07 2021

0000000040025c50 <MD5Update>:                                                             
{                                                                                         
    40025c50:   a9b97bfd    stp x29, x30, [sp, #-112]!                                    
  if ((mdContext->i[0] + ((UINT4)inLen << 3)) < mdContext->i[0])                          
    40025c54:   531d7044    lsl w4, w2, #3                                                
  mdContext->i[1] += ((UINT4)inLen >> 29);                                                
    40025c58:   531d7c45    lsr w5, w2, #29                                               
{                                                                                         
    40025c5c:   910003fd    mov x29, sp                                                   
    40025c60:   a90153f3    stp x19, x20, [sp, #16]                                       
    40025c64:   aa0103f3    mov x19, x1                                                   
    40025c68:   a9025bf5    stp x21, x22, [sp, #32]                                       
    40025c6c:   8b224036    add x22, x1, w2, uxtw                                         
    40025c70:   aa0003f5    mov x21, x0                                                   
    mdContext->i[1]++;                                                                    
    40025c74:   29400403    ldp w3, w1, [x0]                                              
    40025c78:   2b040064    adds    w4, w3, w4                                            
  mdContext->i[1] += ((UINT4)inLen >> 29);                                                
    40025c7c:   1a050021    adc w1, w1, w5                                                
    40025c80:   29000404    stp w4, w1, [x0]                                              
  mdi = (int)((mdContext->i[0] >> 3) & 0x3F);                                             
    40025c84:   d3432063    ubfx    x3, x3, #3, #6                                        
  while (inLen--) {                                                                       
    40025c88:   340003c2    cbz w2, 40025d00 <MD5Update+0xb0>                             <== NEVER TAKEN
    40025c8c:   91002000    add x0, x0, #0x8                                              
    40025c90:   9101c3f4    add x20, sp, #0x70                                            
    40025c94:   14000003    b   40025ca0 <MD5Update+0x50>                                 
    40025c98:   eb16027f    cmp x19, x22                                                  
    40025c9c:   54000320    b.eq    40025d00 <MD5Update+0xb0>  // b.none                  
    mdContext->in[mdi++] = *inBuf++;                                                      
    40025ca0:   8b23c2a1    add x1, x21, w3, sxtw                                         
    40025ca4:   38401662    ldrb    w2, [x19], #1                                         
    40025ca8:   11000463    add w3, w3, #0x1                                              
    if (mdi == 0x40) {                                                                    
    40025cac:   7101007f    cmp w3, #0x40                                                 
    mdContext->in[mdi++] = *inBuf++;                                                      
    40025cb0:   39006022    strb    w2, [x1, #24]                                         
    if (mdi == 0x40) {                                                                    
    40025cb4:   54ffff21    b.ne    40025c98 <MD5Update+0x48>  // b.any                   
    40025cb8:   910062a3    add x3, x21, #0x18                                            
    40025cbc:   9100c3e6    add x6, sp, #0x30                                             
                (((UINT4)mdContext->in[ii+2]) << 16) |                                    
    40025cc0:   39400865    ldrb    w5, [x3, #2]                                          
        in[i] = (((UINT4)mdContext->in[ii+3]) << 24) |                                    
    40025cc4:   39400c62    ldrb    w2, [x3, #3]                                          
                (((UINT4)mdContext->in[ii+1]) << 8) |                                     
    40025cc8:   39400464    ldrb    w4, [x3, #1]                                          
                ((UINT4)mdContext->in[ii]);                                               
    40025ccc:   38404467    ldrb    w7, [x3], #4                                          
                (((UINT4)mdContext->in[ii+2]) << 16) |                                    
    40025cd0:   53103ca5    lsl w5, w5, #16                                               
                (((UINT4)mdContext->in[ii+1]) << 8) |                                     
    40025cd4:   2a0260a2    orr w2, w5, w2, lsl #24                                       
    40025cd8:   2a0420e4    orr w4, w7, w4, lsl #8                                        
    40025cdc:   2a040042    orr w2, w2, w4                                                
        in[i] = (((UINT4)mdContext->in[ii+3]) << 24) |                                    
    40025ce0:   b80044c2    str w2, [x6], #4                                              
      for (i = 0, ii = 0; i < 16; i++, ii += 4)                                           
    40025ce4:   eb06029f    cmp x20, x6                                                   
    40025ce8:   54fffec1    b.ne    40025cc0 <MD5Update+0x70>  // b.any                   
      Transform (mdContext->buf, in);                                                     
    40025cec:   9100c3e1    add x1, sp, #0x30                                             
    40025cf0:   97fffd50    bl  40025230 <Transform>                                      
  while (inLen--) {                                                                       
    40025cf4:   eb16027f    cmp x19, x22                                                  
      mdi = 0;                                                                            
    40025cf8:   52800003    mov w3, #0x0                    // #0                         
  while (inLen--) {                                                                       
    40025cfc:   54fffd21    b.ne    40025ca0 <MD5Update+0x50>  // b.any                   
}                                                                                         
    40025d00:   a94153f3    ldp x19, x20, [sp, #16]                                       
    40025d04:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    40025d08:   a8c77bfd    ldp x29, x30, [sp], #112                                      
    40025d0c:   d65f03c0    ret                                                           
                                                                                          

0000000040027650 <SHA256_Update>: /* Add bytes into the hash */ void SHA256_Update(SHA256_CTX * ctx, const void *in, size_t len) {
    40027650:   a9bc7bfd    stp x29, x30, [sp, #-64]!                                     
    40027654:   910003fd    mov x29, sp                                                   
    40027658:   a90153f3    stp x19, x20, [sp, #16]                                       
    4002765c:   aa0003f4    mov x20, x0                                                   
    uint64_t bitlen;                                                                      
    uint32_t r;                                                                           
    const unsigned char *src = in;                                                        
                                                                                          
    /* Number of bytes left in the buffer from previous updates */                        
    r = (ctx->count >> 3) & 0x3f;                                                         
    40027660:   f9401000    ldr x0, [x0, #32]                                             
{                                                                                         
    40027664:   a9025bf5    stp x21, x22, [sp, #32]                                       
                                                                                          
    /* Update number of bits */                                                           
    ctx->count += bitlen;                                                                 
                                                                                          
    /* Handle the case where we don't need to perform any transforms */                   
    if (len < 64 - r) {                                                                   
    40027668:   52800815    mov w21, #0x40                      // #64                    
    r = (ctx->count >> 3) & 0x3f;                                                         
    4002766c:   53032004    ubfx    w4, w0, #3, #6                                        
    ctx->count += bitlen;                                                                 
    40027670:   8b020c03    add x3, x0, x2, lsl #3                                        
    40027674:   f9001283    str x3, [x20, #32]                                            
        memcpy(&ctx->buf[r], src, len);                                                   
    40027678:   1100a080    add w0, w4, #0x28                                             
    if (len < 64 - r) {                                                                   
    4002767c:   4b0402b5    sub w21, w21, w4                                              
        memcpy(&ctx->buf[r], src, len);                                                   
    40027680:   8b000280    add x0, x20, x0                                               
    if (len < 64 - r) {                                                                   
    40027684:   eb0202bf    cmp x21, x2                                                   
    40027688:   540003a8    b.hi    400276fc <SHA256_Update+0xac>  // b.pmore             
    4002768c:   aa0203f6    mov x22, x2                                                   
        return;                                                                           
    }                                                                                     
                                                                                          
    /* Finish the current block */                                                        
    memcpy(&ctx->buf[r], src, 64 - r);                                                    
    40027690:   aa1503e2    mov x2, x21                                                   
    SHA256_Transform(ctx->state, ctx->buf);                                               
    src += 64 - r;                                                                        
    40027694:   8b150033    add x19, x1, x21                                              
    40027698:   f9001bf7    str x23, [sp, #48]                                            
    memcpy(&ctx->buf[r], src, 64 - r);                                                    
    4002769c:   94002ee0    bl  4003321c <memcpy>                                         
    SHA256_Transform(ctx->state, ctx->buf);                                               
    400276a0:   9100a297    add x23, x20, #0x28                                           
    len -= 64 - r;                                                                        
    400276a4:   cb1502d6    sub x22, x22, x21                                             
    SHA256_Transform(ctx->state, ctx->buf);                                               
    400276a8:   aa1703e1    mov x1, x23                                                   
    400276ac:   aa1403e0    mov x0, x20                                                   
    400276b0:   97fff9d0    bl  40025df0 <SHA256_Transform>                               
                                                                                          
    /* Perform complete blocks */                                                         
    while (len >= 64) {                                                                   
    400276b4:   f100fedf    cmp x22, #0x3f                                                
    400276b8:   540002a9    b.ls    4002770c <SHA256_Update+0xbc>  // b.plast             
    400276bc:   d10102d5    sub x21, x22, #0x40                                           
    400276c0:   927ae6b5    and x21, x21, #0xffffffffffffffc0                             
    400276c4:   910102b5    add x21, x21, #0x40                                           
    400276c8:   8b150275    add x21, x19, x21                                             
    400276cc:   d503201f    nop                                                           
        SHA256_Transform(ctx->state, src);                                                
    400276d0:   aa1303e1    mov x1, x19                                                   
    400276d4:   aa1403e0    mov x0, x20                                                   
        src += 64;                                                                        
    400276d8:   91010273    add x19, x19, #0x40                                           
        SHA256_Transform(ctx->state, src);                                                
    400276dc:   97fff9c5    bl  40025df0 <SHA256_Transform>                               
    while (len >= 64) {                                                                   
    400276e0:   eb15027f    cmp x19, x21                                                  
    400276e4:   54ffff61    b.ne    400276d0 <SHA256_Update+0x80>  // b.any               <== NEVER TAKEN
        len -= 64;                                                                        
    400276e8:   924016d6    and x22, x22, #0x3f                                           
    }                                                                                     
                                                                                          
    /* Copy left over data into buffer */                                                 
    memcpy(ctx->buf, src, len);                                                           
    400276ec:   aa1703e0    mov x0, x23                                                   
    400276f0:   aa1603e2    mov x2, x22                                                   
    400276f4:   f9401bf7    ldr x23, [sp, #48]                                            
    400276f8:   aa1503e1    mov x1, x21                                                   
}                                                                                         
    400276fc:   a94153f3    ldp x19, x20, [sp, #16]                                       
    40027700:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    40027704:   a8c47bfd    ldp x29, x30, [sp], #64                                       
    memcpy(ctx->buf, src, len);                                                           
    40027708:   14002ec5    b   4003321c <memcpy>                                         
    src += 64 - r;                                                                        
    4002770c:   aa1303f5    mov x21, x19                                                  
    40027710:   17fffff7    b   400276ec <SHA256_Update+0x9c>                             
    ...                                                                                   
                                                                                          

0000000040029910 <SHA512_Update>: /* Add bytes into the hash */ void SHA512_Update(SHA512_CTX * ctx, const void *in, size_t len) {
    40029910:   a9bc7bfd    stp x29, x30, [sp, #-64]!                                     
                                                                                          
    /* Number of bytes left in the buffer from previous updates */                        
    r = (ctx->count[1] >> 3) & 0x7f;                                                      
                                                                                          
    /* Convert the length into a number of bits */                                        
    bitlen[1] = ((uint64_t)len) << 3;                                                     
    40029914:   d37df044    lsl x4, x2, #3                                                
{                                                                                         
    40029918:   910003fd    mov x29, sp                                                   
    4002991c:   a90153f3    stp x19, x20, [sp, #16]                                       
    40029920:   aa0003f4    mov x20, x0                                                   
    r = (ctx->count[1] >> 3) & 0x7f;                                                      
    40029924:   f9402400    ldr x0, [x0, #72]                                             
{                                                                                         
    40029928:   a9025bf5    stp x21, x22, [sp, #32]                                       
    bitlen[0] = ((uint64_t)len) >> 61;                                                    
                                                                                          
    /* Update number of bits */                                                           
    if ((ctx->count[1] += bitlen[1]) < bitlen[1])                                         
        ctx->count[0]++;                                                                  
    4002992c:   f9402283    ldr x3, [x20, #64]                                            
    40029930:   ab040004    adds    x4, x0, x4                                            
{                                                                                         
    40029934:   a90363f7    stp x23, x24, [sp, #48]                                       
    r = (ctx->count[1] >> 3) & 0x7f;                                                      
    40029938:   d3432416    ubfx    x22, x0, #3, #7                                       
        ctx->count[0]++;                                                                  
    4002993c:   9a833463    cinc    x3, x3, cs  // cs = hs, nlast                         
    ctx->count[0] += bitlen[0];                                                           
    40029940:   8b42f463    add x3, x3, x2, lsr #61                                       
    if ((ctx->count[1] += bitlen[1]) < bitlen[1])                                         
    40029944:   a9041283    stp x3, x4, [x20, #64]                                        
                                                                                          
    /* Handle the case where we don't need to perform any transforms */                   
    if (len < 128 - r) {                                                                  
        memcpy(&ctx->buf[r], src, len);                                                   
    40029948:   910142c0    add x0, x22, #0x50                                            
    if (len < 128 - r) {                                                                  
    4002994c:   d2801018    mov x24, #0x80                      // #128                   
    40029950:   cb160318    sub x24, x24, x22                                             
        memcpy(&ctx->buf[r], src, len);                                                   
    40029954:   8b000280    add x0, x20, x0                                               
    if (len < 128 - r) {                                                                  
    40029958:   eb02031f    cmp x24, x2                                                   
    4002995c:   540003a8    b.hi    400299d0 <SHA512_Update+0xc0>  // b.pmore             
    40029960:   aa0203f5    mov x21, x2                                                   
        return;                                                                           
    }                                                                                     
                                                                                          
    /* Finish the current block */                                                        
    memcpy(&ctx->buf[r], src, 128 - r);                                                   
    40029964:   aa1803e2    mov x2, x24                                                   
    40029968:   aa0103f3    mov x19, x1                                                   
    SHA512_Transform(ctx->state, ctx->buf);                                               
    4002996c:   91014297    add x23, x20, #0x50                                           
    memcpy(&ctx->buf[r], src, 128 - r);                                                   
    40029970:   9400262b    bl  4003321c <memcpy>                                         
    SHA512_Transform(ctx->state, ctx->buf);                                               
    40029974:   d10202b5    sub x21, x21, #0x80                                           
    40029978:   aa1703e1    mov x1, x23                                                   
    4002997c:   aa1403e0    mov x0, x20                                                   
    src += 128 - r;                                                                       
    len -= 128 - r;                                                                       
    40029980:   8b1602b5    add x21, x21, x22                                             
    SHA512_Transform(ctx->state, ctx->buf);                                               
    40029984:   97fff79f    bl  40027800 <SHA512_Transform>                               
    src += 128 - r;                                                                       
    40029988:   8b180273    add x19, x19, x24                                             
                                                                                          
    /* Perform complete blocks */                                                         
    while (len >= 128) {                                                                  
    4002998c:   f101febf    cmp x21, #0x7f                                                
    40029990:   540002a9    b.ls    400299e4 <SHA512_Update+0xd4>  // b.plast             <== ALWAYS TAKEN
    40029994:   d10202b6    sub x22, x21, #0x80                                           <== NOT EXECUTED
    40029998:   9279e2d6    and x22, x22, #0xffffffffffffff80                             <== NOT EXECUTED
    4002999c:   910202d6    add x22, x22, #0x80                                           <== NOT EXECUTED
    400299a0:   8b160276    add x22, x19, x22                                             <== NOT EXECUTED
    400299a4:   d503201f    nop                                                           <== NOT EXECUTED
        SHA512_Transform(ctx->state, src);                                                
    400299a8:   aa1303e1    mov x1, x19                                                   <== NOT EXECUTED
    400299ac:   aa1403e0    mov x0, x20                                                   <== NOT EXECUTED
        src += 128;                                                                       
    400299b0:   91020273    add x19, x19, #0x80                                           <== NOT EXECUTED
        SHA512_Transform(ctx->state, src);                                                
    400299b4:   97fff793    bl  40027800 <SHA512_Transform>                               <== NOT EXECUTED
    while (len >= 128) {                                                                  
    400299b8:   eb16027f    cmp x19, x22                                                  <== NOT EXECUTED
    400299bc:   54ffff61    b.ne    400299a8 <SHA512_Update+0x98>  // b.any               <== NOT EXECUTED
        len -= 128;                                                                       
    400299c0:   92401ab5    and x21, x21, #0x7f                                           <== NOT EXECUTED
    }                                                                                     
                                                                                          
    /* Copy left over data into buffer */                                                 
    memcpy(ctx->buf, src, len);                                                           
    400299c4:   aa1503e2    mov x2, x21                                                   
    400299c8:   aa1603e1    mov x1, x22                                                   
    400299cc:   aa1703e0    mov x0, x23                                                   
}                                                                                         
    400299d0:   a94153f3    ldp x19, x20, [sp, #16]                                       
    400299d4:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    400299d8:   a94363f7    ldp x23, x24, [sp, #48]                                       
    400299dc:   a8c47bfd    ldp x29, x30, [sp], #64                                       
    memcpy(ctx->buf, src, len);                                                           
    400299e0:   1400260f    b   4003321c <memcpy>                                         
    src += 128 - r;                                                                       
    400299e4:   aa1303f6    mov x22, x19                                                  
    400299e8:   17fffff7    b   400299c4 <SHA512_Update+0xb4>                             
    400299ec:   00000000    udf #0