RTEMS-6
Annotated Report
libuntar
Sun Feb 28 23:57:22 2021

00107630 <Untar_FromChunk_Print>:                                                         
{                                                                                         
  107630:   e92d 4ff8   stmdb   sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}             
  context->base.printer = printer;                                                        
  107634:   67c3        str r3, [r0, #124]  ; 0x7c                                        
  while (todo > 0) {                                                                      
  107636:   b31a        cbz r2, 107680 <Untar_FromChunk_Print+0x50>                       
  done = 0;                                                                               
  107638:   f04f 0b00   mov.w   fp, #0                                                    
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  10763c:   f643 69ec   movw    r9, #16108  ; 0x3eec                                      
  107640:   4604        mov r4, r0                                                        
  107642:   4688        mov r8, r1                                                        
  107644:   4616        mov r6, r2                                                        
          context->state = UNTAR_CHUNK_HEADER;                                            
  107646:   46da        mov sl, fp                                                        
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  107648:   f2c0 0911   movt    r9, #17                                                   
    switch (context->state) {                                                             
  10764c:   f8d4 70e4   ldr.w   r7, [r4, #228]  ; 0xe4                                    
  107650:   2f01        cmp r7, #1                                                        
  107652:   d006        beq.n   107662 <Untar_FromChunk_Print+0x32>                       
  107654:   2f02        cmp r7, #2                                                        
  107656:   d059        beq.n   10770c <Untar_FromChunk_Print+0xdc>                       
  107658:   b1b7        cbz r7, 107688 <Untar_FromChunk_Print+0x58>                       
  10765a:   2701        movs    r7, #1                                                    <== NOT EXECUTED
}                                                                                         
  10765c:   4638        mov r0, r7                                                        <== NOT EXECUTED
  10765e:   e8bd 8ff8   ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}             <== NOT EXECUTED
        remaining = context->base.file_size - context->done_bytes;                        
  107662:   f8d4 22e8   ldr.w   r2, [r4, #744]  ; 0x2e8                                   
  107666:   6f21        ldr r1, [r4, #112]  ; 0x70                                        
  107668:   1a8d        subs    r5, r1, r2                                                
        consume = MIN(remaining, todo);                                                   
  10766a:   42b5        cmp r5, r6                                                        
  10766c:   bf28        it  cs                                                            
  10766e:   4635        movcs   r5, r6                                                    
        context->done_bytes += consume;                                                   
  107670:   442a        add r2, r5                                                        
        if (context->done_bytes == context->base.file_size) {                             
  107672:   4291        cmp r1, r2                                                        
        context->done_bytes += consume;                                                   
  107674:   f8c4 22e8   str.w   r2, [r4, #744]  ; 0x2e8                                   
        if (context->done_bytes == context->base.file_size) {                             
  107678:   d06f        beq.n   10775a <Untar_FromChunk_Print+0x12a>                      
  while (todo > 0) {                                                                      
  10767a:   1b76        subs    r6, r6, r5                                                
    done += consume;                                                                      
  10767c:   44ab        add fp, r5                                                        
  while (todo > 0) {                                                                      
  10767e:   d1e5        bne.n   10764c <Untar_FromChunk_Print+0x1c>                       <== ALWAYS TAKEN
  return UNTAR_SUCCESSFUL;                                                                
  107680:   2700        movs    r7, #0                                                    
}                                                                                         
  107682:   4638        mov r0, r7                                                        
  107684:   e8bd 8ff8   ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}             
        remaining = 512 - context->done_bytes;                                            
  107688:   f8d4 02e8   ldr.w   r0, [r4, #744]  ; 0x2e8                                   
        memcpy(&context->header[context->done_bytes], &buf[done], consume);               
  10768c:   eb08 010b   add.w   r1, r8, fp                                                
        remaining = 512 - context->done_bytes;                                            
  107690:   f5c0 7500   rsb r5, r0, #512    ; 0x200                                       
        memcpy(&context->header[context->done_bytes], &buf[done], consume);               
  107694:   30e8        adds    r0, #232    ; 0xe8                                        
        consume = MIN(remaining, todo);                                                   
  107696:   42b5        cmp r5, r6                                                        
        memcpy(&context->header[context->done_bytes], &buf[done], consume);               
  107698:   4420        add r0, r4                                                        
        consume = MIN(remaining, todo);                                                   
  10769a:   bf28        it  cs                                                            
  10769c:   4635        movcs   r5, r6                                                    
        memcpy(&context->header[context->done_bytes], &buf[done], consume);               
  10769e:   462a        mov r2, r5                                                        
  1076a0:   f007 ebee   blx 10ee80 <memcpy>                                               
        context->done_bytes += consume;                                                   
  1076a4:   f8d4 22e8   ldr.w   r2, [r4, #744]  ; 0x2e8                                   
  1076a8:   442a        add r2, r5                                                        
        if (context->done_bytes == 512) {                                                 
  1076aa:   f5b2 7f00   cmp.w   r2, #512    ; 0x200                                       
        context->done_bytes += consume;                                                   
  1076ae:   f8c4 22e8   str.w   r2, [r4, #744]  ; 0x2e8                                   
        if (context->done_bytes == 512) {                                                 
  1076b2:   d1e2        bne.n   10767a <Untar_FromChunk_Print+0x4a>                       
  ctx->file_name[0] = '\0';                                                               
  1076b4:   6862        ldr r2, [r4, #4]                                                  
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  1076b6:   4649        mov r1, r9                                                        
  1076b8:   f204 10e9   addw    r0, r4, #489    ; 0x1e9                                   
  ctx->file_name[0] = '\0';                                                               
  1076bc:   7017        strb    r7, [r2, #0]                                              
  ctx->linkflag = -1;                                                                     
  1076be:   22ff        movs    r2, #255    ; 0xff                                        
  1076c0:   f884 2078   strb.w  r2, [r4, #120]  ; 0x78                                    
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  1076c4:   2205        movs    r2, #5                                                    
  ctx->nblocks = 0;                                                                       
  1076c6:   e9c4 771c   strd    r7, r7, [r4, #112]  ; 0x70                                
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  1076ca:   f008 fc27   bl  10ff1c <strncmp>                                              
  1076ce:   2800        cmp r0, #0                                                        
  1076d0:   d145        bne.n   10775e <Untar_FromChunk_Print+0x12e>                      
  1076d2:   f104 01e8   add.w   r1, r4, #232    ; 0xe8                                    
  1076d6:   4620        mov r0, r4                                                        
  1076d8:   f7ff fd10   bl  1070fc <Untar_ProcessHeader.part.0>                           
          if (retval != UNTAR_SUCCESSFUL) {                                               
  1076dc:   4607        mov r7, r0                                                        
  1076de:   2800        cmp r0, #0                                                        
  1076e0:   d140        bne.n   107764 <Untar_FromChunk_Print+0x134>                      <== ALWAYS TAKEN
          if (context->base.linkflag == REGTYPE) {                                        
  1076e2:   f894 2078   ldrb.w  r2, [r4, #120]  ; 0x78                                    
  1076e6:   2a30        cmp r2, #48 ; 0x30                                                
  1076e8:   d139        bne.n   10775e <Untar_FromChunk_Print+0x12e>                      
            context->out_fd = creat(context->base.file_path,                              
  1076ea:   6ee1        ldr r1, [r4, #108]  ; 0x6c                                        
  1076ec:   6820        ldr r0, [r4, #0]                                                  
  1076ee:   f007 fa6f   bl  10ebd0 <creat>                                                
            if (context->out_fd >= 0) {                                                   
  1076f2:   2800        cmp r0, #0                                                        
              context->done_bytes = 0;                                                    
  1076f4:   e9c4 70ba   strd    r7, r0, [r4, #744]  ; 0x2e8                               
              context->base.file_size = 512 * context->base.nblocks;                      
  1076f8:   bfb7        itett   lt                                                        
  1076fa:   6f62        ldrlt   r2, [r4, #116]  ; 0x74                                    
              context->state = UNTAR_CHUNK_WRITE;                                         
  1076fc:   2202        movge   r2, #2                                                    
              context->base.file_size = 512 * context->base.nblocks;                      
  1076fe:   0252        lsllt   r2, r2, #9                                                
  107700:   6722        strlt   r2, [r4, #112]  ; 0x70                                    
              context->state = UNTAR_CHUNK_SKIP;                                          
  107702:   bfb8        it  lt                                                            
  107704:   2201        movlt   r2, #1                                                    
  107706:   f8c4 20e4   str.w   r2, [r4, #228]  ; 0xe4                                    
              context->done_bytes = 0;                                                    
  10770a:   e7b6        b.n 10767a <Untar_FromChunk_Print+0x4a>                           
        remaining = context->base.file_size - context->done_bytes;                        
  10770c:   f8d4 22e8   ldr.w   r2, [r4, #744]  ; 0x2e8                                   
        write(context->out_fd, &buf[done], consume);                                      
  107710:   eb08 010b   add.w   r1, r8, fp                                                
        remaining = context->base.file_size - context->done_bytes;                        
  107714:   6f25        ldr r5, [r4, #112]  ; 0x70                                        
        write(context->out_fd, &buf[done], consume);                                      
  107716:   f8d4 02ec   ldr.w   r0, [r4, #748]  ; 0x2ec                                   
        remaining = context->base.file_size - context->done_bytes;                        
  10771a:   1aad        subs    r5, r5, r2                                                
        consume = MIN(remaining, todo);                                                   
  10771c:   42b5        cmp r5, r6                                                        
  10771e:   bf28        it  cs                                                            
  107720:   4635        movcs   r5, r6                                                    
        write(context->out_fd, &buf[done], consume);                                      
  107722:   462a        mov r2, r5                                                        
  107724:   f7fe fc9a   bl  10605c <write>                                                
        context->done_bytes += consume;                                                   
  107728:   f8d4 22e8   ldr.w   r2, [r4, #744]  ; 0x2e8                                   
        if (context->done_bytes == context->base.file_size) {                             
  10772c:   6f21        ldr r1, [r4, #112]  ; 0x70                                        
        context->done_bytes += consume;                                                   
  10772e:   442a        add r2, r5                                                        
        if (context->done_bytes == context->base.file_size) {                             
  107730:   428a        cmp r2, r1                                                        
        context->done_bytes += consume;                                                   
  107732:   f8c4 22e8   str.w   r2, [r4, #744]  ; 0x2e8                                   
        if (context->done_bytes == context->base.file_size) {                             
  107736:   d1a0        bne.n   10767a <Untar_FromChunk_Print+0x4a>                       
          close(context->out_fd);                                                         
  107738:   f8d4 02ec   ldr.w   r0, [r4, #748]  ; 0x2ec                                   
  10773c:   f7fd fb78   bl  104e30 <close>                                                
          context->base.file_size = 512 * context->base.nblocks                           
  107740:   e9d4 211c   ldrd    r2, r1, [r4, #112]  ; 0x70                                
          context->out_fd = -1;                                                           
  107744:   f04f 33ff   mov.w   r3, #4294967295 ; 0xffffffff                              
          context->done_bytes = 0;                                                        
  107748:   e9c4 a3ba   strd    sl, r3, [r4, #744]  ; 0x2e8                               
            - context->base.file_size;                                                    
  10774c:   ebc2 2241   rsb r2, r2, r1, lsl #9                                            
          context->base.file_size = 512 * context->base.nblocks                           
  107750:   6722        str r2, [r4, #112]  ; 0x70                                        
          context->state = UNTAR_CHUNK_SKIP;                                              
  107752:   2201        movs    r2, #1                                                    
  107754:   f8c4 20e4   str.w   r2, [r4, #228]  ; 0xe4                                    
          context->done_bytes = 0;                                                        
  107758:   e78f        b.n 10767a <Untar_FromChunk_Print+0x4a>                           
          context->state = UNTAR_CHUNK_HEADER;                                            
  10775a:   f8c4 a0e4   str.w   sl, [r4, #228]  ; 0xe4                                    
          context->done_bytes = 0;                                                        
  10775e:   f8c4 a2e8   str.w   sl, [r4, #744]  ; 0x2e8                                   
  107762:   e78a        b.n 10767a <Untar_FromChunk_Print+0x4a>                           
            context->state = UNTAR_CHUNK_ERROR;                                           
  107764:   2303        movs    r3, #3                                                    <== NOT EXECUTED
  107766:   f8c4 30e4   str.w   r3, [r4, #228]  ; 0xe4                                    <== NOT EXECUTED
            return retval;                                                                
  10776a:   e777        b.n 10765c <Untar_FromChunk_Print+0x2c>                           <== NOT EXECUTED
                                                                                          

00107528 <Untar_FromFile_Print>: {
  107528:   e92d 43f0   stmdb   sp!, {r4, r5, r6, r7, r8, r9, lr}                         
  10752c:   460c        mov r4, r1                                                        
  10752e:   b0bd        sub sp, #244    ; 0xf4                                            
  if ((fd = open(tar_name, O_RDONLY)) < 0) {                                              
  107530:   2100        movs    r1, #0                                                    
  107532:   f7fd ffb9   bl  1054a8 <open>                                                 
  107536:   1e07        subs    r7, r0, #0                                                
    return UNTAR_FAIL;                                                                    
  107538:   bfb8        it  lt                                                            
  10753a:   2401        movlt   r4, #1                                                    
  if ((fd = open(tar_name, O_RDONLY)) < 0) {                                              
  10753c:   db5a        blt.n   1075f4 <Untar_FromFile_Print+0xcc>                        <== ALWAYS TAKEN
  bufr = (char *)malloc(512);                                                             
  10753e:   f44f 7000   mov.w   r0, #512    ; 0x200                                       
  107542:   f002 f8dd   bl  109700 <malloc>                                               
  if (bufr == NULL) {                                                                     
  107546:   4605        mov r5, r0                                                        
  107548:   2800        cmp r0, #0                                                        
  10754a:   d05f        beq.n   10760c <Untar_FromFile_Print+0xe4>                        <== ALWAYS TAKEN
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  10754c:   f643 68ec   movw    r8, #16108  ; 0x3eec                                      
  ctx->file_name[0] = '\0';                                                               
  107550:   2600        movs    r6, #0                                                    
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  107552:   f2c0 0811   movt    r8, #17                                                   
  ctx.file_path = buf;                                                                    
  107556:   ab03        add r3, sp, #12                                                   
  ctx.printer = printer;                                                                  
  107558:   943b        str r4, [sp, #236]  ; 0xec                                        
  ctx.file_name = buf;                                                                    
  10755a:   e9cd 331c   strd    r3, r3, [sp, #112]  ; 0x70                                
    if ((n = read(fd, bufr, 512)) != 512) {                                               
  10755e:   f44f 7200   mov.w   r2, #512    ; 0x200                                       
  107562:   4629        mov r1, r5                                                        
  107564:   4638        mov r0, r7                                                        
  107566:   f7fe f8e7   bl  105738 <read>                                                 
  10756a:   f5b0 7f00   cmp.w   r0, #512    ; 0x200                                       
  10756e:   d13a        bne.n   1075e6 <Untar_FromFile_Print+0xbe>                        
  ctx->file_name[0] = '\0';                                                               
  107570:   9b1d        ldr r3, [sp, #116]  ; 0x74                                        
  ctx->linkflag = -1;                                                                     
  107572:   24ff        movs    r4, #255    ; 0xff                                        
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  107574:   2205        movs    r2, #5                                                    
  107576:   4641        mov r1, r8                                                        
  107578:   f205 1001   addw    r0, r5, #257    ; 0x101                                   
  ctx->file_name[0] = '\0';                                                               
  10757c:   701e        strb    r6, [r3, #0]                                              
  ctx->nblocks = 0;                                                                       
  10757e:   e9cd 6638   strd    r6, r6, [sp, #224]  ; 0xe0                                
  ctx->linkflag = -1;                                                                     
  107582:   f88d 40e8   strb.w  r4, [sp, #232]  ; 0xe8                                    
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  107586:   f008 fcc9   bl  10ff1c <strncmp>                                              
  10758a:   2800        cmp r0, #0                                                        
  10758c:   d1e7        bne.n   10755e <Untar_FromFile_Print+0x36>                        
  10758e:   4629        mov r1, r5                                                        
  107590:   a81c        add r0, sp, #112    ; 0x70                                        
  107592:   f7ff fdb3   bl  1070fc <Untar_ProcessHeader.part.0>                           
    if (retval != UNTAR_SUCCESSFUL)                                                       
  107596:   4604        mov r4, r0                                                        
  107598:   bb30        cbnz    r0, 1075e8 <Untar_FromFile_Print+0xc0>                    
    if (ctx.linkflag == REGTYPE) {                                                        
  10759a:   f89d 30e8   ldrb.w  r3, [sp, #232]  ; 0xe8                                    
  10759e:   2b30        cmp r3, #48 ; 0x30                                                
  1075a0:   d1dd        bne.n   10755e <Untar_FromFile_Print+0x36>                        
      if ((out_fd = creat(ctx.file_path, ctx.mode)) == -1) {                              
  1075a2:   9937        ldr r1, [sp, #220]  ; 0xdc                                        
  1075a4:   981c        ldr r0, [sp, #112]  ; 0x70                                        
  1075a6:   f007 fb13   bl  10ebd0 <creat>                                                
  1075aa:   f1b0 3fff   cmp.w   r0, #4294967295 ; 0xffffffff                              
        (void) lseek(fd, SEEK_CUR, 512UL * ctx.nblocks);                                  
  1075ae:   9b39        ldr r3, [sp, #228]  ; 0xe4                                        
      if ((out_fd = creat(ctx.file_path, ctx.mode)) == -1) {                              
  1075b0:   4681        mov r9, r0                                                        
  1075b2:   d023        beq.n   1075fc <Untar_FromFile_Print+0xd4>                        <== ALWAYS TAKEN
        for (i = 0; i < ctx.nblocks; i++) {                                               
  1075b4:   b19b        cbz r3, 1075de <Untar_FromFile_Print+0xb6>                        
          n = read(fd, bufr, 512);                                                        
  1075b6:   f44f 7200   mov.w   r2, #512    ; 0x200                                       
  1075ba:   4629        mov r1, r5                                                        
  1075bc:   4638        mov r0, r7                                                        
  1075be:   f7fe f8bb   bl  105738 <read>                                                 
          n = MIN(n, ctx.file_size - (i * 512UL));                                        
  1075c2:   9b38        ldr r3, [sp, #224]  ; 0xe0                                        
          (void) write(out_fd, bufr, n);                                                  
  1075c4:   4629        mov r1, r5                                                        
          n = MIN(n, ctx.file_size - (i * 512UL));                                        
  1075c6:   eba3 2244   sub.w   r2, r3, r4, lsl #9                                        
        for (i = 0; i < ctx.nblocks; i++) {                                               
  1075ca:   3401        adds    r4, #1                                                    
          (void) write(out_fd, bufr, n);                                                  
  1075cc:   4282        cmp r2, r0                                                        
  1075ce:   bf28        it  cs                                                            
  1075d0:   4602        movcs   r2, r0                                                    
  1075d2:   4648        mov r0, r9                                                        
  1075d4:   f7fe fd42   bl  10605c <write>                                                
        for (i = 0; i < ctx.nblocks; i++) {                                               
  1075d8:   9b39        ldr r3, [sp, #228]  ; 0xe4                                        
  1075da:   42a3        cmp r3, r4                                                        
  1075dc:   d8eb        bhi.n   1075b6 <Untar_FromFile_Print+0x8e>                        <== ALWAYS TAKEN
        close(out_fd);                                                                    
  1075de:   4648        mov r0, r9                                                        
  1075e0:   f7fd fc26   bl  104e30 <close>                                                
  1075e4:   e7bb        b.n 10755e <Untar_FromFile_Print+0x36>                            
  1075e6:   2400        movs    r4, #0                                                    
  free(bufr);                                                                             
  1075e8:   4628        mov r0, r5                                                        
  1075ea:   f001 ffb5   bl  109558 <free>                                                 
  close(fd);                                                                              
  1075ee:   4638        mov r0, r7                                                        
  1075f0:   f7fd fc1e   bl  104e30 <close>                                                
}                                                                                         
  1075f4:   4620        mov r0, r4                                                        
  1075f6:   b03d        add sp, #244    ; 0xf4                                            
  1075f8:   e8bd 83f0   ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}                         
        (void) lseek(fd, SEEK_CUR, 512UL * ctx.nblocks);                                  
  1075fc:   025b        lsls    r3, r3, #9                                                <== NOT EXECUTED
  1075fe:   2201        movs    r2, #1                                                    <== NOT EXECUTED
  107600:   4638        mov r0, r7                                                        <== NOT EXECUTED
  107602:   9300        str r3, [sp, #0]                                                  <== NOT EXECUTED
  107604:   2300        movs    r3, #0                                                    <== NOT EXECUTED
  107606:   f7fd fd2d   bl  105064 <lseek>                                                <== NOT EXECUTED
  10760a:   e7a8        b.n 10755e <Untar_FromFile_Print+0x36>                            <== NOT EXECUTED
    close(fd);                                                                            
  10760c:   4638        mov r0, r7                                                        <== NOT EXECUTED
    return(UNTAR_FAIL);                                                                   
  10760e:   2401        movs    r4, #1                                                    <== NOT EXECUTED
    close(fd);                                                                            
  107610:   f7fd fc0e   bl  104e30 <close>                                                <== NOT EXECUTED
    return(UNTAR_FAIL);                                                                   
  107614:   e7ee        b.n 1075f4 <Untar_FromFile_Print+0xcc>                            <== NOT EXECUTED
  107616:   bf00        nop                                                               
                                                                                          

001077b4 <Untar_FromGzChunk_Print>: Untar_GzChunkContext *ctx, void *chunk, size_t chunk_size, const rtems_printer *printer ) {
  1077b4:   e92d 41f0   stmdb   sp!, {r4, r5, r6, r7, r8, lr}                             
  1077b8:   4604        mov r4, r0                                                        
  1077ba:   4698        mov r8, r3                                                        
    /* Inflate until output buffer is not full */                                         
  do {                                                                                    
    ctx->strm.next_out = (Bytef *) ctx->inflateBuffer;                                    
    ctx->strm.avail_out = ctx->inflateBufferSize;                                         
                                                                                          
    status = inflate(&ctx->strm, Z_NO_FLUSH);                                             
  1077bc:   f500 773c   add.w   r7, r0, #752    ; 0x2f0                                   
  ctx->strm.avail_in = (size_t)chunk_size;                                                
  1077c0:   e9c0 12bc   strd    r1, r2, [r0, #752]  ; 0x2f0                               
  1077c4:   e006        b.n 1077d4 <Untar_FromGzChunk_Print+0x20>                         
      }                                                                                   
    } else {                                                                              
      untar_succesful = UNTAR_GZ_INFLATE_FAILED;                                          
    }                                                                                     
  } while (ctx->strm.avail_out == 0 && ctx->strm.avail_in > 0                             
      && status == Z_OK);                                                                 
  1077c6:   f8d4 3300   ldr.w   r3, [r4, #768]  ; 0x300                                   
  1077ca:   bb03        cbnz    r3, 10780e <Untar_FromGzChunk_Print+0x5a>                 
  } while (ctx->strm.avail_out == 0 && ctx->strm.avail_in > 0                             
  1077cc:   f8d4 32f4   ldr.w   r3, [r4, #756]  ; 0x2f4                                   
  1077d0:   b1eb        cbz r3, 10780e <Untar_FromGzChunk_Print+0x5a>                     
      && status == Z_OK);                                                                 
  1077d2:   b9f5        cbnz    r5, 107812 <Untar_FromGzChunk_Print+0x5e>                 
    ctx->strm.avail_out = ctx->inflateBufferSize;                                         
  1077d4:   e9d4 23ca   ldrd    r2, r3, [r4, #808]  ; 0x328                               
    status = inflate(&ctx->strm, Z_NO_FLUSH);                                             
  1077d8:   2100        movs    r1, #0                                                    
  1077da:   4638        mov r0, r7                                                        
      untar_succesful = UNTAR_GZ_INFLATE_FAILED;                                          
  1077dc:   2604        movs    r6, #4                                                    
    ctx->strm.avail_out = ctx->inflateBufferSize;                                         
  1077de:   e9c4 23bf   strd    r2, r3, [r4, #764]  ; 0x2fc                               
    status = inflate(&ctx->strm, Z_NO_FLUSH);                                             
  1077e2:   f004 fbdb   bl  10bf9c <z_inflate>                                            
    if (status == Z_OK || status == Z_STREAM_END) {                                       
  1077e6:   2801        cmp r0, #1                                                        
    status = inflate(&ctx->strm, Z_NO_FLUSH);                                             
  1077e8:   4605        mov r5, r0                                                        
    if (status == Z_OK || status == Z_STREAM_END) {                                       
  1077ea:   d8ec        bhi.n   1077c6 <Untar_FromGzChunk_Print+0x12>                     <== ALWAYS TAKEN
      size_t inflated_size =                                                              
  1077ec:   f8d4 632c   ldr.w   r6, [r4, #812]  ; 0x32c                                   
      untar_succesful = Untar_FromChunk_Print(&ctx->base,                                 
  1077f0:   2300        movs    r3, #0                                                    
      size_t inflated_size =                                                              
  1077f2:   f8d4 2300   ldr.w   r2, [r4, #768]  ; 0x300                                   
      untar_succesful = Untar_FromChunk_Print(&ctx->base,                                 
  1077f6:   4620        mov r0, r4                                                        
  1077f8:   f8d4 1328   ldr.w   r1, [r4, #808]  ; 0x328                                   
  1077fc:   1ab2        subs    r2, r6, r2                                                
  1077fe:   f7ff ff17   bl  107630 <Untar_FromChunk_Print>                                
      if (untar_succesful != UNTAR_SUCCESSFUL){                                           
  107802:   4606        mov r6, r0                                                        
  107804:   2800        cmp r0, #0                                                        
  107806:   d0de        beq.n   1077c6 <Untar_FromGzChunk_Print+0x12>                     <== NEVER TAKEN
    if (status != Z_OK) {                                                                 
      rtems_printf(printer, "Zlib inflate end failed\n");                                 
    }                                                                                     
  }                                                                                       
  return untar_succesful;                                                                 
}                                                                                         
  107808:   4630        mov r0, r6                                                        
  10780a:   e8bd 81f0   ldmia.w sp!, {r4, r5, r6, r7, r8, pc}                             
  if (status != Z_OK) {                                                                   
  10780e:   2d00        cmp r5, #0                                                        
  107810:   d0fa        beq.n   107808 <Untar_FromGzChunk_Print+0x54>                     
    if (untar_succesful != UNTAR_SUCCESSFUL){                                             
  107812:   b9be        cbnz    r6, 107844 <Untar_FromGzChunk_Print+0x90>                 
    if (status != Z_STREAM_END) {                                                         
  107814:   2d01        cmp r5, #1                                                        
  107816:   d006        beq.n   107826 <Untar_FromGzChunk_Print+0x72>                     <== NEVER TAKEN
      rtems_printf(printer, "Zlib inflate failed\n");                                     
  107818:   f643 7140   movw    r1, #16192  ; 0x3f40                                      <== NOT EXECUTED
  10781c:   4640        mov r0, r8                                                        <== NOT EXECUTED
  10781e:   f2c0 0111   movt    r1, #17                                                   <== NOT EXECUTED
  107822:   f001 fffb   bl  10981c <rtems_printf>                                         <== NOT EXECUTED
    status = inflateEnd(&ctx->strm);                                                      
  107826:   4638        mov r0, r7                                                        
  107828:   f005 fbea   bl  10d000 <z_inflateEnd>                                         
    if (status != Z_OK) {                                                                 
  10782c:   2800        cmp r0, #0                                                        
  10782e:   d0eb        beq.n   107808 <Untar_FromGzChunk_Print+0x54>                     <== NEVER TAKEN
      rtems_printf(printer, "Zlib inflate end failed\n");                                 
  107830:   f643 7158   movw    r1, #16216  ; 0x3f58                                      <== NOT EXECUTED
  107834:   4640        mov r0, r8                                                        <== NOT EXECUTED
  107836:   f2c0 0111   movt    r1, #17                                                   <== NOT EXECUTED
  10783a:   f001 ffef   bl  10981c <rtems_printf>                                         <== NOT EXECUTED
}                                                                                         
  10783e:   4630        mov r0, r6                                                        <== NOT EXECUTED
  107840:   e8bd 81f0   ldmia.w sp!, {r4, r5, r6, r7, r8, pc}                             <== NOT EXECUTED
      rtems_printf(printer, "Untar not successful\n");                                    
  107844:   f643 7128   movw    r1, #16168  ; 0x3f28                                      <== NOT EXECUTED
  107848:   4640        mov r0, r8                                                        <== NOT EXECUTED
  10784a:   f2c0 0111   movt    r1, #17                                                   <== NOT EXECUTED
  10784e:   f001 ffe5   bl  10981c <rtems_printf>                                         <== NOT EXECUTED
  107852:   e7df        b.n 107814 <Untar_FromGzChunk_Print+0x60>                         <== NOT EXECUTED
                                                                                          

001073a4 <Untar_FromMemory_Print>: {
  1073a4:   e92d 4ff0   stmdb   sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}                 
  1073a8:   b0bf        sub sp, #252    ; 0xfc                                            
  1073aa:   4607        mov r7, r0                                                        
  1073ac:   4689        mov r9, r1                                                        
  1073ae:   4610        mov r0, r2                                                        
  rtems_printf(printer, "untar: memory at %p (%zu)\n", tar_buf, size);                    
  1073b0:   460b        mov r3, r1                                                        
{                                                                                         
  1073b2:   9202        str r2, [sp, #8]                                                  
  rtems_printf(printer, "untar: memory at %p (%zu)\n", tar_buf, size);                    
  1073b4:   f643 61f4   movw    r1, #16116  ; 0x3ef4                                      
  ctx.file_path = buf;                                                                    
  1073b8:   aa05        add r2, sp, #20                                                   
  ptr = 0;                                                                                
  1073ba:   2400        movs    r4, #0                                                    
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  1073bc:   f643 6aec   movw    sl, #16108  ; 0x3eec                                      
  ctx.file_name = buf;                                                                    
  1073c0:   e9cd 221e   strd    r2, r2, [sp, #120]  ; 0x78                                
  rtems_printf(printer, "untar: memory at %p (%zu)\n", tar_buf, size);                    
  1073c4:   f2c0 0111   movt    r1, #17                                                   
  1073c8:   463a        mov r2, r7                                                        
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  1073ca:   f2c0 0a11   movt    sl, #17                                                   
  ctx->file_name[0] = '\0';                                                               
  1073ce:   46a0        mov r8, r4                                                        
  ctx.printer = printer;                                                                  
  1073d0:   903d        str r0, [sp, #244]  ; 0xf4                                        
  rtems_printf(printer, "untar: memory at %p (%zu)\n", tar_buf, size);                    
  1073d2:   f002 fa23   bl  10981c <rtems_printf>                                         
  ctx->linkflag = -1;                                                                     
  1073d6:   f04f 0bff   mov.w   fp, #255    ; 0xff                                        
    if (ptr + 512 > size) {                                                               
  1073da:   f504 7500   add.w   r5, r4, #512    ; 0x200                                   
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  1073de:   f204 1001   addw    r0, r4, #257    ; 0x101                                   
    if (ptr + 512 > size) {                                                               
  1073e2:   454d        cmp r5, r9                                                        
  1073e4:   eb07 0604   add.w   r6, r7, r4                                                
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  1073e8:   f04f 0205   mov.w   r2, #5                                                    
  1073ec:   4651        mov r1, sl                                                        
  1073ee:   4438        add r0, r7                                                        
  ptr = 0;                                                                                
  1073f0:   462c        mov r4, r5                                                        
    if (ptr + 512 > size) {                                                               
  1073f2:   d86e        bhi.n   1074d2 <Untar_FromMemory_Print+0x12e>                     
  ctx->file_name[0] = '\0';                                                               
  1073f4:   9b1f        ldr r3, [sp, #124]  ; 0x7c                                        
  1073f6:   f04f 0c00   mov.w   ip, #0                                                    
  1073fa:   f883 c000   strb.w  ip, [r3]                                                  
  ctx->nblocks = 0;                                                                       
  1073fe:   e9cd 883a   strd    r8, r8, [sp, #232]  ; 0xe8                                
  ctx->linkflag = -1;                                                                     
  107402:   f88d b0f0   strb.w  fp, [sp, #240]  ; 0xf0                                    
  if (strncmp(&bufr[257], "ustar", 5)) {                                                  
  107406:   f008 fd89   bl  10ff1c <strncmp>                                              
  10740a:   4603        mov r3, r0                                                        
  10740c:   4631        mov r1, r6                                                        
  10740e:   a81e        add r0, sp, #120    ; 0x78                                        
  107410:   2b00        cmp r3, #0                                                        
  107412:   d1e2        bne.n   1073da <Untar_FromMemory_Print+0x36>                      
  107414:   f7ff fe72   bl  1070fc <Untar_ProcessHeader.part.0>                           
    if (retval != UNTAR_SUCCESSFUL)                                                       
  107418:   2800        cmp r0, #0                                                        
  10741a:   d155        bne.n   1074c8 <Untar_FromMemory_Print+0x124>                     <== ALWAYS TAKEN
    if (ctx.linkflag == REGTYPE) {                                                        
  10741c:   f89d 30f0   ldrb.w  r3, [sp, #240]  ; 0xf0                                    
  107420:   2b30        cmp r3, #48 ; 0x30                                                
  107422:   d1da        bne.n   1073da <Untar_FromMemory_Print+0x36>                      
      if ((fd = open(ctx.file_path,                                                       
  107424:   9a39        ldr r2, [sp, #228]  ; 0xe4                                        
  107426:   4606        mov r6, r0                                                        
  107428:   f240 6101   movw    r1, #1537   ; 0x601                                       
  10742c:   981e        ldr r0, [sp, #120]  ; 0x78                                        
  10742e:   f7fe f83b   bl  1054a8 <open>                                                 
  107432:   f1b0 3fff   cmp.w   r0, #4294967295 ; 0xffffffff                              
  107436:   4683        mov fp, r0                                                        
  107438:   d050        beq.n   1074dc <Untar_FromMemory_Print+0x138>                     <== ALWAYS TAKEN
        unsigned long sizeToGo = ctx.file_size;                                           
  10743a:   e9dd 323a   ldrd    r3, r2, [sp, #232]  ; 0xe8                                
        for (i = 0; i < ctx.nblocks; i++) {                                               
  10743e:   2a00        cmp r2, #0                                                        
  107440:   d03e        beq.n   1074c0 <Untar_FromMemory_Print+0x11c>                     <== ALWAYS TAKEN
  107442:   f8cd 900c   str.w   r9, [sp, #12]                                             
  107446:   46b9        mov r9, r7                                                        
  107448:   4637        mov r7, r6                                                        
  10744a:   461e        mov r6, r3                                                        
  10744c:   4653        mov r3, sl                                                        
  10744e:   4682        mov sl, r0                                                        
  107450:   469b        mov fp, r3                                                        
  107452:   e002        b.n 10745a <Untar_FromMemory_Print+0xb6>                          
  107454:   9a3b        ldr r2, [sp, #236]  ; 0xec                                        
  107456:   42ba        cmp r2, r7                                                        
  107458:   d95b        bls.n   107512 <Untar_FromMemory_Print+0x16e>                     <== NEVER TAKEN
          len = ((sizeToGo < 512L) ? (sizeToGo) : (512L));                                
  10745a:   f5b6 7f00   cmp.w   r6, #512    ; 0x200                                       
  10745e:   4634        mov r4, r6                                                        
  107460:   bf28        it  cs                                                            
  107462:   f44f 7400   movcs.w r4, #512    ; 0x200                                       
          n = write(fd, &tar_ptr[ptr], len);                                              
  107466:   eb09 0105   add.w   r1, r9, r5                                                
  10746a:   4622        mov r2, r4                                                        
  10746c:   4650        mov r0, sl                                                        
  10746e:   f7fe fdf5   bl  10605c <write>                                                
          if (n != len) {                                                                 
  107472:   4284        cmp r4, r0                                                        
  107474:   462a        mov r2, r5                                                        
        for (i = 0; i < ctx.nblocks; i++) {                                               
  107476:   f107 0701   add.w   r7, r7, #1                                                
          ptr += 512;                                                                     
  10747a:   f505 7500   add.w   r5, r5, #512    ; 0x200                                   
          sizeToGo -= n;                                                                  
  10747e:   eba6 0604   sub.w   r6, r6, r4                                                
          if (n != len) {                                                                 
  107482:   d0e7        beq.n   107454 <Untar_FromMemory_Print+0xb0>                      <== NEVER TAKEN
            Print_Error(printer, "write", ctx.file_path);                                 
  107484:   465b        mov r3, fp                                                        <== NOT EXECUTED
  107486:   4614        mov r4, r2                                                        <== NOT EXECUTED
  107488:   9d1e        ldr r5, [sp, #120]  ; 0x78                                        <== NOT EXECUTED
  10748a:   464f        mov r7, r9                                                        <== NOT EXECUTED
  10748c:   46d3        mov fp, sl                                                        <== NOT EXECUTED
  10748e:   f8dd 900c   ldr.w   r9, [sp, #12]                                             <== NOT EXECUTED
  107492:   469a        mov sl, r3                                                        <== NOT EXECUTED
               message, path, errno, strerror(errno));                                    
  107494:   f007 fba2   bl  10ebdc <__errno>                                              <== NOT EXECUTED
  rtems_printf(printer, "untar: %s: %s: (%d) %s\n",                                       
  107498:   6806        ldr r6, [r0, #0]                                                  <== NOT EXECUTED
               message, path, errno, strerror(errno));                                    
  10749a:   f007 fb9f   bl  10ebdc <__errno>                                              <== NOT EXECUTED
  rtems_printf(printer, "untar: %s: %s: (%d) %s\n",                                       
  10749e:   6800        ldr r0, [r0, #0]                                                  <== NOT EXECUTED
  1074a0:   f008 fc86   bl  10fdb0 <strerror>                                             <== NOT EXECUTED
  1074a4:   f643 7218   movw    r2, #16152  ; 0x3f18                                      <== NOT EXECUTED
  1074a8:   f643 6164   movw    r1, #15972  ; 0x3e64                                      <== NOT EXECUTED
  1074ac:   e9cd 6000   strd    r6, r0, [sp]                                              <== NOT EXECUTED
  1074b0:   462b        mov r3, r5                                                        <== NOT EXECUTED
  1074b2:   9802        ldr r0, [sp, #8]                                                  <== NOT EXECUTED
  1074b4:   f2c0 0211   movt    r2, #17                                                   <== NOT EXECUTED
  1074b8:   f2c0 0111   movt    r1, #17                                                   <== NOT EXECUTED
  1074bc:   f002 f9ae   bl  10981c <rtems_printf>                                         <== NOT EXECUTED
        close(fd);                                                                        
  1074c0:   4658        mov r0, fp                                                        <== NOT EXECUTED
  1074c2:   f7fd fcb5   bl  104e30 <close>                                                <== NOT EXECUTED
  1074c6:   e786        b.n 1073d6 <Untar_FromMemory_Print+0x32>                          <== NOT EXECUTED
  1074c8:   4606        mov r6, r0                                                        <== NOT EXECUTED
}                                                                                         
  1074ca:   4630        mov r0, r6                                                        <== NOT EXECUTED
  1074cc:   b03f        add sp, #252    ; 0xfc                                            <== NOT EXECUTED
  1074ce:   e8bd 8ff0   ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}                 <== NOT EXECUTED
      retval = UNTAR_SUCCESSFUL;                                                          
  1074d2:   2600        movs    r6, #0                                                    
}                                                                                         
  1074d4:   4630        mov r0, r6                                                        
  1074d6:   b03f        add sp, #252    ; 0xfc                                            
  1074d8:   e8bd 8ff0   ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}                 
        Print_Error(printer, "open", ctx.file_path);                                      
  1074dc:   9c1e        ldr r4, [sp, #120]  ; 0x78                                        <== NOT EXECUTED
               message, path, errno, strerror(errno));                                    
  1074de:   f007 fb7d   bl  10ebdc <__errno>                                              <== NOT EXECUTED
  rtems_printf(printer, "untar: %s: %s: (%d) %s\n",                                       
  1074e2:   6806        ldr r6, [r0, #0]                                                  <== NOT EXECUTED
               message, path, errno, strerror(errno));                                    
  1074e4:   f007 fb7a   bl  10ebdc <__errno>                                              <== NOT EXECUTED
  rtems_printf(printer, "untar: %s: %s: (%d) %s\n",                                       
  1074e8:   6800        ldr r0, [r0, #0]                                                  <== NOT EXECUTED
  1074ea:   f008 fc61   bl  10fdb0 <strerror>                                             <== NOT EXECUTED
  1074ee:   f643 7210   movw    r2, #16144  ; 0x3f10                                      <== NOT EXECUTED
  1074f2:   f643 6164   movw    r1, #15972  ; 0x3e64                                      <== NOT EXECUTED
  1074f6:   4623        mov r3, r4                                                        <== NOT EXECUTED
  1074f8:   e9cd 6000   strd    r6, r0, [sp]                                              <== NOT EXECUTED
  1074fc:   f2c0 0211   movt    r2, #17                                                   <== NOT EXECUTED
  107500:   9802        ldr r0, [sp, #8]                                                  <== NOT EXECUTED
  107502:   f2c0 0111   movt    r1, #17                                                   <== NOT EXECUTED
  107506:   f002 f989   bl  10981c <rtems_printf>                                         <== NOT EXECUTED
        ptr += 512 * ctx.nblocks;                                                         
  10750a:   9c3b        ldr r4, [sp, #236]  ; 0xec                                        <== NOT EXECUTED
  10750c:   eb05 2444   add.w   r4, r5, r4, lsl #9                                        <== NOT EXECUTED
  107510:   e761        b.n 1073d6 <Untar_FromMemory_Print+0x32>                          <== NOT EXECUTED
          ptr += 512;                                                                     
  107512:   465b        mov r3, fp                                                        
  107514:   46d3        mov fp, sl                                                        
        close(fd);                                                                        
  107516:   4658        mov r0, fp                                                        
          ptr += 512;                                                                     
  107518:   464f        mov r7, r9                                                        
  10751a:   469a        mov sl, r3                                                        
  10751c:   f8dd 900c   ldr.w   r9, [sp, #12]                                             
  107520:   462c        mov r4, r5                                                        
        close(fd);                                                                        
  107522:   f7fd fc85   bl  104e30 <close>                                                
  107526:   e756        b.n 1073d6 <Untar_FromMemory_Print+0x32>                          
                                                                                          

00107ae4 <Untar_ProcessHeader.part.0>: return 0; } int Untar_ProcessHeader(
  107ae4:   e92d 47f0   stmdb   sp!, {r4, r5, r6, r7, r8, r9, sl, lr}                     
  107ae8:   f101 0293   add.w   r2, r1, #147    ; 0x93                                    
  107aec:   4604        mov r4, r0                                                        
  107aee:   b09c        sub sp, #112    ; 0x70                                            
  107af0:   460d        mov r5, r1                                                        
  for (i=0; i < len; i++) {                                                               
  107af2:   f101 069b   add.w   r6, r1, #155    ; 0x9b                                    
  num = 0;                                                                                
  107af6:   2000        movs    r0, #0                                                    
    if ((octascii[i] < '0') || (octascii[i] > '9')) {                                     
  107af8:   f812 3f01   ldrb.w  r3, [r2, #1]!                                             
  107afc:   3b30        subs    r3, #48 ; 0x30                                            
  107afe:   b2d9        uxtb    r1, r3                                                    
  107b00:   2909        cmp r1, #9                                                        
    num  = num * 8 + ((unsigned long)(octascii[i] - '0'));                                
  107b02:   bf98        it  ls                                                            
  107b04:   eb03 00c0   addls.w r0, r3, r0, lsl #3                                        
  for (i=0; i < len; i++) {                                                               
  107b08:   42b2        cmp r2, r6                                                        
  107b0a:   d1f5        bne.n   107af8 <Untar_ProcessHeader.part.0+0x14>                  
  const char *bufr                                                                        
)                                                                                         
{                                                                                         
  int  i, sum;                                                                            
                                                                                          
  sum = 0;                                                                                
  107b0c:   2200        movs    r2, #0                                                    
  107b0e:   f105 3eff   add.w   lr, r5, #4294967295 ; 0xffffffff                          
  for (i=0; i<512; i++) {                                                                 
  107b12:   4613        mov r3, r2                                                        
    if ((i >= 148) && (i < 156))                                                          
  107b14:   f1a3 0c94   sub.w   ip, r3, #148    ; 0x94                                    
  for (i=0; i<512; i++) {                                                                 
  107b18:   3301        adds    r3, #1                                                    
    if ((i >= 148) && (i < 156))                                                          
  107b1a:   f1bc 0f07   cmp.w   ip, #7                                                    
      sum += 0xff & ' ';                                                                  
  107b1e:   bf98        it  ls                                                            
  107b20:   3220        addls   r2, #32                                                   
    if ((i >= 148) && (i < 156))                                                          
  107b22:   d9f7        bls.n   107b14 <Untar_ProcessHeader.part.0+0x30>                  
    else                                                                                  
     sum += 0xff & bufr[i];                                                               
  107b24:   f81e c003   ldrb.w  ip, [lr, r3]                                              
  for (i=0; i<512; i++) {                                                                 
  107b28:   f5b3 7f00   cmp.w   r3, #512    ; 0x200                                       
     sum += 0xff & bufr[i];                                                               
  107b2c:   4462        add r2, ip                                                        
  for (i=0; i<512; i++) {                                                                 
  107b2e:   d1f1        bne.n   107b14 <Untar_ProcessHeader.part.0+0x30>                  
  if (sum != hdr_chksum) {                                                                
  107b30:   4290        cmp r0, r2                                                        
  107b32:   f040 80ca   bne.w   107cca <Untar_ProcessHeader.part.0+0x1e6>                 <== ALWAYS TAKEN
  strlcpy(ctx->file_name, bufr, UNTAR_FILE_NAME_SIZE);                                    
  107b36:   2264        movs    r2, #100    ; 0x64                                        
  107b38:   4629        mov r1, r5                                                        
  107b3a:   6860        ldr r0, [r4, #4]                                                  
  107b3c:   f105 0687   add.w   r6, r5, #135    ; 0x87                                    
  107b40:   f010 fb04   bl  11814c <strlcpy>                                              
  ctx->mode = strtoul(&bufr[100], NULL, 8);                                               
  107b44:   2208        movs    r2, #8                                                    
  107b46:   2100        movs    r1, #0                                                    
  107b48:   f105 0064   add.w   r0, r5, #100    ; 0x64                                    
  107b4c:   f010 fcca   bl  1184e4 <strtoul>                                              
  107b50:   66e0        str r0, [r4, #108]  ; 0x6c                                        
  ctx->linkflag   = bufr[156];                                                            
  107b52:   f105 027b   add.w   r2, r5, #123    ; 0x7b                                    
  107b56:   f895 709c   ldrb.w  r7, [r5, #156]  ; 0x9c                                    
  num = 0;                                                                                
  107b5a:   2000        movs    r0, #0                                                    
  ctx->linkflag   = bufr[156];                                                            
  107b5c:   f884 7078   strb.w  r7, [r4, #120]  ; 0x78                                    
    if ((octascii[i] < '0') || (octascii[i] > '9')) {                                     
  107b60:   f812 3f01   ldrb.w  r3, [r2, #1]!                                             
  107b64:   3b30        subs    r3, #48 ; 0x30                                            
  107b66:   b2d9        uxtb    r1, r3                                                    
  107b68:   2909        cmp r1, #9                                                        
    num  = num * 8 + ((unsigned long)(octascii[i] - '0'));                                
  107b6a:   bf98        it  ls                                                            
  107b6c:   eb03 00c0   addls.w r0, r3, r0, lsl #3                                        
  for (i=0; i < len; i++) {                                                               
  107b70:   42b2        cmp r2, r6                                                        
  107b72:   d1f5        bne.n   107b60 <Untar_ProcessHeader.part.0+0x7c>                  
  if (Make_Path(ctx->printer, ctx->file_path) != 0) {                                     
  107b74:   f8d4 a000   ldr.w   sl, [r4]                                                  
  ctx->file_size = _rtems_octal2ulong(&bufr[124], 12);                                    
  107b78:   6720        str r0, [r4, #112]  ; 0x70                                        
  if (Make_Path(ctx->printer, ctx->file_path) != 0) {                                     
  107b7a:   f8d4 907c   ldr.w   r9, [r4, #124]  ; 0x7c                                    
  while (*path == '/') {                                                                  
  107b7e:   f89a 0000   ldrb.w  r0, [sl]                                                  
  107b82:   282f        cmp r0, #47 ; 0x2f                                                
  107b84:   d103        bne.n   107b8e <Untar_ProcessHeader.part.0+0xaa>                  <== NEVER TAKEN
  107b86:   f81a 0f01   ldrb.w  r0, [sl, #1]!                                             <== NOT EXECUTED
  107b8a:   282f        cmp r0, #47 ; 0x2f                                                <== NOT EXECUTED
  107b8c:   d0fb        beq.n   107b86 <Untar_ProcessHeader.part.0+0xa2>                  <== NOT EXECUTED
    if (p[0] == '\0') {                                                                   
  107b8e:   2800        cmp r0, #0                                                        
  107b90:   f000 80fa   beq.w   107d88 <Untar_ProcessHeader.part.0+0x2a4>                 <== ALWAYS TAKEN
  107b94:   4656        mov r6, sl                                                        
    *p = '\0';                                                                            
  107b96:   2700        movs    r7, #0                                                    
    *p = '/';                                                                             
  107b98:   f04f 082f   mov.w   r8, #47 ; 0x2f                                            
    } else if (p[0] != '/') {                                                             
  107b9c:   282f        cmp r0, #47 ; 0x2f                                                
    if (p[1] == '\0') {                                                                   
  107b9e:   f816 2f01   ldrb.w  r2, [r6, #1]!                                             
    } else if (p[0] != '/') {                                                             
  107ba2:   d11e        bne.n   107be2 <Untar_ProcessHeader.part.0+0xfe>                  
    *p = '\0';                                                                            
  107ba4:   f806 7c01   strb.w  r7, [r6, #-1]                                             
    if (p[1] == '\0') {                                                                   
  107ba8:   2a00        cmp r2, #0                                                        
  107baa:   f000 809a   beq.w   107ce2 <Untar_ProcessHeader.part.0+0x1fe>                 <== ALWAYS TAKEN
    if (mkdir(path, S_IRWXU | S_IRWXG | S_IRWXO) != 0) {                                  
  107bae:   f240 11ff   movw    r1, #511    ; 0x1ff                                       
  107bb2:   4650        mov r0, sl                                                        
  107bb4:   f7fd fabe   bl  105134 <mkdir>                                                
  107bb8:   b9b8        cbnz    r0, 107bea <Untar_ProcessHeader.part.0+0x106>             
    if (p[0] == '\0') {                                                                   
  107bba:   7830        ldrb    r0, [r6, #0]                                              
    *p = '/';                                                                             
  107bbc:   f806 8c01   strb.w  r8, [r6, #-1]                                             
    if (p[0] == '\0') {                                                                   
  107bc0:   2800        cmp r0, #0                                                        
  107bc2:   d1eb        bne.n   107b9c <Untar_ProcessHeader.part.0+0xb8>                  <== NEVER TAKEN
  if (ctx->linkflag == SYMTYPE) {                                                         
  107bc4:   f894 7078   ldrb.w  r7, [r4, #120]  ; 0x78                                    
  int retval = UNTAR_SUCCESSFUL;                                                          
  107bc8:   4606        mov r6, r0                                                        
  if (ctx->linkflag == SYMTYPE) {                                                         
  107bca:   2f32        cmp r7, #50 ; 0x32                                                
  107bcc:   d04a        beq.n   107c64 <Untar_ProcessHeader.part.0+0x180>                 
  } else if (ctx->linkflag == REGTYPE) {                                                  
  107bce:   2f30        cmp r7, #48 ; 0x30                                                
  107bd0:   f000 808e   beq.w   107cf0 <Untar_ProcessHeader.part.0+0x20c>                 <== NEVER TAKEN
  } else if (ctx->linkflag == DIRTYPE) {                                                  
  107bd4:   2f35        cmp r7, #53 ; 0x35                                                <== NOT EXECUTED
  107bd6:   f000 809f   beq.w   107d18 <Untar_ProcessHeader.part.0+0x234>                 <== NOT EXECUTED
}                                                                                         
  107bda:   4630        mov r0, r6                                                        
  107bdc:   b01c        add sp, #112    ; 0x70                                            
  107bde:   e8bd 87f0   ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}                     
    if (p[1] == '\0') {                                                                   
  107be2:   4610        mov r0, r2                                                        
    if (p[0] == '\0') {                                                                   
  107be4:   2800        cmp r0, #0                                                        
  107be6:   d1d9        bne.n   107b9c <Untar_ProcessHeader.part.0+0xb8>                  
  107be8:   e7ec        b.n 107bc4 <Untar_ProcessHeader.part.0+0xe0>                      
      if (errno == EEXIST || errno == EISDIR) {                                           
  107bea:   f00d fd31   bl  115650 <__errno>                                              
  107bee:   6803        ldr r3, [r0, #0]                                                  
  107bf0:   2b11        cmp r3, #17                                                       
  107bf2:   d004        beq.n   107bfe <Untar_ProcessHeader.part.0+0x11a>                 <== NEVER TAKEN
  107bf4:   f00d fd2c   bl  115650 <__errno>                                              <== NOT EXECUTED
  107bf8:   6803        ldr r3, [r0, #0]                                                  <== NOT EXECUTED
  107bfa:   2b15        cmp r3, #21                                                       <== NOT EXECUTED
  107bfc:   d1dd        bne.n   107bba <Untar_ProcessHeader.part.0+0xd6>                  <== NOT EXECUTED
        if (stat(path, &sb) != 0) {                                                       
  107bfe:   a902        add r1, sp, #8                                                    
  107c00:   4650        mov r0, sl                                                        
  107c02:   f7fd fe9f   bl  105944 <stat>                                                 
  107c06:   bb40        cbnz    r0, 107c5a <Untar_ProcessHeader.part.0+0x176>             
        if (!S_ISDIR(sb.st_mode)) {                                                       
  107c08:   9b06        ldr r3, [sp, #24]                                                 
  107c0a:   f403 4370   and.w   r3, r3, #61440  ; 0xf000                                  
  107c0e:   f5b3 4f80   cmp.w   r3, #16384  ; 0x4000                                      
  107c12:   d0d2        beq.n   107bba <Untar_ProcessHeader.part.0+0xd6>                  <== NEVER TAKEN
          if (unlink(path) != 0) {                                                        
  107c14:   4650        mov r0, sl                                                        <== NOT EXECUTED
  107c16:   f7fe fc5b   bl  1064d0 <unlink>                                               <== NOT EXECUTED
  107c1a:   2800        cmp r0, #0                                                        <== NOT EXECUTED
  107c1c:   f040 809d   bne.w   107d5a <Untar_ProcessHeader.part.0+0x276>                 <== NOT EXECUTED
          if (mkdir(path, S_IRWXU | S_IRWXG | S_IRWXO) != 0) {                            
  107c20:   f240 11ff   movw    r1, #511    ; 0x1ff                                       <== NOT EXECUTED
  107c24:   4650        mov r0, sl                                                        <== NOT EXECUTED
  107c26:   f7fd fa85   bl  105134 <mkdir>                                                <== NOT EXECUTED
  107c2a:   2800        cmp r0, #0                                                        <== NOT EXECUTED
  107c2c:   d0c5        beq.n   107bba <Untar_ProcessHeader.part.0+0xd6>                  <== NOT EXECUTED
               message, path, errno, strerror(errno));                                    
  107c2e:   f00d fd0f   bl  115650 <__errno>                                              <== NOT EXECUTED
  rtems_printf(printer, "untar: %s: %s: (%d) %s\n",                                       
  107c32:   6806        ldr r6, [r0, #0]                                                  <== NOT EXECUTED
               message, path, errno, strerror(errno));                                    
  107c34:   f00d fd0c   bl  115650 <__errno>                                              <== NOT EXECUTED
  rtems_printf(printer, "untar: %s: %s: (%d) %s\n",                                       
  107c38:   6800        ldr r0, [r0, #0]                                                  <== NOT EXECUTED
  107c3a:   f010 fa7b   bl  118134 <strerror>                                             <== NOT EXECUTED
  107c3e:   f242 2260   movw    r2, #8800   ; 0x2260                                      <== NOT EXECUTED
  107c42:   f242 2148   movw    r1, #8776   ; 0x2248                                      <== NOT EXECUTED
  107c46:   9001        str r0, [sp, #4]                                                  <== NOT EXECUTED
  107c48:   4653        mov r3, sl                                                        <== NOT EXECUTED
  107c4a:   4648        mov r0, r9                                                        <== NOT EXECUTED
  107c4c:   f2c0 0212   movt    r2, #18                                                   <== NOT EXECUTED
  107c50:   f2c0 0112   movt    r1, #18                                                   <== NOT EXECUTED
  107c54:   9600        str r6, [sp, #0]                                                  <== NOT EXECUTED
  107c56:   f7fd fd67   bl  105728 <rtems_printf>                                         <== NOT EXECUTED
  if (ctx->linkflag == SYMTYPE) {                                                         
  107c5a:   f894 7078   ldrb.w  r7, [r4, #120]  ; 0x78                                    <== NOT EXECUTED
    retval = UNTAR_FAIL;                                                                  
  107c5e:   2601        movs    r6, #1                                                    <== NOT EXECUTED
  if (ctx->linkflag == SYMTYPE) {                                                         
  107c60:   2f32        cmp r7, #50 ; 0x32                                                <== NOT EXECUTED
  107c62:   d1b4        bne.n   107bce <Untar_ProcessHeader.part.0+0xea>                  <== NOT EXECUTED
    strlcpy(ctx->link_name, &bufr[157], sizeof(ctx->link_name));                          
  107c64:   f104 0308   add.w   r3, r4, #8                                                
  107c68:   f105 019d   add.w   r1, r5, #157    ; 0x9d                                    
  107c6c:   2264        movs    r2, #100    ; 0x64                                        
  107c6e:   4618        mov r0, r3                                                        
  107c70:   461d        mov r5, r3                                                        
  107c72:   f010 fa6b   bl  11814c <strlcpy>                                              
    rtems_printf(ctx->printer, "untar: symlink: %s -> %s\n",                              
  107c76:   f242 2170   movw    r1, #8816   ; 0x2270                                      
  107c7a:   6823        ldr r3, [r4, #0]                                                  
  107c7c:   f2c0 0112   movt    r1, #18                                                   
  107c80:   6fe0        ldr r0, [r4, #124]  ; 0x7c                                        
  107c82:   462a        mov r2, r5                                                        
  107c84:   f7fd fd50   bl  105728 <rtems_printf>                                         
    r = symlink(ctx->link_name, ctx->file_path);                                          
  107c88:   6821        ldr r1, [r4, #0]                                                  
  107c8a:   4628        mov r0, r5                                                        
  107c8c:   f7fe fbfe   bl  10648c <symlink>                                              
    if (r != 0) {                                                                         
  107c90:   2800        cmp r0, #0                                                        
  107c92:   d0a2        beq.n   107bda <Untar_ProcessHeader.part.0+0xf6>                  <== NEVER TAKEN
      Print_Error(ctx->printer, "symlink", ctx->file_path);                               
  107c94:   6827        ldr r7, [r4, #0]                                                  <== NOT EXECUTED
      retval = UNTAR_FAIL;                                                                
  107c96:   2601        movs    r6, #1                                                    <== NOT EXECUTED
      Print_Error(ctx->printer, "symlink", ctx->file_path);                               
  107c98:   6fe5        ldr r5, [r4, #124]  ; 0x7c                                        <== NOT EXECUTED
               message, path, errno, strerror(errno));                                    
  107c9a:   f00d fcd9   bl  115650 <__errno>                                              <== NOT EXECUTED
  rtems_printf(printer, "untar: %s: %s: (%d) %s\n",                                       
  107c9e:   6804        ldr r4, [r0, #0]                                                  <== NOT EXECUTED
               message, path, errno, strerror(errno));                                    
  107ca0:   f00d fcd6   bl  115650 <__errno>                                              <== NOT EXECUTED
  rtems_printf(printer, "untar: %s: %s: (%d) %s\n",                                       
  107ca4:   6800        ldr r0, [r0, #0]                                                  <== NOT EXECUTED
  107ca6:   f010 fa45   bl  118134 <strerror>                                             <== NOT EXECUTED
  107caa:   f242 228c   movw    r2, #8844   ; 0x228c                                      <== NOT EXECUTED
  107cae:   4601        mov r1, r0                                                        <== NOT EXECUTED
  107cb0:   463b        mov r3, r7                                                        <== NOT EXECUTED
  107cb2:   f2c0 0212   movt    r2, #18                                                   <== NOT EXECUTED
  107cb6:   e9cd 4100   strd    r4, r1, [sp]                                              <== NOT EXECUTED
  107cba:   f242 2148   movw    r1, #8776   ; 0x2248                                      <== NOT EXECUTED
  107cbe:   4628        mov r0, r5                                                        <== NOT EXECUTED
  107cc0:   f2c0 0112   movt    r1, #18                                                   <== NOT EXECUTED
  107cc4:   f7fd fd30   bl  105728 <rtems_printf>                                         <== NOT EXECUTED
}                                                                                         
  107cc8:   e787        b.n 107bda <Untar_ProcessHeader.part.0+0xf6>                      <== NOT EXECUTED
    rtems_printf(ctx->printer, "untar: file header checksum error\n");                    
  107cca:   f242 211c   movw    r1, #8732   ; 0x221c                                      <== NOT EXECUTED
  107cce:   6fe0        ldr r0, [r4, #124]  ; 0x7c                                        <== NOT EXECUTED
  107cd0:   f2c0 0112   movt    r1, #18                                                   <== NOT EXECUTED
    return UNTAR_INVALID_CHECKSUM;                                                        
  107cd4:   2602        movs    r6, #2                                                    <== NOT EXECUTED
    rtems_printf(ctx->printer, "untar: file header checksum error\n");                    
  107cd6:   f7fd fd27   bl  105728 <rtems_printf>                                         <== NOT EXECUTED
}                                                                                         
  107cda:   4630        mov r0, r6                                                        <== NOT EXECUTED
  107cdc:   b01c        add sp, #112    ; 0x70                                            <== NOT EXECUTED
  107cde:   e8bd 87f0   ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}                     <== NOT EXECUTED
      unlink(path);                                                                       
  107ce2:   4650        mov r0, sl                                                        <== NOT EXECUTED
  int retval = UNTAR_SUCCESSFUL;                                                          
  107ce4:   4616        mov r6, r2                                                        <== NOT EXECUTED
      unlink(path);                                                                       
  107ce6:   f7fe fbf3   bl  1064d0 <unlink>                                               <== NOT EXECUTED
  if (ctx->linkflag == SYMTYPE) {                                                         
  107cea:   f894 7078   ldrb.w  r7, [r4, #120]  ; 0x78                                    <== NOT EXECUTED
  107cee:   e76c        b.n 107bca <Untar_ProcessHeader.part.0+0xe6>                      <== NOT EXECUTED
    rtems_printf(ctx->printer, "untar: file: %s (s:%lu,m:%04lo)\n",                       
  107cf0:   6ee2        ldr r2, [r4, #108]  ; 0x6c                                        
  107cf2:   f242 2194   movw    r1, #8852   ; 0x2294                                      
  107cf6:   6f23        ldr r3, [r4, #112]  ; 0x70                                        
  107cf8:   f2c0 0112   movt    r1, #18                                                   
  107cfc:   9200        str r2, [sp, #0]                                                  
  107cfe:   6822        ldr r2, [r4, #0]                                                  
  107d00:   6fe0        ldr r0, [r4, #124]  ; 0x7c                                        
  107d02:   f7fd fd11   bl  105728 <rtems_printf>                                         
    ctx->nblocks = (((ctx->file_size) + 511) & ~511) / 512;                               
  107d06:   6f23        ldr r3, [r4, #112]  ; 0x70                                        
}                                                                                         
  107d08:   4630        mov r0, r6                                                        
    ctx->nblocks = (((ctx->file_size) + 511) & ~511) / 512;                               
  107d0a:   f203 13ff   addw    r3, r3, #511    ; 0x1ff                                   
  107d0e:   0a5b        lsrs    r3, r3, #9                                                
  107d10:   6763        str r3, [r4, #116]  ; 0x74                                        
}                                                                                         
  107d12:   b01c        add sp, #112    ; 0x70                                            
  107d14:   e8bd 87f0   ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}                     
    rtems_printf(ctx->printer, "untar: dir: %s\n", ctx->file_path);                       
  107d18:   f242 21b8   movw    r1, #8888   ; 0x22b8                                      <== NOT EXECUTED
  107d1c:   6822        ldr r2, [r4, #0]                                                  <== NOT EXECUTED
  107d1e:   f2c0 0112   movt    r1, #18                                                   <== NOT EXECUTED
  107d22:   6fe0        ldr r0, [r4, #124]  ; 0x7c                                        <== NOT EXECUTED
  107d24:   f7fd fd00   bl  105728 <rtems_printf>                                         <== NOT EXECUTED
    r = mkdir(ctx->file_path, ctx->mode);                                                 
  107d28:   6ee1        ldr r1, [r4, #108]  ; 0x6c                                        <== NOT EXECUTED
  107d2a:   6820        ldr r0, [r4, #0]                                                  <== NOT EXECUTED
  107d2c:   f7fd fa02   bl  105134 <mkdir>                                                <== NOT EXECUTED
    if (r != 0) {                                                                         
  107d30:   2800        cmp r0, #0                                                        <== NOT EXECUTED
  107d32:   f43f af52   beq.w   107bda <Untar_ProcessHeader.part.0+0xf6>                  <== NOT EXECUTED
      Print_Error(ctx->printer, "mkdir", ctx->file_path);                                 
  107d36:   6827        ldr r7, [r4, #0]                                                  <== NOT EXECUTED
      retval = UNTAR_FAIL;                                                                
  107d38:   2601        movs    r6, #1                                                    <== NOT EXECUTED
      Print_Error(ctx->printer, "mkdir", ctx->file_path);                                 
  107d3a:   6fe5        ldr r5, [r4, #124]  ; 0x7c                                        <== NOT EXECUTED
               message, path, errno, strerror(errno));                                    
  107d3c:   f00d fc88   bl  115650 <__errno>                                              <== NOT EXECUTED
  rtems_printf(printer, "untar: %s: %s: (%d) %s\n",                                       
  107d40:   6804        ldr r4, [r0, #0]                                                  <== NOT EXECUTED
               message, path, errno, strerror(errno));                                    
  107d42:   f00d fc85   bl  115650 <__errno>                                              <== NOT EXECUTED
  rtems_printf(printer, "untar: %s: %s: (%d) %s\n",                                       
  107d46:   6800        ldr r0, [r0, #0]                                                  <== NOT EXECUTED
  107d48:   f010 f9f4   bl  118134 <strerror>                                             <== NOT EXECUTED
  107d4c:   f242 22c8   movw    r2, #8904   ; 0x22c8                                      <== NOT EXECUTED
  107d50:   4601        mov r1, r0                                                        <== NOT EXECUTED
  107d52:   463b        mov r3, r7                                                        <== NOT EXECUTED
  107d54:   f2c0 0212   movt    r2, #18                                                   <== NOT EXECUTED
  107d58:   e7ad        b.n 107cb6 <Untar_ProcessHeader.part.0+0x1d2>                     <== NOT EXECUTED
               message, path, errno, strerror(errno));                                    
  107d5a:   f00d fc79   bl  115650 <__errno>                                              <== NOT EXECUTED
  rtems_printf(printer, "untar: %s: %s: (%d) %s\n",                                       
  107d5e:   6806        ldr r6, [r0, #0]                                                  <== NOT EXECUTED
               message, path, errno, strerror(errno));                                    
  107d60:   f00d fc76   bl  115650 <__errno>                                              <== NOT EXECUTED
  rtems_printf(printer, "untar: %s: %s: (%d) %s\n",                                       
  107d64:   6800        ldr r0, [r0, #0]                                                  <== NOT EXECUTED
  107d66:   f010 f9e5   bl  118134 <strerror>                                             <== NOT EXECUTED
  107d6a:   f242 2240   movw    r2, #8768   ; 0x2240                                      <== NOT EXECUTED
  107d6e:   f242 2148   movw    r1, #8776   ; 0x2248                                      <== NOT EXECUTED
  107d72:   9001        str r0, [sp, #4]                                                  <== NOT EXECUTED
  107d74:   4653        mov r3, sl                                                        <== NOT EXECUTED
  107d76:   4648        mov r0, r9                                                        <== NOT EXECUTED
  107d78:   f2c0 0212   movt    r2, #18                                                   <== NOT EXECUTED
  107d7c:   f2c0 0112   movt    r1, #18                                                   <== NOT EXECUTED
  107d80:   9600        str r6, [sp, #0]                                                  <== NOT EXECUTED
  107d82:   f7fd fcd1   bl  105728 <rtems_printf>                                         <== NOT EXECUTED
}                                                                                         
  107d86:   e768        b.n 107c5a <Untar_ProcessHeader.part.0+0x176>                     <== NOT EXECUTED
  int retval = UNTAR_SUCCESSFUL;                                                          
  107d88:   4606        mov r6, r0                                                        <== NOT EXECUTED
  107d8a:   e71e        b.n 107bca <Untar_ProcessHeader.part.0+0xe6>                      <== NOT EXECUTED