[*] Binary protection state of debugfs

  
  	Full RELRO     Canary found      NX enabled   PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function strcat tear down of debugfs

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/debugfs @ 0x12a64 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) fcn.00012a64 ()                                  | void fcn_00012a64 (int16_t arg_b0h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_18h_2;
                                                             |     int16_t var_26h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_34h_2;
                                                             |     int16_t var_8ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00012a64 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x00012a68 and r7, r3, 0xf000                            |     r7 = r3 & 0xf000;
    0x00012a6c ldr r4, [pc, 0x1e4]                           |     
    0x00012a6e cmp.w r7, 0x6000                              |     
    0x00012a72 sub sp, 0x94                                  |     
    0x00012a74 mov r5, r0                                    |     r5 = r0;
    0x00012a76 ldr r3, [pc, 0x1e0]                           |     r3 = *(0x12c5a);
    0x00012a78 mov r6, r1                                    |     r6 = r1;
    0x00012a7a add r4, pc                                    |     r4 = 0x256d2;
    0x00012a7c mov r8, r2                                    |     r8 = r2;
    0x00012a7e ldr r3, [r4, r3]                              |     
    0x00012a80 ldr r3, [r3]                                  |     r3 = *(0x256d2);
    0x00012a82 str r3, [sp, 0x8c]                            |     var_8ch = r3;
    0x00012a84 mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r7 == 0x6000) {
    0x00012a88 beq.w 0x12bd6                                 |         goto label_5;
                                                             |     }
                                                             |     if (r7 > 0x6000) {
    0x00012a8c bhi.w 0x12ba4                                 |         goto label_6;
                                                             |     }
    0x00012a90 cmp.w r7, 0x1000                              |     
                                                             |     if (r7 == 0x1000) {
    0x00012a94 beq.w 0x12bbc                                 |         goto label_7;
                                                             |     }
    0x00012a98 cmp.w r7, 0x2000                              |     
    0x00012a9c it eq                                         |     
                                                             |     if (r7 != 0x2000) {
    0x00012a9e moveq sb, 3                                   |         sb = 3;
                                                             |     }
                                                             |     if (r7 != 0x2000) {
    0x00012aa2 bne.w 0x12bb2                                 |         goto label_8;
                                                             |     }
                                                             |     do {
                                                             | label_1:
    0x00012aa6 add r3, sp, 8                                 |         r3 += var_8h;
    0x00012aa8 movw r2, 0x11ed                               |         r2 = 0x11ed;
    0x00012aaa asrs r5, r5, 0xb                              |         r5 >>= 0xb;
    0x00012aac str r3, [sp]                                  |         *(sp) = r3;
    0x00012aae mov r1, r6                                    |         r1 = r6;
    0x00012ab0 movs r3, 0                                    |         r3 = 0;
    0x00012ab2 mov r0, r5                                    |         r0 = r5;
    0x00012ab4 blx 0x51a8                                    |         r0 = strcpy (r0, r1);
    0x00012ab8 mov r4, r0                                    |         r4 = r0;
    0x00012aba cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00012abc bne.w 0x12bc2                                 |             goto label_9;
                                                             |         }
    0x00012ac0 ldr r1, [pc, 0x198]                           |         
    0x00012ac2 movs r0, 1                                    |         r0 = 1;
    0x00012ac4 ldr r2, [sp, 8]                               |         r2 = var_8h;
    0x00012ac6 add r1, pc                                    |         r1 = 0x25726;
    0x00012ac8 blx 0x54bc                                    |         fcn_000054bc ();
    0x00012acc ldr r3, [sp, 8]                               |         r3 = var_8h;
    0x00012ace mov r2, r8                                    |         r2 = r8;
    0x00012ad0 mov r1, r6                                    |         r1 = r6;
    0x00012ad2 mov r0, r5                                    |         r0 = r5;
    0x00012ad4 str.w sb, [sp]                                |         __asm ("str.w sb, [sp]");
    0x00012ad8 blx 0x577c                                    |         fcn_0000577c ();
    0x00012adc movw r3, 0xb726                               |         
    0x00012ae0 mov r4, r0                                    |         r4 = r0;
    0x00012ae2 movt r3, 0x7f2b                               |         r3 = 0x7f2bb726;
    0x00012ae6 cmp r0, r3                                    |         
                                                             |         if (r0 == r3) {
    0x00012ae8 beq 0x12bdc                                   |             goto label_10;
                                                             |         }
    0x00012aea cmp r4, 0                                     |         
                                                             |         if (r4 != 0) {
    0x00012aec bne.w 0x12c00                                 |             goto label_11;
                                                             |         }
                                                             | label_2:
    0x00012af0 ldr r2, [sp, 8]                               |         r2 = var_8h;
    0x00012af2 mov r3, r4                                    |         r3 = r4;
    0x00012af4 ldr r0, [r5, 0x2c]                            |         r0 = *((r5 + 0x2c));
    0x00012af6 blx 0x55ec                                    |         r0 = list_super2 ();
    0x00012afa cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00012afc bne.w 0x12c10                                 |             goto label_12;
                                                             |         }
                                                             | label_3:
    0x00012b00 ldr r1, [sp, 8]                               |         r1 = var_8h;
    0x00012b02 movs r3, 0                                    |         r3 = 0;
    0x00012b04 movs r2, 1                                    |         r2 = 1;
    0x00012b06 mov r0, r5                                    |         r0 = r5;
    0x00012b08 add r6, sp, 0xc                               |         r6 += var_ch;
    0x00012b0a blx 0x564c                                    |         ext2fs_xattr_remove ();
    0x00012b0e movs r2, 0x80                                 |         r2 = 0x80;
    0x00012b10 movs r1, 0                                    |         r1 = 0;
    0x00012b12 mov r0, r6                                    |         r0 = r6;
    0x00012b14 blx 0x5440                                    |         fcn_00005440 ();
    0x00012b18 ldr r0, [r5, 0x60]                            |         r0 = *((r5 + 0x60));
    0x00012b1a strh.w r7, [sp, 0xc]                          |         var_ch = r7;
    0x00012b1e cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00012b20 beq.w 0x12c36                                 |             goto label_13;
                                                             |         }
                                                             | label_4:
    0x00012b24 ldr r3, [sp, 0xb0]                            |         r3 = *(arg_b0h);
    0x00012b26 mov r7, r0                                    |         r7 = r0;
    0x00012b28 ldr r2, [sp, 0xb0]                            |         r2 = *(arg_b0h);
    0x00012b2a strd r7, r7, [sp, 0x18]                       |         __asm ("strd r7, r7, [var_18h]");
    0x00012b2e str r7, [sp, 0x14]                            |         var_14h = r7;
    0x00012b30 lsrs r1, r3, 8                                |         r1 = r3 >> 8;
    0x00012b32 lsrs r3, r3, 0xc                              |         r3 >>= 0xc;
    0x00012b34 uxtb r2, r2                                   |         r2 = (int8_t) r2;
    0x00012b36 bic r3, r3, 0xff                              |         r3 = BIT_MASK (r3, 0xff);
    0x00012b3a orrs r3, r2                                   |         r3 |= r2;
    0x00012b3c ubfx r0, r1, 0, 0xc                           |         r0 = (r1 >> 0) & ((1 << 0xc) - 1);
    0x00012b40 and r1, r1, 0xf00                             |         r1 &= 0xf00;
    0x00012b44 cmp r3, 0xff                                  |         
    0x00012b46 it ls                                         |         
                                                             |         if (r3 <= 0xff) {
    0x00012b48 cmpls r1, 0                                   |             __asm ("cmpls r1, 0");
                                                             |         }
    0x00012b4a itttt ne                                      |         
                                                             |         if (r3 == 0xff) {
    0x00012b4c movne r1, 0                                   |             r1 = 0;
                                                             |         }
                                                             |         if (r3 != 0xff) {
    0x00012b4e uxtbne r2, r3                                 |             __asm ("uxtbne r2, r3");
                                                             |         }
                                                             |         if (r3 != 0xff) {
    0x00012b50 movtne r1, 0xfff0                             |             __asm ("movtne r1, 0xfff0");
                                                             |         }
                                                             |         if (r3 != 0xff) {
    0x00012b54 orr.w r2, r2, r0, lsl 8                       |             r2 |= (r0 << 8);
                                                             |         }
    0x00012b58 iteet ne                                      |         
                                                             |         if (r3 == 0xff) {
    0x00012b5a andne r1, r1, r3, lsl 12                      |             r1 &= (r3 << 12);
                                                             |         }
                                                             |         if (r3 != 0xff) {
    0x00012b5e moveq r4, 1                                   |             r4 = 1;
                                                             |         }
                                                             |         if (r3 == 0xff) {
    0x00012b60 addne r4, r3, r0, lsl 8                       |             r4 = r3 + (r0 << 8);
                                                             |         }
                                                             |         if (r3 != 0xff) {
    0x00012b64 orr.w r3, r2, r1                              |             r3 = r2 | r1;
                                                             |         }
    0x00012b68 ldr r1, [sp, 8]                               |         r1 = var_8h;
    0x00012b6a ite ne                                        |         
                                                             |         if (r3 == 0xff) {
    0x00012b6c movne r4, 0                                   |             r4 = 0;
                                                             |         }
                                                             |         if (r3 != 0xff) {
    0x00012b6e moveq r3, 0                                   |             r3 = 0;
                                                             |         }
    0x00012b70 mov r0, r5                                    |         r0 = r5;
    0x00012b72 mov r2, r6                                    |         r2 = r6;
    0x00012b74 movs r5, 1                                    |         r5 = 1;
    0x00012b76 strd r4, r3, [sp, 0x34]                       |         __asm ("strd r4, r3, [var_34h]");
    0x00012b7a strh.w r5, [sp, 0x26]                         |         var_26h = r5;
    0x00012b7e blx 0x5260                                    |         r0 = fcn_00005260 ();
    0x00012b82 mov r4, r0                                    |         r4 = r0;
    0x00012b84 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00012b86 bne 0x12c22                                   |             goto label_14;
                                                             |         }
                                                             | label_0:
    0x00012b88 ldr r2, [pc, 0xd4]                            |         
    0x00012b8a ldr r3, [pc, 0xcc]                            |         r3 = *(0x12c5a);
    0x00012b8c add r2, pc                                    |         r2 = 0x257f0;
    0x00012b8e ldr r3, [r2, r3]                              |         r3 = *(0x257f0);
    0x00012b90 ldr r2, [r3]                                  |         r2 = *(0x257f0);
    0x00012b92 ldr r3, [sp, 0x8c]                            |         r3 = var_8ch;
    0x00012b94 eors r2, r3                                   |         r2 ^= r3;
    0x00012b96 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00012b9a bne 0x12c4e                                   |             goto label_15;
                                                             |         }
    0x00012b9c mov r0, r4                                    |         r0 = r4;
    0x00012b9e add sp, 0x94                                  |         
    0x00012ba0 pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
                                                             | label_6:
    0x00012ba4 cmp.w r7, 0xc000                              |         
    0x00012ba8 it eq                                         |         
                                                             |         if (r7 != 0xc000) {
    0x00012baa moveq sb, 6                                   |             sb = 6;
                                                             |         }
    0x00012bae beq.w 0x12aa6                                 |         
                                                             |     } while (r7 == 0xc000);
                                                             | label_8:
    0x00012bb2 movw r4, 0xb747                               |     
    0x00012bb6 movt r4, 0x7f2b                               |     r4 = 0x7f2bb747;
    0x00012bba b 0x12b88                                     |     goto label_0;
                                                             | label_7:
    0x00012bbc mov.w sb, 5                                   |     sb = 5;
    0x00012bc0 b 0x12aa6                                     |     goto label_1;
                                                             | label_9:
    0x00012bc2 ldr r0, [pc, 0xa0]                            |     
    0x00012bc4 mov r3, r8                                    |     r3 = r8;
    0x00012bc6 ldr r2, [pc, 0xa0]                            |     
    0x00012bc8 mov r1, r4                                    |     r1 = r4;
    0x00012bca add r0, pc                                    |     r0 = 0x25834;
    0x00012bcc add r2, pc                                    |     r2 = 0x2583a;
    0x00012bce adds r0, 0x10                                 |     r0 += 0x10;
    0x00012bd0 blx 0x50d8                                    |     fcn_000050d8 ();
    0x00012bd4 b 0x12b88                                     |     goto label_0;
                                                             | label_5:
    0x00012bd6 mov.w sb, 4                                   |     sb = 4;
    0x00012bda b 0x12aa6                                     |     goto label_1;
                                                             | label_10:
    0x00012bdc mov r1, r6                                    |     r1 = r6;
    0x00012bde mov r0, r5                                    |     r0 = r5;
    0x00012be0 blx 0x53e8                                    |     r0 = strcat_chk ()
    0x00012be4 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r0 != 0) {
    0x00012be6 cbnz r0, 0x12c3c                              |         goto label_16;
                                                             |     }
    0x00012be8 ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x00012bea mov r1, r6                                    |     r1 = r6;
    0x00012bec mov r2, r8                                    |     r2 = r8;
    0x00012bee mov r0, r5                                    |     r0 = r5;
    0x00012bf0 str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x00012bf4 blx 0x577c                                    |     r0 = fcn_0000577c ();
    0x00012bf8 mov r4, r0                                    |     r4 = r0;
    0x00012bfa cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00012bfc beq.w 0x12af0                                 |         goto label_2;
                                                             |     }
                                                             | label_11:
    0x00012c00 ldr r2, [pc, 0x68]                            |     
    0x00012c02 mov r3, r8                                    |     r3 = r8;
    0x00012c04 mov r1, r4                                    |     r1 = r4;
    0x00012c06 mov r0, r8                                    |     r0 = r8;
    0x00012c08 add r2, pc                                    |     r2 = 0x25878;
    0x00012c0a blx 0x50d8                                    |     fcn_000050d8 ();
    0x00012c0e b 0x12b88                                     |     goto label_0;
                                                             | label_12:
    0x00012c10 ldr r0, [pc, 0x5c]                            |     
    0x00012c12 mov r1, r4                                    |     r1 = r4;
    0x00012c14 ldr r2, [pc, 0x5c]                            |     
    0x00012c16 add r0, pc                                    |     r0 = 0x2588a;
    0x00012c18 add r2, pc                                    |     r2 = 0x25890;
    0x00012c1a adds r0, 0x10                                 |     r0 += 0x10;
    0x00012c1c blx 0x50d8                                    |     fcn_000050d8 ();
    0x00012c20 b 0x12b00                                     |     goto label_3;
                                                             | label_14:
    0x00012c22 ldr r0, [pc, 0x54]                            |     
    0x00012c24 mov r1, r4                                    |     r1 = r4;
    0x00012c26 ldr r2, [pc, 0x54]                            |     
    0x00012c28 ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x00012c2a add r0, pc                                    |     r0 = 0x258a8;
    0x00012c2c add r2, pc                                    |     r2 = 0x258ae;
    0x00012c2e adds r0, 0x10                                 |     r0 += 0x10;
    0x00012c30 blx 0x50d8                                    |     fcn_000050d8 ();
    0x00012c32 orrs.w r7, r2, r8, asr 26                     |     r7 = r2 | (r8 >> 26);
                                                             | label_13:
    0x00012c36 blx 0x4f60                                    |     fcn_00004f60 ();
    0x00012c3a b 0x12b24                                     |     goto label_4;
                                                             | label_16:
    0x00012c3c ldr r0, [pc, 0x40]                            |     
    0x00012c3e mov r1, r4                                    |     r1 = r4;
    0x00012c40 ldr r2, [pc, 0x40]                            |     
    0x00012c42 add r0, pc                                    |     r0 = 0x258c6;
    0x00012c44 add r2, pc                                    |     r2 = 0x258cc;
    0x00012c46 adds r0, 0x10                                 |     r0 += 0x10;
    0x00012c48 blx 0x50d8                                    |     fcn_000050d8 ();
    0x00012c4c b 0x12b88                                     |     goto label_0;
                                                             | label_15:
    0x00012c4e blx 0x5008                                    |     fcn_00005008 ();
    0x00012c52 nop                                           |     
    0x00012c54 asrs r2, r4, 4                                |     r2 = r4 >> 4;
    0x00012c56 movs r2, r0                                   |     r2 = r0;
    0x00012c58 lsls r0, r2, 0x10                             |     r0 = r2 << 0x10;
    0x00012c5a movs r0, r0                                   |     
    0x00012c5c b 0x1282c                                     |     return void (*0x1282c)() ();
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/debugfs @ 0x12c88 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00012c88 ()                                  | void fcn_00012c88 (int16_t arg_30h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     char * * endptr;
                                                             |     int16_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00012c88 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x00012c8c mov r5, r2                                    |     r5 = r2;
    0x00012c8e ldr r2, [pc, 0xd4]                            |     
    0x00012c90 mov r7, r3                                    |     r7 = r3;
    0x00012c92 sub sp, 0x14                                  |     
    0x00012c94 mov r4, r1                                    |     r4 = r1;
    0x00012c96 ldr r3, [pc, 0xd0]                            |     r3 = *(0x12d6a);
    0x00012c98 mov r6, r0                                    |     r6 = r0;
    0x00012c9a add r2, pc                                    |     r2 = 0x25a04;
    0x00012c9c movs r1, 0x2f                                 |     r1 = 0x2f;
    0x00012c9e mov r0, r5                                    |     r0 = r5;
    0x00012ca0 ldr r3, [r2, r3]                              |     
    0x00012ca2 ldr r3, [r3]                                  |     r3 = *(0x25a04);
    0x00012ca4 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00012ca6 mov.w r3, 0                                   |     r3 = 0;
    0x00012caa blx 0x567c                                    |     r0 = ext2fs_fallocate ();
                                                             |     if (r0 == 0) {
    0x00012cae cbz r0, 0x12d10                               |         goto label_2;
                                                             |     }
    0x00012cb0 add r3, sp, 8                                 |     r3 += endptr;
    0x00012cb2 mov.w sb, 0                                   |     sb = 0;
    0x00012cb6 strb.w sb, [r0]                               |     *(r0) = sb;
    0x00012cba mov r2, r4                                    |     r2 = r4;
    0x00012cbc str r3, [sp]                                  |     *(sp) = r3;
    0x00012cbe mov r8, r0                                    |     r8 = r0;
    0x00012cc0 ldr r1, [sp, 0x30]                            |     r1 = *(arg_30h);
    0x00012cc2 mov r3, r5                                    |     r3 = r5;
    0x00012cc4 mov r0, r6                                    |     r0 = r6;
    0x00012cc6 blx 0x4f3c                                    |     r0 = fcn_00004f3c ();
    0x00012cca mov r4, r0                                    |     r4 = r0;
    0x00012ccc cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00012cce bne 0x12d44                                   |         goto label_3;
                                                             |     }
    0x00012cd0 ldr r4, [sp, 8]                               |     r4 = endptr;
    0x00012cd2 add.w r5, r8, 1                               |     r5 = r8 + 1;
                                                             |     do {
    0x00012cd6 mov r3, r5                                    |         r3 = r5;
    0x00012cd8 mov r1, r4                                    |         r1 = r4;
    0x00012cda movs r2, 0                                    |         r2 = 0;
    0x00012cdc mov r0, r6                                    |         r0 = r6;
    0x00012cde str r7, [sp]                                  |         *(sp) = r7;
    0x00012ce0 blx 0x5358                                    |         strtoul (r0, r1, r2);
    0x00012ce4 movw r3, 0xb726                               |         
    0x00012ce8 mov r4, r0                                    |         r4 = r0;
    0x00012cea movt r3, 0x7f2b                               |         r3 = 0x7f2bb726;
    0x00012cee cmp r0, r3                                    |         
                                                             |         if (r0 == r3) {
    0x00012cf0 beq 0x12d26                                   |             goto label_4;
                                                             |         }
                                                             |         if (r4 != 0) {
                                                             | label_1:
    0x00012cf2 cbnz r4, 0x12d14                              |             goto label_5;
                                                             |         }
                                                             | label_0:
    0x00012cf4 ldr r2, [pc, 0x74]                            |         
    0x00012cf6 ldr r3, [pc, 0x70]                            |         r3 = *(0x12d6a);
    0x00012cf8 add r2, pc                                    |         r2 = 0x25a68;
    0x00012cfa ldr r3, [r2, r3]                              |         r3 = *(0x25a68);
    0x00012cfc ldr r2, [r3]                                  |         r2 = *(0x25a68);
    0x00012cfe ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00012d00 eors r2, r3                                   |         r2 ^= r3;
    0x00012d02 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00012d06 bne 0x12d60                                   |             goto label_6;
                                                             |         }
    0x00012d08 mov r0, r4                                    |         r0 = r4;
    0x00012d0a add sp, 0x14                                  |         
    0x00012d0c pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
                                                             | label_2:
    0x00012d10 str r4, [sp, 8]                               |         endptr = r4;
    0x00012d12 b 0x12cd6                                     |         
                                                             |     } while (1);
                                                             | label_5:
    0x00012d14 ldr r2, [pc, 0x58]                            |     
    0x00012d16 mov r3, r5                                    |     r3 = r5;
    0x00012d18 ldr r0, [pc, 0x58]                            |     
    0x00012d1a mov r1, r4                                    |     r1 = r4;
    0x00012d1c add r2, pc                                    |     r2 = 0x25a90;
    0x00012d1e add r0, pc                                    |     r0 = 0x25a96;
    0x00012d20 blx 0x50d8                                    |     fcn_000050d8 ();
    0x00012d24 b 0x12cf4                                     |     goto label_0;
                                                             | label_4:
    0x00012d26 ldr r1, [sp, 8]                               |     r1 = endptr;
    0x00012d28 mov r0, r6                                    |     r0 = r6;
    0x00012d2a blx 0x53e8                                    |     r0 = strcat_chk ()
    0x00012d2e mov r4, r0                                    |     r4 = r0;
                                                             |     if (r0 == 0) {
    0x00012d30 cbnz r0, 0x12d50                              |         
    0x00012d32 mov r2, r0                                    |         r2 = r0;
    0x00012d34 ldr r1, [sp, 8]                               |         r1 = endptr;
    0x00012d36 mov r3, r5                                    |         r3 = r5;
    0x00012d38 mov r0, r6                                    |         r0 = r6;
    0x00012d3a str r7, [sp]                                  |         *(sp) = r7;
    0x00012d3c blx 0x5358                                    |         r0 = strtoul (r0, r1, r2);
    0x00012d40 mov r4, r0                                    |         r4 = r0;
    0x00012d42 b 0x12cf2                                     |         goto label_1;
                                                             | label_3:
    0x00012d44 mov r1, r0                                    |         r1 = r0;
    0x00012d46 mov r2, sb                                    |         r2 = sb;
    0x00012d48 mov r0, r5                                    |         r0 = r5;
    0x00012d4a blx 0x50d8                                    |         fcn_000050d8 ();
    0x00012d4e b 0x12cf4                                     |         goto label_0;
                                                             |     }
    0x00012d50 ldr r2, [pc, 0x24]                            |     
    0x00012d52 mov r1, r4                                    |     r1 = r4;
    0x00012d54 ldr r0, [pc, 0x24]                            |     
    0x00012d56 add r2, pc                                    |     r2 = 0x25ad2;
    0x00012d58 add r0, pc                                    |     r0 = 0x25ad8;
    0x00012d5a blx 0x50d8                                    |     fcn_000050d8 ();
    0x00012d5e b 0x12cf4                                     |     goto label_0;
                                                             | label_6:
    0x00012d60 blx 0x5008                                    |     r0 = fcn_00005008 ();
    0x00012d64 lsrs r2, r0, 0x1c                             |     r2 = r0 >> 0x1c;
    0x00012d66 movs r2, r0                                   |     r2 = r0;
    0x00012d68 lsls r0, r2, 0x10                             |     r0 = r2 << 0x10;
    0x00012d6a movs r0, r0                                   |     
    0x00012d6c lsrs r4, r4, 0x1a                             |     r4 >>= 0x1a;
    0x00012d6e movs r2, r0                                   |     r2 = r0;
    0x00012d70 b 0x1355c                                     |     return void (*0x1355c)() ();
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/debugfs @ 0x12d80 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.00012d80 ()                                      | void fcn_00012d80 (int16_t arg_28h, int16_t arg_2ch, int16_t arg_30h, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_50h, int16_t arg_54h, int16_t arg_58h, int16_t arg_5ch, int16_t arg_60h, int16_t arg_70h, int16_t arg_88h, int16_t arg_90h, int16_t arg_98h, int16_t arg_a0h, int16_t arg_ach, int16_t arg_aeh, int16_t arg_b4h, int16_t arg_b8h, int16_t arg_bch, int16_t arg_c4h, int16_t arg_c6h, int16_t arg_124h, int16_t arg_126h, int16_t arg_12ch, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00012d80 push.w {r4, r5, r6, r7, r8, lr}                   |     
    0x00012d84 mov r5, r2                                        |     r5 = r2;
    0x00012d86 ldr r2, [pc, 0xd4]                                |     
    0x00012d88 mov r7, r3                                        |     r7 = r3;
    0x00012d8a sub sp, 0x10                                      |     
    0x00012d8c mov r4, r1                                        |     r4 = r1;
    0x00012d8e ldr r3, [pc, 0xd0]                                |     r3 = *(0x12e62);
    0x00012d90 mov r6, r0                                        |     r6 = r0;
    0x00012d92 add r2, pc                                        |     r2 = 0x25bf4;
    0x00012d94 movs r1, 0x2f                                     |     r1 = 0x2f;
    0x00012d96 mov r0, r5                                        |     r0 = r5;
    0x00012d98 ldr r3, [r2, r3]                                  |     
    0x00012d9a ldr r3, [r3]                                      |     r3 = *(0x25bf4);
    0x00012d9c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00012d9e mov.w r3, 0                                       |     r3 = 0;
    0x00012da2 blx 0x567c                                        |     r0 = ext2fs_fallocate ();
                                                                 |     if (r0 == 0) {
    0x00012da6 cbz r0, 0x12e02                                   |         goto label_19;
                                                                 |     }
    0x00012da8 movs r3, 0                                        |     r3 = 0;
    0x00012daa mov r2, r4                                        |     r2 = r4;
    0x00012dac strb r3, [r0]                                     |     *(r0) = r3;
    0x00012dae add r3, sp, 8                                     |     r3 += var_8h;
    0x00012db0 str r3, [sp]                                      |     *(sp) = r3;
    0x00012db2 mov r8, r0                                        |     r8 = r0;
    0x00012db4 mov r1, r7                                        |     r1 = r7;
    0x00012db6 mov r3, r5                                        |     r3 = r5;
    0x00012db8 mov r0, r6                                        |     r0 = r6;
    0x00012dba blx 0x4f3c                                        |     r0 = fcn_00004f3c ();
    0x00012dbe mov r4, r0                                        |     r4 = r0;
    0x00012dc0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00012dc2 bne 0x12e34                                       |         goto label_20;
                                                                 |     }
    0x00012dc4 ldr r4, [sp, 8]                                   |     r4 = var_8h;
    0x00012dc6 add.w r5, r8, 1                                   |     r5 = r8 + 1;
                                                                 |     do {
    0x00012dca mov r3, r5                                        |         r3 = r5;
    0x00012dcc mov r1, r4                                        |         r1 = r4;
    0x00012dce movs r2, 0                                        |         r2 = 0;
    0x00012dd0 mov r0, r6                                        |         r0 = r6;
    0x00012dd2 blx 0x55a4                                        |         ext2fs_close_free ();
    0x00012dd6 movw r3, 0xb726                                   |         
    0x00012dda mov r4, r0                                        |         r4 = r0;
    0x00012ddc movt r3, 0x7f2b                                   |         r3 = 0x7f2bb726;
    0x00012de0 cmp r0, r3                                        |         
                                                                 |         if (r0 == r3) {
    0x00012de2 beq 0x12e18                                       |             goto label_21;
                                                                 |         }
                                                                 |         if (r4 != 0) {
                                                                 | label_1:
    0x00012de4 cbnz r4, 0x12e06                                  |             goto label_22;
                                                                 |         }
                                                                 | label_0:
    0x00012de6 ldr r2, [pc, 0x7c]                                |         
    0x00012de8 ldr r3, [pc, 0x74]                                |         r3 = *(0x12e60);
    0x00012dea add r2, pc                                        |         r2 = 0x25c54;
    0x00012dec ldr r3, [r2, r3]                                  |         r3 = *(0x25c54);
    0x00012dee ldr r2, [r3]                                      |         r2 = *(0x25c54);
    0x00012df0 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x00012df2 eors r2, r3                                       |         r2 ^= r3;
    0x00012df4 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00012df8 bne 0x12e56                                       |             goto label_23;
                                                                 |         }
    0x00012dfa mov r0, r4                                        |         r0 = r4;
    0x00012dfc add sp, 0x10                                      |         
    0x00012dfe pop.w {r4, r5, r6, r7, r8, pc}                    |         
                                                                 | label_19:
    0x00012e02 str r4, [sp, 8]                                   |         var_8h = r4;
    0x00012e04 b 0x12dca                                         |         
                                                                 |     } while (1);
                                                                 | label_22:
    0x00012e06 ldr r2, [pc, 0x60]                                |     
    0x00012e08 mov r3, r5                                        |     r3 = r5;
    0x00012e0a ldr r0, [pc, 0x60]                                |     
    0x00012e0c mov r1, r4                                        |     r1 = r4;
    0x00012e0e add r2, pc                                        |     r2 = 0x25c7c;
    0x00012e10 add r0, pc                                        |     r0 = 0x25c82;
    0x00012e12 blx 0x50d8                                        |     fcn_000050d8 ();
    0x00012e16 b 0x12de6                                         |     goto label_0;
                                                                 | label_21:
    0x00012e18 ldr r1, [sp, 8]                                   |     r1 = var_8h;
    0x00012e1a mov r0, r6                                        |     r0 = r6;
    0x00012e1c blx 0x53e8                                        |     r0 = strcat_chk ()
    0x00012e20 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 == 0) {
    0x00012e22 cbnz r0, 0x12e44                                  |         
    0x00012e24 mov r2, r0                                        |         r2 = r0;
    0x00012e26 ldr r1, [sp, 8]                                   |         r1 = var_8h;
    0x00012e28 mov r3, r5                                        |         r3 = r5;
    0x00012e2a mov r0, r6                                        |         r0 = r6;
    0x00012e2c blx 0x55a4                                        |         r0 = ext2fs_close_free ();
    0x00012e30 mov r4, r0                                        |         r4 = r0;
    0x00012e32 b 0x12de4                                         |         goto label_1;
                                                                 | label_20:
    0x00012e34 ldr r2, [pc, 0x38]                                |         
    0x00012e36 mov r1, r0                                        |         r1 = r0;
    0x00012e38 mov r3, r5                                        |         r3 = r5;
    0x00012e3a mov r0, r5                                        |         r0 = r5;
    0x00012e3c add r2, pc                                        |         r2 = 0x25cb0;
    0x00012e3e blx 0x50d8                                        |         fcn_000050d8 ();
    0x00012e42 b 0x12de6                                         |         goto label_0;
                                                                 |     }
    0x00012e44 ldr r0, [pc, 0x2c]                                |     
    0x00012e46 mov r1, r4                                        |     r1 = r4;
    0x00012e48 ldr r2, [pc, 0x2c]                                |     
    0x00012e4a add r0, pc                                        |     r0 = 0x25cc2;
    0x00012e4c add r2, pc                                        |     r2 = 0x25cc8;
    0x00012e4e adds r0, 0x24                                     |     r0 += 0x24;
    0x00012e50 blx 0x50d8                                        |     fcn_000050d8 ();
    0x00012e54 b 0x12de6                                         |     goto label_0;
                                                                 | label_23:
    0x00012e56 blx 0x5008                                        |     fcn_00005008 ();
    0x00012e5a nop                                               |     
    0x00012e5c lsrs r2, r1, 0x18                                 |     r2 = r1 >> 0x18;
    0x00012e5e movs r2, r0                                       |     r2 = r0;
    0x00012e60 lsls r0, r2, 0x10                                 |     r0 = r2 << 0x10;
    0x00012e62 movs r0, r0                                       |     
    0x00012e64 lsrs r2, r6, 0x16                                 |     r2 = r6 >> 0x16;
    0x00012e66 movs r2, r0                                       |     r2 = r0;
    0x00012e68 b 0x134f8                                         |     goto label_24;
                                                                 |     do {
    0x000133fc ldrb r3, [r5, 1]                                  |         r3 = *((r5 + 1));
                                                                 |         if (r3 != 0) {
    0x000133fe cbnz r3, 0x13422                                  |             goto label_25;
                                                                 |         }
                                                                 | label_2:
    0x00013400 blx 0x4ec4                                        |         fcn_00004ec4 ();
    0x00013404 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x00013406 adds r4, 1                                        |         r4++;
    0x00013408 cmp r3, r4                                        |         
                                                                 |         if (r3 == r4) {
    0x0001340a beq.w 0x13726                                     |             goto label_26;
                                                                 |         }
                                                                 | label_4:
    0x0001340e ldr r3, [sp, 0x38]                                |         r3 = *(arg_38h);
    0x00013410 lsls r2, r4, 2                                    |         r2 = r4 << 2;
    0x00013412 str r2, [sp, 0x14]                                |         var_14h = r2;
    0x00013414 ldr.w r0, [r3, r4, lsl 2]                         |         offset_0 = r4 << 2;
                                                                 |         r0 = *((r3 + offset_0));
    0x00013418 ldrb r3, [r0, 0x13]                               |         r3 = *((r0 + 0x13));
    0x0001341a add.w r5, r0, 0x13                                |         r5 = r0 + 0x13;
    0x0001341e cmp r3, 0x2e                                      |         
    0x00013420 beq 0x133fc                                       |         
                                                                 |     } while (r3 == 0x2e);
                                                                 | label_25:
    0x00013422 ldrb r3, [r5]                                     |     r3 = *(r5);
    0x00013424 cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x00013426 bne 0x13434                                       |         goto label_27;
                                                                 |     }
    0x00013428 ldrb r3, [r5, 1]                                  |     r3 = *((r5 + 1));
    0x0001342a cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x0001342c bne 0x13434                                       |         goto label_27;
                                                                 |     }
    0x0001342e ldrb r3, [r5, 2]                                  |     r3 = *((r5 + 2));
    0x00013430 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00013432 beq 0x13400                                       |         goto label_2;
                                                                 |     }
                                                                 | label_27:
    0x00013434 add r1, sp, 0x40                                  |     r1 += arg_40h;
    0x00013436 mov r0, r5                                        |     r0 = r5;
    0x00013438 blx 0x4f48                                        |     r0 = fcn_00004f48 ();
    0x0001343c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001343e bne.w 0x139fe                                     |         goto label_28;
                                                                 |     }
    0x00013442 ldr r3, [sp, 0x50]                                |     r3 = *(arg_50h);
    0x00013444 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00013448 cmp.w r3, 0x4000                                  |     
    0x0001344c it ne                                             |     
                                                                 |     if (r3 != 0x4000) {
    0x0001344e cmpne r3, 0xa000                                  |         __asm ("cmpne r3, 0xa000");
                                                                 |     }
    0x00013452 ite ne                                            |     
                                                                 |     if (r3 == 0x4000) {
    0x00013454 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r3 != 0x4000) {
    0x00013456 moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r3 == 0x4000) {
    0x00013458 beq.w 0x13568                                     |         goto label_29;
                                                                 |     }
    0x0001345c ldr r3, [sp, 0x54]                                |     r3 = *(arg_54h);
    0x0001345e cmp r3, 1                                         |     
                                                                 |     if (r3 < 1) {
    0x00013460 bls.w 0x13802                                     |         goto label_30;
                                                                 |     }
    0x00013464 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00013466 ldrd r7, r2, [sp, 0x40]                           |     __asm ("ldrd r7, r2, [arg_40h]");
    0x0001346a ldrd r1, r8, [sp, 0xa0]                           |     __asm ("ldrd r1, r8, [arg_a0h]");
    0x0001346e ldr r6, [r3]                                      |     r6 = *(r3);
    0x00013470 cmp r6, 0                                         |     
                                                                 |     if (r6 <= 0) {
    0x00013472 ble 0x13566                                       |         goto label_31;
                                                                 |     }
    0x00013474 ldr r3, [r3, 8]                                   |     r3 = *((r3 + 8));
    0x00013476 mov lr, r5                                        |     lr = r5;
    0x00013478 mov ip, r4                                        |     
    0x0001347a b 0x13486                                         |     
                                                                 |     while (r2 != r4) {
                                                                 | label_3:
    0x0001347c adds r0, 1                                        |         r0++;
    0x0001347e adds r3, 0x18                                     |         r3 += 0x18;
    0x00013480 cmp r0, r6                                        |         
                                                                 |         if (r0 == r6) {
    0x00013482 beq.w 0x137f8                                     |             goto label_32;
                                                                 |         }
    0x00013484 strh r1, [r7, 0xc]                                |         *((r7 + 0xc)) = r1;
    0x00013486 ldrd r5, r4, [r3]                                 |         __asm ("ldrd r5, r4, [r3]");
    0x0001348a cmp r2, r4                                        |         
    0x0001348c it eq                                             |         
                                                                 |         if (r2 == r4) {
    0x0001348e cmpeq r7, r5                                      |             __asm ("cmpeq r7, r5");
                                                                 |         }
    0x00013490 bne 0x1347c                                       |         
                                                                 |     }
    0x00013492 ldrd r5, r4, [r3, 8]                              |     __asm ("ldrd r5, r4, [r3, 8]");
    0x00013496 cmp r8, r4                                        |     
    0x00013498 it eq                                             |     
                                                                 |     if (r8 != r4) {
    0x0001349a cmpeq r1, r5                                      |         __asm ("cmpeq r1, r5");
                                                                 |         goto label_33;
                                                                 |     }
                                                                 |     if (r8 != r4) {
                                                                 | label_33:
    0x0001349c bne 0x1347c                                       |         goto label_3;
                                                                 |     }
    0x0001349e ldr r6, [r3, 0x10]                                |     r6 = *((r3 + 0x10));
    0x000134a0 add r7, sp, 0xac                                  |     r7 += arg_ach;
    0x000134a2 mov r2, r7                                        |     r2 = r7;
    0x000134a4 mov r0, fp                                        |     r0 = fp;
    0x000134a6 mov r5, lr                                        |     r5 = lr;
    0x000134a8 mov r4, ip                                        |     r4 = ip;
    0x000134aa mov r1, r6                                        |     r1 = r6;
    0x000134ac blx 0x4d58                                        |     r0 = ext2fs_read_inode ();
    0x000134b0 mov r3, r0                                        |     r3 = r0;
    0x000134b2 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000134b4 bne.w 0x139ca                                     |         goto label_34;
                                                                 |     }
    0x000134b8 ldrh.w r2, [sp, 0xac]                             |     r2 = *(arg_ach);
    0x000134bc and r2, r2, 0xf000                                |     r2 &= 0xf000;
    0x000134c0 cmp.w r2, 0x8000                                  |     
    0x000134c4 it eq                                             |     
                                                                 |     if (r2 != 0x8000) {
    0x000134c6 moveq r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r2 != 0x8000) {
    0x000134c8 beq 0x134fa                                       |         
    0x000134ca cmp.w r2, 0x4000                                  |         
                                                                 |         if (r2 == 0x4000) {
    0x000134ce beq.w 0x13a1a                                     |             goto label_35;
                                                                 |         }
    0x000134d2 cmp.w r2, 0x2000                                  |         
                                                                 |         if (r2 == 0x2000) {
    0x000134d6 beq.w 0x13a7e                                     |             goto label_36;
                                                                 |         }
    0x000134da cmp.w r2, 0x6000                                  |         
                                                                 |         if (r2 == 0x6000) {
    0x000134de beq.w 0x13a82                                     |             goto label_37;
                                                                 |         }
    0x000134e2 cmp.w r2, 0xa000                                  |         
                                                                 |         if (r2 == 0xa000) {
    0x000134e6 beq.w 0x13a86                                     |             goto label_38;
                                                                 |         }
    0x000134ea cmp.w r2, 0x1000                                  |         
                                                                 |         if (r2 == 0x1000) {
    0x000134ee beq.w 0x13a8a                                     |             goto label_39;
                                                                 |         }
    0x000134f2 cmp.w r2, 0xc000                                  |         
    0x000134f6 it eq                                             |         
                                                                 |         if (r2 == 0xc000) {
                                                                 | label_24:
    0x000134f8 moveq r3, 6                                       |             r3 = 6;
                                                                 |             goto label_17;
                                                                 |         }
                                                                 |     }
                                                                 | label_17:
    0x000134fa mov r2, r5                                        |     r2 = r5;
    0x000134fc str r3, [sp]                                      |     *(sp) = r3;
    0x000134fe mov r1, sb                                        |     r1 = sb;
    0x00013500 mov r3, r6                                        |     r3 = r6;
    0x00013502 mov r0, fp                                        |     r0 = fp;
    0x00013504 blx 0x577c                                        |     fcn_0000577c ();
    0x00013508 ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x0001350a mov r3, r0                                        |     r3 = r0;
    0x0001350c cmp r0, r2                                        |     
                                                                 |     if (r0 == r2) {
    0x0001350e beq.w 0x13942                                     |         goto label_40;
                                                                 |     }
    0x00013512 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00013514 bne.w 0x1392a                                     |         goto label_15;
                                                                 |     }
                                                                 | label_14:
    0x00013518 ldrh.w r3, [sp, 0xc6]                             |     r3 = *(arg_c6h);
    0x0001351c mov r2, r7                                        |     r2 = r7;
    0x0001351e mov r1, r6                                        |     r1 = r6;
    0x00013520 mov r0, fp                                        |     r0 = fp;
    0x00013522 adds r3, 1                                        |     r3++;
    0x00013524 strh.w r3, [sp, 0xc6]                             |     *(arg_c6h) = r3;
    0x00013528 blx 0x555c                                        |     r0 = ext2fs_file_llseek ();
    0x0001352c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001352e beq.w 0x13712                                     |         
    0x00013532 mov r8, r6                                        |         r8 = r6;
    0x00013534 mov r6, r0                                        |         r6 = r0;
    0x00013536 ldr.w r0, [pc, 0x644]                             |         
    0x0001353a mov r3, r8                                        |         r3 = r8;
    0x0001353c ldr.w r2, [pc, 0x640]                             |         
    0x00013540 mov r1, r6                                        |         r1 = r6;
    0x00013542 ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x00013544 add r0, pc                                        |         r0 = 0x270c6;
    0x00013546 adds r0, 0x5c                                     |         r0 += 0x5c;
    0x00013548 add r2, pc                                        |         r2 = 0x270cc;
    0x0001354a blx 0x50d8                                        |         fcn_000050d8 ();
                                                                 | label_13:
    0x0001354e ldr.w r0, [pc, 0x634]                             |         
    0x00013552 mov r3, r5                                        |         r3 = r5;
    0x00013554 ldr.w r2, [pc, 0x630]                             |         r2 = *(0x13b88);
    0x00013558 mov r1, r6                                        |         r1 = r6;
    0x0001355a add r0, pc                                        |         r0 = 0x270e4;
    0x0001355c adds r0, 0x4c                                     |         r0 += 0x4c;
    0x0001355e add r2, pc                                        |         r2 += pc;
    0x00013560 blx 0x50d8                                        |         fcn_000050d8 ();
    0x00013562 ldc p1, c14, [sl, 0x190]!                         |         __asm ("ldc p1, c14, [sl, 0x190]!");
                                                                 | label_31:
    0x00013566 movs r3, 1                                        |         r3 = 1;
                                                                 | label_29:
    0x00013568 str r3, [sp, 0x28]                                |         *(arg_28h) = r3;
                                                                 | label_9:
    0x0001356a ldr.w r7, [sl, 4]                                 |         r7 = *((sl + 4));
    0x0001356e mov r0, r5                                        |         r0 = r5;
    0x00013570 blx 0x537c                                        |         ext2fs_dir_iterate ();
    0x00013574 ldr.w r1, [sl, 8]                                 |         r1 = *((sl + 8));
    0x00013578 adds r2, r7, 1                                    |         r2 = r7 + 1;
    0x0001357a ldr.w r3, [sl]                                    |         r3 = *(sl);
    0x0001357e add r2, r0                                        |         r2 += r0;
    0x00013580 cmp r2, r1                                        |         
                                                                 |         if (r2 < r1) {
    0x00013582 bls.w 0x137f4                                     |             goto label_41;
                                                                 |         }
    0x00013586 lsls r1, r1, 1                                    |         r1 <<= 1;
    0x00013588 mov r0, r3                                        |         r0 = r3;
    0x0001358a str.w r1, [sl, 8]                                 |         __asm ("str.w r1, [sl, 8]");
    0x0001358e blx 0x5074                                        |         r0 = fcn_00005074 ();
    0x00013592 mov r3, r0                                        |         r3 = r0;
    0x00013594 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00013596 beq.w 0x13b2c                                     |             goto label_42;
                                                                 |         }
    0x0001359a str.w r0, [sl]                                    |         __asm ("str.w r0, [sl]");
    0x0001359e ldr.w r0, [sl, 4]                                 |         r0 = *((sl + 4));
                                                                 | label_8:
    0x000135a2 add r0, r3                                        |         r0 += r3;
    0x000135a4 ldr.w r3, [pc, 0x5e4]                             |         
    0x000135a8 mov.w r2, -1                                      |         r2 = -1;
    0x000135ac movs r1, 1                                        |         r1 = 1;
    0x000135ae str r5, [sp]                                      |         *(sp) = r5;
    0x000135b0 add r3, pc                                        |         r3 = 0x27140;
    0x000135b2 blx 0x540c                                        |         mkdir ();
    0x000135b6 ldr.w r3, [sl, 4]                                 |         r3 = *((sl + 4));
    0x000135ba add r3, r0                                        |         r3 += r0;
    0x000135bc str.w r3, [sl, 4]                                 |         __asm ("str.w r3, [sl, 4]");
    0x000135c0 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
                                                                 |         if (r3 != 0) {
    0x000135c2 cbz r3, 0x135ea                                   |             
    0x000135c4 ldr r3, [sp, 0x1c]                                |             r3 = var_1ch;
    0x000135c6 ldr r6, [r3]                                      |             r6 = *(r3);
    0x000135c8 ldr r3, [sp, 0x50]                                |             r3 = *(arg_50h);
                                                                 |             if (r6 == 0) {
    0x000135ca cbz r6, 0x135ec                                   |                 goto label_43;
                                                                 |             }
    0x000135cc and r3, r3, 0xf000                                |             r3 &= 0xf000;
    0x000135d0 mov r2, r5                                        |             r2 = r5;
    0x000135d2 str r3, [sp, 4]                                   |             var_4h = r3;
    0x000135d4 mov r0, fp                                        |             r0 = fp;
    0x000135d6 ldr r3, [sp, 0x20]                                |             r3 = var_20h;
    0x000135d8 str r3, [sp]                                      |             *(sp) = r3;
    0x000135da mov r3, sb                                        |             r3 = sb;
    0x000135dc ldr.w r1, [sl]                                    |             r1 = *(sl);
    0x000135de asrs r0, r0, 0x20                                 |             r0 >>= 0x20;
    0x000135e0 blx r6                                            |             r0 = uint32_t (*r6)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x000135e2 mov r3, r0                                        |             r3 = r0;
    0x000135e4 cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x000135e6 bne.w 0x13a4c                                     |                 goto label_44;
                                                                 |             }
                                                                 |         }
    0x000135ea ldr r3, [sp, 0x50]                                |         r3 = *(arg_50h);
                                                                 | label_43:
    0x000135ec and r2, r3, 0xf000                                |         r2 = r3 & 0xf000;
    0x000135f0 cmp.w r2, 0x8000                                  |         
                                                                 |         if (r2 == 0x8000) {
    0x000135f4 beq.w 0x13862                                     |             goto label_45;
                                                                 |         }
    0x000135f6 strh r5, [r6, 8]                                  |         *((r6 + 8)) = r5;
                                                                 |         if (r2 > 0x8000) {
    0x000135f8 bhi.w 0x13760                                     |             goto label_46;
                                                                 |         }
    0x000135fc cmp.w r2, 0x4000                                  |         
                                                                 |         if (r2 == 0x4000) {
    0x00013600 beq.w 0x1388e                                     |             goto label_47;
                                                                 |         }
                                                                 |         if (r2 < 0x4000) {
    0x00013604 bls.w 0x13750                                     |             goto label_48;
                                                                 |         }
    0x00013608 cmp.w r2, 0x6000                                  |         
                                                                 |         if (r2 == 0x6000) {
    0x0001360c beq.w 0x137ca                                     |             goto label_49;
                                                                 |         }
                                                                 | label_5:
    0x00013610 ldr.w r2, [pc, 0x57c]                             |         r2 = fcn.0000dd14;
    0x00013614 mov r3, r5                                        |         r3 = r5;
    0x00013616 ldr r0, [sp, 0x2c]                                |         r0 = *(arg_2ch);
    0x00013618 movs r1, 0                                        |         r1 = 0;
    0x0001361a add r6, sp, 0x3c                                  |         r6 += arg_3ch;
    0x0001361c add r2, pc                                        |         r2 += pc;
    0x0001361e blx 0x50d8                                        |         fcn_000050d8 ();
                                                                 | label_6:
    0x00013622 ldr r1, [sp, 0x20]                                |         r1 = var_20h;
    0x00013624 mov r3, r5                                        |         r3 = r5;
    0x00013626 mov r2, sb                                        |         r2 = sb;
    0x00013628 mov r0, fp                                        |         r0 = fp;
    0x0001362a str r6, [sp]                                      |         *(sp) = r6;
    0x0001362c blx 0x4f3c                                        |         r0 = fcn_00004f3c ();
    0x00013630 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00013632 bne.w 0x13a52                                     |             goto label_50;
                                                                 |         }
    0x00013636 ldr r6, [sp, 0x3c]                                |         r6 = *(arg_3ch);
    0x00013638 add.w r8, sp, 0xac                                |         r8 += arg_ach;
    0x0001363c mov r2, r8                                        |         r2 = r8;
    0x0001363e mov r0, fp                                        |         r0 = fp;
    0x00013640 mov r1, r6                                        |         r1 = r6;
    0x00013642 blx 0x4d58                                        |         r0 = ext2fs_read_inode ();
    0x00013646 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00013648 bne.w 0x13806                                     |             goto label_51;
                                                                 |         }
    0x0001364c ldr r3, [sp, 0x58]                                |         r3 = *(arg_58h);
    0x0001364e mov r2, r8                                        |         r2 = r8;
    0x00013650 ldr r1, [sp, 0x50]                                |         r1 = *(arg_50h);
    0x00013652 mov r0, fp                                        |         r0 = fp;
    0x00013654 strh.w r3, [sp, 0xae]                             |         *(arg_aeh) = r3;
    0x00013658 lsrs r3, r3, 0x10                                 |         r3 >>= 0x10;
    0x0001365a ubfx r1, r1, 0, 0xc                               |         r1 = (r1 >> 0) & ((1 << 0xc) - 1);
    0x0001365e strh.w r3, [sp, 0x124]                            |         *(arg_124h) = r3;
    0x00013662 ldr r3, [sp, 0x5c]                                |         r3 = *(arg_5ch);
    0x00013664 strh.w r3, [sp, 0xc4]                             |         *(arg_c4h) = r3;
    0x00013668 lsrs r3, r3, 0x10                                 |         r3 >>= 0x10;
    0x0001366a strh.w r3, [sp, 0x126]                            |         *(arg_126h) = r3;
    0x0001366e ldrh.w r3, [sp, 0xac]                             |         r3 = *(arg_ach);
    0x00013672 bic r3, r3, 0xff0                                 |         r3 = BIT_MASK (r3, 0xff0);
    0x00013676 bic r3, r3, 0xf                                   |         r3 = BIT_MASK (r3, 0xf);
    0x0001367a orrs r3, r1                                       |         r3 |= r1;
    0x0001367c mov r1, r6                                        |         r1 = r6;
    0x0001367e strh.w r3, [sp, 0xac]                             |         *(arg_ach) = r3;
    0x00013682 ldr r3, [sp, 0x88]                                |         r3 = *(arg_88h);
    0x00013684 str r3, [sp, 0xb4]                                |         *(arg_b4h) = r3;
    0x00013686 ldr r3, [sp, 0x90]                                |         r3 = *(arg_90h);
    0x00013688 str r3, [sp, 0xbc]                                |         *(arg_bch) = r3;
    0x0001368a ldr r3, [sp, 0x98]                                |         r3 = *(arg_98h);
    0x0001368c str r3, [sp, 0xb8]                                |         *(arg_b8h) = r3;
    0x0001368e blx 0x555c                                        |         r0 = ext2fs_file_llseek ();
    0x00013692 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00013694 bne.w 0x13848                                     |             goto label_52;
                                                                 |         }
    0x00013698 ldr r1, [sp, 0x3c]                                |         r1 = *(arg_3ch);
    0x0001369a mov r2, r5                                        |         r2 = r5;
    0x0001369c mov r0, fp                                        |         r0 = fp;
    0x0001369e bl 0x12784                                        |         r0 = fcn_00012784 (r0, r1, r2);
    0x000136a2 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000136a4 bne.w 0x13a66                                     |             goto label_53;
                                                                 |         }
    0x000136a8 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
                                                                 |         if (r3 != 0) {
    0x000136aa cbz r3, 0x136d2                                   |             
    0x000136ac ldr r3, [sp, 0x1c]                                |             r3 = var_1ch;
    0x000136ae ldr r6, [r3, 4]                                   |             r6 = *((r3 + 4));
                                                                 |             if (r6 == 0) {
    0x000136b0 cbz r6, 0x136d2                                   |                 goto label_54;
                                                                 |             }
    0x000136b2 ldr r3, [sp, 0x20]                                |             r3 = var_20h;
    0x000136b4 mov r2, r5                                        |             r2 = r5;
    0x000136b6 mov r0, fp                                        |             r0 = fp;
    0x000136b8 str r3, [sp]                                      |             *(sp) = r3;
    0x000136ba ldr r3, [sp, 0x50]                                |             r3 = *(arg_50h);
    0x000136bc and r3, r3, 0xf000                                |             r3 &= 0xf000;
    0x000136c0 str r3, [sp, 4]                                   |             var_4h = r3;
    0x000136c2 mov r3, sb                                        |             r3 = sb;
    0x000136c4 ldr.w r1, [sl]                                    |             r1 = *(sl);
    0x000136c8 blx r6                                            |             r0 = uint32_t (*r6)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x000136ca mov r3, r0                                        |             r3 = r0;
    0x000136cc cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x000136ce bne.w 0x13a4c                                     |                 goto label_44;
                                                                 |             }
                                                                 |         }
                                                                 | label_54:
    0x000136d2 ldr r3, [sp, 0x28]                                |         r3 = *(arg_28h);
                                                                 |         if (r3 != 0) {
    0x000136d4 cbz r3, 0x13706                                   |             
    0x000136d6 ldr r1, [sp, 0x24]                                |             r1 = var_24h;
    0x000136d8 ldrd r3, r2, [r1]                                 |             __asm ("ldrd r3, r2, [r1]");
    0x000136dc ldr r0, [r1, 8]                                   |             r0 = *((r1 + 8));
    0x000136de cmp r3, r2                                        |             
                                                                 |             if (r3 == r2) {
    0x000136e0 beq.w 0x139aa                                     |                 goto label_55;
                                                                 |             }
                                                                 | label_16:
    0x000136e4 add.w r2, r3, r3, lsl 1                           |             r2 = r3 + (r3 << 1);
    0x000136e8 ldr r1, [sp, 0x3c]                                |             r1 = *(arg_3ch);
    0x000136ea vldr d16, [sp, 0xa0]                              |             __asm ("vldr d16, [sp, 0xa0]");
    0x000136ee adds r3, 1                                        |             r3++;
    0x000136f0 add.w r2, r0, r2, lsl 3                           |             r2 = r0 + (r2 << 3);
    0x000136f4 str r1, [r2, 0x10]                                |             *((r2 + 0x10)) = r1;
    0x000136f6 ldrd r0, r1, [sp, 0x40]                           |             __asm ("ldrd r0, r1, [arg_40h]");
    0x000136fa vstr d16, [r2, 8]                                 |             __asm ("vstr d16, [r2, 8]");
    0x000136fe strd r0, r1, [r2]                                 |             __asm ("strd r0, r1, [r2]");
    0x00013702 ldr r2, [sp, 0x24]                                |             r2 = var_24h;
    0x00013704 str r3, [r2]                                      |             *(r2) = r3;
                                                                 |         }
    0x00013706 ldr.w r3, [sl]                                    |         r3 = *(sl);
    0x0001370a movs r2, 0                                        |         r2 = 0;
    0x0001370c str.w r7, [sl, 4]                                 |         __asm ("str.w r7, [sl, 4]");
    0x00013710 strb r2, [r3, r7]                                 |         *((r3 + r7)) = r2;
                                                                 |     }
    0x00013712 ldr r3, [sp, 0x38]                                |     r3 = *(arg_38h);
    0x00013714 adds r4, 1                                        |     r4++;
    0x00013716 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x00013718 ldr r0, [r3, r2]                                  |     r0 = *((r3 + r2));
    0x0001371a blx 0x4ec4                                        |     fcn_00004ec4 ();
    0x0001371e ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00013720 cmp r3, r4                                        |     
                                                                 |     if (r3 != r4) {
    0x00013722 bne.w 0x1340e                                     |         goto label_4;
                                                                 |     }
                                                                 | label_26:
    0x00013726 movs r6, 0                                        |     r6 = 0;
                                                                 | label_10:
    0x00013728 ldr r0, [sp, 0x38]                                |     r0 = *(arg_38h);
    0x0001372a blx 0x4ec4                                        |     fcn_00004ec4 ();
    0x0001372e ldr.w r2, [pc, 0x464]                             |     
    0x00013732 ldr.w r3, [pc, 0x434]                             |     r3 = *(0x13b6a);
    0x00013736 add r2, pc                                        |     r2 = 0x272d0;
    0x00013738 ldr r3, [r2, r3]                                  |     r3 = *(0x272d0);
    0x0001373a ldr r2, [r3]                                      |     r2 = *(0x272d0);
    0x0001373c ldr r3, [sp, 0x12c]                               |     r3 = *(arg_12ch);
    0x0001373e eors r2, r3                                       |     r2 ^= r3;
    0x00013740 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00013744 bne.w 0x13b0a                                     |         goto label_56;
                                                                 |     }
    0x00013748 mov r0, r6                                        |     r0 = r6;
    0x0001374a add sp, 0x134                                     |     
    0x0001374c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_48:
    0x00013750 sub.w r2, r2, 0x1000                              |     r2 -= 0x1000;
    0x00013754 bic r2, r2, 0x1000                                |     r2 = BIT_MASK (r2, 0x1000);
    0x00013758 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x0001375a bne.w 0x13610                                     |         goto label_5;
                                                                 |     }
    0x0001375e b 0x137ca                                         |     goto label_49;
                                                                 | label_46:
    0x00013760 cmp.w r2, 0xa000                                  |     
                                                                 |     if (r2 == 0xa000) {
    0x00013764 bne 0x137c2                                       |         
    0x00013766 ldr r2, [sp, 0x70]                                |         r2 = *(arg_70h);
    0x00013768 add.w r8, r2, 1                                   |         r8 = r2 + 1;
    0x0001376c mov r0, r8                                        |         r0 = r8;
    0x0001376e blx 0x52bc                                        |         r0 = strerror (r0);
    0x00013772 mov r6, r0                                        |         r6 = r0;
    0x00013774 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00013776 beq.w 0x13b50                                     |             goto label_57;
                                                                 |         }
    0x0001377a mov r1, r0                                        |         r1 = r0;
    0x0001377c mov r2, r8                                        |         r2 = r8;
    0x0001377e mov r0, r5                                        |         r0 = r5;
    0x00013780 blx 0x5120                                        |         r0 = fcn_00005120 ();
    0x00013784 adds r3, r0, 1                                    |         r3 = r0 + 1;
                                                                 |         if (r3 == r0) {
    0x00013786 beq.w 0x13aaa                                     |             goto label_58;
                                                                 |         }
    0x0001378a ldrd r1, r2, [sp, 0x70]                           |         __asm ("ldrd r1, r2, [arg_70h]");
    0x0001378e asrs r3, r0, 0x1f                                 |         r3 = r0 >> 0x1f;
    0x00013790 cmp r1, r0                                        |         
    0x00013792 sbcs.w r3, r2, r3                                 |         __asm ("sbcs.w r3, r2, r3");
                                                                 |         if (r1 < r0) {
    0x00013796 blt.w 0x13a8e                                     |             goto label_59;
                                                                 |         }
    0x0001379a movs r3, 0                                        |         r3 = 0;
    0x0001379c mov r2, r5                                        |         r2 = r5;
    0x0001379e strb r3, [r6, r0]                                 |         *((r6 + r0)) = r3;
    0x000137a0 mov r1, sb                                        |         r1 = sb;
    0x000137a2 ldr r3, [sp, 0x20]                                |         r3 = var_20h;
    0x000137a4 mov r0, fp                                        |         r0 = fp;
    0x000137a6 str r3, [sp]                                      |         *(sp) = r3;
    0x000137a8 mov r3, r6                                        |         r3 = r6;
    0x000137aa bl 0x12c88                                        |         fcn_00012c88 (r0, r1, r2, r3, r4);
    0x000137ae str r0, [sp, 0x34]                                |         *(arg_34h) = r0;
    0x000137b0 mov r0, r6                                        |         r0 = r6;
    0x000137b2 blx 0x4ec4                                        |         fcn_00004ec4 ();
    0x000137b6 ldr r3, [sp, 0x34]                                |         r3 = *(arg_34h);
    0x000137b8 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x000137ba bne.w 0x13a34                                     |             goto label_60;
                                                                 |         }
                                                                 | label_7:
    0x000137be add r6, sp, 0x3c                                  |         r6 += arg_3ch;
    0x000137c0 b 0x13622                                         |         goto label_6;
                                                                 |     }
    0x000137c2 cmp.w r2, 0xc000                                  |     
                                                                 |     if (r2 != 0xc000) {
    0x000137c6 bne.w 0x13610                                     |         goto label_5;
                                                                 |     }
                                                                 | label_49:
    0x000137ca ldr r2, [sp, 0x60]                                |     r2 = *(arg_60h);
    0x000137cc mov r1, sb                                        |     r1 = sb;
    0x000137ce mov r0, fp                                        |     r0 = fp;
    0x000137d0 str r2, [sp]                                      |     *(sp) = r2;
    0x000137d2 mov r2, r5                                        |     r2 = r5;
    0x000137d4 bl 0x12a64                                        |     r0 = fcn_00012a64 (r0, r1, r2, r3, r4);
    0x000137d8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000137da beq 0x137be                                       |         goto label_7;
                                                                 |     }
    0x000137dc mov r6, r0                                        |     r6 = r0;
    0x000137de ldr r0, [pc, 0x3b8]                               |     
    0x000137e0 ldr r2, [pc, 0x3b8]                               |     
    0x000137e2 mov r3, r5                                        |     r3 = r5;
    0x000137e4 mov r1, r6                                        |     r1 = r6;
    0x000137e6 ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x000137e8 add r0, pc                                        |     r0 = 0x27386;
    0x000137ea adds r0, 0x4c                                     |     r0 += 0x4c;
    0x000137ec add r2, pc                                        |     r2 = 0x2738c;
    0x000137ee blx 0x50d8                                        |     fcn_000050d8 ();
    0x000137f2 b 0x13830                                         |     goto label_12;
                                                                 | label_41:
    0x000137f4 mov r0, r7                                        |     r0 = r7;
    0x000137f6 b 0x135a2                                         |     goto label_8;
                                                                 | label_32:
    0x000137f8 movs r3, 1                                        |     r3 = 1;
    0x000137fa mov r5, lr                                        |     r5 = lr;
    0x000137fc mov r4, ip                                        |     r4 = ip;
    0x000137fe str r3, [sp, 0x28]                                |     *(arg_28h) = r3;
    0x00013800 b 0x1356a                                         |     goto label_9;
                                                                 | label_30:
    0x00013802 str r0, [sp, 0x28]                                |     *(arg_28h) = r0;
    0x00013804 b 0x1356a                                         |     goto label_9;
                                                                 | label_51:
    0x00013806 mov sb, r6                                        |     sb = r6;
    0x00013808 mov r6, r0                                        |     r6 = r0;
    0x0001380a ldr r0, [pc, 0x394]                               |     
    0x0001380c mov r3, sb                                        |     r3 = sb;
    0x0001380e ldr r2, [pc, 0x394]                               |     
    0x00013810 mov r1, r6                                        |     r1 = r6;
    0x00013812 ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x00013814 add r0, pc                                        |     r0 = 0x273ba;
    0x00013816 adds r0, 0x68                                     |     r0 += 0x68;
    0x00013818 add r2, pc                                        |     r2 = 0x273c2;
    0x0001381a blx 0x50d8                                        |     fcn_000050d8 ();
                                                                 | label_11:
    0x0001381e ldr r0, [pc, 0x388]                               |     
    0x00013820 mov r3, r5                                        |     r3 = r5;
    0x00013822 ldr r2, [pc, 0x388]                               |     
    0x00013824 mov r1, r6                                        |     r1 = r6;
    0x00013826 add r0, pc                                        |     r0 = 0x273d4;
    0x00013828 adds r0, 0x4c                                     |     r0 += 0x4c;
    0x0001382a add r2, pc                                        |     r2 = 0x273dc;
    0x0001382c blx 0x50d8                                        |     fcn_000050d8 ();
                                                                 | label_12:
    0x00013830 cmp r7, r4                                        |     
                                                                 |     if (r7 <= r4) {
    0x00013832 ble.w 0x13728                                     |         goto label_10;
                                                                 |     }
                                                                 |     do {
    0x00013836 ldr r3, [sp, 0x38]                                |         r3 = *(arg_38h);
    0x00013838 ldr.w r0, [r3, r4, lsl 2]                         |         offset_1 = r4 << 2;
                                                                 |         r0 = *((r3 + offset_1));
    0x0001383c adds r4, 1                                        |         r4++;
    0x0001383e blx 0x4ec4                                        |         fcn_00004ec4 ();
    0x00013842 cmp r7, r4                                        |         
    0x00013844 bne 0x13836                                       |         
                                                                 |     } while (r7 != r4);
    0x00013846 b 0x13728                                         |     goto label_10;
                                                                 | label_52:
    0x00013848 mov sb, r6                                        |     sb = r6;
    0x0001384a mov r6, r0                                        |     r6 = r0;
    0x0001384c ldr r0, [pc, 0x360]                               |     
    0x0001384e mov r3, sb                                        |     r3 = sb;
    0x00013850 ldr r2, [pc, 0x360]                               |     
    0x00013852 mov r1, r6                                        |     r1 = r6;
    0x00013854 ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x00013856 add r0, pc                                        |     r0 = 0x2740a;
    0x00013858 adds r0, 0x68                                     |     r0 += 0x68;
    0x0001385a add r2, pc                                        |     r2 = 0x27412;
    0x0001385c blx 0x50d8                                        |     fcn_000050d8 ();
    0x00013860 b 0x1381e                                         |     goto label_11;
                                                                 | label_45:
    0x00013862 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00013864 mov r2, r5                                        |     r2 = r5;
    0x00013866 mov r1, sb                                        |     r1 = sb;
    0x00013868 mov r0, fp                                        |     r0 = fp;
    0x0001386a str r3, [sp]                                      |     *(sp) = r3;
    0x0001386c mov r3, r5                                        |     r3 = r5;
    0x0001386e bl 0x12e7c                                        |     r0 = fcn_00012e7c (r0, r1, r2, r3, r4);
    0x00013872 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00013874 beq 0x137be                                       |         goto label_7;
                                                                 |     }
    0x00013876 mov r6, r0                                        |     r6 = r0;
    0x00013878 ldr r0, [pc, 0x33c]                               |     
    0x0001387a ldr r2, [pc, 0x340]                               |     
    0x0001387c mov r3, r5                                        |     r3 = r5;
    0x0001387e mov r1, r6                                        |     r1 = r6;
    0x00013880 ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x00013882 add r0, pc                                        |     r0 = 0x2743e;
    0x00013884 adds r0, 0x4c                                     |     r0 += 0x4c;
    0x00013886 add r2, pc                                        |     r2 = 0x27448;
    0x00013888 blx 0x50d8                                        |     fcn_000050d8 ();
    0x0001388c b 0x13830                                         |     goto label_12;
                                                                 | label_47:
    0x0001388e cmp.w sb, 2                                       |     
                                                                 |     if (sb == 2) {
    0x00013892 bne 0x138a0                                       |         
    0x00013894 ldr r1, [pc, 0x328]                               |         
    0x00013896 mov r0, r5                                        |         r0 = r5;
    0x00013898 add r1, pc                                        |         r1 = 0x2745c;
    0x0001389a blx 0x4dd0                                        |         r0 = strcmp (r0, r1);
                                                                 |         if (r0 == 0) {
    0x0001389e cbz r0, 0x138b2                                   |             goto label_61;
                                                                 |         }
                                                                 |     }
    0x000138a0 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x000138a2 mov r2, r5                                        |     r2 = r5;
    0x000138a4 mov r1, sb                                        |     r1 = sb;
    0x000138a6 mov r0, fp                                        |     r0 = fp;
    0x000138a8 bl 0x12d80                                        |     r0 = fcn_00012d80 (r0, r1, r2, r3, r4, r5, r6);
    0x000138ac cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000138ae bne.w 0x13ade                                     |         goto label_62;
                                                                 |     }
                                                                 | label_61:
    0x000138b2 add r6, sp, 0x3c                                  |     r6 += arg_3ch;
    0x000138b4 mov r3, r5                                        |     r3 = r5;
    0x000138b6 ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x000138b8 mov r2, sb                                        |     r2 = sb;
    0x000138ba mov r0, fp                                        |     r0 = fp;
    0x000138bc str r6, [sp]                                      |     *(sp) = r6;
    0x000138be blx 0x4f3c                                        |     r0 = fcn_00004f3c ();
    0x000138c2 mov r3, r0                                        |     r3 = r0;
    0x000138c4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000138c6 bne.w 0x13ace                                     |         goto label_63;
                                                                 |     }
    0x000138ca ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x000138cc mov r2, r5                                        |     r2 = r5;
    0x000138ce ldr r1, [sp, 0x3c]                                |     r1 = *(arg_3ch);
    0x000138d0 mov r0, fp                                        |     r0 = fp;
    0x000138d2 strd sl, r3, [sp, 4]                              |     __asm ("strd sl, r3, [var_8h]");
    0x000138d6 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x000138d8 str r3, [sp]                                      |     *(sp) = r3;
    0x000138da ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x000138dc bl 0x13384                                        |     r0 = fcn_00013384 (r0, r1, r2, r3, r4, r5);
    0x000138e0 mov r3, r0                                        |     r3 = r0;
    0x000138e2 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000138e4 bne.w 0x13a4c                                     |         goto label_44;
                                                                 |     }
    0x000138e8 ldr r0, [pc, 0x2d8]                               |     
    0x000138ea add r0, pc                                        |     r0 = 0x274b2;
    0x000138ec blx 0x50bc                                        |     r0 = fcn_000050bc ();
    0x000138f0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000138f2 beq.w 0x13622                                     |         goto label_6;
                                                                 |     }
    0x000138f6 blx 0x53f4                                        |     r0 = sprintf_chk ();
    0x000138fa ldr r6, [r0]                                      |     r6 = *(r0);
    0x000138fc ldr r0, [pc, 0x2c8]                               |     
    0x000138fe ldr r2, [pc, 0x2cc]                               |     
    0x00013900 mov r1, r6                                        |     r1 = r6;
    0x00013902 ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x00013904 add r0, pc                                        |     r0 = 0x274d0;
    0x00013906 add r2, pc                                        |     r2 = 0x274d8;
    0x00013908 adds r0, 0x4c                                     |     r0 += 0x4c;
    0x0001390a blx 0x50d8                                        |     fcn_000050d8 ();
    0x0001390e b 0x13830                                         |     goto label_12;
                                                                 | label_15:
    0x0001392a ldr r0, [pc, 0x2ac]                               |     
    0x0001392c mov r6, r3                                        |     r6 = r3;
    0x0001392e ldr r2, [pc, 0x2ac]                               |     
    0x00013930 mov r3, r5                                        |     r3 = r5;
    0x00013932 mov r1, r6                                        |     r1 = r6;
    0x00013934 ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x00013936 add r0, pc                                        |     r0 = 0x27514;
    0x00013938 adds r0, 0x5c                                     |     r0 += 0x5c;
    0x0001393a add r2, pc                                        |     r2 = 0x2751c;
    0x0001393c blx 0x50d8                                        |     fcn_000050d8 ();
    0x00013940 b 0x1354e                                         |     goto label_13;
                                                                 | label_40:
    0x00013942 mov r1, sb                                        |     r1 = sb;
    0x00013944 mov r0, fp                                        |     r0 = fp;
    0x00013946 blx 0x53e8                                        |     r0 = strcat_chk ()
    0x0001394a mov r3, r0                                        |     r3 = r0;
    0x0001394c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001394e bne 0x13a1e                                       |         goto label_64;
                                                                 |     }
    0x00013950 ldrh.w r2, [sp, 0xac]                             |     r2 = *(arg_ach);
    0x00013954 and r2, r2, 0xf000                                |     r2 &= 0xf000;
    0x00013958 cmp.w r2, 0x8000                                  |     
    0x0001395c it eq                                             |     
                                                                 |     if (r2 != 0x8000) {
    0x0001395e moveq r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r2 != 0x8000) {
    0x00013960 beq 0x13992                                       |         
    0x00013962 cmp.w r2, 0x4000                                  |         
                                                                 |         if (r2 == 0x4000) {
    0x00013966 beq.w 0x13af6                                     |             goto label_65;
                                                                 |         }
    0x0001396a cmp.w r2, 0x2000                                  |         
                                                                 |         if (r2 == 0x2000) {
    0x0001396e beq.w 0x13afa                                     |             goto label_66;
                                                                 |         }
    0x00013972 cmp.w r2, 0x6000                                  |         
                                                                 |         if (r2 == 0x6000) {
    0x00013976 beq.w 0x13b02                                     |             goto label_67;
                                                                 |         }
    0x0001397a cmp.w r2, 0xa000                                  |         
                                                                 |         if (r2 == 0xa000) {
    0x0001397e beq.w 0x13afe                                     |             goto label_68;
                                                                 |         }
    0x00013982 cmp.w r2, 0x1000                                  |         
                                                                 |         if (r2 == 0x1000) {
    0x00013986 beq.w 0x13b06                                     |             goto label_69;
                                                                 |         }
    0x0001398a cmp.w r2, 0xc000                                  |         
    0x0001398e it eq                                             |         
                                                                 |         if (r2 == 0xc000) {
    0x00013990 moveq r3, 6                                       |             r3 = 6;
                                                                 |             goto label_18;
                                                                 |         }
                                                                 |     }
                                                                 | label_18:
    0x00013992 str r3, [sp]                                      |     *(sp) = r3;
    0x00013994 mov r2, r5                                        |     r2 = r5;
    0x00013996 mov r3, r6                                        |     r3 = r6;
    0x00013998 mov r1, sb                                        |     r1 = sb;
    0x0001399a mov r0, fp                                        |     r0 = fp;
    0x0001399c blx 0x577c                                        |     r0 = fcn_0000577c ();
    0x000139a0 mov r3, r0                                        |     r3 = r0;
    0x000139a2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000139a4 beq.w 0x13518                                     |         goto label_14;
                                                                 |     }
    0x000139a8 b 0x1392a                                         |     goto label_15;
                                                                 | label_55:
    0x000139aa adds r3, 4                                        |     r3 += 4;
    0x000139ac add.w r3, r3, r3, lsl 1                           |     r3 += (r3 << 1);
    0x000139b0 lsls r1, r3, 3                                    |     r1 = r3 << 3;
    0x000139b2 blx 0x5074                                        |     r0 = fcn_00005074 ();
    0x000139b6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000139b8 beq.w 0x13b0e                                     |         
    0x000139bc ldr r2, [sp, 0x24]                                |         r2 = var_24h;
    0x000139be ldr r3, [r2, 4]                                   |         r3 = *((r2 + 4));
    0x000139c0 str r0, [r2, 8]                                   |         *((r2 + 8)) = r0;
    0x000139c2 adds r3, 4                                        |         r3 += 4;
    0x000139c4 str r3, [r2, 4]                                   |         *((r2 + 4)) = r3;
    0x000139c6 ldr r3, [r2]                                      |         r3 = *(r2);
    0x000139c8 b 0x136e4                                         |         goto label_16;
                                                                 | label_34:
    0x000139ca mov r8, r6                                        |         r8 = r6;
    0x000139cc mov r6, r0                                        |         r6 = r0;
    0x000139ce ldr r0, [pc, 0x210]                               |         
    0x000139d0 mov r3, r8                                        |         r3 = r8;
    0x000139d2 ldr r2, [pc, 0x210]                               |         
    0x000139d4 mov r1, r6                                        |         r1 = r6;
    0x000139d6 ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x000139d8 add r0, pc                                        |         r0 = 0x275be;
    0x000139da adds r0, 0x5c                                     |         r0 += 0x5c;
    0x000139dc add r2, pc                                        |         r2 = 0x275c6;
    0x000139de blx 0x50d8                                        |         fcn_000050d8 ();
    0x000139e2 b 0x1354e                                         |         goto label_13;
                                                                 | label_28:
    0x000139fe blx 0x53f4                                        |         r0 = sprintf_chk ();
    0x00013a02 ldr r6, [r0]                                      |         r6 = *(r0);
    0x00013a04 mov r3, r5                                        |         r3 = r5;
    0x00013a06 ldr r0, [pc, 0x1e8]                               |         
    0x00013a08 ldr r2, [pc, 0x1e8]                               |         
    0x00013a0a mov r1, r6                                        |         r1 = r6;
    0x00013a0c ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x00013a0e add r0, pc                                        |         r0 = 0x27604;
    0x00013a10 adds r0, 0x4c                                     |         r0 += 0x4c;
    0x00013a12 add r2, pc                                        |         r2 = 0x2760a;
    0x00013a14 blx 0x50d8                                        |         fcn_000050d8 ();
    0x00013a18 b 0x13830                                         |         goto label_12;
                                                                 | label_35:
    0x00013a1a movs r3, 2                                        |         r3 = 2;
    0x00013a1c b 0x134fa                                         |         goto label_17;
                                                                 | label_64:
    0x00013a1e mov r6, r0                                        |         r6 = r0;
    0x00013a20 ldr r0, [pc, 0x1d4]                               |         
    0x00013a22 ldr r2, [pc, 0x1d8]                               |         
    0x00013a24 mov r1, r3                                        |         r1 = r3;
    0x00013a26 ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x00013a28 add r0, pc                                        |         r0 = 0x27624;
    0x00013a2a adds r0, 0x5c                                     |         r0 += 0x5c;
    0x00013a2c add r2, pc                                        |         r2 = 0x2762e;
    0x00013a2e blx 0x50d8                                        |         fcn_000050d8 ();
    0x00013a32 b 0x1354e                                         |         goto label_13;
                                                                 | label_60:
    0x00013a34 ldr r0, [pc, 0x1c8]                               |         
    0x00013a36 mov r6, r3                                        |         r6 = r3;
    0x00013a38 ldr r2, [pc, 0x1c8]                               |         
    0x00013a3a mov r3, r5                                        |         r3 = r5;
    0x00013a3c mov r1, r6                                        |         r1 = r6;
    0x00013a3e ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x00013a40 add r0, pc                                        |         r0 = 0x27644;
    0x00013a42 adds r0, 0x4c                                     |         r0 += 0x4c;
    0x00013a44 add r2, pc                                        |         r2 = 0x2764c;
    0x00013a46 blx 0x50d8                                        |         fcn_000050d8 ();
    0x00013a4a b 0x13830                                         |         goto label_12;
                                                                 | label_44:
    0x00013a4c ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x00013a4e mov r6, r3                                        |         r6 = r3;
    0x00013a50 b 0x13830                                         |         goto label_12;
                                                                 | label_50:
    0x00013a52 ldr r2, [pc, 0x1b4]                               |         
    0x00013a54 mov r6, r0                                        |         r6 = r0;
    0x00013a56 mov r3, r5                                        |         r3 = r5;
    0x00013a58 mov r0, r5                                        |         r0 = r5;
    0x00013a5a mov r1, r6                                        |         r1 = r6;
    0x00013a5c ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x00013a5e add r2, pc                                        |         r2 = 0x2766c;
    0x00013a60 blx 0x50d8                                        |         fcn_000050d8 ();
    0x00013a64 b 0x13830                                         |         goto label_12;
                                                                 | label_53:
    0x00013a66 mov r6, r0                                        |         r6 = r0;
    0x00013a68 ldr r0, [pc, 0x1a0]                               |         
    0x00013a6a ldr r2, [pc, 0x1a4]                               |         
    0x00013a6c mov r3, r5                                        |         r3 = r5;
    0x00013a6e mov r1, r6                                        |         r1 = r6;
    0x00013a70 ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x00013a72 add r0, pc                                        |         r0 = 0x27682;
    0x00013a74 adds r0, 0x4c                                     |         r0 += 0x4c;
    0x00013a76 add r2, pc                                        |         r2 = 0x2768c;
    0x00013a78 blx 0x50d8                                        |         fcn_000050d8 ();
    0x00013a7c b 0x13830                                         |         goto label_12;
                                                                 | label_36:
    0x00013a7e movs r3, 3                                        |         r3 = 3;
    0x00013a80 b 0x134fa                                         |         goto label_17;
                                                                 | label_37:
    0x00013a82 movs r3, 4                                        |         r3 = 4;
    0x00013a84 b 0x134fa                                         |         goto label_17;
                                                                 | label_38:
    0x00013a86 movs r3, 7                                        |         r3 = 7;
    0x00013a88 b 0x134fa                                         |         goto label_17;
                                                                 | label_39:
    0x00013a8a movs r3, 5                                        |         r3 = 5;
    0x00013a8c b 0x134fa                                         |         goto label_17;
                                                                 | label_59:
    0x00013a8e ldr r0, [pc, 0x184]                               |         
    0x00013a90 movs r1, 0                                        |         r1 = 0;
    0x00013a92 ldr r2, [pc, 0x184]                               |         
    0x00013a94 ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x00013a96 add r0, pc                                        |         r0 = 0x276b0;
    0x00013a98 add r2, pc                                        |         r2 = 0x276b6;
    0x00013a9a adds r0, 0x4c                                     |         r0 += 0x4c;
    0x00013a9c blx 0x50d8                                        |         fcn_000050d8 ();
    0x00013aa0 mov r0, r6                                        |         r0 = r6;
    0x00013aa2 movs r6, 0                                        |         r6 = 0;
    0x00013aa4 blx 0x4ec4                                        |         fcn_00004ec4 ();
    0x00013aa8 b 0x13830                                         |         goto label_12;
                                                                 | label_58:
    0x00013aaa blx 0x53f4                                        |         sprintf_chk ();
    0x00013aae mov sb, r6                                        |         sb = r6;
    0x00013ab0 ldr r6, [r0]                                      |         r6 = *(r0);
    0x00013ab2 ldr r0, [pc, 0x168]                               |         
    0x00013ab4 mov r3, r5                                        |         r3 = r5;
    0x00013ab6 ldr r2, [pc, 0x168]                               |         
    0x00013ab8 mov r1, r6                                        |         r1 = r6;
    0x00013aba ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x00013abc add r0, pc                                        |         r0 = 0x276de;
    0x00013abe adds r0, 0x4c                                     |         r0 += 0x4c;
    0x00013ac0 add r2, pc                                        |         r2 = 0x276e6;
    0x00013ac2 blx 0x50d8                                        |         fcn_000050d8 ();
    0x00013ac6 mov r0, sb                                        |         r0 = sb;
    0x00013ac8 blx 0x4ec4                                        |         fcn_00004ec4 ();
    0x00013acc b 0x13830                                         |         goto label_12;
                                                                 | label_63:
    0x00013ace mov r6, r0                                        |         r6 = r0;
    0x00013ad0 movs r2, 0                                        |         r2 = 0;
    0x00013ad2 mov r0, r5                                        |         r0 = r5;
    0x00013ad4 mov r1, r3                                        |         r1 = r3;
    0x00013ad6 ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x00013ad8 blx 0x50d8                                        |         fcn_000050d8 ();
    0x00013adc b 0x13830                                         |         goto label_12;
                                                                 | label_62:
    0x00013ade mov r6, r0                                        |         r6 = r0;
    0x00013ae0 ldr r0, [pc, 0x140]                               |         
    0x00013ae2 ldr r2, [pc, 0x144]                               |         
    0x00013ae4 mov r3, r5                                        |         r3 = r5;
    0x00013ae6 mov r1, r6                                        |         r1 = r6;
    0x00013ae8 ldr r7, [sp, 0x18]                                |         r7 = var_18h;
    0x00013aea add r0, pc                                        |         r0 = 0x27712;
    0x00013aec adds r0, 0x4c                                     |         r0 += 0x4c;
    0x00013aee add r2, pc                                        |         r2 = 0x2771c;
    0x00013af0 blx 0x50d8                                        |         fcn_000050d8 ();
    0x00013af4 b 0x13830                                         |         goto label_12;
                                                                 | label_65:
    0x00013af6 movs r3, 2                                        |         r3 = 2;
    0x00013af8 b 0x13992                                         |         goto label_18;
                                                                 | label_66:
    0x00013afa movs r3, 3                                        |         r3 = 3;
    0x00013afc b 0x13992                                         |         goto label_18;
                                                                 | label_68:
    0x00013afe movs r3, 7                                        |         r3 = 7;
    0x00013b00 b 0x13992                                         |         goto label_18;
                                                                 | label_67:
    0x00013b02 movs r3, 4                                        |         r3 = 4;
    0x00013b04 b 0x13992                                         |         goto label_18;
                                                                 | label_69:
    0x00013b06 movs r3, 5                                        |         r3 = 5;
    0x00013b08 b 0x13992                                         |         goto label_18;
                                                                 | label_56:
    0x00013b0a blx 0x5008                                        |         fcn_00005008 ();
                                                                 |     }
    0x00013b0e ldr r2, [pc, 0x11c]                               |     
    0x00013b10 movw r1, 0xb746                                   |     
    0x00013b14 movt r1, 0x7f2b                                   |     r1 = 0x7f2bb746;
    0x00013b18 mov r0, r5                                        |     r0 = r5;
    0x00013b1a movw r6, 0xb746                                   |     
    0x00013b1e ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x00013b20 add r2, pc                                        |     r2 = 0x27752;
    0x00013b22 movt r6, 0x7f2b                                   |     r6 = 0x7f2bb746;
    0x00013b26 blx 0x50d8                                        |     fcn_000050d8 ();
    0x00013b2a b 0x13830                                         |     goto label_12;
                                                                 | label_42:
    0x00013b2c ldr r0, [pc, 0x100]                               |     
    0x00013b2e movw r1, 0xb746                                   |     
    0x00013b32 ldr r2, [pc, 0x100]                               |     
    0x00013b34 mov r3, r5                                        |     r3 = r5;
    0x00013b36 movt r1, 0x7f2b                                   |     r1 = 0x7f2bb746;
    0x00013b3a movw r6, 0xb746                                   |     
    0x00013b3e add r0, pc                                        |     r0 = 0x27772;
    0x00013b40 ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x00013b42 add r2, pc                                        |     r2 = 0x2777c;
    0x00013b44 adds r0, 0x4c                                     |     r0 += 0x4c;
    0x00013b46 movt r6, 0x7f2b                                   |     r6 = 0x7f2bb746;
    0x00013b48 strb r3, [r5, 0x18]                               |     *((r5 + 0x18)) = r3;
    0x00013b4a blx 0x50d8                                        |     fcn_000050d8 ();
    0x00013b4e b 0x13830                                         |     goto label_12;
                                                                 | label_57:
    0x00013b50 ldr r0, [pc, 0xe4]                                |     
    0x00013b52 mov r1, r6                                        |     r1 = r6;
    0x00013b54 ldr r2, [pc, 0xe4]                                |     
    0x00013b56 ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x00013b58 add r0, pc                                        |     r0 = 0x27794;
    0x00013b5a add r2, pc                                        |     r2 = 0x2779a;
    0x00013b5c adds r0, 0x4c                                     |     r0 += 0x4c;
    0x00013b5e blx 0x50d8                                        |     fcn_000050d8 ();
    0x00013b62 b 0x13830                                         |     goto label_12;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/debugfs @ 0x12e7c */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.00012e7c ()                                      | void fcn_00012e7c (int16_t arg_148h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_10h_2;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_24h;
                                                                 |     char * src;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_60h;
                                                                 |     int32_t var_60h_2;
                                                                 |     int16_t var_9ch;
                                                                 |     int16_t var_a4h;
                                                                 |     int32_t var_a8h;
                                                                 |     int32_t var_a8h_2;
                                                                 |     int16_t var_b6h;
                                                                 |     int16_t var_bch;
                                                                 |     int16_t var_11ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00012e7c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00012e80 mov r4, r1                                        |     r4 = r1;
    0x00012e82 ldr.w r1, [pc, 0x4dc]                             |     
    0x00012e86 mov r7, r3                                        |     r7 = r3;
    0x00012e88 mov r8, r2                                        |     r8 = r2;
    0x00012e8a movs r2, 0                                        |     r2 = 0;
    0x00012e8c ldr.w r3, [pc, 0x4d4]                             |     r3 = *(0x13364);
    0x00012e90 sub sp, 0x124                                     |     
    0x00012e92 add r1, pc                                        |     r1 = 0x261f8;
    0x00012e94 mov r6, r0                                        |     r6 = r0;
    0x00012e96 mov r0, r8                                        |     r0 = r8;
    0x00012e98 ldr r3, [r1, r3]                                  |     
    0x00012e9a mov r1, r2                                        |     r1 = r2;
    0x00012e9c ldr r3, [r3]                                      |     r3 = *(0x261f8);
    0x00012e9e str r3, [sp, 0x11c]                               |     var_11ch = r3;
    0x00012ea0 mov.w r3, 0                                       |     r3 = 0;
    0x00012ea4 blx 0x58f4                                        |     r0 = fcn_000058f4 ();
    0x00012ea8 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x00012eaa blt 0x12f48                                       |         goto label_12;
                                                                 |     }
    0x00012eac add r1, sp, 0x30                                  |     r1 += var_30h;
    0x00012eae blx 0x57b8                                        |     r0 = fcn_000057b8 ();
    0x00012eb2 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00012eb4 blt.w 0x130fe                                     |         goto label_13;
                                                                 |     }
    0x00012eb8 movs r1, 0x2f                                     |     r1 = 0x2f;
    0x00012eba mov r0, r7                                        |     r0 = r7;
    0x00012ebc blx 0x567c                                        |     r0 = ext2fs_fallocate ();
    0x00012ec0 mov r8, r0                                        |     r8 = r0;
    0x00012ec2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00012ec4 beq 0x12f44                                       |         goto label_14;
                                                                 |     }
    0x00012ec6 movs r3, 0                                        |     r3 = 0;
    0x00012ec8 mov r2, r4                                        |     r2 = r4;
    0x00012eca strb r3, [r0]                                     |     *(r0) = r3;
    0x00012ecc add r3, sp, 0x28                                  |     r3 += src;
    0x00012ece str r3, [sp]                                      |     *(sp) = r3;
    0x00012ed0 mov r0, r6                                        |     r0 = r6;
    0x00012ed2 ldr r1, [sp, 0x148]                               |     r1 = *(arg_148h);
    0x00012ed4 mov r3, r7                                        |     r3 = r7;
    0x00012ed6 blx 0x4f3c                                        |     r0 = fcn_00004f3c ();
    0x00012eda mov r4, r0                                        |     r4 = r0;
    0x00012edc cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00012ede bne.w 0x13106                                     |         goto label_15;
                                                                 |     }
    0x00012ee2 ldr r4, [sp, 0x28]                                |     r4 = src;
    0x00012ee4 add.w r7, r8, 1                                   |     r7 = r8 + 1;
                                                                 |     do {
    0x00012ee8 add.w r8, sp, 0x24                                |         r8 += var_24h;
    0x00012eec mov r2, r4                                        |         r2 = r4;
    0x00012eee ldr r1, [sp, 0x148]                               |         r1 = *(arg_148h);
    0x00012ef0 mov r3, r7                                        |         r3 = r7;
    0x00012ef2 mov r0, r6                                        |         r0 = r6;
    0x00012ef4 movw r4, 0xb79b                                   |         
    0x00012ef8 str.w r8, [sp]                                    |         __asm ("str.w r8, [sp]");
    0x00012efc movt r4, 0x7f2b                                   |         r4 = 0x7f2bb79b;
    0x00012f00 blx 0x4f3c                                        |         r0 = fcn_00004f3c ();
                                                                 |         if (r0 != 0) {
    0x00012f04 cbz r0, 0x12f1c                                   |             
    0x00012f06 ldr r1, [sp, 0x28]                                |             r1 = src;
    0x00012f08 movs r3, 0                                        |             r3 = 0;
    0x00012f0a movw r2, 0x11ed                                   |             r2 = 0x11ed;
    0x00012f0e mov r0, r6                                        |             r0 = r6;
    0x00012f10 str.w r8, [sp]                                    |             __asm ("str.w r8, [sp]");
    0x00012f14 blx 0x51a8                                        |             r0 = strcpy (r0, r1);
    0x00012f18 mov r4, r0                                        |             r4 = r0;
                                                                 |             if (r0 == 0) {
    0x00012f1a cbz r0, 0x12f66                                   |                 goto label_16;
                                                                 |             }
                                                                 |         }
                                                                 | label_1:
    0x00012f1c mov r0, r5                                        |         r0 = r5;
    0x00012f1e blx 0x5894                                        |         fcn_00005894 ();
                                                                 | label_0:
    0x00012f22 ldr.w r2, [pc, 0x444]                             |         
    0x00012f26 ldr.w r3, [pc, 0x43c]                             |         r3 = *(0x13366);
    0x00012f2a add r2, pc                                        |         r2 = 0x26298;
    0x00012f2c ldr r3, [r2, r3]                                  |         r3 = *(0x26298);
    0x00012f2e ldr r2, [r3]                                      |         r2 = *(0x26298);
    0x00012f30 ldr r3, [sp, 0x11c]                               |         r3 = var_11ch;
    0x00012f32 eors r2, r3                                       |         r2 ^= r3;
    0x00012f34 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00012f38 bne.w 0x1318e                                     |             goto label_17;
                                                                 |         }
    0x00012f3a strh r1, [r5, 8]                                  |         *((r5 + 8)) = r1;
    0x00012f3c mov r0, r4                                        |         r0 = r4;
    0x00012f3e add sp, 0x124                                     |         
    0x00012f40 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_14:
    0x00012f44 str r4, [sp, 0x28]                                |         src = r4;
    0x00012f46 b 0x12ee8                                         |         
                                                                 |     } while (1);
                                                                 | label_12:
    0x00012f48 blx 0x53f4                                        |     r0 = sprintf_chk ();
    0x00012f4c ldr r4, [r0]                                      |     r4 = *(r0);
    0x00012f4e mov r3, r8                                        |     r3 = r8;
    0x00012f50 ldr.w r0, [pc, 0x418]                             |     
    0x00012f54 ldr.w r2, [pc, 0x418]                             |     
    0x00012f58 mov r1, r4                                        |     r1 = r4;
    0x00012f5a add r0, pc                                        |     r0 = 0x262ca;
    0x00012f5c add r2, pc                                        |     r2 = 0x262d0;
    0x00012f5e adds r0, 0x38                                     |     r0 += 0x38;
    0x00012f60 blx 0x50d8                                        |     fcn_000050d8 ();
    0x00012f64 b 0x12f22                                         |     goto label_0;
                                                                 | label_16:
    0x00012f66 ldr.w r1, [pc, 0x40c]                             |     
    0x00012f6a movs r0, 1                                        |     r0 = 1;
    0x00012f6c ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x00012f6e mov.w r8, 1                                       |     r8 = 1;
    0x00012f72 add r1, pc                                        |     r1 = 0x262ec;
    0x00012f74 blx 0x54bc                                        |     fcn_000054bc ();
    0x00012f78 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00012f7a mov r2, r7                                        |     r2 = r7;
    0x00012f7c ldr r1, [sp, 0x28]                                |     r1 = src;
    0x00012f7e mov r0, r6                                        |     r0 = r6;
    0x00012f80 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x00012f84 blx 0x577c                                        |     fcn_0000577c ();
    0x00012f88 movw r3, 0xb726                                   |     
    0x00012f8c mov r4, r0                                        |     r4 = r0;
    0x00012f8e movt r3, 0x7f2b                                   |     r3 = 0x7f2bb726;
    0x00012f92 cmp r0, r3                                        |     
                                                                 |     if (r0 == r3) {
    0x00012f94 beq.w 0x13116                                     |         goto label_18;
                                                                 |     }
                                                                 | label_2:
    0x00012f98 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00012f9a bne 0x12f1c                                       |         goto label_1;
                                                                 |     }
    0x00012f9c ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x00012f9e mov r3, r4                                        |     r3 = r4;
    0x00012fa0 ldr r0, [r6, 0x2c]                                |     r0 = *((r6 + 0x2c));
    0x00012fa2 blx 0x55ec                                        |     r0 = list_super2 ();
    0x00012fa6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00012fa8 bne.w 0x13140                                     |         goto label_19;
                                                                 |     }
                                                                 | label_4:
    0x00012fac movs r3, 0                                        |     r3 = 0;
    0x00012fae ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x00012fb0 movs r2, 1                                        |     r2 = 1;
    0x00012fb2 mov r0, r6                                        |     r0 = r6;
    0x00012fb4 add r7, sp, 0x9c                                  |     r7 += var_9ch;
    0x00012fb6 blx 0x564c                                        |     ext2fs_xattr_remove ();
    0x00012fba movs r2, 0x80                                     |     r2 = 0x80;
    0x00012fbc movs r1, 0                                        |     r1 = 0;
    0x00012fbe mov r0, r7                                        |     r0 = r7;
    0x00012fc0 blx 0x5440                                        |     fcn_00005440 ();
    0x00012fc4 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00012fc6 ldr r0, [r6, 0x60]                                |     r0 = *((r6 + 0x60));
    0x00012fc8 ubfx r3, r3, 0, 0xc                               |     r3 = (r3 >> 0) & ((1 << 0xc) - 1);
    0x00012fcc mvn.w r3, r3, lsl 17                              |     r3 = ~r3;
    0x00012fd0 mvn.w r3, r3, lsr 17                              |     r3 = ~r3;
    0x00012fd4 strh.w r3, [sp, 0x9c]                             |     var_9ch = r3;
    0x00012fd8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00012fda beq.w 0x1313a                                     |         goto label_20;
                                                                 |     }
                                                                 | label_3:
    0x00012fde movs r3, 1                                        |     r3 = 1;
    0x00012fe0 strd r0, r0, [sp, 0xa8]                           |     __asm ("strd r0, r0, [var_a8h]");
    0x00012fe4 str r0, [sp, 0xa4]                                |     var_a4h = r0;
    0x00012fe6 mov r1, r7                                        |     r1 = r7;
    0x00012fe8 strh.w r3, [sp, 0xb6]                             |     var_b6h = r3;
    0x00012fec mov r0, r6                                        |     r0 = r6;
    0x00012fee ldrd r2, r3, [sp, 0x60]                           |     __asm ("ldrd r2, r3, [var_60h]");
    0x00012ff2 blx 0x5108                                        |     r0 = fcn_00005108 ();
    0x00012ff6 mov r4, r0                                        |     r4 = r0;
    0x00012ff8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00012ffa bne 0x12f1c                                       |         goto label_1;
                                                                 |     }
    0x00012ffc ldr r3, [r6, 0x10]                                |     r3 = *((r6 + 0x10));
    0x00012ffe ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x00013000 ldr r3, [r3, 0x60]                                |     r3 = *((r3 + 0x60));
    0x00013002 lsls r2, r3, 0x10                                 |     r2 = r3 << 0x10;
                                                                 |     if (r2 >= r3) {
    0x00013004 bpl.w 0x13152                                     |         goto label_21;
                                                                 |     }
    0x00013006 strh r5, [r4, 4]                                  |     *((r4 + 4)) = r5;
    0x00013008 ldr r3, [sp, 0xbc]                                |     r3 = var_bch;
    0x0001300a orr r3, r3, 0x10000000                            |     r3 |= 0x10000000;
    0x0001300e str r3, [sp, 0xbc]                                |     var_bch = r3;
                                                                 | label_5:
    0x00013010 mov r2, r7                                        |     r2 = r7;
    0x00013012 mov r0, r6                                        |     r0 = r6;
    0x00013014 blx 0x5260                                        |     r0 = fcn_00005260 ();
    0x00013018 mov r4, r0                                        |     r4 = r0;
    0x0001301a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001301c bne.w 0x12f1c                                     |         goto label_1;
                                                                 |     }
    0x00013020 ldr r3, [sp, 0xbc]                                |     r3 = var_bch;
    0x00013022 lsls r7, r3, 3                                    |     r7 = r3 << 3;
                                                                 |     if (r7 < r3) {
    0x00013024 bmi.w 0x1317c                                     |         goto label_22;
                                                                 |     }
                                                                 | label_6:
    0x00013028 ldrh.w r3, [sp, 0x9c]                             |     r3 = var_9ch;
    0x0001302c and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00013030 cmp.w r3, 0x8000                                  |     
                                                                 |     if (r3 != 0x8000) {
    0x00013034 bne.w 0x12f1c                                     |         goto label_1;
                                                                 |     }
    0x00013038 ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x0001303a add r3, sp, 0x2c                                  |     r3 += var_2ch;
    0x0001303c movs r2, 1                                        |     r2 = 1;
    0x0001303e mov r0, r6                                        |     r0 = r6;
    0x00013040 blx 0x4f30                                        |     r0 = fcn_00004f30 ();
    0x00013044 mov r4, r0                                        |     r4 = r0;
    0x00013046 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00013048 bne.w 0x12f1c                                     |         goto label_1;
                                                                 |     }
    0x0001304c mov.w r0, 0x10000                                 |     r0 = 0x10000;
    0x00013050 blx 0x52bc                                        |     strerror (r0);
    0x00013054 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00013056 mov r8, r0                                        |     r8 = r0;
    0x00013058 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0001305a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001305c beq.w 0x13348                                     |         goto label_23;
                                                                 |     }
    0x00013060 ldr r0, [r6, 0x14]                                |     r0 = *((r6 + 0x14));
    0x00013062 movs r1, 1                                        |     r1 = 1;
    0x00013064 blx 0x4d1c                                        |     r0 = calloc (r0, r1);
    0x00013068 mov sl, r0                                        |     sl = r0;
    0x0001306a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001306c beq.w 0x13348                                     |         goto label_23;
                                                                 |     }
    0x00013070 mov r7, r4                                        |     r7 = r4;
    0x00013072 mov sb, r4                                        |     sb = r4;
    0x00013074 b 0x130dc                                         |     
                                                                 |     while (r7 < r2) {
    0x00013076 movs r1, 3                                        |         r1 = 3;
    0x00013078 mov r2, r7                                        |         r2 = r7;
    0x0001307a mov r3, sb                                        |         r3 = sb;
    0x0001307c mov r0, r5                                        |         r0 = r5;
    0x0001307e str r1, [sp]                                      |         *(sp) = r1;
    0x00013080 blx 0x516c                                        |         strtoll (r0, r1, r2);
    0x00013084 subs.w fp, r1, 0                                  |         
    0x00013088 mov r4, r0                                        |         r4 = r0;
                                                                 |         if (fp < r1) {
    0x0001308a blt.w 0x13318                                     |             goto label_24;
                                                                 |         }
    0x0001308e movs r3, 4                                        |         r3 = 4;
    0x00013090 mov r2, r0                                        |         r2 = r0;
    0x00013092 str r3, [sp]                                      |         *(sp) = r3;
    0x00013094 mov r0, r5                                        |         r0 = r5;
    0x00013096 mov r3, fp                                        |         r3 = fp;
    0x00013098 blx 0x516c                                        |         strtoll (r0, r1, r2);
    0x0001309c subs.w sb, r1, 0                                  |         sb = r1 - 0;
    0x000130a0 mov r7, r0                                        |         r7 = r0;
                                                                 |         if (sb < r1) {
    0x000130a2 blt.w 0x131b4                                     |             goto label_25;
                                                                 |         }
    0x000130a6 str.w fp, [sp, 4]                                 |         __asm ("str.w fp, [var_4h]");
    0x000130aa mov r1, r5                                        |         r1 = r5;
    0x000130ac strd r8, sl, [sp, 0x10]                           |         __asm ("strd r8, sl, [var_10h]");
    0x000130b0 mov r0, r6                                        |         r0 = r6;
    0x000130b2 ldr.w ip, [r6, 0x14]                              |         ip = *((r6 + 0x14));
    0x000130b6 ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x000130b8 add.w r3, ip, -1                                  |         r3 = ip + -1;
    0x000130bc rsb.w ip, ip, 0                                   |         
    0x000130c0 adds r3, r7, r3                                   |         r3 = r7 + r3;
    0x000130c2 and.w r4, r4, ip                                  |         r4 &= ip;
    0x000130c6 and.w r3, r3, ip                                  |         r3 &= ip;
    0x000130ca str r4, [sp]                                      |         *(sp) = r4;
    0x000130cc str r3, [sp, 8]                                   |         var_8h = r3;
    0x000130ce adc r3, sb, 0                                     |         __asm ("adc r3, sb, 0");
    0x000130d2 str r3, [sp, 0xc]                                 |         var_ch = r3;
    0x000130d4 bl 0x1264c                                        |         r0 = fcn_0001264c (r0, r1, r2, r3, r4, r5, r6);
    0x000130d8 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000130da bne 0x13192                                       |             goto label_26;
                                                                 |         }
    0x000130dc ldrd r2, r3, [sp, 0x60]                           |         __asm ("ldrd r2, r3, [var_60h]");
    0x000130e0 cmp r7, r2                                        |         
    0x000130e2 sbcs.w r3, sb, r3                                 |         __asm ("sbcs.w r3, sb, r3");
    0x000130e6 blt 0x13076                                       |         
                                                                 |     }
                                                                 | label_9:
    0x000130e8 mov r0, sl                                        |     r0 = sl;
    0x000130ea blx 0x4ec4                                        |     fcn_00004ec4 ();
    0x000130ee mov r0, r8                                        |     r0 = r8;
    0x000130f0 blx 0x4ec4                                        |     fcn_00004ec4 ();
    0x000130f4 ldr r0, [sp, 0x2c]                                |     r0 = var_2ch;
    0x000130f6 blx 0x4e9c                                        |     r0 = ext2fs_file_close ();
    0x000130fa mov r4, r0                                        |     r4 = r0;
    0x000130fc b 0x12f1c                                         |     goto label_1;
                                                                 | label_13:
    0x000130fe blx 0x53f4                                        |     r0 = sprintf_chk ();
    0x00013102 ldr r4, [r0]                                      |     r4 = *(r0);
    0x00013104 b 0x12f1c                                         |     goto label_1;
                                                                 | label_15:
    0x00013106 ldr r2, [pc, 0x270]                               |     
    0x00013108 mov r3, r7                                        |     r3 = r7;
    0x0001310a mov r0, r7                                        |     r0 = r7;
    0x0001310c mov r1, r4                                        |     r1 = r4;
    0x0001310e add r2, pc                                        |     r2 = 0x2648c;
    0x00013110 blx 0x50d8                                        |     fcn_000050d8 ();
    0x00013114 b 0x12f1c                                         |     goto label_1;
                                                                 | label_18:
    0x00013116 ldr r1, [sp, 0x28]                                |     r1 = src;
    0x00013118 mov r0, r6                                        |     r0 = r6;
    0x0001311a blx 0x53e8                                        |     r0 = strcat_chk ()
    0x0001311e mov r4, r0                                        |     r4 = r0;
    0x00013120 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00013122 bne.w 0x12f1c                                     |         goto label_1;
                                                                 |     }
    0x00013126 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00013128 mov r2, r7                                        |     r2 = r7;
    0x0001312a ldr r1, [sp, 0x28]                                |     r1 = src;
    0x0001312c mov r0, r6                                        |     r0 = r6;
    0x0001312e str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x00013132 blx 0x577c                                        |     r0 = fcn_0000577c ();
    0x00013136 mov r4, r0                                        |     r4 = r0;
    0x00013138 b 0x12f98                                         |     goto label_2;
                                                                 | label_20:
    0x0001313a blx 0x4f60                                        |     fcn_00004f60 ();
    0x0001313e b 0x12fde                                         |     goto label_3;
                                                                 | label_19:
    0x00013140 ldr r0, [pc, 0x238]                               |     
    0x00013142 mov r1, r4                                        |     r1 = r4;
    0x00013144 ldr r2, [pc, 0x238]                               |     
    0x00013146 add r0, pc                                        |     r0 = 0x264c6;
    0x00013148 add r2, pc                                        |     r2 = 0x264cc;
    0x0001314a adds r0, 0x38                                     |     r0 += 0x38;
    0x0001314c blx 0x50d8                                        |     fcn_000050d8 ();
    0x00013150 b 0x12fac                                         |     goto label_4;
                                                                 | label_21:
    0x00013152 lsls r3, r3, 0x19                                 |     r3 <<= 0x19;
                                                                 |     if (r3 >= r3) {
    0x00013154 bpl.w 0x13010                                     |         goto label_5;
                                                                 |     }
    0x00013158 ldr r3, [sp, 0xbc]                                |     r3 = var_bch;
    0x0001315a mov r2, r7                                        |     r2 = r7;
    0x0001315c mov r0, r6                                        |     r0 = r6;
    0x0001315e bic r3, r3, 0x80000                               |     r3 = BIT_MASK (r3, 0x80000);
    0x00013162 str r3, [sp, 0xbc]                                |     var_bch = r3;
    0x00013164 add r3, sp, 0x2c                                  |     r3 += var_2ch;
    0x00013166 blx 0x54d4                                        |     r0 = fcn_000054d4 ();
    0x0001316a mov r4, r0                                        |     r4 = r0;
    0x0001316c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001316e bne.w 0x12f1c                                     |         goto label_1;
                                                                 |     }
    0x00013172 ldr r0, [sp, 0x2c]                                |     r0 = var_2ch;
    0x00013174 blx 0x56d4                                        |     fcn_000056d4 ();
    0x00013178 ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x0001317a b 0x13010                                         |     goto label_5;
                                                                 | label_22:
    0x0001317c ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x0001317e mov r0, r6                                        |     r0 = r6;
    0x00013180 blx 0x5184                                        |     r0 = ext2fs_open_inode_scan ();
    0x00013184 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00013186 beq.w 0x13028                                     |         goto label_6;
                                                                 |     }
    0x0001318a mov r4, r0                                        |     r4 = r0;
    0x0001318c b 0x12f1c                                         |     goto label_1;
                                                                 | label_17:
    0x0001318e blx 0x5008                                        |     fcn_00005008 ();
                                                                 | label_26:
    0x00013192 movw r3, 0xb750                                   |     
    0x00013196 mov r4, r0                                        |     r4 = r0;
    0x00013198 movt r3, 0x7f2b                                   |     r3 = 0x7f2bb750;
    0x0001319c cmp r0, r3                                        |     
                                                                 |     if (r0 != r3) {
    0x0001319e beq 0x131b4                                       |         
                                                                 | label_11:
    0x000131a0 mov r0, sl                                        |         r0 = sl;
    0x000131a2 blx 0x4ec4                                        |         fcn_00004ec4 ();
    0x000131a6 mov r0, r8                                        |         r0 = r8;
    0x000131a8 blx 0x4ec4                                        |         fcn_00004ec4 ();
    0x000131ac ldr r0, [sp, 0x2c]                                |         r0 = var_2ch;
    0x000131ae blx 0x4e9c                                        |         ext2fs_file_close ();
    0x000131b2 b 0x12f1c                                         |         goto label_1;
                                                                 |     }
                                                                 | label_25:
    0x000131b4 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x000131b6 str r3, [sp, 0x18]                                |     var_18h = r3;
                                                                 | label_10:
    0x000131b8 movs r1, 1                                        |     r1 = 1;
    0x000131ba movw r0, 0x7020                                   |     r0 = 0x7020;
    0x000131be blx 0x4d1c                                        |     r0 = calloc (r0, r1);
    0x000131c2 mov r7, r0                                        |     r7 = r0;
    0x000131c4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000131c6 beq.w 0x1333e                                     |         goto label_27;
                                                                 |     }
    0x000131ca add.w r2, r0, 0x20                                |     r2 = r0 + 0x20;
    0x000131ce vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x000131d2 movs r3, 0                                        |     r3 = 0;
    0x000131d4 movw fp, 0x660b                                   |     
    0x000131d8 movs r1, 1                                        |     r1 = 1;
    0x000131da str r2, [sp, 0x1c]                                |     var_1ch = r2;
    0x000131dc movt fp, 0xc020                                   |     fp = 0xc020660b;
    0x000131e0 mov r2, r3                                        |     r2 = r3;
    0x000131e2 str r1, [r0, 0x10]                                |     *((r0 + 0x10)) = r1;
    0x000131e4 mov.w r1, 0x200                                   |     r1 = 0x200;
    0x000131e8 vstr d16, [r0, 8]                                 |     __asm ("vstr d16, [r0, 8]");
    0x000131ec str r1, [r0, 0x18]                                |     *((r0 + 0x18)) = r1;
                                                                 | label_8:
    0x000131ee strd r3, r2, [r7]                                 |     __asm ("strd r3, r2, [r7]");
    0x000131f2 movs r1, 0                                        |     r1 = 0;
    0x000131f4 mov.w r2, 0x7000                                  |     r2 = 0x7000;
    0x000131f8 ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x000131fa blx 0x5440                                        |     fcn_00005440 ();
    0x000131fe mov r2, r7                                        |     r2 = r7;
    0x00013200 mov r1, fp                                        |     r1 = fp;
    0x00013202 mov r0, r5                                        |     r0 = r5;
    0x00013204 blx 0x513c                                        |     r0 = ss_set_prompt ();
    0x00013208 subs.w sb, r0, 0                                  |     sb = r0 - 0;
                                                                 |     if (sb < r0) {
    0x0001320c blt 0x132ae                                       |         goto label_28;
                                                                 |     }
    0x0001320e ldr r3, [r7, 0x14]                                |     r3 = *((r7 + 0x14));
                                                                 |     if (r3 == 0) {
    0x00013210 cbz r3, 0x1327e                                   |         goto label_29;
                                                                 |     }
    0x00013212 add.w sb, r7, 0x58                                |     sb = r7 + 0x58;
    0x00013216 movs r4, 0                                        |     r4 = 0;
    0x00013218 b 0x13226                                         |     
                                                                 |     while (r0 == 0) {
    0x0001321a ldr r0, [r7, 0x14]                                |         r0 = *((r7 + 0x14));
    0x0001321c adds r4, 1                                        |         r4++;
    0x0001321e add.w sb, sb, 0x38                                |         sb += 0x38;
    0x00013222 cmp r4, r0                                        |         
                                                                 |         if (r4 >= r0) {
    0x00013224 bhs 0x132ea                                       |             goto label_30;
                                                                 |         }
    0x00013226 ldrd r1, r3, [sb, -0x38]                          |         __asm ("ldrd r1, r3, [sb, -0x38]");
    0x0001322a strd r8, sl, [sp, 0x10]                           |         __asm ("strd r8, sl, [var_10h]");
    0x0001322e ldr r2, [sb, -0x28]                               |         r2 = *((sb - 0x28));
    0x00013232 ldr r0, [sb, -0x24]                               |         r0 = *((sb - 0x24));
    0x00013236 strd r1, r3, [sp]                                 |         __asm ("strd r1, r3, [sp]");
    0x0001323a adds r2, r1, r2                                   |         r2 = r1 + r2;
    0x0001323c mov r1, r5                                        |         r1 = r5;
    0x0001323e adc.w r3, r3, r0                                  |         __asm ("adc.w r3, r3, r0");
    0x00013242 str r2, [sp, 8]                                   |         var_8h = r2;
    0x00013244 mov r0, r6                                        |         r0 = r6;
    0x00013246 ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x00013248 str r3, [sp, 0xc]                                 |         var_ch = r3;
    0x0001324a bl 0x1264c                                        |         fcn_0001264c (r0, r1, r2, r3, r4, r5, r6);
    0x0001324e mov r1, sb                                        |         r1 = sb;
    0x00013250 cmp r0, 0                                         |         
    0x00013252 beq 0x1321a                                       |         
                                                                 |     }
    0x00013254 mov r4, r0                                        |     r4 = r0;
    0x00013256 mov r0, r7                                        |     r0 = r7;
    0x00013258 blx 0x4ec4                                        |     fcn_00004ec4 ();
    0x0001325c movw r3, 0xb750                                   |     
    0x00013260 ldr r7, [sp, 0x2c]                                |     r7 = var_2ch;
    0x00013262 movt r3, 0x7f2b                                   |     r3 = 0x7f2bb750;
    0x00013266 cmp r4, r3                                        |     
                                                                 |     if (r4 == r3) {
    0x00013268 beq 0x132c8                                       |         goto label_31;
                                                                 |     }
    0x0001326a mov r0, sl                                        |     r0 = sl;
    0x0001326c blx 0x4ec4                                        |     fcn_00004ec4 ();
    0x00013270 mov r0, r8                                        |     r0 = r8;
    0x00013272 blx 0x4ec4                                        |     fcn_00004ec4 ();
    0x00013276 mov r0, r7                                        |     r0 = r7;
    0x00013278 blx 0x4e9c                                        |     ext2fs_file_close ();
    0x0001327c b 0x12f1c                                         |     goto label_1;
                                                                 |     do {
                                                                 | label_29:
    0x0001327e mov r0, r7                                        |         r0 = r7;
    0x00013280 blx 0x4ec4                                        |         fcn_00004ec4 ();
    0x00013284 movw r3, 0xb750                                   |         
    0x00013288 movt r3, 0x7f2b                                   |         r3 = 0x7f2bb750;
    0x0001328c cmp sb, r3                                        |         
                                                                 |         if (sb == r3) {
    0x0001328e beq 0x132c8                                       |             goto label_31;
                                                                 |         }
                                                                 | label_7:
    0x00013290 mov r0, sl                                        |         r0 = sl;
    0x00013292 blx 0x4ec4                                        |         fcn_00004ec4 ();
    0x00013296 mov r0, r8                                        |         r0 = r8;
    0x00013298 blx 0x4ec4                                        |         fcn_00004ec4 ();
    0x0001329c ldr r0, [sp, 0x2c]                                |         r0 = var_2ch;
    0x0001329e blx 0x4e9c                                        |         ext2fs_file_close ();
    0x000132a2 cmp.w sb, 0                                       |         
    0x000132a6 ite ne                                            |         
                                                                 |         if (sb == 0) {
    0x000132a8 movne r4, sb                                      |             r4 = sb;
                                                                 |         }
                                                                 |         if (sb != 0) {
    0x000132aa moveq r4, r0                                      |             r4 = r0;
                                                                 |         }
    0x000132ac b 0x12f1c                                         |         goto label_1;
                                                                 | label_28:
    0x000132ae blx 0x53f4                                        |         r0 = sprintf_chk ();
    0x000132b2 ldr.w sb, [r0]                                    |         sb = *(r0);
    0x000132b6 cmp.w sb, 0x5f                                    |         
                                                                 |         if (sb == 0x5f) {
    0x000132ba beq 0x132c2                                       |             goto label_32;
                                                                 |         }
    0x000132bc cmp.w sb, 0x19                                    |         
    0x000132c0 bne 0x1327e                                       |         
                                                                 |     } while (sb != 0x19);
                                                                 | label_32:
    0x000132c2 mov r0, r7                                        |     r0 = r7;
    0x000132c4 blx 0x4ec4                                        |     fcn_00004ec4 ();
                                                                 | label_31:
    0x000132c8 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x000132cc mov r0, r6                                        |     r0 = r6;
    0x000132ce ldrd r6, r7, [sp, 0x60]                           |     __asm ("ldrd r6, r7, [var_60h]");
    0x000132d2 mov r1, r5                                        |     r1 = r5;
    0x000132d4 ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x000132d6 strd r8, sl, [sp, 0x10]                           |     __asm ("strd r8, sl, [var_10h]");
    0x000132da vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x000132de strd r6, r7, [sp, 8]                              |     __asm ("strd r6, r7, [var_8h]");
    0x000132e2 bl 0x1264c                                        |     r0 = fcn_0001264c (r0, r1, r2, r3, r4, r5, r6);
    0x000132e6 mov sb, r0                                        |     sb = r0;
    0x000132e8 b 0x13290                                         |     goto label_7;
                                                                 | label_30:
    0x000132ea ldr r2, [r1, -0x28]                               |     r2 = *((r1 - 0x28));
    0x000132ee ldr r3, [r1, -0x38]                               |     r3 = *((r1 - 0x38));
    0x000132f2 ldr r4, [r1, -0x24]                               |     r4 = *((r1 - 0x24));
    0x000132f6 adds r3, r3, r2                                   |     r3 += r2;
    0x000132f8 ldr r2, [r1, -0x34]                               |     r2 = *((r1 - 0x34));
    0x000132fc adc.w r2, r2, r4                                  |     __asm ("adc.w r2, r2, r4");
    0x00013300 cmp.w r0, 0x200                                   |     
                                                                 |     if (r0 != 0x200) {
    0x00013304 bne 0x13310                                       |         goto label_33;
                                                                 |     }
    0x00013306 ldr r1, [r1, -0x10]                               |     r1 = *((r1 - 0x10));
    0x0001330a lsls r1, r1, 0x1f                                 |     r1 <<= 0x1f;
                                                                 |     if (r1 >= r1) {
    0x0001330c bpl.w 0x131ee                                     |         goto label_8;
                                                                 |     }
                                                                 | label_33:
    0x00013310 mov r0, r7                                        |     r0 = r7;
    0x00013312 blx 0x4ec4                                        |     fcn_00004ec4 ();
    0x00013316 b 0x130e8                                         |     goto label_9;
                                                                 | label_24:
    0x00013318 blx 0x53f4                                        |     r0 = sprintf_chk ();
    0x0001331c ldr r3, [r0]                                      |     r3 = *(r0);
    0x0001331e ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00013320 cmp r3, 6                                         |     
    0x00013322 str r2, [sp, 0x18]                                |     var_18h = r2;
                                                                 |     if (r3 != 6) {
    0x00013324 bne.w 0x131b8                                     |         goto label_10;
                                                                 |     }
    0x00013328 mov r0, sl                                        |     r0 = sl;
    0x0001332a blx 0x4ec4                                        |     fcn_00004ec4 ();
    0x0001332e mov r0, r8                                        |     r0 = r8;
    0x00013330 blx 0x4ec4                                        |     fcn_00004ec4 ();
    0x00013334 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x00013336 blx 0x4e9c                                        |     r0 = ext2fs_file_close ();
    0x0001333a mov r4, r0                                        |     r4 = r0;
    0x0001333c b 0x12f1c                                         |     goto label_1;
                                                                 | label_27:
    0x0001333e movw r4, 0xb746                                   |     
    0x00013342 movt r4, 0x7f2b                                   |     r4 = 0x7f2bb746;
    0x00013346 b 0x131a0                                         |     goto label_11;
                                                                 | label_23:
    0x00013348 mov r0, r8                                        |     r0 = r8;
    0x0001334a movw r4, 0xb746                                   |     
    0x0001334e blx 0x4ec4                                        |     fcn_00004ec4 ();
    0x00013352 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x00013354 movt r4, 0x7f2b                                   |     r4 = 0x7f2bb746;
    0x00013358 blx 0x4e9c                                        |     ext2fs_file_close ();
    0x0001335c b 0x12f1c                                         |     goto label_1;
                                                                 | }

[*] Function strcat used 6 times debugfs