[*] Binary protection state of mkfs.ext3

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


[*] Function strcat tear down of mkfs.ext3



r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/mkfs.ext3 @ 0x7d48).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/mkfs.ext3 @ 0x819c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0000819c ()                                      | void fcn_0000819c (int16_t arg_0h, int16_t arg1, uint32_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0000819c ldr r2, [pc, 0x178]                               |     
    0x0000819e ldr r3, [pc, 0x17c]                               |     r3 = *(0x831e);
    0x000081a0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000081a4 sub sp, 0x24                                      |     
    0x000081a6 add r2, pc                                        |     r2 = 0x104c2;
    0x000081a8 ldr.w fp, [pc, 0x174]                             |     fp = *(0x00008320);
    0x000081ac ldr r3, [r2, r3]                                  |     
    0x000081ae add fp, pc                                        |     
    0x000081b0 ldr r3, [r3]                                      |     r3 = *(0x104c2);
    0x000081b2 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x000081b4 mov.w r3, 0                                       |     r3 = 0;
    0x000081b8 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000081ba beq 0x82a8                                        |         goto label_2;
                                                                 |     }
    0x000081bc ldr r3, [r0, 0x10]                                |     r3 = *(arg_0hx10);
    0x000081be mov r5, r0                                        |     r5 = r0;
    0x000081c0 ldr r2, [r0, 0x20]                                |     r2 = *(arg_0hx20);
    0x000081c2 mov sb, r1                                        |     sb = r1;
    0x000081c4 ldr r6, [r3, 0x14]                                |     r6 = *((r3 + 0x14));
    0x000081c6 adds r2, 1                                        |     r2++;
    0x000081c8 adds r4, r6, r2                                   |     r4 = r6 + r2;
                                                                 |     if (r4 >= r6) {
    0x000081ca bhs 0x81e0                                        |         goto label_3;
                                                                 |     }
                                                                 |     do {
    0x000081cc mov r1, r6                                        |         r1 = r6;
    0x000081ce mov r0, sb                                        |         r0 = sb;
    0x000081d0 blx 0x3474                                        |         r0 = loc_imp_gmon_start_ ();
    0x000081d4 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000081d6 bne 0x82c2                                        |             goto label_4;
                                                                 |         }
    0x000081d8 adds r6, 1                                        |         r6++;
    0x000081da cmp r4, r6                                        |         
    0x000081dc bhs 0x81cc                                        |         
                                                                 |     } while (r4 >= r6);
    0x000081de ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
                                                                 | label_3:
    0x000081e0 ldr r1, [r3, 0x14]                                |     r1 = *((r3 + 0x14));
    0x000081e2 ldr r2, [r3, 0x20]                                |     r2 = *((r3 + 0x20));
    0x000081e4 add.w r8, r1, r2                                  |     r8 = r1 + r2;
    0x000081e8 ldr r1, [r5, 0x1c]                                |     r1 = *((r5 + 0x1c));
    0x000081ea cmp r1, 1                                         |     
                                                                 |     if (r1 < 1) {
    0x000081ec bls 0x827a                                        |         goto label_5;
                                                                 |     }
    0x000081ee ldr r0, [pc, 0x134]                               |     
    0x000081f0 mov.w sl, 1                                       |     sl = 1;
    0x000081f4 ldr r2, [r5, 0x20]                                |     r2 = *((r5 + 0x20));
    0x000081f6 add r0, pc                                        |     r0 = 0x10520;
    0x000081f8 str r0, [sp, 0xc]                                 |     var_ch = r0;
                                                                 | label_1:
    0x000081fa adds r0, r2, 1                                    |     r0 = r2 + 1;
    0x000081fc itt ne                                            |     
                                                                 |     if (r0 == r2) {
    0x000081fe movne r7, 0                                       |         r7 = 0;
                                                                 |     }
                                                                 |     if (r0 == r2) {
    0x00008200 movne r4, r7                                      |         r4 = r7;
                                                                 |     }
                                                                 |     if (r0 != r2) {
    0x00008202 bne 0x8242                                        |         goto label_6;
                                                                 |     }
    0x00008204 b 0x826e                                          |     goto label_7;
                                                                 | label_0:
    0x00008206 movs r3, 0                                        |     r3 = 0;
    0x00008208 mov r2, r6                                        |     r2 = r6;
    0x0000820a mov r0, r5                                        |     r0 = r5;
    0x0000820c adds r7, 1                                        |     r7++;
    0x0000820e blx 0x3200                                        |     r0 = fcn_00003200 ();
    0x00008212 mov r6, r0                                        |     r6 = r0;
    0x00008214 mov r0, r5                                        |     r0 = r5;
    0x00008216 mov r1, r6                                        |     r1 = r6;
    0x00008218 blx 0x340c                                        |     fcn_0000340c ();
    0x0000821c mov r1, r6                                        |     r1 = r6;
    0x0000821e adds r2, r0, 1                                    |     r2 = r0 + 1;
    0x00008220 mov r0, r5                                        |     r0 = r5;
    0x00008222 blx 0x354c                                        |     ext2fs_read_bb_FILE ();
    0x00008226 mov r0, r5                                        |     r0 = r5;
    0x00008228 mov r1, r6                                        |     r1 = r6;
    0x0000822a blx 0x31e8                                        |     fcn_000031e8 ();
    0x0000822e ldr r0, [r5, 0x10]                                |     r0 = *((r5 + 0x10));
    0x00008230 movs r2, 1                                        |     r2 = 1;
    0x00008232 movs r3, 0                                        |     r3 = 0;
    0x00008234 blx 0x3164                                        |     fcn_00003164 ();
                                                                 |     do {
    0x00008238 ldr r2, [r5, 0x20]                                |         r2 = *((r5 + 0x20));
    0x0000823a adds r4, 1                                        |         r4++;
    0x0000823c adds r3, r2, 1                                    |         r3 = r2 + 1;
    0x0000823e cmp r3, r4                                        |         
                                                                 |         if (r3 < r4) {
    0x00008240 bls 0x826a                                        |             goto label_8;
                                                                 |         }
                                                                 | label_6:
    0x00008242 add.w r6, r4, r8                                  |         r6 = r4 + r8;
    0x00008246 mov r0, sb                                        |         r0 = sb;
    0x00008248 mov r1, r6                                        |         r1 = r6;
    0x0000824a blx 0x3474                                        |         r0 = loc_imp_gmon_start_ ();
    0x0000824e cmp r0, 0                                         |         
    0x00008250 beq 0x8238                                        |         
                                                                 |     } while (r0 == 0);
    0x00008252 cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x00008254 bne 0x8206                                        |         goto label_0;
                                                                 |     }
    0x00008256 ldr r0, [pc, 0xd0]                                |     
    0x00008258 mov r3, r8                                        |     r3 = r8;
    0x0000825a ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x0000825c movs r1, 1                                        |     r1 = 1;
    0x0000825e ldr.w r0, [fp, r0]                                |     r0 = *((fp + r0));
    0x00008262 ldr r0, [r0]                                      |     r0 = *(0x832a);
    0x00008264 blx 0x3684                                        |     ext2fs_write_inode ();
    0x00008268 b 0x8206                                          |     goto label_0;
                                                                 | label_8:
    0x0000826a ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
    0x0000826c ldr r1, [r5, 0x1c]                                |     r1 = *((r5 + 0x1c));
                                                                 | label_7:
    0x0000826e ldr r0, [r3, 0x20]                                |     r0 = *((r3 + 0x20));
    0x00008270 add.w sl, sl, 1                                   |     sl++;
    0x00008274 cmp r1, sl                                        |     
    0x00008276 add r8, r0                                        |     r8 += r0;
                                                                 |     if (r1 > sl) {
    0x00008278 bhi 0x81fa                                        |         goto label_1;
                                                                 |     }
                                                                 | label_5:
    0x0000827a add r1, sp, 0x18                                  |     r1 += var_18h;
    0x0000827c mov r0, sb                                        |     r0 = sb;
    0x0000827e blx 0x3804                                        |     r0 = ext2fs_xattr_set ();
    0x00008282 mov r1, r0                                        |     r1 = r0;
    0x00008284 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00008286 bne 0x8300                                        |         goto label_9;
                                                                 |     }
    0x00008288 add r4, sp, 0x14                                  |     r4 += var_14h;
    0x0000828a b 0x8296                                          |     
                                                                 |     while (r0 != 0) {
    0x0000828c ldr r2, [sp, 0x14]                                |         r2 = var_14h;
    0x0000828e movs r3, 0                                        |         r3 = 0;
    0x00008290 ldr r0, [r5, 0x30]                                |         r0 = *((r5 + 0x30));
    0x00008292 blx 0x3948                                        |         ext2fs_free_blocks_count ();
    0x00008296 ldr r0, [sp, 0x18]                                |         r0 = var_18h;
    0x00008298 mov r1, r4                                        |         r1 = r4;
    0x0000829a blx 0x399c                                        |         r0 = fcn_0000399c ();
    0x0000829e cmp r0, 0                                         |         
    0x000082a0 bne 0x828c                                        |         
                                                                 |     }
    0x000082a2 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x000082a4 blx 0x390c                                        |     abort ();
                                                                 | label_2:
    0x000082a8 ldr r2, [pc, 0x80]                                |     
    0x000082aa ldr r3, [pc, 0x70]                                |     r3 = *(0x831e);
    0x000082ac add r2, pc                                        |     r2 = 0x105dc;
    0x000082ae ldr r3, [r2, r3]                                  |     r3 = *(0x105dc);
    0x000082b0 ldr r2, [r3]                                      |     r2 = *(0x105dc);
    0x000082b2 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x000082b4 eors r2, r3                                       |     r2 ^= r3;
    0x000082b6 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 == r3) {
    0x000082ba bne 0x82fc                                        |         
    0x000082bc add sp, 0x24                                      |         
    0x000082be pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_4:
    0x000082c2 ldr r2, [pc, 0x64]                                |         r2 = *(0x832a);
    0x000082c4 mov r3, r6                                        |         r3 = r6;
    0x000082c6 movs r1, 1                                        |         r1 = 1;
    0x000082c8 ldr.w r6, [fp, r2]                                |         r6 = *((fp + r2));
    0x000082cc ldr r2, [pc, 0x60]                                |         
    0x000082ce ldr r0, [r6]                                      |         r0 = *(r6);
    0x000082d0 add r2, pc                                        |         r2 = 0x10604;
    0x000082d2 blx 0x3684                                        |         ext2fs_write_inode ();
    0x000082d6 ldr r3, [r5, 0x10]                                |         r3 = *((r5 + 0x10));
    0x000082d8 movs r1, 1                                        |         r1 = 1;
    0x000082da ldr r2, [pc, 0x58]                                |         
    0x000082dc str r4, [sp]                                      |         *(sp) = r4;
    0x000082de ldr r3, [r3, 0x14]                                |         r3 = *((r3 + 0x14));
    0x000082e0 add r2, pc                                        |         r2 = 0x1061a;
    0x000082e2 ldr r0, [r6]                                      |         r0 = *(r6);
    0x000082e4 blx 0x3684                                        |         ext2fs_write_inode ();
    0x000082e8 ldr r0, [pc, 0x4c]                                |         
    0x000082ea movs r2, 0xd                                      |         r2 = 0xd;
    0x000082ec ldr r3, [r6]                                      |         r3 = *(r6);
    0x000082ee movs r1, 1                                        |         r1 = 1;
    0x000082f0 add r0, pc                                        |         r0 = 0x1062c;
    0x000082f2 blx 0x3324                                        |         strcat (r0, r1)
    0x000082f6 movs r0, 1                                        |         r0 = 1;
    0x000082f8 blx 0x34b0                                        |         r0 = feof (r0);
                                                                 |     }
    0x000082fc blx 0x31f4                                        |     fcn_000031f4 ();
                                                                 | label_9:
    0x00008300 ldr r0, [pc, 0x38]                                |     
    0x00008302 ldr r3, [pc, 0x3c]                                |     
    0x00008304 ldr r2, [pc, 0x3c]                                |     
    0x00008306 add r0, pc                                        |     r0 = 0x10646;
    0x00008308 add r3, pc                                        |     r3 = 0x1064e;
    0x0000830a add r2, pc                                        |     r2 = 0x10652;
    0x0000830c blx 0x32cc                                        |     fcn_000032cc ();
    0x00008310 movs r0, 1                                        |     r0 = 1;
    0x00008312 blx 0x34b0                                        |     feof (r0);
    0x00008316 nop                                               |     
    0x00008318 invalid                                           |     
                                                                 | }
    ; assembly                                                                   | /* r2dec pseudo code output */
                                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/mkfs.ext3 @ 0x8dd4 */
                                                                                 | #include <stdint.h>
                                                                                 |  
    ; (fcn) fcn.00008dd4 ()                                                      | void fcn_00008dd4 (int16_t arg1) {
                                                                                 |     int16_t var_0h;
                                                                                 |     int16_t var_8h;
                                                                                 |     int16_t var_ch;
                                                                                 |     int16_t var_10h;
                                                                                 |     int16_t var_14h;
                                                                                 |     int16_t var_18h;
                                                                                 |     int16_t var_1ch;
                                                                                 |     int16_t var_20h;
                                                                                 |     int16_t var_24h;
                                                                                 |     int16_t var_2ch;
                                                                                 |     int16_t var_30h;
                                                                                 |     int16_t var_34h;
                                                                                 |     r0 = arg1;
    0x00008dd4 ldmdahs ip!, {r0, r1, r2, r3, r4, r6, r7, fp, ip, sp, lr, pc}     |     __asm ("ldmdahs ip!, {r0, r1, r2, r3, r4, r6, r7, fp, ip, sp, lr, pc}");
    0x00008dd8 ldr.w r3, [pc, 0x83c]                                             |     
    0x00008ddc push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}                       |     
    0x00008de0 sub sp, 0x3c                                                      |     
    0x00008de2 add r2, pc                                                        |     r2 += pc;
    0x00008de4 ldr.w r8, [pc, 0x834]                                             |     r8 = *(0x0000961c);
    0x00008de8 mov r5, r0                                                        |     r5 = r0;
    0x00008dea ldr r3, [r2, r3]                                                  |     r3 = *((r2 + r3));
    0x00008dec add r8, pc                                                        |     r8 += pc;
    0x00008dee ldr r3, [r3]                                                      |     r3 = *(0x9618);
    0x00008df0 str r3, [sp, 0x34]                                                |     var_34h = r3;
    0x00008df2 mov.w r3, 0                                                       |     r3 = 0;
    0x00008df6 blx 0x3504                                                        |     r0 = e2p_os2string ();
    0x00008dfa adds r4, r0, 1                                                    |     r4 = r0 + 1;
    0x00008dfc mov r0, r4                                                        |     r0 = r4;
    0x00008dfe blx 0x3450                                                        |     r0 = strerror (r0);
    0x00008e02 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x00008e04 beq.w 0x9494                                                      |         goto label_7;
                                                                                 |     }
    0x00008e08 mov r2, r4                                                        |     r2 = r4;
    0x00008e0a mov r1, r5                                                        |     r1 = r5;
    0x00008e0c mov fp, r0                                                        |     
    0x00008e0e ldr.w r7, [pc, 0x810]                                             |     
    0x00008e12 blx 0x30e0                                                        |     fcn_000030e0 ();
    0x00008e16 ldr.w r3, [pc, 0x80c]                                             |     r3 = *(0x00009624);
    0x00008e1a mov sl, fp                                                        |     sl = fp;
    0x00008e1c ldr.w r2, [pc, 0x808]                                             |     r2 = *(0x00009628);
    0x00008e20 movs r6, 0                                                        |     r6 = 0;
    0x00008e22 ldr.w r5, [pc, 0x808]                                             |     r5 = *(0x0000962c);
    0x00008e26 add r7, pc                                                        |     r7 = 0x1244c;
    0x00008e28 add r3, pc                                                        |     r3 += pc;
    0x00008e2a str r6, [sp, 0xc]                                                 |     var_ch = r6;
    0x00008e2c add r2, pc                                                        |     r2 += pc;
    0x00008e2e str r3, [sp, 0x14]                                                |     var_14h = r3;
    0x00008e30 adds r3, 0x24                                                     |     r3 += 0x24;
    0x00008e32 add r5, pc                                                        |     r5 += pc;
    0x00008e34 str r3, [sp, 0x18]                                                |     var_18h = r3;
    0x00008e36 add.w r3, r2, 0x18                                                |     r3 = r2 + 0x18;
    0x00008e3a str r3, [sp, 0x1c]                                                |     var_1ch = r3;
    0x00008e3c ldrb.w r3, [sl]                                                   |     r3 = *(sl);
    0x00008e40 str r6, [sp, 8]                                                   |     var_8h = r6;
    0x00008e42 str r2, [sp, 0x10]                                                |     var_10h = r2;
    0x00008e44 cmp r3, 0                                                         |     
                                                                                 |     if (r3 == 0) {
    0x00008e46 beq 0x8ec8                                                        |         goto label_8;
                                                                                 |     }
                                                                                 |     do {
    0x00008e48 movs r1, 0x2c                                                     |         r1 = 0x2c;
    0x00008e4a mov r0, sl                                                        |         r0 = sl;
    0x00008e4c blx 0x3534                                                        |         r0 = ext2fs_bg_free_blocks_count_set ();
    0x00008e50 mov r4, r0                                                        |         r4 = r0;
    0x00008e52 str r0, [sp, 0x2c]                                                |         var_2ch = r0;
                                                                                 |         if (r0 != 0) {
    0x00008e54 cbz r0, 0x8e5e                                                    |             
    0x00008e56 movs r3, 0                                                        |             r3 = 0;
    0x00008e58 strb r3, [r0]                                                     |             *(r0) = r3;
    0x00008e5a ldr r4, [sp, 0x2c]                                                |             r4 = var_2ch;
    0x00008e5c adds r4, 1                                                        |             r4++;
                                                                                 |         }
    0x00008e5e movs r1, 0x3d                                                     |         r1 = 0x3d;
    0x00008e60 mov r0, sl                                                        |         r0 = sl;
    0x00008e62 blx 0x3534                                                        |         r0 = ext2fs_bg_free_blocks_count_set ();
    0x00008e66 mov sb, r0                                                        |         sb = r0;
                                                                                 |         if (r0 != 0) {
    0x00008e68 cbz r0, 0x8e70                                                    |             
    0x00008e6a movs r3, 0                                                        |             r3 = 0;
    0x00008e6c strb r3, [sb], 1                                                  |             *(sb) = r3;
                                                                                 |             sb++;
                                                                                 |         }
    0x00008e70 mov r1, r7                                                        |         r1 = r7;
    0x00008e72 mov r0, sl                                                        |         r0 = sl;
    0x00008e74 blx 0x2f98                                                        |         r0 = fcn_00002f98 ();
    0x00008e78 cmp r0, 0                                                         |         
                                                                                 |         if (r0 == 0) {
    0x00008e7a beq 0x8f1a                                                        |             goto label_9;
                                                                                 |         }
    0x00008e7c ldr.w r1, [pc, 0x7b0]                                             |         
    0x00008e80 mov r0, sl                                                        |         r0 = sl;
    0x00008e82 add r1, pc                                                        |         r1 = 0x124b6;
    0x00008e84 blx 0x2f98                                                        |         r0 = fcn_00002f98 ();
    0x00008e88 cmp r0, 0                                                         |         
                                                                                 |         if (r0 == 0) {
    0x00008e8a beq 0x8f1a                                                        |             goto label_9;
                                                                                 |         }
    0x00008e8c ldr.w r1, [pc, 0x7a4]                                             |         
    0x00008e90 mov r0, sl                                                        |         r0 = sl;
    0x00008e92 add r1, pc                                                        |         r1 = 0x124ca;
    0x00008e94 blx 0x2f98                                                        |         r0 = fcn_00002f98 ();
    0x00008e98 cmp r0, 0                                                         |         
                                                                                 |         if (r0 != 0) {
    0x00008e9a bne.w 0x8fde                                                      |             goto label_10;
                                                                                 |         }
    0x00008e9e cmp.w sb, 0                                                       |         
                                                                                 |         if (sb == 0) {
    0x00008ea2 beq.w 0x8fba                                                      |             goto label_1;
                                                                                 |         }
    0x00008ea6 ldr.w r1, [pc, 0x790]                                             |         r1 = *(0x00009638);
    0x00008eaa mov r0, sb                                                        |         r0 = sb;
    0x00008eac add r1, pc                                                        |         r1 += pc;
    0x00008eae add.w r1, r1, 0x104                                               |         r1 += 0x104;
    0x00008eb2 blx 0x37d4                                                        |         r0 = ext2fs_extent_free ();
    0x00008eb6 cmp r0, 0                                                         |         
                                                                                 |         if (r0 != 0) {
    0x00008eb8 bne.w 0x912e                                                      |             goto label_11;
                                                                                 |         }
                                                                                 |         if (r4 == 0) {
                                                                                 | label_0:
    0x00008ebc cbz r4, 0x8ec8                                                    |             goto label_8;
                                                                                 |         }
    0x00008ebe mov sl, r4                                                        |         sl = r4;
    0x00008ec0 ldrb.w r3, [sl]                                                   |         r3 = *(sl);
    0x00008ec4 cmp r3, 0                                                         |         
    0x00008ec6 bne 0x8e48                                                        |         
                                                                                 |     } while (r3 != 0);
                                                                                 | label_8:
    0x00008ec8 cmp r6, 0                                                         |     
                                                                                 |     if (r6 != 0) {
    0x00008eca bne.w 0x9480                                                      |         goto label_12;
                                                                                 |     }
    0x00008ece ldr.w r3, [pc, 0x76c]                                             |     r3 = *(0x0000963c);
    0x00008ed2 add r3, pc                                                        |     r3 += pc;
    0x00008ed4 ldrh.w r4, [r3, 0x17c]                                            |     r4 = *((r3 + 0x17c));
    0x00008ed8 cmp r4, 0                                                         |     
                                                                                 |     if (r4 != 0) {
    0x00008eda bne.w 0x909c                                                      |         goto label_13;
                                                                                 |     }
                                                                                 | label_2:
    0x00008ede ldr.w r4, [pc, 0x760]                                             |     r4 = *(0x00009640);
    0x00008ee2 add r4, pc                                                        |     r4 += pc;
    0x00008ee4 ldr r3, [r4, 0x78]                                                |     r3 = *((r4 + 0x78));
    0x00008ee6 lsls r3, r3, 0xe                                                  |     r3 <<= 0xe;
                                                                                 |     if (r3 < r3) {
    0x00008ee8 bmi.w 0x914a                                                      |         goto label_14;
                                                                                 |     }
    0x00008eec ldr r3, [sp, 0xc]                                                 |     r3 = var_ch;
    0x00008eee cmp r3, 0                                                         |     
                                                                                 |     if (r3 != 0) {
    0x00008ef0 bne.w 0x946e                                                      |         goto label_15;
                                                                                 |     }
                                                                                 | label_3:
    0x00008ef4 ldr.w r2, [pc, 0x74c]                                             |     r2 = *(0x00009644);
    0x00008ef8 ldr.w r3, [pc, 0x71c]                                             |     r3 = *(0x9618);
    0x00008efa adds r7, 0x1c                                                     |     r7 += 0x1c;
    0x00008efc add r2, pc                                                        |     r2 += pc;
    0x00008efe ldr r3, [r2, r3]                                                  |     r3 = *((r2 + r3));
    0x00008f00 ldr r2, [r3]                                                      |     r2 = *(0x9618);
    0x00008f02 ldr r3, [sp, 0x34]                                                |     r3 = var_34h;
    0x00008f04 eors r2, r3                                                       |     r2 ^= r3;
    0x00008f06 mov.w r3, 0                                                       |     r3 = 0;
                                                                                 |     if (r2 != r3) {
    0x00008f0a bne.w 0x946a                                                      |         goto label_16;
                                                                                 |     }
    0x00008f0e mov r0, fp                                                        |     r0 = fp;
    0x00008f10 add sp, 0x3c                                                      |     
    0x00008f12 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}                        |     
    0x00008f16 b.w 0x3094                                                        |     void (*0x3094)() ();
                                                                                 | label_9:
    0x00008f1a ldr r3, [r5, 0x78]                                                |     r3 = *((r5 + 0x78));
    0x00008f1c lsls r1, r3, 0x18                                                 |     r1 = r3 << 0x18;
                                                                                 |     if (r1 >= r3) {
    0x00008f1e bpl 0x8fc2                                                        |         goto label_17;
                                                                                 |     }
    0x00008f20 ldrh.w r2, [r5, 0xe6]                                             |     r2 = *((r5 + 0xe6));
    0x00008f24 cmp r2, 0                                                         |     
                                                                                 |     if (r2 != 0) {
    0x00008f26 bne.w 0x9030                                                      |         goto label_18;
                                                                                 |     }
    0x00008f2a cmp.w sb, 0                                                       |     
                                                                                 |     if (sb == 0) {
    0x00008f2e beq 0x8fba                                                        |         goto label_1;
                                                                                 |     }
    0x00008f30 add r1, sp, 0x2c                                                  |     r1 += var_2ch;
    0x00008f32 mov r0, sb                                                        |     r0 = sb;
    0x00008f34 blx 0x34f8                                                        |     ext2fs_inode_bitmap_loc_set ();
    0x00008f38 ldr r3, [sp, 0x2c]                                                |     r3 = var_2ch;
    0x00008f3a ldrb r3, [r3]                                                     |     r3 = *(r3);
                                                                                 |     if (r3 != 0) {
    0x00008f3c cbnz r3, 0x8f4a                                                   |         goto label_19;
                                                                                 |     }
    0x00008f3e subs r3, r0, 1                                                    |     r3 = r0 - 1;
    0x00008f40 tst r3, r0                                                        |     
    0x00008f42 it eq                                                             |     
                                                                                 |     if ((r3 & r0) != 0) {
    0x00008f44 strheq r0, [r5, 0x116]                                            |         __asm ("strheq r0, [r5, 0x116]");
                                                                                 |         goto label_20;
                                                                                 |     }
                                                                                 |     if ((r3 & r0) == 0) {
                                                                                 | label_20:
    0x00008f48 beq 0x8ebc                                                        |         goto label_0;
                                                                                 |     }
                                                                                 | label_19:
    0x00008f4a ldr.w r2, [pc, 0x6fc]                                             |     r2 = *(0x964a);
    0x00008f4e mov r3, sb                                                        |     r3 = sb;
    0x00008f50 movs r1, 1                                                        |     r1 = 1;
    0x00008f52 adds r6, 1                                                        |     r6++;
    0x00008f54 ldr.w r2, [r8, r2]                                                |     r2 = *((r8 + r2));
    0x00008f58 ldr r0, [r2]                                                      |     r0 = *(0x964a);
    0x00008f5a ldr.w r2, [pc, 0x6f0]                                             |     
    0x00008f5e add r2, pc                                                        |     r2 = 0x125b0;
    0x00008f60 blx 0x3684                                                        |     ext2fs_write_inode ();
    0x00008f64 b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_6:
    0x00008f66 ldr.w r1, [pc, 0x6e8]                                             |     
    0x00008f6a mov r0, sl                                                        |     r0 = sl;
    0x00008f6c add r1, pc                                                        |     r1 = 0x125c2;
    0x00008f6e blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
    0x00008f72 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x00008f74 bne.w 0x9586                                                      |         goto label_21;
                                                                                 |     }
    0x00008f78 str r0, [sp, 0x30]                                                |     var_30h = r0;
    0x00008f7a cmp.w sb, 0                                                       |     
                                                                                 |     if (sb == 0) {
    0x00008f7e beq 0x8fba                                                        |         goto label_1;
                                                                                 |     }
    0x00008f80 ldr r2, [sp, 0x14]                                                |     r2 = var_14h;
    0x00008f82 movs r3, 0                                                        |     r3 = 0;
    0x00008f84 ldr r1, [sp, 0x18]                                                |     r1 = var_18h;
    0x00008f86 mov r0, sb                                                        |     r0 = sb;
    0x00008f88 str r3, [r2, 0x24]                                                |     *((r2 + 0x24)) = r3;
    0x00008f8a add r2, sp, 0x30                                                  |     r2 += var_30h;
    0x00008f8c bl 0xec3c                                                         |     r0 = fcn_0000ec3c (r0, r1, r2);
    0x00008f90 mov r1, r0                                                        |     r1 = r0;
    0x00008f92 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x00008f94 beq 0x8ebc                                                        |         goto label_0;
                                                                                 |     }
    0x00008f96 ldr r3, [sp, 0x30]                                                |     r3 = var_30h;
    0x00008f98 cmp r3, 0                                                         |     
                                                                                 |     if (r3 == 0) {
    0x00008f9a beq.w 0x959e                                                      |         goto label_22;
                                                                                 |     }
    0x00008f9e ldr.w r2, [pc, 0x6a8]                                             |     r2 = *(0x964a);
    0x00008fa2 movs r1, 1                                                        |     r1 = 1;
    0x00008fa4 ldr.w r2, [r8, r2]                                                |     r2 = *((r8 + r2));
    0x00008fa8 ldr r0, [r2]                                                      |     r0 = *(0x964a);
    0x00008faa ldr.w r2, [pc, 0x6a8]                                             |     
    0x00008fae add r2, pc                                                        |     r2 = 0x12608;
    0x00008fb0 blx 0x3684                                                        |     ext2fs_write_inode ();
    0x00008fb4 ldr r0, [sp, 0x30]                                                |     r0 = var_30h;
    0x00008fb6 blx 0x3098                                                        |     fcn_00003098 ();
                                                                                 |     do {
                                                                                 | label_1:
    0x00008fba adds r6, 1                                                        |         r6++;
    0x00008fbc str.w sl, [sp, 8]                                                 |         __asm ("str.w sl, [var_8h]");
    0x00008fc0 b 0x8ebc                                                          |         goto label_0;
                                                                                 | label_17:
    0x00008fc2 ldr.w r2, [pc, 0x684]                                             |         r2 = *(0x964a);
    0x00008fc6 mov r3, sl                                                        |         r3 = sl;
    0x00008fc8 movs r1, 1                                                        |         r1 = 1;
    0x00008fca adds r6, 1                                                        |         r6++;
    0x00008fcc ldr.w r2, [r8, r2]                                                |         r2 = *((r8 + r2));
    0x00008fd0 ldr r0, [r2]                                                      |         r0 = *(0x964a);
    0x00008fd2 ldr.w r2, [pc, 0x684]                                             |         
    0x00008fd6 add r2, pc                                                        |         r2 = 0x12634;
    0x00008fd8 blx 0x3684                                                        |         ext2fs_write_inode ();
    0x00008fdc b 0x8ebc                                                          |         goto label_0;
                                                                                 | label_10:
    0x00008fde ldr.w r1, [pc, 0x67c]                                             |         
    0x00008fe2 mov r0, sl                                                        |         r0 = sl;
    0x00008fe4 add r1, pc                                                        |         r1 = 0x12646;
    0x00008fe6 blx 0x2f98                                                        |         r0 = fcn_00002f98 ();
                                                                                 |         if (r0 != 0) {
    0x00008fea cbnz r0, 0x904e                                                   |             goto label_23;
                                                                                 |         }
    0x00008fec cmp.w sb, 0                                                       |         
    0x00008ff0 beq 0x8fba                                                        |         
                                                                                 |     } while (sb == 0);
    0x00008ff2 mov r2, r0                                                        |     r2 = r0;
    0x00008ff4 add r1, sp, 0x2c                                                  |     r1 += var_2ch;
    0x00008ff6 mov r0, sb                                                        |     r0 = sb;
    0x00008ff8 blx 0x3608                                                        |     fcn_00003608 ();
    0x00008ffc ldr r3, [sp, 0x2c]                                                |     r3 = var_2ch;
    0x00008ffe ldrb r2, [r3]                                                     |     r2 = *(r3);
    0x00009000 ldr.w r3, [pc, 0x65c]                                             |     r3 = *(0x00009660);
    0x00009004 add r3, pc                                                        |     r3 += pc;
    0x00009006 add.w r3, r3, 0x420                                               |     r3 += 0x420;
    0x0000900a strd r0, r1, [r3]                                                 |     __asm ("strd r0, r1, [r3]");
    0x0000900e cmp r2, 0                                                         |     
                                                                                 |     if (r2 == 0) {
    0x00009010 beq.w 0x8ebc                                                      |         goto label_0;
                                                                                 |     }
    0x00009014 ldr.w r2, [pc, 0x630]                                             |     r2 = *(0x9648);
    0x00009018 mov r3, sb                                                        |     r3 = sb;
    0x0000901a movs r1, 1                                                        |     r1 = 1;
    0x0000901c adds r6, 1                                                        |     r6++;
    0x0000901e ldr.w r2, [r8, r2]                                                |     r2 = *((r8 + r2));
    0x00009020 movs r0, 2                                                        |     r0 = 2;
    0x00009022 ldr r0, [r2]                                                      |     r0 = *(0x9648);
    0x00009024 ldr.w r2, [pc, 0x63c]                                             |     
    0x00009028 add r2, pc                                                        |     r2 = 0x12690;
    0x0000902a blx 0x3684                                                        |     ext2fs_write_inode ();
    0x0000902e b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_18:
    0x00009030 ldr.w r1, [pc, 0x614]                                             |     r1 = *(0x9648);
    0x00009034 mov r3, sl                                                        |     r3 = sl;
    0x00009036 adds r6, 1                                                        |     r6++;
    0x00009038 ldr.w r1, [r8, r1]                                                |     r1 = *((r8 + r1));
    0x0000903c str r2, [sp]                                                      |     *(sp) = r2;
    0x0000903e ldr.w r2, [pc, 0x628]                                             |     
    0x00009042 ldr r0, [r1]                                                      |     r0 = *(0x9648);
    0x00009044 movs r1, 1                                                        |     r1 = 1;
    0x00009046 add r2, pc                                                        |     r2 = 0x126b4;
    0x00009048 blx 0x3684                                                        |     ext2fs_write_inode ();
    0x0000904c b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_23:
    0x0000904e ldr.w r1, [pc, 0x61c]                                             |     
    0x00009052 mov r0, sl                                                        |     r0 = sl;
    0x00009054 add r1, pc                                                        |     r1 = 0x126c6;
    0x00009056 blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
                                                                                 |     if (r0 != 0) {
    0x0000905a cbnz r0, 0x90ca                                                   |         goto label_24;
                                                                                 |     }
    0x0000905c cmp.w sb, 0                                                       |     
                                                                                 |     if (sb == 0) {
    0x00009060 beq 0x8fba                                                        |         goto label_1;
                                                                                 |     }
    0x00009062 mov r2, r0                                                        |     r2 = r0;
    0x00009064 add r1, sp, 0x2c                                                  |     r1 += var_2ch;
    0x00009066 mov r0, sb                                                        |     r0 = sb;
    0x00009068 blx 0x34f8                                                        |     ext2fs_inode_bitmap_loc_set ();
    0x0000906c ldr.w r3, [pc, 0x600]                                             |     r3 = *(0x00009670);
    0x00009070 add r3, pc                                                        |     r3 += pc;
    0x00009072 strh.w r0, [r3, 0x17e]                                            |     *((r3 + 0x17e)) = r0;
    0x00009076 ldr r3, [sp, 0x2c]                                                |     r3 = var_2ch;
    0x00009078 ldrb r3, [r3]                                                     |     r3 = *(r3);
    0x0000907a cmp r3, 0                                                         |     
                                                                                 |     if (r3 == 0) {
    0x0000907c beq.w 0x8ebc                                                      |         goto label_0;
                                                                                 |     }
    0x00009080 ldr.w r2, [pc, 0x5c4]                                             |     r2 = *(0x9648);
    0x00009084 mov r3, sb                                                        |     r3 = sb;
    0x00009086 movs r1, 1                                                        |     r1 = 1;
    0x00009088 adds r6, 1                                                        |     r6++;
    0x0000908a ldr.w r2, [r8, r2]                                                |     r2 = *((r8 + r2));
    0x0000908e ldr r0, [r2]                                                      |     r0 = *(0x9648);
    0x00009090 ldr.w r2, [pc, 0x5e0]                                             |     
    0x00009094 add r2, pc                                                        |     r2 = 0x1270c;
    0x00009096 blx 0x3684                                                        |     ext2fs_write_inode ();
    0x0000909a b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_13:
    0x0000909c ldr.w r5, [r3, 0x188]                                             |     r5 = *((r3 + 0x188));
    0x000090a0 mov r1, r4                                                        |     r1 = r4;
    0x000090a2 mov r0, r5                                                        |     r0 = r5;
    0x000090a4 bl 0x119c4                                                        |     fcn_000119c4 (r0, r1, r2);
    0x000090a8 cmp r1, 0                                                         |     
                                                                                 |     if (r1 == 0) {
    0x000090aa beq.w 0x8ede                                                      |         goto label_2;
                                                                                 |     }
    0x000090ae ldr.w r2, [pc, 0x598]                                             |     r2 = *(0x964a);
    0x000090b2 mov r3, r5                                                        |     r3 = r5;
    0x000090b4 movs r1, 1                                                        |     r1 = 1;
    0x000090b6 ldr.w r2, [r8, r2]                                                |     r2 = *((r8 + r2));
    0x000090ba str r4, [sp]                                                      |     *(sp) = r4;
    0x000090bc ldr r0, [r2]                                                      |     r0 = *(0x964a);
    0x000090be ldr.w r2, [pc, 0x5b8]                                             |     
    0x000090c2 add r2, pc                                                        |     r2 = 0x12740;
    0x000090c4 blx 0x3684                                                        |     ext2fs_write_inode ();
    0x000090c8 b 0x8ede                                                          |     goto label_2;
                                                                                 | label_24:
    0x000090ca ldr.w r1, [pc, 0x5b0]                                             |     
    0x000090ce mov r0, sl                                                        |     r0 = sl;
    0x000090d0 add r1, pc                                                        |     r1 = 0x12752;
    0x000090d2 blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
    0x000090d6 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x000090d8 beq 0x91d6                                                        |         goto label_25;
                                                                                 |     }
    0x000090da ldr.w r1, [pc, 0x5a4]                                             |     
    0x000090de mov r0, sl                                                        |     r0 = sl;
    0x000090e0 add r1, pc                                                        |     r1 = 0x12766;
    0x000090e2 blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
    0x000090e6 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x000090e8 bne 0x9196                                                        |         goto label_26;
                                                                                 |     }
    0x000090ea cmp.w sb, 0                                                       |     
                                                                                 |     if (sb == 0) {
    0x000090ee beq.w 0x8fba                                                      |         goto label_1;
                                                                                 |     }
    0x000090f2 mov r2, r0                                                        |     r2 = r0;
    0x000090f4 add r1, sp, 0x2c                                                  |     r1 += var_2ch;
    0x000090f6 mov r0, sb                                                        |     r0 = sb;
    0x000090f8 blx 0x34f8                                                        |     ext2fs_inode_bitmap_loc_set ();
    0x000090fc ldr r3, [sp, 0x2c]                                                |     r3 = var_2ch;
    0x000090fe ldr.w r2, [pc, 0x584]                                             |     r2 = *(0x00009684);
    0x00009102 ldrb r3, [r3]                                                     |     r3 = *(r3);
    0x00009104 add r2, pc                                                        |     r2 += pc;
    0x00009106 str r0, [r2, 0x10]                                                |     *((r2 + 0x10)) = r0;
    0x00009108 cmp r0, 2                                                         |     
    0x0000910a it le                                                             |     
                                                                                 |     if (r0 > 2) {
    0x0000910c cmple r3, 0                                                       |         __asm ("cmple r3, 0");
                                                                                 |         goto label_27;
                                                                                 |     }
                                                                                 |     if (r0 == 2) {
                                                                                 | label_27:
    0x0000910e beq.w 0x8ebc                                                      |         goto label_0;
                                                                                 |     }
    0x00009110 add r6, sp, 0x354                                                 |     r6 = sp + 0x354;
    0x00009112 ldr.w r2, [pc, 0x534]                                             |     r2 = *(0x964a);
    0x00009116 mov r3, sb                                                        |     r3 = sb;
    0x00009118 movs r1, 1                                                        |     r1 = 1;
    0x0000911a adds r6, 1                                                        |     r6++;
    0x0000911c ldr.w r2, [r8, r2]                                                |     r2 = *((r8 + r2));
    0x00009120 ldr r0, [r2]                                                      |     r0 = *(0x964a);
    0x00009122 ldr.w r2, [pc, 0x564]                                             |     
    0x00009126 add r2, pc                                                        |     r2 = 0x127b4;
    0x00009128 blx 0x3684                                                        |     ext2fs_write_inode ();
    0x0000912c b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_11:
    0x0000912e ldr.w r2, [pc, 0x518]                                             |     r2 = *(0x964a);
    0x00009132 mov r3, sb                                                        |     r3 = sb;
    0x00009134 movs r1, 1                                                        |     r1 = 1;
    0x00009136 adds r6, 1                                                        |     r6++;
    0x00009138 ldr.w r2, [r8, r2]                                                |     r2 = *((r8 + r2));
    0x0000913c ldr r0, [r2]                                                      |     r0 = *(0x964a);
    0x0000913e ldr.w r2, [pc, 0x54c]                                             |     
    0x00009142 add r2, pc                                                        |     r2 = 0x127d4;
    0x00009144 blx 0x3684                                                        |     ext2fs_write_inode ();
    0x00009148 b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_14:
    0x0000914a ldrh.w r0, [r4, 0x294]                                            |     r0 = *((r4 + 0x294));
    0x0000914e blx 0x38ac                                                        |     ext2fs_r_blocks_count ();
    0x00009152 ldr r3, [sp, 0xc]                                                 |     r3 = var_ch;
    0x00009154 strh.w r0, [r4, 0x296]                                            |     *((r4 + 0x296)) = r0;
    0x00009158 cmp r3, 0                                                         |     
                                                                                 |     if (r3 == 0) {
    0x0000915a beq.w 0x8ef4                                                      |         goto label_3;
                                                                                 |     }
    0x0000915e ldrh.w r0, [r4, 0x294]                                            |     r0 = *((r4 + 0x294));
    0x00009162 addw r2, r4, 0x296                                                |     __asm ("addw r2, r4, 0x296");
    0x00009166 mov r1, r3                                                        |     r1 = r3;
    0x00009168 blx 0x32c0                                                        |     r0 = fcn_000032c0 ();
    0x0000916c cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x0000916e beq.w 0x8ef4                                                      |         goto label_3;
                                                                                 |     }
    0x00009172 ldr.w r1, [pc, 0x4d4]                                             |     r1 = *(0x964a);
    0x00009176 ldr.w r2, [pc, 0x518]                                             |     
    0x0000917a ldr r3, [sp, 0xc]                                                 |     r3 = var_ch;
    0x0000917c ldr.w r1, [r8, r1]                                                |     r1 = *((r8 + r1));
    0x00009180 add r2, pc                                                        |     r2 = 0x12816;
    0x00009182 ldr r0, [r1]                                                      |     r0 = *(0x964a);
                                                                                 | label_5:
    0x00009184 movs r1, 1                                                        |     r1 = 1;
    0x00009186 blx 0x3684                                                        |     ext2fs_write_inode ();
    0x0000918a mov r0, fp                                                        |     r0 = fp;
    0x0000918c blx 0x3098                                                        |     fcn_00003098 ();
    0x00009190 movs r0, 1                                                        |     r0 = 1;
    0x00009192 blx 0x34b0                                                        |     feof (r0);
                                                                                 | label_26:
    0x00009196 ldr.w r1, [pc, 0x4fc]                                             |     
    0x0000919a mov r0, sl                                                        |     r0 = sl;
    0x0000919c add r1, pc                                                        |     r1 = 0x12836;
    0x0000919e blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
                                                                                 |     if (r0 != 0) {
    0x000091a2 cbnz r0, 0x91e4                                                   |         goto label_28;
                                                                                 |     }
    0x000091a4 cmp.w sb, 0                                                       |     
                                                                                 |     if (sb == 0) {
    0x000091a8 beq.w 0x9350                                                      |         goto label_29;
                                                                                 |     }
    0x000091ac mov r2, r0                                                        |     r2 = r0;
    0x000091ae add r1, sp, 0x2c                                                  |     r1 += var_2ch;
    0x000091b0 mov r0, sb                                                        |     r0 = sb;
    0x000091b2 blx 0x34f8                                                        |     ext2fs_inode_bitmap_loc_set ();
    0x000091b6 ldr.w r3, [pc, 0x4e0]                                             |     r3 = *(0x00009698);
    0x000091ba add r3, pc                                                        |     r3 += pc;
    0x000091bc str.w r0, [r3, 0x42c]                                             |     __asm ("str.w r0, [r3, 0x42c]");
    0x000091c0 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x000091c2 beq.w 0x8ebc                                                      |         goto label_0;
                                                                                 |     }
                                                                                 | label_4:
    0x000091c6 ldr.w r3, [pc, 0x4d4]                                             |     r3 = *(0x0000969c);
    0x000091ca vmov.i32 d16, 0                                                   |     __asm ("vmov.i32 d16, 0");
    0x000091ce add r3, pc                                                        |     r3 += pc;
    0x000091d0 vstr d16, [r3, 0x18]                                              |     __asm ("vstr d16, [r3, 0x18]");
    0x000091d4 b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_25:
    0x000091d6 ldr.w r3, [pc, 0x4c8]                                             |     r3 = *(0x000096a0);
    0x000091da movs r2, 1                                                        |     r2 = 1;
    0x000091dc add r3, pc                                                        |     r3 += pc;
    0x000091de str.w r2, [r3, 0x428]                                             |     __asm ("str.w r2, [r3, 0x428]");
    0x000091e2 b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_28:
    0x000091e4 ldr.w r1, [pc, 0x4bc]                                             |     
    0x000091e8 mov r0, sl                                                        |     r0 = sl;
    0x000091ea add r1, pc                                                        |     r1 = 0x12892;
    0x000091ec blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
    0x000091f0 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x000091f2 beq.w 0x9314                                                      |         goto label_30;
                                                                                 |     }
    0x000091f6 ldr.w r1, [pc, 0x4b0]                                             |     
    0x000091fa mov r0, sl                                                        |     r0 = sl;
    0x000091fc add r1, pc                                                        |     r1 = 0x128aa;
    0x000091fe blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
    0x00009202 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x00009204 beq.w 0x935c                                                      |         goto label_31;
                                                                                 |     }
    0x00009208 ldr.w r1, [pc, 0x4a0]                                             |     
    0x0000920c mov r0, sl                                                        |     r0 = sl;
    0x0000920e add r1, pc                                                        |     r1 = 0x128be;
    0x00009210 blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
    0x00009214 cmp r0, 0                                                         |     
                                                                                 |     if (r0 == 0) {
    0x00009216 beq.w 0x935c                                                      |         goto label_31;
                                                                                 |     }
    0x0000921a ldr.w r1, [pc, 0x494]                                             |     
    0x0000921e mov r0, sl                                                        |     r0 = sl;
    0x00009220 add r1, pc                                                        |     r1 = 0x128d6;
    0x00009222 blx 0x2f98                                                        |     fcn_00002f98 ();
    0x00009224 cdp p8, 0xb, c2, c10, c0, 0                                       |     __asm ("cdp p8, 0xb, c2, c10, c0, 0");
                                                                                 |     if (r0 != 0) {
    0x00009228 bne.w 0x9398                                                      |         goto label_32;
                                                                                 |     }
    0x0000922c cmp.w sb, 0                                                       |     
                                                                                 |     if (sb == 0) {
    0x00009230 beq.w 0x8fba                                                      |         goto label_1;
                                                                                 |     }
    0x00009234 ldr r3, [sp, 0x10]                                                |     r3 = var_10h;
    0x00009236 mov r0, sb                                                        |     r0 = sb;
    0x00009238 ldr r1, [r3, 0x30]                                                |     r1 = *((r3 + 0x30));
    0x0000923a blx 0x314c                                                        |     r0 = fcn_0000314c ();
    0x0000923e mov r3, r0                                                        |     r3 = r0;
    0x00009240 str r0, [sp, 0x20]                                                |     var_20h = r0;
    0x00009242 orrs r3, r1                                                       |     r3 |= r1;
    0x00009244 str r1, [sp, 0x24]                                                |     var_24h = r1;
                                                                                 |     if (r3 == r1) {
    0x00009246 beq.w 0x93dc                                                      |         goto label_33;
                                                                                 |     }
    0x0000924a ldr r0, [sp, 0x1c]                                                |     r0 = var_1ch;
    0x0000924c blx 0x33dc                                                        |     fcn_000033dc ();
    0x00009250 ldr r3, [sp, 0x20]                                                |     r3 = var_20h;
    0x00009252 cmp r0, r3                                                        |     
    0x00009254 ldr r3, [sp, 0x24]                                                |     r3 = var_24h;
    0x00009256 sbcs r1, r3                                                       |     __asm ("sbcs r1, r3");
                                                                                 |     if (r0 >= r3) {
    0x00009258 bhs.w 0x9452                                                      |         goto label_34;
                                                                                 |     }
    0x0000925c ldr r2, [sp, 0x10]                                                |     r2 = var_10h;
    0x0000925e mov.w r0, 0x400                                                   |     r0 = 0x400;
    0x00009262 ldr r3, [r2, 0x30]                                                |     r3 = *((r2 + 0x30));
    0x00009264 ldr.w sl, [r2, 0x38]                                              |     sl = *((r2 + 0x38));
    0x00009268 lsls r0, r3                                                       |     r0 <<= r3;
    0x0000926a cmp.w sl, 0                                                       |     
                                                                                 |     if (sl == 0) {
    0x0000926e bne 0x9274                                                        |         
    0x00009270 lsl.w sl, r0, 3                                                   |         sl = r0 << 3;
                                                                                 |     }
    0x00009274 ldr.w r3, [pc, 0x43c]                                             |     r3 = *(0x000096b4);
    0x00009278 add r3, pc                                                        |     r3 += pc;
    0x0000927a ldr r1, [r3, 0x78]                                                |     r1 = *((r3 + 0x78));
    0x0000927c lsls r2, r1, 0x18                                                 |     r2 = r1 << 0x18;
    0x0000927e ite mi                                                            |     
                                                                                 |     if (r2 < r1) {
    0x00009280 ldrhmi r1, [r3, 0x116]                                            |         __asm ("ldrhmi r1, [r3, 0x116]");
                                                                                 |     }
                                                                                 |     if (r2 >= r1) {
    0x00009284 movs r1, 0x20                                                     |         r1 = 0x20;
                                                                                 |     }
    0x00009286 bl 0x119e0                                                        |     fcn_000119e0 (r0, r1);
    0x00009288 invalid                                                           |     
    0x0000928c ldr.w r0, [pc, 0x428]                                             |     r0 = *(0x000096b8);
    0x00009290 add r0, pc                                                        |     r0 += pc;
    0x00009292 adds r0, 0x18                                                     |     r0 += 0x18;
    0x00009294 blx 0x33dc                                                        |     r0 = fcn_000033dc ();
    0x00009298 mov r3, r0                                                        |     r3 = r0;
    0x0000929a orrs.w r0, r3, r1                                                 |     r0 = r3 | r1;
                                                                                 |     if (r0 != r3) {
    0x0000929e beq 0x92b2                                                        |         
    0x000092a0 subs r0, r3, 1                                                    |         r0 = r3 - 1;
    0x000092a2 mov r2, sl                                                        |         r2 = sl;
    0x000092a4 mov.w r3, 0                                                       |         r3 = 0;
    0x000092a8 sbc r1, r1, 0                                                     |         __asm ("sbc r1, r1, 0");
    0x000092ac bl 0x120a8                                                        |         r0 = fcn_000120a8 (r0, r1, r2, r3);
    0x000092b0 adds r3, r0, 1                                                    |         r3 = r0 + 1;
                                                                                 |     }
    0x000092b2 add.w r0, sb, -1                                                  |     r0 = sb + -1;
    0x000092b6 mov r1, sb                                                        |     r1 = sb;
    0x000092b8 add r0, r3                                                        |     r0 += r3;
    0x000092ba bl 0x11768                                                        |     fcn_00011768 (r0, r1, r2);
    0x000092be ldr r2, [sp, 0x20]                                                |     r2 = var_20h;
    0x000092c0 mov r3, r0                                                        |     r3 = r0;
    0x000092c2 ldr r1, [sp, 0x24]                                                |     r1 = var_24h;
    0x000092c4 subs r0, r2, 1                                                    |     r0 = r2 - 1;
    0x000092c6 mov r2, sl                                                        |     r2 = sl;
    0x000092c8 sbc r1, r1, 0                                                     |     __asm ("sbc r1, r1, 0");
    0x000092cc mov sl, r3                                                        |     sl = r3;
    0x000092ce movs r3, 0                                                        |     r3 = 0;
    0x000092d0 bl 0x120a8                                                        |     r0 = fcn_000120a8 (r0, r1, r2, r3);
    0x000092d4 adds r3, r0, 1                                                    |     r3 = r0 + 1;
                                                                                 |     if (r3 != r0) {
    0x000092d6 beq 0x92e0                                                        |         
    0x000092d8 mov r1, sb                                                        |         r1 = sb;
    0x000092da bl 0x11768                                                        |         r0 = fcn_00011768 (r0, r1, r2);
    0x000092de adds r3, r0, 1                                                    |         r3 = r0 + 1;
                                                                                 |     }
    0x000092e0 ldr r1, [pc, 0x3d8]                                               |     
    0x000092e2 mov.w r2, 0x400                                                   |     r2 = 0x400;
    0x000092e6 sub.w r3, r3, sl                                                  |     r3 -= sl;
    0x000092ea add r1, pc                                                        |     r1 = 0x129aa;
    0x000092ec ldr r0, [r1, 0x30]                                                |     r0 = *(0x129da);
    0x000092ee lsls r2, r0                                                       |     r2 <<= r0;
    0x000092f0 lsrs r2, r2, 2                                                    |     r2 >>= 2;
    0x000092f2 cmp r3, r2                                                        |     
    0x000092f4 it ge                                                             |     
                                                                                 |     if (r3 < r2) {
    0x000092f6 movge r3, r2                                                      |         r3 = r2;
                                                                                 |     }
    0x000092f8 cmp r3, 0                                                         |     
                                                                                 |     if (r3 <= 0) {
    0x000092fa ble.w 0x8ebc                                                      |         goto label_0;
                                                                                 |     }
    0x000092fe ldr r2, [r1, 0x64]                                                |     r2 = *((r1 + 0x64));
    0x00009300 cmp r2, 0                                                         |     
                                                                                 |     if (r2 == 0) {
    0x00009302 beq.w 0x9426                                                      |         goto label_35;
                                                                                 |     }
    0x00009306 strh.w r3, [r1, 0xe6]                                             |     *((r1 + 0xe6)) = r3;
    0x0000930a ldr r3, [r1, 0x74]                                                |     r3 = *((r1 + 0x74));
    0x0000930c orr r3, r3, 0x10                                                  |     r3 |= 0x10;
    0x00009310 str r3, [r1, 0x74]                                                |     *((r1 + 0x74)) = r3;
    0x00009312 b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_30:
    0x00009314 cmp.w sb, 0                                                       |     
                                                                                 |     if (sb == 0) {
    0x00009318 beq.w 0x8fba                                                      |         goto label_1;
                                                                                 |     }
    0x0000931c movs r2, 0                                                        |     r2 = 0;
    0x0000931e add r1, sp, 0x2c                                                  |     r1 += var_2ch;
    0x00009320 mov r0, sb                                                        |     r0 = sb;
    0x00009322 blx 0x34f8                                                        |     ext2fs_inode_bitmap_loc_set ();
    0x00009326 ldr r3, [pc, 0x398]                                               |     
    0x00009328 add r3, pc                                                        |     r3 = 0x129ee;
    0x0000932a strh.w r0, [r3, 0x17c]                                            |     *((r3 + 0x17c)) = r0;
    0x0000932e ldr r3, [sp, 0x2c]                                                |     r3 = var_2ch;
    0x00009330 ldrb r3, [r3]                                                     |     r3 = *(r3);
    0x00009332 cmp r3, 0                                                         |     
                                                                                 |     if (r3 == 0) {
    0x00009334 beq.w 0x8ebc                                                      |         goto label_0;
                                                                                 |     }
    0x00009338 ldr r2, [pc, 0x30c]                                               |     r2 = *(0x9648);
    0x0000933a mov r3, sb                                                        |     r3 = sb;
    0x0000933c movs r1, 1                                                        |     r1 = 1;
    0x0000933e adds r6, 1                                                        |     r6++;
    0x00009340 ldr.w r2, [r8, r2]                                                |     r2 = *((r8 + r2));
    0x00009344 ldr r0, [r2]                                                      |     r0 = *(0x9648);
    0x00009346 ldr r2, [pc, 0x37c]                                               |     
    0x00009348 add r2, pc                                                        |     r2 = 0x12a12;
    0x0000934a blx 0x3684                                                        |     ext2fs_write_inode ();
    0x0000934e b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_29:
    0x00009350 ldr r3, [pc, 0x374]                                               |     
    0x00009352 movs r2, 1                                                        |     r2 = 1;
    0x00009354 add r3, pc                                                        |     r3 = 0x12a20;
    0x00009356 str.w r2, [r3, 0x42c]                                             |     __asm ("str.w r2, [r3, 0x42c]");
    0x0000935a b 0x91c6                                                          |     goto label_4;
                                                                                 | label_31:
    0x0000935c cmp.w sb, 0                                                       |     
                                                                                 |     if (sb == 0) {
    0x00009360 beq.w 0x8fba                                                      |         goto label_1;
                                                                                 |     }
    0x00009364 movs r2, 0                                                        |     r2 = 0;
    0x00009366 add r1, sp, 0x2c                                                  |     r1 += var_2ch;
    0x00009368 mov r0, sb                                                        |     r0 = sb;
    0x0000936a blx 0x34f8                                                        |     ext2fs_inode_bitmap_loc_set ();
    0x0000936e ldr r3, [pc, 0x35c]                                               |     
    0x00009370 add r3, pc                                                        |     r3 = 0x12a42;
    0x00009372 str.w r0, [r3, 0x188]                                             |     __asm ("str.w r0, [r3, 0x188]");
    0x00009376 ldr r3, [sp, 0x2c]                                                |     r3 = var_2ch;
    0x00009378 ldrb r3, [r3]                                                     |     r3 = *(r3);
    0x0000937a cmp r3, 0                                                         |     
                                                                                 |     if (r3 == 0) {
    0x0000937c beq.w 0x8ebc                                                      |         goto label_0;
                                                                                 |     }
    0x00009380 ldr r2, [pc, 0x2c4]                                               |     r2 = *(0x9648);
    0x00009382 mov r3, sb                                                        |     r3 = sb;
    0x00009384 movs r1, 1                                                        |     r1 = 1;
    0x00009386 adds r6, 1                                                        |     r6++;
    0x00009388 ldr.w r2, [r8, r2]                                                |     r2 = *((r8 + r2));
    0x0000938c ldr r0, [r2]                                                      |     r0 = *(0x9648);
    0x0000938e ldr r2, [pc, 0x340]                                               |     
    0x00009390 add r2, pc                                                        |     r2 = 0x12a66;
    0x00009392 blx 0x3684                                                        |     ext2fs_write_inode ();
    0x00009396 b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_32:
    0x00009398 ldr r1, [pc, 0x338]                                               |     
    0x0000939a mov r0, sl                                                        |     r0 = sl;
    0x0000939c add r1, pc                                                        |     r1 = 0x12a74;
    0x0000939e blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
                                                                                 |     if (r0 == 0) {
    0x000093a2 cbnz r0, 0x93b6                                                   |         
    0x000093a4 ldr r2, [pc, 0x330]                                               |         
    0x000093a6 add r2, pc                                                        |         r2 = 0x12a82;
    0x000093a8 ldr.w r3, [r2, 0x178]                                             |         r3 = *(0x12bfa);
    0x000093ac orr r3, r3, 4                                                     |         r3 |= 4;
    0x000093b0 str.w r3, [r2, 0x178]                                             |         __asm ("str.w r3, [r2, 0x178]");
    0x000093b4 b 0x8ebc                                                          |         goto label_0;
                                                                                 |     }
    0x000093b6 ldr r1, [pc, 0x324]                                               |     
    0x000093b8 mov r0, sl                                                        |     r0 = sl;
    0x000093ba add r1, pc                                                        |     r1 = 0x12a9c;
    0x000093bc blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
    0x000093c0 mov r2, r0                                                        |     r2 = r0;
                                                                                 |     if (r0 == 0) {
    0x000093c2 cbnz r0, 0x93f4                                                   |         
    0x000093c4 cmp.w sb, 0                                                       |         
                                                                                 |         if (sb == 0) {
    0x000093c8 beq 0x9446                                                        |             goto label_36;
                                                                                 |         }
    0x000093ca mov r0, sb                                                        |         r0 = sb;
    0x000093cc add r1, sp, 0x2c                                                  |         r1 += var_2ch;
    0x000093ce blx 0x34f8                                                        |         ext2fs_inode_bitmap_loc_set ();
    0x000093d2 ldr r3, [pc, 0x30c]                                               |         
    0x000093d4 add r3, pc                                                        |         r3 = 0x12aba;
    0x000093d6 str.w r0, [r3, 0x430]                                             |         __asm ("str.w r0, [r3, 0x430]");
    0x000093da b 0x8ebc                                                          |         goto label_0;
                                                                                 | label_33:
    0x000093dc ldr r2, [pc, 0x268]                                               |         r2 = *(0x9648);
    0x000093de mov r3, sb                                                        |         r3 = sb;
    0x000093e0 movs r1, 1                                                        |         r1 = 1;
    0x000093e2 adds r6, 1                                                        |         r6++;
    0x000093e4 ldr.w r2, [r8, r2]                                                |         r2 = *((r8 + r2));
    0x000093e8 ldr r0, [r2]                                                      |         r0 = *(0x9648);
    0x000093ea ldr r2, [pc, 0x2f8]                                               |         
    0x000093ec add r2, pc                                                        |         r2 = 0x12ad6;
    0x000093ee blx 0x3684                                                        |         ext2fs_write_inode ();
    0x000093f2 b 0x8ebc                                                          |         goto label_0;
                                                                                 |     }
    0x000093f4 ldr r1, [pc, 0x2f0]                                               |     
    0x000093f6 mov r0, sl                                                        |     r0 = sl;
    0x000093f8 add r1, pc                                                        |     r1 = 0x12ae4;
    0x000093fa blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
    0x000093fe mov r2, r0                                                        |     r2 = r0;
    0x00009400 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x00009402 bne 0x94c4                                                        |         goto label_37;
                                                                                 |     }
    0x00009404 cmp.w sb, 0                                                       |     
                                                                                 |     if (sb == 0) {
    0x00009408 beq 0x94b6                                                        |         goto label_38;
                                                                                 |     }
    0x0000940a add r1, sp, 0x2c                                                  |     r1 += var_2ch;
    0x0000940c mov r0, sb                                                        |     r0 = sb;
    0x0000940e blx 0x34f8                                                        |     ext2fs_inode_bitmap_loc_set ();
    0x00009412 ldr r1, [pc, 0x2d8]                                               |     
    0x00009414 subs r2, r0, 0                                                    |     r2 = r0 - 0;
    0x00009416 it ne                                                             |     
                                                                                 |     if (r2 == r0) {
    0x00009418 movne r2, 1                                                       |         r2 = 1;
                                                                                 |     }
    0x0000941a add r1, pc                                                        |     r1 = 0x12b0c;
    0x0000941c ldr r3, [r1]                                                      |     r3 = *(0x12b0c);
    0x0000941e orr.w r3, r3, r2, lsl 1                                           |     r3 |= (r2 << 1);
    0x00009422 str r3, [r1]                                                      |     *(r1) = r3;
    0x00009424 b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_35:
    0x00009426 ldr r3, [pc, 0x220]                                               |     
    0x00009428 movs r2, 0x3b                                                     |     r2 = 0x3b;
    0x0000942a ldr r0, [pc, 0x2c4]                                               |     
    0x0000942c movs r1, 1                                                        |     r1 = 1;
    0x0000942e ldr.w r3, [r8, r3]                                                |     r3 = *((r8 + r3));
    0x00009432 add r0, pc                                                        |     r0 = 0x12b28;
    0x00009434 ldr r3, [r3]                                                      |     r3 = *(0x964a);
                                                                                 |     do {
    0x00009436 blx 0x3324                                                        |         strcat (r0, r1)
    0x0000943a mov r0, fp                                                        |         r0 = fp;
    0x0000943c blx 0x3098                                                        |         fcn_00003098 ();
    0x00009440 movs r0, 1                                                        |         r0 = 1;
    0x00009442 blx 0x34b0                                                        |         feof (r0);
                                                                                 | label_36:
    0x00009446 ldr r3, [pc, 0x2ac]                                               |         
    0x00009448 movs r2, 1                                                        |         r2 = 1;
    0x0000944a add r3, pc                                                        |         r3 = 0x12b44;
    0x0000944c str.w r2, [r3, 0x430]                                             |         __asm ("str.w r2, [r3, 0x430]");
    0x00009450 b 0x8ebc                                                          |         goto label_0;
                                                                                 | label_34:
    0x00009452 ldr r3, [pc, 0x1f4]                                               |         
    0x00009454 movs r2, 0x3d                                                     |         r2 = 0x3d;
    0x00009456 ldr r0, [pc, 0x2a0]                                               |         
    0x00009458 movs r1, 1                                                        |         r1 = 1;
    0x0000945a adds r6, 1                                                        |         r6++;
    0x0000945c ldr.w r3, [r8, r3]                                                |         r3 = *((r8 + r3));
    0x00009460 add r0, pc                                                        |         r0 = 0x12b5e;
    0x00009462 ldr r3, [r3]                                                      |         r3 = *(0x964a);
    0x00009464 blx 0x3324                                                        |         strcat (r0, r1)
    0x00009468 b 0x8ebc                                                          |         goto label_0;
                                                                                 | label_16:
    0x0000946a blx 0x31f4                                                        |         fcn_000031f4 ();
                                                                                 | label_15:
    0x0000946e ldr r3, [pc, 0x1d8]                                               |         
    0x00009470 movs r2, 0x4c                                                     |         r2 = 0x4c;
    0x00009472 ldr r0, [pc, 0x288]                                               |         
    0x00009474 movs r1, 1                                                        |         r1 = 1;
    0x00009476 ldr.w r3, [r8, r3]                                                |         r3 = *((r8 + r3));
    0x0000947a add r0, pc                                                        |         r0 = 0x12b7c;
    0x0000947c ldr r3, [r3]                                                      |         r3 = *(0x964a);
    0x0000947e b 0x9436                                                          |         
                                                                                 |     } while (1);
                                                                                 | label_12:
    0x00009480 ldr r3, [pc, 0x1c4]                                               |     r3 = *(0x9648);
    0x00009482 ldr.w r3, [r8, r3]                                                |     r3 = *((r8 + r3));
    0x00009486 ldr r0, [r3]                                                      |     r0 = *(0x9648);
    0x00009488 ldr r3, [sp, 8]                                                   |     r3 = var_8h;
    0x0000948a cbz r3, 0x94ae                                                    |     
                                                                                 |     while (1) {
    0x0000948c ldr r2, [pc, 0x270]                                               |         
    0x0000948e ldr r3, [sp, 8]                                                   |         r3 = var_8h;
    0x00009490 add r2, pc                                                        |         r2 = "uname";
    0x00009492 b 0x9184                                                          |         goto label_5;
                                                                                 | label_7:
    0x00009494 ldr r3, [pc, 0x1b0]                                               |         
    0x00009496 movs r2, 0x2b                                                     |         r2 = 0x2b;
    0x00009498 ldr r0, [pc, 0x268]                                               |         
    0x0000949a movs r1, 1                                                        |         r1 = 1;
    0x0000949c ldr.w r3, [r8, r3]                                                |         r3 = *((r8 + r3));
    0x000094a0 add r0, pc                                                        |         r0 = "Invalid filesystem option set: %s\n";
    0x000094a2 ldr r3, [r3]                                                      |         r3 = *(0x9648);
    0x000094a4 blx 0x3324                                                        |         strcat ("Invalid filesystem option set: %s\n", r1)
    0x000094a8 movs r0, 1                                                        |         r0 = 1;
    0x000094aa blx 0x34b0                                                        |         feof (r0);
    0x000094ae ldr r3, [pc, 0x258]                                               |         
    0x000094b0 add r3, pc                                                        |         r3 = 0x12bbe;
    0x000094b2 str r3, [sp, 8]                                                   |         var_8h = r3;
    0x000094b4 b 0x948c                                                          |         
                                                                                 |     }
                                                                                 | label_38:
    0x000094b6 ldr r2, [pc, 0x254]                                               |     
    0x000094b8 add r2, pc                                                        |     r2 = 0x12bca;
    0x000094ba ldr r3, [r2]                                                      |     r3 = *(0x12bca);
    0x000094bc orr r3, r3, 2                                                     |     r3 |= 2;
    0x000094c0 str r3, [r2]                                                      |     *(r2) = r3;
    0x000094c2 b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_37:
    0x000094c4 ldr r1, [pc, 0x248]                                               |     
    0x000094c6 mov r0, sl                                                        |     r0 = sl;
    0x000094c8 add r1, pc                                                        |     r1 = 0x12bdc;
    0x000094ca blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
    0x000094ce mov r2, r0                                                        |     r2 = r0;
                                                                                 |     if (r0 == 0) {
    0x000094d0 cbnz r0, 0x9512                                                   |         
    0x000094d2 cmp.w sb, 0                                                       |         
                                                                                 |         if (sb == 0) {
    0x000094d6 beq 0x9556                                                        |             goto label_39;
                                                                                 |         }
    0x000094d8 add r1, sp, 0x2c                                                  |         r1 += var_2ch;
    0x000094da ldr.w sl, [pc, 0x238]                                             |         sl = *(0x00009714);
    0x000094de strd r1, r0, [sp, 0x20]                                           |         __asm ("strd r1, r0, [var_20h]");
    0x000094e2 mov r0, sb                                                        |         r0 = sb;
    0x000094e4 blx 0x34f8                                                        |         ext2fs_inode_bitmap_loc_set ();
    0x000094e8 ldr r3, [sp, 0x2c]                                                |         r3 = var_2ch;
    0x000094ea add sl, pc                                                        |         sl += pc;
    0x000094ec str.w r0, [sl, 0x418]                                             |         __asm ("str.w r0, [sl, 0x418]");
    0x000094f0 ldrd r1, r2, [sp, 0x20]                                           |         __asm ("ldrd r1, r2, [var_20h]");
    0x000094f4 ldrb r0, [r3]                                                     |         r0 = *(r3);
    0x000094f6 cmp r0, 0x3a                                                      |         
                                                                                 |         if (r0 == 0x3a) {
    0x000094f8 beq 0x9528                                                        |             goto label_40;
                                                                                 |         }
    0x000094fa ldr r2, [pc, 0x14c]                                               |         r2 = *(0x964a);
    0x000094fc mov r3, sb                                                        |         r3 = sb;
    0x000094fe movs r1, 1                                                        |         r1 = 1;
    0x00009500 adds r6, 1                                                        |         r6++;
    0x00009502 ldr.w r2, [r8, r2]                                                |         r2 = *((r8 + r2));
    0x00009506 ldr r0, [r2]                                                      |         r0 = *(0x964a);
    0x00009508 ldr r2, [pc, 0x20c]                                               |         
    0x0000950a add r2, pc                                                        |         r2 = 0x12c26;
    0x0000950c blx 0x3684                                                        |         ext2fs_write_inode ();
    0x00009510 b 0x8ebc                                                          |         goto label_0;
                                                                                 |     }
    0x00009512 ldr r1, [pc, 0x208]                                               |     
    0x00009514 mov r0, sl                                                        |     r0 = sl;
    0x00009516 add r1, pc                                                        |     r1 = 0x12c38;
    0x00009518 blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
                                                                                 |     if (r0 != 0) {
    0x0000951c cbnz r0, 0x956e                                                   |         goto label_41;
                                                                                 |     }
    0x0000951e ldr r3, [pc, 0x200]                                               |     
    0x00009520 movs r2, 1                                                        |     r2 = 1;
    0x00009522 add r3, pc                                                        |     r3 = 0x12c48;
    0x00009524 str r2, [r3, 0x20]                                                |     *((r3 + 0x20)) = r2;
    0x00009526 b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_40:
    0x00009528 adds r0, r3, 1                                                    |     r0 = r3 + 1;
    0x0000952a str r0, [sp, 0x2c]                                                |     var_2ch = r0;
    0x0000952c blx 0x34f8                                                        |     ext2fs_inode_bitmap_loc_set ();
    0x00009530 ldr r3, [sp, 0x2c]                                                |     r3 = var_2ch;
    0x00009532 str.w r0, [sl, 0x41c]                                             |     __asm ("str.w r0, [sl, 0x41c]");
    0x00009536 ldrb r3, [r3]                                                     |     r3 = *(r3);
    0x00009538 cmp r3, 0                                                         |     
                                                                                 |     if (r3 == 0) {
    0x0000953a beq.w 0x8ebc                                                      |         goto label_0;
                                                                                 |     }
    0x0000953e ldr r2, [pc, 0x108]                                               |     r2 = *(0x964a);
    0x00009540 mov r3, sb                                                        |     r3 = sb;
    0x00009542 movs r1, 1                                                        |     r1 = 1;
    0x00009544 adds r6, 1                                                        |     r6++;
    0x00009546 ldr.w r2, [r8, r2]                                                |     r2 = *((r8 + r2));
    0x0000954a ldr r0, [r2]                                                      |     r0 = *(0x964a);
    0x0000954c ldr r2, [pc, 0x1d4]                                               |     
    0x0000954e add r2, pc                                                        |     r2 = 0x12c76;
    0x00009550 blx 0x3684                                                        |     ext2fs_write_inode ();
    0x00009554 b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_39:
    0x00009556 ldr.w sb, [pc, 0x1d0]                                             |     sb = *(0x00009728);
    0x0000955a blx 0x3064                                                        |     fcn_00003064 ();
    0x0000955e add sb, pc                                                        |     sb += pc;
    0x00009560 str.w r0, [sb, 0x418]                                             |     __asm ("str.w r0, [sb, 0x418]");
    0x00009564 blx 0x35a0                                                        |     memset (r0, r1, r2);
    0x00009568 str.w r0, [sb, 0x41c]                                             |     __asm ("str.w r0, [sb, 0x41c]");
    0x0000956c b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_41:
    0x0000956e ldr r1, [pc, 0x1bc]                                               |     
    0x00009570 mov r0, sl                                                        |     r0 = sl;
    0x00009572 add r1, pc                                                        |     r1 = 0x12ca4;
    0x00009574 blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
    0x00009578 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x0000957a bne.w 0x8f66                                                      |         goto label_6;
                                                                                 |     }
    0x0000957e ldr r2, [pc, 0x1b0]                                               |     
    0x00009580 add r2, pc                                                        |     r2 = 0x12cb6;
    0x00009582 str r0, [r2, 0x20]                                                |     *((r2 + 0x20)) = r0;
    0x00009584 b 0x8ebc                                                          |     goto label_0;
                                                                                 | label_21:
    0x00009586 ldr r1, [pc, 0x1ac]                                               |     
    0x00009588 mov r0, sl                                                        |     r0 = sl;
    0x0000958a add r1, pc                                                        |     r1 = 0x12cc4;
    0x0000958c blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
                                                                                 |     if (r0 == 0) {
    0x00009590 cbnz r0, 0x95ae                                                   |         
    0x00009592 ldr r3, [pc, 0x1a4]                                               |         
    0x00009594 movs r2, 1                                                        |         r2 = 1;
    0x00009596 add r3, pc                                                        |         r3 = 0x12cd4;
    0x00009598 str.w r2, [r3, 0x434]                                             |         __asm ("str.w r2, [r3, 0x434]");
    0x0000959c b 0x8ebc                                                          |         goto label_0;
                                                                                 | label_22:
    0x0000959e ldr r3, [pc, 0x19c]                                               |         
    0x000095a0 ldr r2, [pc, 0x19c]                                               |         
    0x000095a2 add r3, pc                                                        |         r3 = 0x12ce4;
    0x000095a4 ldr r0, [r3]                                                      |         r0 = *(0x12ce4);
    0x000095a6 add r2, pc                                                        |         r2 = 0x12cea;
    0x000095a8 blx 0x32cc                                                        |         fcn_000032cc ();
    0x000095ac b 0x8fba                                                          |         goto label_1;
                                                                                 |     }
    0x000095ae ldr r1, [pc, 0x194]                                               |     
    0x000095b0 mov r0, sl                                                        |     r0 = sl;
    0x000095b2 add r1, pc                                                        |     r1 = 0x12cfc;
    0x000095b4 blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
                                                                                 |     if (r0 == 0) {
    0x000095b8 cbnz r0, 0x95dc                                                   |         
    0x000095ba cmp.w sb, 0                                                       |         
                                                                                 |         if (sb == 0) {
    0x000095be beq 0x9610                                                        |             goto label_42;
                                                                                 |         }
    0x000095c0 mov r0, sb                                                        |         r0 = sb;
    0x000095c2 blx 0x3558                                                        |         r0 = ext2fs_expand_dir ();
    0x000095c6 cmp r0, 0                                                         |         
                                                                                 |         if (r0 < 0) {
    0x000095c8 blt 0x95f8                                                        |             goto label_43;
                                                                                 |         }
    0x000095ca ldr r3, [pc, 0x17c]                                               |         
    0x000095cc add r3, pc                                                        |         r3 = 0x12d1a;
    0x000095ce ldr r2, [r3, 0x78]                                                |         r2 = *(0x12d92);
    0x000095d0 strh.w r0, [r3, 0x294]                                            |         *((r3 + 0x294)) = r0;
    0x000095d4 orr r2, r2, 0x20000                                               |         r2 |= 0x20000;
    0x000095d8 str r2, [r3, 0x78]                                                |         *((r3 + 0x78)) = r2;
    0x000095da b 0x8ebc                                                          |         goto label_0;
                                                                                 |     }
    0x000095dc ldr r1, [pc, 0x16c]                                               |     
    0x000095de mov r0, sl                                                        |     r0 = sl;
    0x000095e0 add r1, pc                                                        |     r1 = 0x12d30;
    0x000095e2 blx 0x2f98                                                        |     r0 = fcn_00002f98 ();
    0x000095e6 cmp r0, 0                                                         |     
                                                                                 |     if (r0 != 0) {
    0x000095e8 bne.w 0x8fba                                                      |         goto label_1;
                                                                                 |     }
    0x000095ec cmp.w sb, 0                                                       |     
                                                                                 |     if (sb != 0) {
    0x000095f0 beq 0x9610                                                        |         
    0x000095f2 str.w sb, [sp, 0xc]                                               |         __asm ("str.w sb, [var_ch]");
    0x000095f6 b 0x8ebc                                                          |         goto label_0;
                                                                                 | label_43:
    0x000095f8 ldr r2, [pc, 0x4c]                                                |         r2 = *(0x9648);
    0x000095fa mov r3, sb                                                        |         r3 = sb;
    0x000095fc movs r1, 1                                                        |         r1 = 1;
    0x000095fe adds r6, 1                                                        |         r6++;
    0x00009600 ldr.w r2, [r8, r2]                                                |         r2 = *((r8 + r2));
    0x00009604 ldr r0, [r2]                                                      |         r0 = *(0x9648);
    0x00009606 ldr r2, [pc, 0x148]                                               |         
    0x00009608 add r2, pc                                                        |         r2 = 0x12d5e;
    0x0000960a blx 0x3684                                                        |         ext2fs_write_inode ();
    0x0000960e b 0x8ebc                                                          |         goto label_0;
                                                                                 |     }
                                                                                 | label_42:
    0x00009610 adds r6, 1                                                        |     r6++;
    0x00009612 b 0x8ebc                                                          |     goto label_0;
                                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/mkfs.ext3 @ 0x9b04 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00009b04 ()                  | void fcn_00009b04 (int16_t arg1) {
                                             |     size_t size;
                                             |     int16_t var_4h;
                                             |     int16_t var_ch;
                                             |     int16_t var_10ch;
                                             |     r0 = arg1;
    0x00009b04 push {r4, r5, r6, lr}         |     
    0x00009b06 sub sp, 0x110                 |     
    0x00009b08 ldr r4, [pc, 0xec]            |     
    0x00009b0a mov r6, r0                    |     r6 = r0;
    0x00009b0c ldr r1, [pc, 0xec]            |     
    0x00009b0e ldr r2, [pc, 0xf0]            |     r2 = *(0x9c02);
    0x00009b10 add r4, pc                    |     
    0x00009b12 str r4, [sp]                  |     *(sp) = r4;
    0x00009b14 mov r5, r4                    |     r5 = r4;
    0x00009b16 add r1, pc                    |     r1 = 0x13716;
    0x00009b18 ldr r3, [pc, 0xe8]            |     r3 = *(0x9c04);
    0x00009b1a ldr r2, [r1, r2]              |     
    0x00009b1c ldr r2, [r2]                  |     r2 = *(0x13716);
    0x00009b1e str r2, [sp, 0x10c]           |     var_10ch = r2;
    0x00009b20 mov.w r2, 0                   |     r2 = 0;
    0x00009b24 str r0, [sp, 4]               |     var_4h = r0;
    0x00009b26 ldr r4, [r4, r3]              |     r4 = *(0x1370c);
    0x00009b28 ldr r0, [r4]                  |     r0 = *(0x1370c);
    0x00009b2a blx 0x3040                    |     fcn_00003040 ();
    0x00009b2e ldr r3, [pc, 0xd8]            |     r3 = *(0x9c0a);
    0x00009b30 ldr r3, [r5, r3]              |     r3 = *((r5 + r3));
    0x00009b32 ldr r0, [r3]                  |     r0 = *(0x9c0a);
    0x00009b34 blx 0x3040                    |     fcn_00003040 ();
    0x00009b38 cmp r6, 0                     |     
                                             |     if (r6 <= 0) {
    0x00009b3a ble 0x9bcc                    |         goto label_2;
                                             |     }
    0x00009b3c ldr r0, [pc, 0xcc]            |     
    0x00009b3e add r0, pc                    |     r0 = 0x1374e;
    0x00009b40 blx 0x3070                    |     r0 = fcn_00003070 ();
                                             |     if (r0 != 0) {
    0x00009b44 cbnz r0, 0x9ba4               |         goto label_3;
                                             |     }
    0x00009b46 ldr r1, [pc, 0xc8]            |     
    0x00009b48 movs r0, 0xe                  |     r0 = 0xe;
    0x00009b4a add r1, pc                    |     r1 = 0x13760;
    0x00009b4c blx 0x3128                    |     fcn_00003128 ();
    0x00009b4e invalid                       |     
    0x00009b52 movs r0, 1                    |     r0 = 1;
    0x00009b54 ldr r1, [pc, 0xbc]            |     
    0x00009b56 mov r2, r4                    |     r2 = r4;
    0x00009b58 add r1, pc                    |     r1 = 0x13770;
    0x00009b5a blx 0x3620                    |     fcn_00003620 ();
    0x00009b5e mov r0, r4                    |     r0 = r4;
    0x00009b60 blx 0x320c                    |     fcn_0000320c ();
    0x00009b62 invalid                       |     
                                             |     do {
    0x00009b64 movs r2, 0                    |         r2 = 0;
    0x00009b66 ldr r3, [pc, 0xb0]            |         r3 = *(0x9c1a);
    0x00009b68 strb.w r2, [sp, 0xc]          |         var_ch = r2;
    0x00009b6c add r4, sp, 0xc               |         r4 += var_ch;
    0x00009b6e ldr r2, [sp]                  |         r2 = *(sp);
    0x00009b70 mov.w r1, 0x100               |         r1 = 0x100;
    0x00009b74 mov r0, r4                    |         r0 = r4;
    0x00009b76 ldr r3, [r2, r3]              |         r3 = *((r2 + r3));
    0x00009b78 ldr r2, [r3]                  |         r2 = *(0x9c1a);
    0x00009b7a blx 0x30bc                    |         r0 = fcn_000030bc ();
                                             |         if (r0 != 0) {
    0x00009b7e cbz r0, 0x9b90                |             
    0x00009b80 ldrb.w r4, [sp, 0xc]          |             r4 = var_ch;
    0x00009b84 ldr r0, [pc, 0x94]            |             
    0x00009b86 mov r1, r4                    |             r1 = r4;
    0x00009b88 add r0, pc                    |             r0 = 0x137a8;
    0x00009b8a blx 0x3534                    |             r0 = ext2fs_bg_free_blocks_count_set ();
                                             |             if (r0 == 0) {
    0x00009b8e cbz r0, 0x9bdc                |                 goto label_4;
                                             |             }
                                             |         }
                                             | label_0:
    0x00009b90 ldr r2, [sp]                  |         r2 = *(sp);
    0x00009b92 movs r0, 0xa                  |         r0 = 0xa;
    0x00009b94 ldr r3, [pc, 0x6c]            |         r3 = *(0x9c04);
    0x00009b96 ldr r3, [r2, r3]              |         r3 = *((r2 + r3));
    0x00009b98 ldr r1, [r3]                  |         r1 = *(0x9c04);
    0x00009b9a blx 0x3834                    |         qsort ();
    0x00009b9e movs r0, 1                    |         r0 = 1;
    0x00009ba0 blx 0x34b0                    |         feof (r0);
    0x00009ba2 invalid                       |         
                                             | label_3:
    0x00009ba4 movs r1, 1                    |         r1 = 1;
    0x00009ba6 movs r0, 0xe                  |         r0 = 0xe;
    0x00009ba8 blx 0x3128                    |         fcn_00003128 ();
    0x00009bac ldr r0, [pc, 0x70]            |         
    0x00009bae add r0, pc                    |         r0 = 0x137d2;
    0x00009bb0 blx 0x341c                    |         fcn_0000341c ();
                                             | label_1:
    0x00009bb4 ldr r2, [pc, 0x6c]            |         
    0x00009bb6 ldr r3, [pc, 0x48]            |         r3 = *(0x9c02);
    0x00009bb8 add r2, pc                    |         r2 = 0x137e0;
    0x00009bba ldr r3, [r2, r3]              |         r3 = *(0x137e0);
    0x00009bbc ldr r2, [r3]                  |         r2 = *(0x137e0);
    0x00009bbe ldr r3, [sp, 0x10c]           |         r3 = var_10ch;
    0x00009bc0 eors r2, r3                   |         r2 ^= r3;
    0x00009bc2 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x00009bc6 bne 0x9bf4                    |             goto label_5;
                                             |         }
    0x00009bc8 add sp, 0x110                 |         
    0x00009bca pop {r4, r5, r6, pc}          |         
                                             | label_2:
    0x00009bcc ldr r0, [pc, 0x58]            |         
    0x00009bce movs r2, 0x16                 |         r2 = 0x16;
    0x00009bd0 ldr r3, [r4]                  |         r3 = *(r4);
    0x00009bd2 movs r1, 1                    |         r1 = 1;
    0x00009bd4 add r0, pc                    |         r0 = 0x13800;
    0x00009bd6 blx 0x3324                    |         strcat (r0, r1)
    0x00009bda b 0x9b64                      |         
                                             |     } while (1);
                                             | label_4:
    0x00009bdc ldr r0, [pc, 0x4c]            |     
    0x00009bde mov r1, r4                    |     r1 = r4;
    0x00009be0 add r0, pc                    |     r0 = 0x13810;
    0x00009be2 blx 0x3534                    |     r0 = ext2fs_bg_free_blocks_count_set ();
    0x00009be6 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00009be8 beq 0x9b90                    |         goto label_0;
                                             |     }
    0x00009bea movs r1, 1                    |     r1 = 1;
    0x00009bec movs r0, 0xe                  |     r0 = 0xe;
    0x00009bee blx 0x3128                    |     fcn_00003128 ();
    0x00009bf2 b 0x9bb4                      |     goto label_1;
                                             | label_5:
    0x00009bf4 blx 0x31f4                    |     fcn_000031f4 ();
    0x00009bf8 b 0x9da4                      |     return void (*0x9da4)() ();
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/mkfs.ext3 @ 0x9c30 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00009c30 ()                              | void fcn_00009c30 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                         |     int16_t var_4h_2;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
    0x00009c30 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x00009c34 mov r6, r2                                |     r6 = r2;
    0x00009c36 ldr r2, [pc, 0xc0]                        |     
    0x00009c38 sub sp, 8                                 |     
    0x00009c3a mov r8, r1                                |     r8 = r1;
    0x00009c3c mov r1, sp                                |     r1 = sp;
    0x00009c3e ldr r3, [pc, 0xbc]                        |     r3 = *(0x9cfe);
    0x00009c40 mov r7, r0                                |     r7 = r0;
    0x00009c42 add r2, pc                                |     r2 = 0x13940;
    0x00009c44 ldr r4, [pc, 0xb8]                        |     
    0x00009c46 ldr r3, [r2, r3]                          |     
    0x00009c48 add r4, pc                                |     r4 = 0x1394c;
    0x00009c4a ldr r3, [r3]                              |     r3 = *(0x13940);
    0x00009c4c str r3, [sp, 4]                           |     var_4h = r3;
    0x00009c4e mov.w r3, 0                               |     r3 = 0;
    0x00009c50 lsls r0, r0, 0xc                          |     r0 <<= 0xc;
    0x00009c52 blx 0x3314                                |     r0 = fcn_00003314 ();
                                                         |     if (r0 != 0) {
    0x00009c56 cbnz r0, 0x9ca4                           |         goto label_1;
                                                         |     }
    0x00009c58 ldr r5, [sp]                              |     r5 = *(sp);
    0x00009c5a lsls r2, r5, 0x1f                         |     r2 = r5 << 0x1f;
                                                         |     if (r2 < r5) {
    0x00009c5c bmi 0x9c7c                                |         goto label_2;
                                                         |     }
    0x00009c5e lsls r3, r5, 0x1b                         |     r3 = r5 << 0x1b;
                                                         |     if (r3 < r5) {
    0x00009c60 bmi 0x9cb6                                |         goto label_3;
                                                         |     }
                                                         |     do {
                                                         | label_0:
    0x00009c62 ldr r2, [pc, 0xa0]                        |         
    0x00009c64 ldr r3, [pc, 0x94]                        |         r3 = *(0x9cfc);
    0x00009c66 add r2, pc                                |         r2 = 0x13970;
    0x00009c68 ldr r3, [r2, r3]                          |         r3 = *(0x13970);
    0x00009c6a ldr r2, [r3]                              |         r2 = *(0x13970);
    0x00009c6c ldr r3, [sp, 4]                           |         r3 = var_4h;
    0x00009c6e eors r2, r3                               |         r2 ^= r3;
    0x00009c70 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00009c74 bne 0x9cde                                |             goto label_4;
                                                         |         }
    0x00009c76 add sp, 8                                 |         
    0x00009c78 pop.w {r4, r5, r6, r7, r8, pc}            |         
    0x00009c7a strh r0, [r6, 0xe]                        |         *((r6 + 0xe)) = r0;
                                                         | label_2:
    0x00009c7c ldr r2, [pc, 0x88]                        |         r2 = *(0x9d08);
    0x00009c7e mov r3, r7                                |         r3 = r7;
    0x00009c80 movs r1, 1                                |         r1 = 1;
    0x00009c82 ldr r4, [r4, r2]                          |         r4 = *((r4 + r2));
    0x00009c84 ldr r2, [pc, 0x84]                        |         
    0x00009c86 ldr r0, [r4]                              |         r0 = *(r4);
    0x00009c88 add r2, pc                                |         r2 = 0x13998;
    0x00009c8a blx 0x3684                                |         ext2fs_write_inode ();
    0x00009c8e cmp.w r8, 1                               |         
                                                         |         if (r8 <= 1) {
    0x00009c92 ble 0x9ce2                                |             goto label_5;
                                                         |         }
    0x00009c94 ldr r0, [pc, 0x78]                        |         
    0x00009c96 movs r2, 0x34                             |         r2 = 0x34;
    0x00009c98 ldr r3, [r4]                              |         r3 = *(r4);
    0x00009c9a movs r1, 1                                |         r1 = 1;
    0x00009c9c add r0, pc                                |         r0 = 0x139b0;
    0x00009c9e blx 0x3324                                |         strcat (r0, r1)
    0x00009ca2 b 0x9c62                                  |         
                                                         |     } while (1);
                                                         | label_1:
    0x00009ca4 mov r1, r0                                |     r1 = r0;
    0x00009ca6 ldr r2, [pc, 0x6c]                        |     
    0x00009ca8 ldr r0, [pc, 0x6c]                        |     
    0x00009caa mov r3, r7                                |     r3 = r7;
    0x00009cac add r2, pc                                |     r2 = 0x139c6;
    0x00009cae add r0, pc                                |     r0 = 0x139ca;
    0x00009cb0 blx 0x32cc                                |     fcn_000032cc ();
    0x00009cb4 b 0x9c62                                  |     goto label_0;
                                                         | label_3:
    0x00009cb6 ldr r2, [pc, 0x50]                        |     r2 = *(0x9d0a);
    0x00009cb8 mov r3, r7                                |     r3 = r7;
    0x00009cba movs r1, 1                                |     r1 = 1;
    0x00009cbc ldr r4, [r4, r2]                          |     r4 = *((r4 + r2));
    0x00009cbe ldr r2, [pc, 0x5c]                        |     
    0x00009cc0 ldr r0, [r4]                              |     r0 = *(r4);
    0x00009cc2 add r2, pc                                |     r2 = 0x139e4;
    0x00009cc4 blx 0x3684                                |     ext2fs_write_inode ();
    0x00009cc8 cmp.w r8, 1                               |     
                                                         |     if (r8 > 1) {
    0x00009ccc ble 0x9ce2                                |         
    0x00009cce ldr r0, [pc, 0x50]                        |         
    0x00009cd0 movs r2, 0x16                             |         r2 = 0x16;
    0x00009cd2 ldr r3, [r4]                              |         r3 = *(r4);
    0x00009cd4 movs r1, 1                                |         r1 = 1;
    0x00009cd6 add r0, pc                                |         r0 = 0x139fc;
    0x00009cd8 blx 0x3324                                |         strcat (r0, r1)
    0x00009cdc b 0x9c62                                  |         goto label_0;
                                                         | label_4:
    0x00009cde blx 0x31f4                                |         fcn_000031f4 ();
                                                         |     }
                                                         | label_5:
    0x00009ce2 ldr r2, [pc, 0x40]                        |     
    0x00009ce4 mov r3, r6                                |     r3 = r6;
    0x00009ce6 ldr r0, [r4]                              |     r0 = *(r4);
    0x00009ce8 movs r1, 1                                |     r1 = 1;
    0x00009cea add r2, pc                                |     r2 = 0x13a14;
    0x00009cec blx 0x3684                                |     ext2fs_write_inode ();
    0x00009cf0 movs r0, 1                                |     r0 = 1;
    0x00009cf2 blx 0x34b0                                |     feof (r0);
    0x00009cf6 nop                                       |     
    0x00009cf8 svc 0xa2                                  |     __asm ("svc 0xa2");
    0x00009cfa movs r1, r0                               |     r1 = r0;
    0x00009cfc lsls r4, r5, 0xe                          |     r4 = r5 << 0xe;
    0x00009cfe movs r0, r0                               |     
    0x00009d00 svc 0x9c                                  |     __asm ("svc 0x9c");
    0x00009d02 movs r1, r0                               |     r1 = r0;
    0x00009d04 svc 0x7e                                  |     __asm ("svc 0x7e");
    0x00009d06 movs r1, r0                               |     r1 = r0;
    0x00009d08 lsls r0, r0, 0xf                          |     r0 <<= 0xf;
    0x00009d0a movs r0, r0                               |     
    0x00009d0c push {r4, r5, r7, lr}                     |     
    0x00009d0e movs r0, r0                               |     
    0x00009d10 push {r2, r3, r5, r7, lr}                 |     
    0x00009d12 movs r0, r0                               |     
    0x00009d14 push {r3, r6, lr}                         |     
    0x00009d16 movs r0, r0                               |     
    0x00009d18 push {r1, r4, r5, r6, lr}                 |     
    0x00009d1a movs r0, r0                               |     
    0x00009d1c push {r1, r3, r4, r6, r7, lr}             |     
    0x00009d1e movs r0, r0                               |     
    0x00009d20 push {r1, r2, r3, r5, r6, r7, lr}         |     
    0x00009d22 movs r0, r0                               |     
    0x00009d24 push {r1, r2, r4, r7, lr}                 |     
    0x00009d26 movs r0, r0                               |     
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/mkfs.ext3 @ 0x9d28 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00009d28 ()                                      | void fcn_00009d28 (int16_t arg1) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     r0 = arg1;
    0x00009d28 blmi 0x1a9c6d4                                    |     __asm ("blmi 0x1a9c6d4");
    0x00009d2c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00009d30 sub sp, 0x14                                      |     
    0x00009d32 add r2, pc                                        |     r2 += pc;
    0x00009d34 ldr.w r8, [pc, 0x1a0]                             |     r8 = *(0x00009ed8);
    0x00009d38 mov r5, r0                                        |     r5 = r0;
    0x00009d3a ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00009d3c add r8, pc                                        |     r8 += pc;
    0x00009d3e ldr r3, [r3]                                      |     r3 = *(r3);
    0x00009d40 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00009d42 mov.w r3, 0                                       |     r3 = 0;
    0x00009d46 blx 0x3504                                        |     r0 = e2p_os2string ();
    0x00009d4a adds r4, r0, 1                                    |     r4 = r0 + 1;
    0x00009d4c mov r0, r4                                        |     r0 = r4;
    0x00009d4e blx 0x3450                                        |     strerror (r0);
    0x00009d52 str r0, [sp, 4]                                   |     var_4h = r0;
    0x00009d54 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00009d56 beq.w 0x9e90                                      |         goto label_3;
                                                                 |     }
    0x00009d5a mov r2, r4                                        |     r2 = r4;
    0x00009d5c mov r1, r5                                        |     r1 = r5;
    0x00009d5e blx 0x30e0                                        |     fcn_000030e0 ();
    0x00009d62 ldr.w sl, [sp, 4]                                 |     sl = var_4h;
    0x00009d66 movs r6, 0                                        |     r6 = 0;
    0x00009d68 ldr r7, [pc, 0x170]                               |     
    0x00009d6a ldr.w sb, [pc, 0x174]                             |     
    0x00009d6e ldrb.w r2, [sl]                                   |     r2 = *(sl);
    0x00009d72 ldr.w fp, [pc, 0x170]                             |     
    0x00009d76 add r7, pc                                        |     r7 = 0x13c56;
    0x00009d78 add sb, pc                                        |     sb = 0x13c5e;
    0x00009d7a add fp, pc                                        |     fp = 0x13c64;
                                                                 |     if (r2 == 0) {
    0x00009d7c cbz r2, 0x9de6                                    |         goto label_4;
                                                                 |     }
                                                                 |     do {
    0x00009d7e movs r1, 0x2c                                     |         r1 = 0x2c;
    0x00009d80 mov r0, sl                                        |         r0 = sl;
    0x00009d82 blx 0x3534                                        |         r0 = ext2fs_bg_free_blocks_count_set ();
    0x00009d86 mov r4, r0                                        |         r4 = r0;
    0x00009d88 str r0, [sp, 8]                                   |         var_8h = r0;
                                                                 |         if (r0 != 0) {
    0x00009d8a cbz r0, 0x9d94                                    |             
    0x00009d8c movs r2, 0                                        |             r2 = 0;
    0x00009d8e strb r2, [r0]                                     |             *(r0) = r2;
    0x00009d90 ldr r4, [sp, 8]                                   |             r4 = var_8h;
    0x00009d92 adds r4, 1                                        |             r4++;
                                                                 |         }
    0x00009d94 movs r1, 0x3d                                     |         r1 = 0x3d;
    0x00009d96 mov r0, sl                                        |         r0 = sl;
    0x00009d98 blx 0x3534                                        |         r0 = ext2fs_bg_free_blocks_count_set ();
    0x00009d9c mov r5, r0                                        |         r5 = r0;
                                                                 |         if (r0 != 0) {
    0x00009d9e cbz r0, 0x9da6                                    |             
    0x00009da0 movs r2, 0                                        |             r2 = 0;
    0x00009da2 invalid                                           |             
    0x00009da4 cmp r3, 1                                         |             
                                                                 |         }
    0x00009da6 mov r1, r7                                        |         r1 = r7;
    0x00009da8 mov r0, sl                                        |         r0 = sl;
    0x00009daa blx 0x2f98                                        |         r0 = fcn_00002f98 ();
    0x00009dae mov r2, r0                                        |         r2 = r0;
    0x00009db0 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00009db2 beq 0x9e26                                        |             goto label_5;
                                                                 |         }
    0x00009db4 mov r1, sb                                        |         r1 = sb;
    0x00009db6 mov r0, sl                                        |         r0 = sl;
    0x00009db8 blx 0x2f98                                        |         r0 = fcn_00002f98 ();
                                                                 |         if (r0 != 0) {
    0x00009dbc cbnz r0, 0x9e0a                                   |             goto label_6;
                                                                 |         }
                                                                 |         if (r5 != 0) {
    0x00009dbe cbz r5, 0x9dd8                                    |             
    0x00009dc0 mov r2, r0                                        |             r2 = r0;
    0x00009dc2 add r1, sp, 8                                     |             r1 += var_8h;
    0x00009dc4 mov r0, r5                                        |             r0 = r5;
    0x00009dc6 blx 0x34f8                                        |             ext2fs_inode_bitmap_loc_set ();
    0x00009dca ldr r3, [pc, 0x11c]                               |             r3 = *(0x9eea);
                                                                 | label_1:
    0x00009dcc ldr.w r3, [r8, r3]                                |             r3 = *((r8 + r3));
    0x00009dd0 str r0, [r3]                                      |             *(r3) = r0;
    0x00009dd2 ldr r3, [sp, 8]                                   |             r3 = var_8h;
    0x00009dd4 ldrb r3, [r3]                                     |             r3 = *(r3);
                                                                 |             if (r3 == 0) {
    0x00009dd6 cbz r3, 0x9dda                                    |                 goto label_2;
                                                                 |             }
                                                                 |         }
                                                                 | label_0:
    0x00009dd8 adds r6, 1                                        |         r6++;
                                                                 |         if (r4 == 0) {
                                                                 | label_2:
    0x00009dda cbz r4, 0x9de6                                    |             goto label_4;
                                                                 |         }
    0x00009ddc mov sl, r4                                        |         sl = r4;
    0x00009dde ldrb.w r2, [sl]                                   |         r2 = *(sl);
    0x00009de2 cmp r2, 0                                         |         
    0x00009de4 bne 0x9d7e                                        |         
                                                                 |     } while (r2 != 0);
                                                                 | label_4:
    0x00009de6 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00009de8 bne 0x9eae                                        |         goto label_7;
                                                                 |     }
    0x00009dea ldr r2, [pc, 0x100]                               |     
    0x00009dec ldr r3, [pc, 0xe4]                                |     r3 = *(0x9ed4);
    0x00009dee add r2, pc                                        |     r2 = 0x13ce0;
    0x00009df0 ldr r3, [r2, r3]                                  |     r3 = *(0x13ce0);
    0x00009df2 ldr r2, [r3]                                      |     r2 = *(0x13ce0);
    0x00009df4 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00009df6 eors r2, r3                                       |     r2 ^= r3;
    0x00009df8 mov.w r3, 0                                       |     r3 = 0;
    0x00009dfa lsls r0, r0, 0xc                                  |     r0 <<= 0xc;
                                                                 |     if (r0 != r0) {
    0x00009dfc bne 0x9eaa                                        |         goto label_8;
                                                                 |     }
    0x00009dfe ldr r0, [sp, 4]                                   |     r0 = var_4h;
    0x00009e00 add sp, 0x14                                      |     
    0x00009e02 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x00009e06 b.w 0x3094                                        |     void (*0x3094)() ();
                                                                 |     if (r5 != 0) {
    0x00009e08 cbnz r5, 0x9e1c                                   |         goto label_9;
                                                                 |     }
                                                                 | label_6:
    0x00009e0a mov r1, fp                                        |     r1 = fp;
    0x00009e0c mov r0, sl                                        |     r0 = sl;
    0x00009e0e blx 0x2f98                                        |     r0 = fcn_00002f98 ();
                                                                 |     if (r0 != 0) {
    0x00009e12 cbnz r0, 0x9e52                                   |         goto label_10;
                                                                 |     }
    0x00009e14 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00009e16 beq 0x9dd8                                        |         goto label_0;
                                                                 |     }
    0x00009e18 mov r2, r0                                        |     r2 = r0;
    0x00009e1a add r1, sp, 8                                     |     r1 += var_8h;
                                                                 | label_9:
    0x00009e1c mov r0, r5                                        |     r0 = r5;
    0x00009e1e blx 0x34f8                                        |     ext2fs_inode_bitmap_loc_set ();
    0x00009e22 ldr r3, [pc, 0xcc]                                |     r3 = *(0x9ef2);
    0x00009e24 b 0x9dcc                                          |     goto label_1;
                                                                 | label_5:
    0x00009e26 mov r1, r5                                        |     r1 = r5;
    0x00009e28 blx 0x3434                                        |     fcn_00003434 ();
    0x00009e2c ldr r3, [pc, 0xc4]                                |     r3 = *(0x9ef4);
    0x00009e2e ldr.w r3, [r8, r3]                                |     r3 = *((r8 + r3));
    0x00009e32 str r0, [r3]                                      |     *(r3) = r0;
    0x00009e34 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00009e36 bne 0x9dda                                        |         goto label_2;
                                                                 |     }
    0x00009e38 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00009e3a beq 0x9dd8                                        |         goto label_0;
                                                                 |     }
    0x00009e3c ldr r2, [pc, 0xb8]                                |     r2 = *(0x9ef8);
    0x00009e3e mov r3, r5                                        |     r3 = r5;
    0x00009e40 movs r1, 1                                        |     r1 = 1;
    0x00009e42 ldr.w r2, [r8, r2]                                |     r2 = *((r8 + r2));
    0x00009e46 ldr r0, [r2]                                      |     r0 = *(0x9ef8);
    0x00009e48 ldr r2, [pc, 0xb0]                                |     
    0x00009e4a add r2, pc                                        |     r2 = 0x13d4a;
    0x00009e4c blx 0x3684                                        |     ext2fs_write_inode ();
    0x00009e50 b 0x9dd8                                          |     goto label_0;
                                                                 | label_10:
    0x00009e52 ldr r1, [pc, 0xac]                                |     
    0x00009e54 mov r0, sl                                        |     r0 = sl;
    0x00009e56 add r1, pc                                        |     r1 = 0x13d5c;
    0x00009e58 blx 0x2f98                                        |     r0 = fcn_00002f98 ();
                                                                 |     if (r0 != 0) {
    0x00009e5c cbnz r0, 0x9e72                                   |         goto label_11;
                                                                 |     }
    0x00009e5e cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00009e60 beq 0x9dd8                                        |         goto label_0;
                                                                 |     }
    0x00009e62 mov r0, r5                                        |     r0 = r5;
    0x00009e64 blx 0x31dc                                        |     fcn_000031dc ();
    0x00009e68 ldr r3, [pc, 0x98]                                |     
    0x00009e6a add r3, pc                                        |     r3 = 0x13d72;
    0x00009e6c str.w r0, [r3, 0x188]                             |     __asm ("str.w r0, [r3, 0x188]");
    0x00009e70 b 0x9dda                                          |     goto label_2;
                                                                 | label_11:
    0x00009e72 ldr r1, [pc, 0x94]                                |     
    0x00009e74 mov r0, sl                                        |     r0 = sl;
    0x00009e76 add r1, pc                                        |     r1 = 0x13d84;
    0x00009e78 blx 0x2f98                                        |     r0 = fcn_00002f98 ();
    0x00009e7c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00009e7e bne 0x9dd8                                        |         goto label_0;
                                                                 |     }
    0x00009e80 ldr r3, [pc, 0x88]                                |     r3 = *(0x9f0c);
    0x00009e82 ldr.w r2, [r8, r3]                                |     r2 = *((r8 + r3));
    0x00009e86 ldr r3, [r2]                                      |     r3 = *(r2);
    0x00009e88 orr r3, r3, 1                                     |     r3 |= 1;
    0x00009e8c str r3, [r2]                                      |     *(r2) = r3;
    0x00009e8e b 0x9dda                                          |     goto label_2;
                                                                 | label_3:
    0x00009e90 ldr r3, [pc, 0x64]                                |     
    0x00009e92 movs r2, 0x33                                     |     r2 = 0x33;
    0x00009e94 ldr r0, [pc, 0x78]                                |     
    0x00009e96 movs r1, 1                                        |     r1 = 1;
    0x00009e98 ldr.w r3, [r8, r3]                                |     r3 = *((r8 + r3));
    0x00009e9c add r0, pc                                        |     r0 = 0x13db0;
    0x00009e9e ldr r3, [r3]                                      |     r3 = *(0x9ef8);
    0x00009ea0 blx 0x3324                                        |     strcat (r0, r1)
    0x00009ea4 movs r0, 1                                        |     r0 = 1;
    0x00009ea6 blx 0x34b0                                        |     r0 = feof (r0);
                                                                 | label_8:
    0x00009eaa blx 0x31f4                                        |     fcn_000031f4 ();
                                                                 | label_7:
    0x00009eae ldr r3, [pc, 0x48]                                |     
    0x00009eb0 mov.w r2, 0x14a                                   |     r2 = 0x14a;
    0x00009eb4 ldr r0, [pc, 0x5c]                                |     
    0x00009eb6 movs r1, 1                                        |     r1 = 1;
    0x00009eb8 ldr.w r3, [r8, r3]                                |     r3 = *((r8 + r3));
    0x00009ebc add r0, pc                                        |     r0 = 0x13dd4;
    0x00009ebe ldr r3, [r3]                                      |     r3 = *(0x9efa);
    0x00009ec0 blx 0x3324                                        |     strcat (r0, r1)
    0x00009ec4 ldr r0, [sp, 4]                                   |     r0 = var_4h;
    0x00009ec6 blx 0x3098                                        |     fcn_00003098 ();
    0x00009eca movs r0, 1                                        |     r0 = 1;
    0x00009ecc blx 0x34b0                                        |     feof (r0);
    0x00009ed0 udf 0xb2                                          |     __asm ("udf 0xb2");
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/mkfs.ext3 @ 0x9f18 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00009f18 ()                                      | void fcn_00009f18 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
                                                                 |     do {
    0x00003320 invalid                                           |         void (*0x3324)() ();
    0x00009f18 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |         
    0x00009f1c mov r5, r1                                        |         r5 = r1;
    0x00009f1e ldr r7, [pc, 0xe4]                                |         
    0x00009f20 sub sp, 4                                         |         
    0x00009f22 mov r1, r3                                        |         r1 = r3;
    0x00009f24 mov r4, r3                                        |         r4 = r3;
    0x00009f26 mov r6, r0                                        |         r6 = r0;
    0x00009f28 mov r8, r2                                        |         r8 = r2;
    0x00009f2a add r7, pc                                        |         r7 = 0x13f34;
    0x00009f2c blx 0x3888                                        |         r0 = e2p_get_encoding_flags ();
    0x00009f30 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00009f32 bne 0x9fb0                                        |             
    0x00009f34 ldr.w sl, [r4, 0x10]                              |             sl = *((r4 + 0x10));
    0x00009f38 cmp r5, 0                                         |             
    0x00009f3a ldr.w r3, [sl, 0x5c]                              |             r3 = *((sl + 0x5c));
    0x00009f3e and sb, r3, 0x400                                 |             sb = r3 & 0x400;
                                                                 |             if (r5 > 0) {
    0x00009f42 ble 0x9f9e                                        |                 
    0x00009f44 ldr.w fp, [r4, 0x14]                              |                 fp = *((r4 + 0x14));
    0x00009f48 lsls r0, r5, 0xa                                  |                 r0 = r5 << 0xa;
    0x00009f4a lsr.w r1, fp, 0xa                                 |                 r1 = fp >> 0xa;
    0x00009f4e bl 0x11768                                        |                 r0 = fcn_00011768 (r0, r1, r2);
    0x00009f52 mov r4, r0                                        |                 r4 = r0;
    0x00009f54 str r0, [r6]                                      |                 *(r6) = r0;
    0x00009f56 cmp.w sb, 0                                       |                 
                                                                 |                 if (sb != 0) {
    0x00009f5a bne 0x9fc8                                        |                     goto label_2;
                                                                 |                 }
    0x00009f5c str.w sb, [r6, 4]                                 |                 __asm ("str.w sb, [r6, 4]");
                                                                 | label_0:
    0x00009f60 mov.w r3, 0x3c00                                  |                 r3 = 0x3c00;
    0x00009f64 sub.w r2, r4, 0x400                               |                 r2 = r4 - 0x400;
    0x00009f68 movt r3, 0x9c                                     |                 r3 = (r3 & 0xFFFF) | 0x9c0000;
    0x00009f6c cmp r2, r3                                        |                 
                                                                 |                 if (r2 > r3) {
    0x00009f6e bhi 0x9fea                                        |                     goto label_3;
                                                                 |                 }
    0x00009f70 mov r0, sl                                        |                 r0 = sl;
    0x00009f72 blx 0x396c                                        |                 r0 = snprintf_chk ();
    0x00009f76 lsrs r0, r0, 1                                    |                 r0 >>= 1;
    0x00009f78 orr.w r0, r0, r1, lsl 31                          |                 r0 |= (r1 << 31);
                                                                 | label_1:
    0x00009f7c lsrs r1, r1, 1                                    |                 r1 >>= 1;
    0x00009f7e cmp r0, r4                                        |                 
    0x00009f80 sbcs r1, r1, 0                                    |                 __asm ("sbcs r1, r1, 0");
                                                                 |                 if (r0 >= r4) {
    0x00009f84 bhs 0x9faa                                        |                     goto label_4;
                                                                 |                 }
    0x00009f86 ldr r3, [pc, 0x80]                                |                 
    0x00009f88 movs r2, 0x2c                                     |                 r2 = 0x2c;
    0x00009f8a ldr r0, [pc, 0x80]                                |                 
    0x00009f8c movs r1, 1                                        |                 r1 = 1;
    0x00009f8e ldr r3, [r7, r3]                                  |                 r3 = *((r7 + r3));
    0x00009f90 add r0, pc                                        |                 r0 = 0x13fa2;
    0x00009f92 ldr r3, [r3]                                      |                 r3 = *(0xa00a);
    0x00009f94 blx 0x3324                                        |                 strcat (r0, r1)
    0x00009f98 movs r0, 1                                        |                 r0 = 1;
    0x00009f9a blx 0x34b0                                        |                 feof (r0);
    0x00009f9c invalid                                           |                 
                                                                 |             }
    0x00009f9e cmp.w sb, 0                                       |             
    0x00009fa2 it ne                                             |             
                                                                 |             if (sb != 0) {
    0x00009fa4 cmpne r8, 0                                       |                 __asm ("cmpne r8, 0");
                                                                 |             }
                                                                 |             if (sb > 0) {
    0x00009fa8 bgt 0x9fd4                                        |                 goto label_5;
                                                                 |             }
                                                                 | label_4:
    0x00009faa add sp, 4                                         |             
    0x00009fac pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |             
    0x00009fae ldrh r0, [r6, 0x3e]                               |             r0 = *((r6 + 0x3e));
                                                                 |         }
    0x00009fb0 ldr r3, [pc, 0x54]                                |         
    0x00009fb2 movs r2, 0x24                                     |         r2 = 0x24;
    0x00009fb4 ldr r0, [pc, 0x58]                                |         
    0x00009fb6 movs r1, 1                                        |         r1 = 1;
    0x00009fb8 ldr r3, [r7, r3]                                  |         r3 = *((r7 + r3));
    0x00009fba add r0, pc                                        |         r0 = 0x13fce;
    0x00009fbc ldr r3, [r3]                                      |         r3 = *(0xa008);
    0x00009fbe add sp, 4                                         |         
    0x00009fc0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |         
    0x00009fc4 b.w 0x3320                                        |         
                                                                 |     } while (1);
                                                                 | label_2:
    0x00009fc8 cmp.w r8, 0                                       |     
                                                                 |     if (r8 <= 0) {
    0x00009fcc bgt 0x9fda                                        |         
    0x00009fce ldr r3, [r6, 4]                                   |         r3 = *((r6 + 4));
    0x00009fd0 add r4, r3                                        |         r4 += r3;
    0x00009fd2 b 0x9f60                                          |         goto label_0;
                                                                 | label_5:
    0x00009fd4 ldr.w fp, [r4, 0x14]                              |         fp = *((r4 + 0x14));
    0x00009fd8 ldr r4, [r6]                                      |         r4 = *(r6);
                                                                 |     }
    0x00009fda lsl.w r0, r8, 0xa                                 |     r0 = r8 << 0xa;
    0x00009fde mov r1, fp                                        |     r1 = fp;
    0x00009fe0 bl 0x11768                                        |     r0 = fcn_00011768 (r0, r1, r2);
    0x00009fe4 add r4, r0                                        |     r4 += r0;
    0x00009fe6 str r0, [r6, 4]                                   |     *((r6 + 4)) = r0;
    0x00009fe8 b 0x9f60                                          |     goto label_0;
                                                                 | label_3:
    0x00009fea ldr r0, [pc, 0x1c]                                |     
    0x00009fec mov r3, r4                                        |     r3 = r4;
    0x00009fee ldr r2, [pc, 0x24]                                |     
    0x00009ff0 movs r1, 1                                        |     r1 = 1;
    0x00009ff2 ldr r0, [r7, r0]                                  |     r0 = *((r7 + r0));
    0x00009ff4 add r2, pc                                        |     r2 = 0x1400e;
    0x00009ff6 ldr r0, [r0]                                      |     r0 = *(0xa00a);
    0x00009ff8 blx 0x3684                                        |     ext2fs_write_inode ();
    0x00009ffc movs r0, 1                                        |     r0 = 1;
    0x00009ffe blx 0x34b0                                        |     feof (r0);
    0x0000a002 nop                                               |     
                                                                 |     if (r0 > 1) {
    0x0000a004 bgt 0x9f7c                                        |         goto label_1;
                                                                 |     }
    0x0000a006 movs r1, r0                                       |     r1 = r0;
    0x0000a008 lsls r0, r0, 0xf                                  |     r0 <<= 0xf;
    0x0000a00a movs r0, r0                                       |     
    0x0000a00c push {r3, r4, r5, r7, lr}                         |     
    0x0000a00e movs r0, r0                                       |     
    0x0000a010 push {r1, r3, r4, r5, r6, r7}                     |     
    0x0000a012 movs r0, r0                                       |     
    0x0000a014 push {r3, r5, r6, r7}                             |     
    0x0000a016 movs r0, r0                                       |     
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/mkfs.ext3 @ 0xa4b8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0000a4b8 ()                                          | void fcn_0000a4b8 (int16_t arg_0h, int16_t arg_4h, int16_t arg_5ch, int16_t arg_64h, int16_t arg_68h, int16_t arg_6ch, int16_t arg_70h, int16_t arg_74h, int16_t c, int16_t arg_7ch, int16_t arg_80h, int16_t arg_84h, int16_t arg_88h, int16_t arg_8ch, int16_t arg_90h, int16_t arg_94h, int16_t arg_9ch, int16_t arg_9eh, int16_t arg_a0h, int16_t arg_b4h, int16_t arg_b6h, int16_t arg_114h, int16_t arg_116h, int16_t arg_11ch, int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_38h;
                                                                     |     int16_t var_11ch;
                                                                     |     int16_t var_0h_2;
                                                                     |     int16_t var_4h_2;
                                                                     |     int16_t var_8h_2;
                                                                     |     int16_t var_ch_2;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     char * s2;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_40h;
                                                                     |     int16_t var_44h;
                                                                     |     int16_t var_48h;
                                                                     |     int16_t var_4ch;
                                                                     |     int16_t var_50h;
                                                                     |     int16_t var_54h;
                                                                     |     int16_t var_58h;
                                                                     |     int16_t var_5ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0000a4b8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0000a4bc sub sp, 0x124                                         |     
    0x0000a4be ldr.w r5, [pc, 0xa9c]                                 |     r5 = *(0x0000af5c);
    0x0000a4c2 mov sl, r0                                            |     sl = r0;
    0x0000a4c4 ldr.w r4, [pc, 0xa98]                                 |     r4 = *(0x0000af60);
    0x0000a4c8 ldr.w r2, [pc, 0xa98]                                 |     
    0x0000a4ca cmp r2, 0x98                                          |     
    0x0000a4cc add r5, pc                                            |     r5 += pc;
    0x0000a4ce str r5, [sp, 0x38]                                    |     var_38h = r5;
    0x0000a4d0 add r4, pc                                            |     r4 += pc;
    0x0000a4d2 ldr.w r3, [pc, 0xa94]                                 |     r3 = *(0xaf6a);
    0x0000a4d6 ldr r2, [r4, r2]                                      |     r2 = *((r4 + r2));
    0x0000a4d8 mov r4, r1                                            |     r4 = r1;
    0x0000a4da ldr.w r1, [pc, 0xa90]                                 |     
    0x0000a4de ldr r2, [r2]                                          |     r2 = *(0xaf64);
    0x0000a4e0 str r2, [sp, 0x11c]                                   |     var_11ch = r2;
    0x0000a4e2 mov.w r2, 0                                           |     r2 = 0;
    0x0000a4e6 movs r2, 0                                            |     r2 = 0;
    0x0000a4e8 ldr r6, [r5, r3]                                      |     r6 = *((r5 + r3));
    0x0000a4ea add r1, pc                                            |     r1 = 0x1545c;
    0x0000a4ec ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000a4ee bl 0x9a48                                             |     r0 = fcn_00009a48 (r0, r1, r2, r3, r4);
    0x0000a4f2 mov fp, r0                                            |     
    0x0000a4f4 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000a4f6 beq.w 0xa82a                                          |         goto label_2;
                                                                     |     }
    0x0000a4fa ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
    0x0000a4fe ldr r3, [r3, 0x60]                                    |     r3 = *((r3 + 0x60));
    0x0000a500 lsls r3, r3, 0x19                                     |     r3 <<= 0x19;
                                                                     |     if (r3 >= r3) {
    0x0000a502 bpl.w 0xa822                                          |         goto label_21;
                                                                     |     }
    0x0000a504 strh r6, [r1, 0xc]                                    |     *((r1 + 0xc)) = r6;
    0x0000a506 ldr.w r1, [pc, 0xa68]                                 |     
    0x0000a50a movs r2, 0                                            |     r2 = 0;
    0x0000a50c ldr.w r5, [pc, 0xa64]                                 |     r5 = *(0x0000af74);
    0x0000a510 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000a512 add r1, pc                                            |     
    0x0000a514 bl 0x98d0                                             |     fcn_000098d0 (r0, r1, r2, r3, r4, r5, r6);
    0x0000a516 invalid                                               |     
    0x0000a51a subs r4, r3, r1                                       |     r4 = r3 - r1;
    0x0000a51c add r5, pc                                            |     r5 += pc;
    0x0000a51e str r0, [r5]                                          |     *(r5) = r0;
    0x0000a520 movs r2, 0                                            |     r2 = 0;
    0x0000a522 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000a524 add r1, pc                                            |     r1 = 0x1f9b0;
    0x0000a526 bl 0x98d0                                             |     fcn_000098d0 (r0, r1, r2, r3, r4, r5, r6);
    0x0000a52a ldr.w r1, [pc, 0xa50]                                 |     
    0x0000a52e movs r2, 0x3f                                         |     r2 = 0x3f;
    0x0000a530 str r0, [r5, 4]                                       |     *((r5 + 4)) = r0;
    0x0000a532 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000a534 add r1, pc                                            |     r1 = 0x154b6;
    0x0000a536 bl 0x98d0                                             |     fcn_000098d0 (r0, r1, r2, r3, r4, r5, r6);
    0x0000a53a ldr.w r1, [pc, 0xa44]                                 |     
    0x0000a53e movs r2, 0                                            |     r2 = 0;
    0x0000a540 str.w r0, [sl, 0x5c]                                  |     __asm ("str.w r0, [sl, 0x5c]");
    0x0000a544 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000a546 add r1, pc                                            |     r1 = 0x154cc;
    0x0000a548 bl 0x98d0                                             |     fcn_000098d0 (r0, r1, r2, r3, r4, r5, r6);
    0x0000a54c ldr.w r2, [pc, 0xa34]                                 |     
    0x0000a550 ldr.w r1, [pc, 0xa34]                                 |     
    0x0000a552 subs r4, r6, r0                                       |     r4 = r6 - r0;
    0x0000a554 str r0, [r5, 8]                                       |     *((r5 + 8)) = r0;
    0x0000a556 add r2, pc                                            |     r2 = 0x154de;
    0x0000a558 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000a55a add r1, pc                                            |     r1 = 0x154e6;
    0x0000a55c bl 0x9808                                             |     fcn_00009808 (r0, r1, r2);
    0x0000a560 ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
    0x0000a564 mov r7, r0                                            |     r7 = r0;
    0x0000a566 ldr r1, [r3, 0x18]                                    |     r1 = *((r3 + 0x18));
    0x0000a568 blx 0x314c                                            |     fcn_0000314c ();
    0x0000a56c strd r0, r1, [r5, 0x10]                               |     __asm ("strd r0, r1, [r5, 0x10]");
    0x0000a570 mov r0, r7                                            |     r0 = r7;
    0x0000a572 ldr.w r7, [pc, 0xa18]                                 |     
    0x0000a576 blx 0x3098                                            |     fcn_00003098 ();
    0x0000a57a ldr.w r1, [pc, 0xa14]                                 |     
    0x0000a57e add r7, pc                                            |     r7 = 0x15510;
    0x0000a580 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000a582 mov r2, r7                                            |     r2 = r7;
    0x0000a584 add r1, pc                                            |     r1 = 0x1551a;
    0x0000a586 bl 0x9808                                             |     fcn_00009808 (r0, r1, r2);
    0x0000a58a ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
    0x0000a58e mov r8, r0                                            |     r8 = r0;
    0x0000a590 ldr r1, [r3, 0x18]                                    |     r1 = *((r3 + 0x18));
    0x0000a592 blx 0x314c                                            |     fcn_0000314c ();
    0x0000a596 strd r0, r1, [r5, 0x18]                               |     __asm ("strd r0, r1, [r5, 0x18]");
    0x0000a59a mov r0, r8                                            |     r0 = r8;
    0x0000a59c blx 0x3098                                            |     fcn_00003098 ();
    0x0000a5a0 ldr.w r1, [pc, 0x9f0]                                 |     
    0x0000a5a4 mov r2, r7                                            |     r2 = r7;
    0x0000a5a6 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000a5a8 add r1, pc                                            |     r1 = 0x15540;
    0x0000a5aa bl 0x9808                                             |     fcn_00009808 (r0, r1, r2);
    0x0000a5ae ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
    0x0000a5b0 adds r0, 0x10                                         |     r0 += 0x10;
    0x0000a5b2 mov r5, r0                                            |     r5 = r0;
    0x0000a5b4 ldr r1, [r3, 0x18]                                    |     r1 = *((r3 + 0x18));
    0x0000a5b6 blx 0x314c                                            |     r0 = fcn_0000314c ();
    0x0000a5ba mov r3, r0                                            |     r3 = r0;
    0x0000a5bc mov r0, r5                                            |     r0 = r5;
    0x0000a5be str r3, [sp, 0x20]                                    |     var_20h = r3;
    0x0000a5c0 blx 0x3098                                            |     fcn_00003098 ();
    0x0000a5c4 ldr.w r1, [pc, 0x9d0]                                 |     
    0x0000a5c8 movs r2, 0                                            |     r2 = 0;
    0x0000a5ca ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000a5cc add r1, pc                                            |     r1 = 0x15568;
    0x0000a5ce bl 0x9a48                                             |     r0 = fcn_00009a48 (r0, r1, r2, r3, r4);
    0x0000a5d2 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000a5d4 bne.w 0xa86e                                          |         goto label_22;
                                                                     |     }
    0x0000a5d8 movs r3, 0                                            |     r3 = 0;
    0x0000a5da str r3, [sp, 0x24]                                    |     var_24h = r3;
    0x0000a5dc str r3, [sp, 0x30]                                    |     var_0h = r3;
                                                                     | label_3:
    0x0000a5de ldr.w r3, [pc, 0x9bc]                                 |     r3 = *(0x0000af9c);
    0x0000a5e2 ldr r7, [sp, 0x20]                                    |     r7 = var_20h;
    0x0000a5e4 add r3, pc                                            |     r3 += pc;
    0x0000a5e6 ldrd r4, r5, [r3, 0x18]                               |     __asm ("ldrd r4, r5, [r3, 0x18]");
                                                                     |     if (r7 != 0) {
    0x0000a5ea cbz r7, 0xa5fe                                        |         
    0x0000a5ec mov r2, r7                                            |         r2 = r7;
    0x0000a5ee movs r3, 0                                            |         r3 = 0;
    0x0000a5f0 mov r0, r4                                            |         r0 = r4;
    0x0000a5f2 mov r1, r5                                            |         r1 = r5;
    0x0000a5f4 bl 0x120a8                                            |         fcn_000120a8 (r0, r1, r2, r3);
    0x0000a5f8 cmp r2, 0                                             |         
                                                                     |         if (r2 != 0) {
    0x0000a5fa bne.w 0xa85c                                          |             goto label_23;
                                                                     |         }
                                                                     |     }
                                                                     | label_1:
    0x0000a5fe ldr.w r7, [pc, 0x9a0]                                 |     r7 = *(0x0000afa0);
    0x0000a602 ldr.w r3, [pc, 0x9a0]                                 |     r3 = *(0x0000afa4);
    0x0000a606 ldr.w r1, [pc, 0x9a0]                                 |     
    0x0000a60a add r7, pc                                            |     r7 += pc;
    0x0000a60c ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000a60e add r3, pc                                            |     r3 += pc;
    0x0000a610 ldr r2, [r7]                                          |     r2 = *(r7);
    0x0000a612 add r1, pc                                            |     r1 = 0x155c0;
    0x0000a614 strd r4, r5, [r3, 0x18]                               |     __asm ("strd r4, r5, [r3, 0x18]");
    0x0000a616 cmp r6, r0                                            |     
    0x0000a618 bl 0x9a48                                             |     fcn_00009a48 (r0, r1, r2, r3, r4);
    0x0000a61a uxtah r8, r6, pc, ror 8                               |     __asm ("uxtah r8, r6, pc, ror 8");
    0x0000a61e cmp r1, 0x8c                                          |     
    0x0000a620 ldr.w r1, [pc, 0x98c]                                 |     
    0x0000a624 str r0, [r7]                                          |     *(r7) = r0;
    0x0000a626 add r2, pc                                            |     r2 += pc;
    0x0000a628 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000a62a add r1, pc                                            |     r1 = 0x155de;
    0x0000a62c bl 0x9808                                             |     fcn_00009808 (r0, r1, r2);
    0x0000a630 str r0, [sp, 0x10]                                    |     var_10h = r0;
    0x0000a632 blx 0x3504                                            |     r0 = e2p_os2string ();
    0x0000a636 adds r4, r0, 1                                        |     r4 = r0 + 1;
    0x0000a638 mov r0, r4                                            |     r0 = r4;
    0x0000a63a blx 0x3450                                            |     r0 = strerror (r0);
    0x0000a63e mov sb, r0                                            |     sb = r0;
    0x0000a640 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000a642 beq.w 0xaf50                                          |         goto label_24;
                                                                     |     }
    0x0000a646 ldr.w r7, [pc, 0x96c]                                 |     r7 = *(0x0000afb4);
    0x0000a64a mov r2, r4                                            |     r2 = r4;
    0x0000a64c add.w r8, sp, 0x80                                    |     r8 += arg_80h;
    0x0000a650 ldr r1, [sp, 0x10]                                    |     r1 = var_10h;
    0x0000a652 mov r5, r0                                            |     r5 = r0;
    0x0000a654 movs r4, 2                                            |     r4 = 2;
    0x0000a656 add r7, pc                                            |     r7 += pc;
    0x0000a658 blx 0x30e0                                            |     fcn_000030e0 ();
    0x0000a65c mov r3, r8                                            |     r3 = r8;
    0x0000a65e mov fp, r7                                            |     
    0x0000a660 mov r8, r6                                            |     r8 = r6;
    0x0000a662 mov r7, r4                                            |     r7 = r4;
    0x0000a664 mov r6, r3                                            |     r6 = r3;
    0x0000a666 b 0xa67a                                              |     
                                                                     |     while (r0 != 0) {
    0x0000a668 movs r3, 0                                            |         r3 = 0;
    0x0000a66a strb r3, [r4], 1                                      |         *(r4) = r3;
                                                                     |         r4++;
    0x0000a66e ldrb r3, [r5]                                         |         r3 = *(r5);
                                                                     |         if (r3 != 0) {
    0x0000a670 cbnz r3, 0xa68c                                       |             goto label_25;
                                                                     |         }
                                                                     | label_0:
    0x0000a672 ldrb r3, [r4]                                         |         r3 = *(r4);
    0x0000a674 mov r5, r4                                            |         r5 = r4;
    0x0000a676 cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x0000a678 beq 0xa6f8                                            |             goto label_26;
                                                                     |         }
    0x0000a67a movs r1, 0x2f                                         |         r1 = 0x2f;
    0x0000a67c mov r0, r5                                            |         r0 = r5;
    0x0000a67e blx 0x3534                                            |         r0 = ext2fs_bg_free_blocks_count_set ();
    0x0000a682 mov r4, r0                                            |         r4 = r0;
    0x0000a684 cmp r0, 0                                             |         
    0x0000a686 bne 0xa668                                            |         
                                                                     |     }
    0x0000a688 ldrb r3, [r5]                                         |     r3 = *(r5);
                                                                     |     if (r3 == 0) {
    0x0000a68a cbz r3, 0xa6f8                                        |         goto label_26;
                                                                     |     }
                                                                     | label_25:
    0x0000a68c movs r3, 0                                            |     r3 = 0;
    0x0000a68e mov.w r2, 0x4000                                      |     r2 = 0x4000;
    0x0000a692 mov r1, r7                                            |     r1 = r7;
    0x0000a694 mov r0, sl                                            |     r0 = sl;
    0x0000a696 str r6, [sp]                                          |     *(sp) = r6;
    0x0000a698 blx 0x336c                                            |     r0 = strcpy (r0, r1);
    0x0000a69c cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000a69e bne.w 0xa84c                                          |         goto label_27;
                                                                     |     }
    0x0000a6a2 ldr r2, [sp, 0x80]                                    |     r2 = *(arg_80h);
    0x0000a6a4 mov r3, r5                                            |     r3 = r5;
    0x0000a6a6 mov r1, r7                                            |     r1 = r7;
    0x0000a6a8 mov r0, sl                                            |     r0 = sl;
    0x0000a6aa blx 0x36f0                                            |     r0 = ext2fs_close_free ();
    0x0000a6ae cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000a6b0 bne.w 0xa84c                                          |         goto label_27;
                                                                     |     }
    0x0000a6b4 ldr r7, [sp, 0x80]                                    |     r7 = *(arg_80h);
    0x0000a6b6 add r5, sp, 0x9c                                      |     r5 += arg_9ch;
    0x0000a6b8 mov r2, r5                                            |     r2 = r5;
    0x0000a6ba mov r0, sl                                            |     r0 = sl;
    0x0000a6bc mov r1, r7                                            |     r1 = r7;
    0x0000a6be blx 0x2f58                                            |     r0 = ext2fs_read_inode ();
    0x0000a6c2 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000a6c4 bne.w 0xa84c                                          |         goto label_27;
                                                                     |     }
    0x0000a6c8 ldr.w r3, [fp]                                        |     r3 = *(fp);
    0x0000a6cc mov r2, r5                                            |     r2 = r5;
    0x0000a6ce mov r1, r7                                            |     r1 = r7;
    0x0000a6d0 mov r0, sl                                            |     r0 = sl;
    0x0000a6d2 strh.w r3, [sp, 0x9e]                                 |     *(arg_9eh) = r3;
    0x0000a6d6 lsrs r3, r3, 0x10                                     |     r3 >>= 0x10;
    0x0000a6d8 strh.w r3, [sp, 0x114]                                |     *(arg_114h) = r3;
    0x0000a6dc ldr.w r3, [fp, 4]                                     |     r3 = *(arg_4h);
    0x0000a6e0 strh.w r3, [sp, 0xb4]                                 |     *(arg_b4h) = r3;
    0x0000a6e4 lsrs r3, r3, 0x10                                     |     r3 >>= 0x10;
    0x0000a6e6 strh.w r3, [sp, 0x116]                                |     *(arg_116h) = r3;
    0x0000a6ea blx 0x36a8                                            |     r0 = ext2fs_file_llseek ();
    0x0000a6ee cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000a6f0 bne.w 0xa84c                                          |         goto label_27;
                                                                     |     }
    0x0000a6f4 cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0000a6f6 bne 0xa672                                            |         goto label_0;
                                                                     |     }
                                                                     | label_26:
    0x0000a6f8 mov r0, sb                                            |     r0 = sb;
    0x0000a6fa str r7, [sp, 0x6c]                                    |     *(arg_6ch) = r7;
    0x0000a6fc blx 0x3098                                            |     fcn_00003098 ();
    0x0000a6fe stcl p8, c9, [ip], {4}                                |     __asm ("stcl p8, c9, [ip], {4}");
    0x0000a702 blx 0x3098                                            |     fcn_00003098 ();
    0x0000a706 ldr.w r2, [pc, 0x8b0]                                 |     
    0x0000a70a ldr.w r1, [pc, 0x8b0]                                 |     
    0x0000a70e ldr.w r4, [pc, 0x8b0]                                 |     r4 = *(0x0000afc0);
    0x0000a712 add r2, pc                                            |     r2 = 0x156d0;
    0x0000a714 ldr.w r0, [r8]                                        |     r0 = *(r8);
    0x0000a716 movs r0, r0                                           |     
    0x0000a718 add r1, pc                                            |     r1 = 0x156da;
    0x0000a71a bl 0x9808                                             |     fcn_00009808 (r0, r1, r2);
    0x0000a71e ldr.w r1, [pc, 0x8a4]                                 |     
    0x0000a722 add r4, pc                                            |     r4 += pc;
    0x0000a724 movs r2, 5                                            |     r2 = 5;
    0x0000a726 str r0, [r4, 0x38]                                    |     *((r4 + 0x38)) = r0;
    0x0000a728 ldr.w r0, [r8]                                        |     r0 = *(r8);
    0x0000a72c add r1, pc                                            |     r1 = 0x156f6;
    0x0000a72e bl 0x98d0                                             |     fcn_000098d0 (r0, r1, r2, r3, r4, r5, r6);
    0x0000a732 movs r1, 0                                            |     r1 = 0;
    0x0000a734 str r0, [r4, 0x30]                                    |     *((r4 + 0x30)) = r0;
    0x0000a736 ldr r0, [r4, 8]                                       |     r0 = *((r4 + 8));
    0x0000a738 bl 0x97a4                                             |     fcn_000097a4 (r0, r1);
    0x0000a73c ldr r7, [r4, 0x38]                                    |     r7 = *((r4 + 0x38));
    0x0000a73e mov r5, r0                                            |     r5 = r0;
    0x0000a740 adds r5, 1                                            |     r5++;
    0x0000a742 mov r0, r7                                            |     r0 = r7;
    0x0000a744 blx 0x3504                                            |     e2p_os2string ();
    0x0000a748 ldr r3, [r4, 0x30]                                    |     r3 = *((r4 + 0x30));
    0x0000a74a mov r6, r0                                            |     r6 = r0;
    0x0000a74c adds r0, 0x10                                         |     r0 += 0x10;
    0x0000a74e cmp r5, r3                                            |     
    0x0000a750 ite ge                                                |     
                                                                     |     if (r5 < r3) {
    0x0000a752 addge r0, r0, r5                                      |         r0 += r5;
                                                                     |     }
                                                                     |     if (r5 >= r3) {
    0x0000a754 addlt r0, r0, r3                                      |         r0 += r3;
                                                                     |     }
    0x0000a756 blx 0x3450                                            |     r0 = strerror (r0);
    0x0000a75a mov r5, r0                                            |     r5 = r0;
    0x0000a75c str r0, [r4, 0x34]                                    |     *((r4 + 0x34)) = r0;
    0x0000a75e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000a760 beq.w 0xaf44                                          |         goto label_28;
                                                                     |     }
    0x0000a764 adds r2, r6, 1                                        |     r2 = r6 + 1;
    0x0000a766 mov r1, r7                                            |     r1 = r7;
    0x0000a768 blx 0x30e0                                            |     fcn_000030e0 ();
    0x0000a76c add r5, r6                                            |     r5 += r6;
    0x0000a76e mov r0, r7                                            |     r0 = r7;
    0x0000a770 str r5, [r4, 0x20]                                    |     *((r4 + 0x20)) = r5;
    0x0000a772 blx 0x3098                                            |     fcn_00003098 ();
    0x0000a776 ldr.w r0, [sl, 0x10]                                  |     r0 = *((sl + 0x10));
    0x0000a77a blx 0x396c                                            |     snprintf_chk ();
    0x0000a77e ldrd r8, r2, [r4, 0x10]                               |     __asm ("ldrd r8, r2, [r4, 0x10]");
    0x0000a782 ldr r3, [sp, 0x20]                                    |     r3 = var_20h;
    0x0000a784 str r2, [sp, 0x10]                                    |     var_10h = r2;
    0x0000a786 adds.w r3, r8, r3                                     |     r3 = r8 + r3;
    0x0000a78a adc r2, r2, 0                                         |     __asm ("adc r2, r2, 0");
    0x0000a78e cmp r0, r3                                            |     
    0x0000a790 sbcs.w r5, r1, r2                                     |     __asm ("sbcs.w r5, r1, r2");
                                                                     |     if (r0 <= r3) {
    0x0000a794 blo 0xa868                                            |         goto label_4;
                                                                     |     }
    0x0000a796 ldrd sb, r5, [r4, 0x18]                               |     __asm ("ldrd sb, r5, [r4, 0x18]");
    0x0000a79a subs r0, r0, r3                                       |     r0 -= r3;
    0x0000a79c sbc.w r2, r1, r2                                      |     __asm ("sbc.w r2, r1, r2");
    0x0000a7a0 str r0, [sp, 0x28]                                    |     var_28h = r0;
    0x0000a7a2 str r2, [sp, 0x2c]                                    |     var_2ch = r2;
    0x0000a7a4 orrs.w r3, sb, r5                                     |     r3 = sb | r5;
                                                                     |     if (r3 != sb) {
    0x0000a7a8 bne.w 0xa8d2                                          |         goto label_29;
                                                                     |     }
    0x0000a7ac ldr r7, [r4, 8]                                       |     r7 = *((r4 + 8));
    0x0000a7ae cmp r7, 0                                             |     
                                                                     |     if (r7 == 0) {
    0x0000a7b0 beq.w 0xaef0                                          |         goto label_30;
                                                                     |     }
    0x0000a7b4 lsrs r3, r7, 4                                        |     r3 = r7 >> 4;
    0x0000a7b6 cmp r7, 1                                             |     
    0x0000a7b8 it eq                                                 |     
                                                                     |     if (r7 == 1) {
    0x0000a7ba ldrdeq sb, r5, [sp, 0x28]                             |         __asm ("ldrdeq sb, r5, [var_28h]");
                                                                     |     }
    0x0000a7be mov.w r6, 0                                           |     r6 = 0;
    0x0000a7c2 add.w fp, r3, 1                                       |     
                                                                     |     if (r7 == 1) {
    0x0000a7c6 beq.w 0xa932                                          |         goto label_15;
                                                                     |     }
    0x0000a7ca ldr r0, [sp, 0x28]                                    |     r0 = var_28h;
    0x0000a7cc mov r2, r7                                            |     r2 = r7;
    0x0000a7ce ldr r3, [sp, 0x2c]                                    |     r3 = var_2ch;
    0x0000a7d0 subs.w r5, r0, fp                                     |     r5 = r0 - fp;
    0x0000a7d4 sbc sb, r3, 0                                         |     __asm ("sbc sb, r3, 0");
    0x0000a7d8 mov r1, r3                                            |     r1 = r3;
    0x0000a7da mov r3, r6                                            |     r3 = r6;
    0x0000a7dc bl 0x120a8                                            |     r0 = fcn_000120a8 (r0, r1, r2, r3);
    0x0000a7e0 mov r2, r0                                            |     r2 = r0;
    0x0000a7e2 mov r3, r1                                            |     r3 = r1;
    0x0000a7e4 mov r0, sl                                            |     r0 = sl;
    0x0000a7e6 bl 0xa0d8                                             |     r0 = fcn_0000a0d8 (r0, r1, r2);
    0x0000a7ea umull r0, r3, r0, r7                                  |     r0:r3 = r0 * r7;
    0x0000a7ee mov r2, r7                                            |     r2 = r7;
    0x0000a7f0 mla r3, r7, r1, r3                                    |     __asm ("mla r3, r7, r1, r3");
    0x0000a7f4 subs r1, r5, r0                                       |     r1 = r5 - r0;
    0x0000a7f6 mov r0, r1                                            |     r0 = r1;
    0x0000a7f8 str r1, [sp, 0x28]                                    |     var_28h = r1;
    0x0000a7fa sbc.w r5, sb, r3                                      |     __asm ("sbc.w r5, sb, r3");
    0x0000a7fe mov r3, r6                                            |     r3 = r6;
    0x0000a800 mov r1, r5                                            |     r1 = r5;
    0x0000a802 str r5, [sp, 0x2c]                                    |     var_2ch = r5;
    0x0000a804 bl 0x120a8                                            |     fcn_000120a8 (r0, r1, r2, r3);
    0x0000a808 ldr r2, [sp, 0x28]                                    |     r2 = var_28h;
    0x0000a80a mov r5, r1                                            |     r5 = r1;
    0x0000a80c strd r0, r1, [r4, 0x18]                               |     __asm ("strd r0, r1, [r4, 0x18]");
    0x0000a810 mov sb, r0                                            |     sb = r0;
    0x0000a812 ldr r1, [sp, 0x2c]                                    |     r1 = var_2ch;
    0x0000a814 cmp r2, r7                                            |     
    0x0000a816 sbcs r3, r1, 0                                        |     __asm ("sbcs r3, r1, 0");
    0x0000a81a itt lo                                                |     
                                                                     |     if (r2 >= r7) {
    0x0000a81c movlo sb, r2                                          |         sb = r2;
                                                                     |     }
                                                                     |     if (r2 >= r7) {
    0x0000a81e movlo r5, r1                                          |         r5 = r1;
                                                                     |     }
    0x0000a820 b 0xa932                                              |     goto label_15;
                                                                     | label_21:
    0x0000a822 movw fp, 0xb785                                       |     
    0x0000a826 movt fp, 0x7f2b                                       |     fp = 0x7f2bb785;
                                                                     |     do {
                                                                     | label_2:
    0x0000a82a ldr.w r2, [pc, 0x79c]                                 |         r2 = *(0x0000afc8);
    0x0000a82e ldr.w r3, [pc, 0x734]                                 |         r3 = *(0xaf66);
    0x0000a832 add r2, pc                                            |         r2 += pc;
    0x0000a834 ldr r3, [r2, r3]                                      |         r3 = *((r2 + r3));
    0x0000a836 ldr r2, [r3]                                          |         r2 = *(0xaf66);
    0x0000a838 ldr r3, [sp, 0x11c]                                   |         r3 = var_11ch;
    0x0000a83a eors r2, r3                                           |         r2 ^= r3;
    0x0000a83c mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0000a840 bne.w 0xaf3a                                          |             goto label_31;
                                                                     |         }
    0x0000a844 mov r0, fp                                            |         r0 = fp;
    0x0000a846 add sp, 0x124                                         |         
    0x0000a848 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_27:
    0x0000a84c mov fp, r0                                            |         
    0x0000a84e mov r0, sb                                            |         r0 = sb;
    0x0000a850 blx 0x3098                                            |         fcn_00003098 ();
    0x0000a854 ldr r0, [sp, 0x10]                                    |         r0 = var_10h;
    0x0000a856 blx 0x3098                                            |         fcn_00003098 ();
    0x0000a85a b 0xa82a                                              |         
                                                                     |     } while (1);
                                                                     | label_23:
    0x0000a85c subs r2, r7, r2                                       |     r2 = r7 - r2;
    0x0000a85e adds r2, r2, r4                                       |     r2 += r4;
    0x0000a860 mov r4, r2                                            |     r4 = r2;
    0x0000a862 adc r5, r5, 0                                         |     __asm ("adc r5, r5, 0");
    0x0000a866 b 0xa5fe                                              |     goto label_1;
                                                                     | label_4:
    0x0000a868 mov.w fp, 0x1c                                        |     
    0x0000a86c b 0xa82a                                              |     goto label_2;
                                                                     | label_22:
    0x0000a86e mov r0, r4                                            |     r0 = r4;
    0x0000a870 movs r7, 1                                            |     r7 = 1;
    0x0000a872 bl 0xa194                                             |     fcn_0000a194 (r0, r1);
    0x0000a876 ldr.w r8, [sl, 0x14]                                  |     r8 = *((sl + 0x14));
    0x0000a878 strh r4, [r2]                                         |     *(r2) = r4;
    0x0000a87a movs r3, 0                                            |     r3 = 0;
    0x0000a87c lsr.w r2, r8, 9                                       |     r2 = r8 >> 9;
    0x0000a880 bl 0x120a8                                            |     fcn_000120a8 (r0, r1, r2, r3);
    0x0000a884 ldr.w r2, [sl, 0x64]                                  |     r2 = *((sl + 0x64));
    0x0000a888 mov r5, r0                                            |     r5 = r0;
    0x0000a88a mov r4, r1                                            |     r4 = r1;
    0x0000a88c str r0, [sp, 0x24]                                    |     var_24h = r0;
    0x0000a88e str r1, [sp, 0x30]                                    |     var_0h = r1;
    0x0000a890 lsl.w r2, r7, r2                                      |     r2 = r7 << r2;
    0x0000a894 asrs r3, r2, 0x1f                                     |     r3 = r2 >> 0x1f;
    0x0000a896 bl 0x120a8                                            |     fcn_000120a8 (r0, r1, r2, r3);
    0x0000a89a orrs r2, r3                                           |     r2 |= r3;
                                                                     |     if (r2 == r3) {
    0x0000a89c beq.w 0xa5de                                          |         goto label_3;
                                                                     |     }
    0x0000a89e add r6, sp, 0x27c                                     |     r6 = sp + 0x27c;
    0x0000a8a0 ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
    0x0000a8a4 ldr r2, [sp, 0x38]                                    |     r2 = s2;
    0x0000a8a6 ldr r1, [r3, 0x1c]                                    |     r1 = *((r3 + 0x1c));
    0x0000a8a8 ldr.w r3, [pc, 0x720]                                 |     r3 = *(0xafcc);
    0x0000a8ac ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0000a8ae str.w r8, [sp, 8]                                     |     __asm ("str.w r8, [var_8h_2]");
    0x0000a8b2 str r5, [sp]                                          |     *(sp) = r5;
    0x0000a8b4 str r4, [sp, 4]                                       |     var_4h_2 = r4;
    0x0000a8b6 ldr.w r2, [pc, 0x718]                                 |     
    0x0000a8ba ldr r0, [r3]                                          |     r0 = *(0xafcc);
    0x0000a8bc mov.w r3, 0x400                                       |     r3 = 0x400;
    0x0000a8c0 lsls r3, r1                                           |     r3 <<= r1;
    0x0000a8c2 mov r1, r7                                            |     r1 = r7;
    0x0000a8c4 add r2, pc                                            |     r2 = 0x1589a;
    0x0000a8c6 str r3, [sp, 0xc]                                     |     var_ch_2 = r3;
    0x0000a8c8 blx 0x3684                                            |     ext2fs_write_inode ();
    0x0000a8cc mov r0, r7                                            |     r0 = r7;
    0x0000a8ce blx 0x34b0                                            |     r0 = feof (r0);
                                                                     | label_29:
    0x0000a8d2 cmp r0, sb                                            |     
    0x0000a8d4 sbcs.w r3, r2, r5                                     |     __asm ("sbcs.w r3, r2, r5");
                                                                     |     if (r0 <= sb) {
    0x0000a8d8 blo 0xa868                                            |         goto label_4;
                                                                     |     }
    0x0000a8da ldr r7, [r4, 8]                                       |     r7 = *((r4 + 8));
                                                                     |     if (r7 == 0) {
    0x0000a8dc cbnz r7, 0xa92a                                       |         
    0x0000a8de mov r2, sb                                            |         r2 = sb;
    0x0000a8e0 mov r3, r5                                            |         r3 = r5;
    0x0000a8e2 mov r0, sl                                            |         r0 = sl;
    0x0000a8e4 bl 0xa0d8                                             |         r0 = fcn_0000a0d8 (r0, r1, r2);
    0x0000a8e8 mov r7, r0                                            |         r7 = r0;
    0x0000a8ea ldrd r0, fp, [sp, 0x28]                               |         __asm ("ldrd r0, fp, [var_28h]");
    0x0000a8ee mov r6, r1                                            |         r6 = r1;
    0x0000a8f0 mov r2, sb                                            |         r2 = sb;
    0x0000a8f2 mov r3, r5                                            |         r3 = r5;
    0x0000a8f4 mov r1, fp                                            |         r1 = fp;
    0x0000a8f6 bl 0x120a8                                            |         r0 = fcn_000120a8 (r0, r1, r2, r3);
    0x0000a8fa umull r7, r1, r0, r7                                  |         r7:r1 = r0 * r7;
    0x0000a8fe mov r3, r0                                            |         r3 = r0;
    0x0000a900 mov r2, sb                                            |         r2 = sb;
    0x0000a902 mla r1, r6, r3, r1                                    |         __asm ("mla r1, r6, r3, r1");
    0x0000a906 lsrs r3, r0, 4                                        |         r3 = r0 >> 4;
    0x0000a908 ldr r0, [sp, 0x28]                                    |         r0 = var_28h;
    0x0000a90a adds r3, 1                                            |         r3++;
    0x0000a90c subs r3, r0, r3                                       |         r3 = r0 - r3;
    0x0000a90e sbc r0, fp, 0                                         |         __asm ("sbc r0, arg_0h");
    0x0000a912 subs r6, r3, r7                                       |         r6 = r3 - r7;
    0x0000a914 sbc.w r3, r0, r1                                      |         __asm ("sbc.w r3, r0, r1");
    0x0000a916 lsls r1, r0, 0xc                                      |         r1 = r0 << 0xc;
    0x0000a918 mov r0, r6                                            |         r0 = r6;
    0x0000a91a mov r1, r3                                            |         r1 = r3;
    0x0000a91c str r3, [sp, 0x2c]                                    |         var_2ch = r3;
    0x0000a91e mov r3, r5                                            |         r3 = r5;
    0x0000a920 str r6, [sp, 0x28]                                    |         var_28h = r6;
    0x0000a922 bl 0x120a8                                            |         r0 = fcn_000120a8 (r0, r1, r2, r3);
    0x0000a926 mov r7, r0                                            |         r7 = r0;
    0x0000a928 str r0, [r4, 8]                                       |         *((r4 + 8)) = r0;
                                                                     |     }
    0x0000a92a lsrs r3, r7, 4                                        |     r3 = r7 >> 4;
    0x0000a92c movs r6, 0                                            |     r6 = 0;
    0x0000a92e add.w fp, r3, 1                                       |     
                                                                     | label_15:
    0x0000a932 mov r2, sb                                            |     r2 = sb;
    0x0000a934 mov r3, r5                                            |     r3 = r5;
    0x0000a936 mov r0, sl                                            |     r0 = sl;
    0x0000a938 bl 0xa0d8                                             |     r0 = fcn_0000a0d8 (r0, r1, r2);
    0x0000a93c mul r6, r0, r6                                        |     r6 = r0 * r6;
    0x0000a940 ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
    0x0000a942 adds.w r3, r8, fp                                     |     r3 = r8 + fp;
    0x0000a946 adc r2, r2, 0                                         |     __asm ("adc r2, r2, 0");
    0x0000a94a mla r6, r7, r1, r6                                    |     __asm ("mla r6, r7, r1, r6");
    0x0000a94e umull r0, r7, r0, r7                                  |     r0:r7 = r0 * r7;
    0x0000a952 adds r5, r0, r3                                       |     r5 = r0 + r3;
    0x0000a954 ldr.w r3, [pc, 0x67c]                                 |     r3 = *(0x0000afd4);
    0x0000a958 ldr.w r0, [sl, 0x10]                                  |     r0 = *((sl + 0x10));
    0x0000a95c add r6, r7                                            |     r6 += r7;
    0x0000a95e adc.w r6, r6, r2                                      |     __asm ("adc.w r6, r6, r2");
    0x0000a962 movs r7, 0                                            |     r7 = 0;
    0x0000a964 add r3, pc                                            |     r3 += pc;
    0x0000a966 strd r5, r6, [r3, 0x10]                               |     __asm ("strd r5, r6, [r3, 0x10]");
    0x0000a968 ldrsb r4, [r0, r0]                                    |     r4 = *((r0 + r0));
    0x0000a96a ldr r4, [r0, 0x14]                                    |     r4 = *((r0 + 0x14));
    0x0000a96c blx 0x33dc                                            |     r0 = fcn_000033dc ();
    0x0000a970 adds.w r8, r0, -1                                     |     r8 = r0 + -1;
    0x0000a974 sbc sb, r1, 0                                         |     __asm ("sbc sb, r1, 0");
    0x0000a978 orrs.w r3, r5, r6                                     |     r3 = r5 | r6;
                                                                     |     if (r3 == r5) {
    0x0000a97c beq 0xa9ea                                            |         goto label_18;
                                                                     |     }
    0x0000a97e add r3, sp, 0x80                                      |     r3 += arg_80h;
    0x0000a980 mov fp, r5                                            |     
    0x0000a982 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0000a984 mov r3, r8                                            |     r3 = r8;
    0x0000a986 mov r8, r7                                            |     r8 = r7;
    0x0000a988 mov r7, r3                                            |     r7 = r3;
                                                                     |     do {
    0x0000a98a ldr r5, [sp, 0x1c]                                    |         r5 = var_1ch;
    0x0000a98c mov r2, r4                                            |         r2 = r4;
    0x0000a98e strd r7, sb, [sp]                                     |         __asm ("strd r7, sb, [sp]");
    0x0000a992 mov r3, r8                                            |         r3 = r8;
    0x0000a994 str r5, [sp, 8]                                       |         var_8h_2 = r5;
    0x0000a996 ldr.w r0, [sl, 0x30]                                  |         r0 = *((sl + 0x30));
    0x0000a99a blx 0x3864                                            |         r0 = ext2fs_get_journal_params ();
                                                                     |         if (r0 != 0) {
    0x0000a99e cbnz r0, 0xa9e8                                       |             goto label_32;
                                                                     |         }
    0x0000a9a0 str r5, [sp, 8]                                       |         var_8h_2 = r5;
    0x0000a9a2 ldrd r5, r3, [sp, 0x80]                               |         __asm ("ldrd r5, r3, [arg_80h]");
    0x0000a9a6 strd r7, sb, [sp]                                     |         __asm ("strd r7, sb, [sp]");
    0x0000a9aa ldr.w r0, [sl, 0x30]                                  |         r0 = *((sl + 0x30));
    0x0000a9ae mov r2, r5                                            |         r2 = r5;
    0x0000a9b0 str r3, [sp, 0x10]                                    |         var_10h = r3;
    0x0000a9b2 blx 0x384c                                            |         ext2fs_block_alloc_stats_range ();
    0x0000a9b6 ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0000a9b8 ldrd r4, r8, [sp, 0x80]                               |         __asm ("ldrd r4, r8, [arg_80h]");
                                                                     |         if (r0 != 0) {
    0x0000a9bc cbz r0, 0xa9c2                                        |             
    0x0000a9be mov r4, r7                                            |             r4 = r7;
    0x0000a9c0 mov r8, sb                                            |             r8 = sb;
                                                                     |         }
    0x0000a9c2 subs r0, r4, r5                                       |         r0 = r4 - r5;
    0x0000a9c4 sbc.w r2, r8, r3                                      |         __asm ("sbc.w r2, r8, r3");
    0x0000a9c8 cmp fp, r0                                            |         
    0x0000a9ca sbcs.w r2, r6, r2                                     |         __asm ("sbcs.w r2, r6, r2");
                                                                     |         if (fp <= r0) {
    0x0000a9ce blo.w 0xaf16                                          |             goto label_33;
                                                                     |         }
    0x0000a9d0 strh r2, [r4, 0x14]                                   |         *((r4 + 0x14)) = r2;
    0x0000a9d2 subs r5, r5, r4                                       |         r5 -= r4;
    0x0000a9d4 sbc.w r1, r3, r8                                      |         __asm ("sbc.w r1, r3, r8");
    0x0000a9d8 adds.w r5, r5, fp                                     |         r5 += fp;
    0x0000a9dc adc.w r6, r6, r1                                      |         __asm ("adc.w r6, r6, r1");
    0x0000a9e0 mov fp, r5                                            |         
    0x0000a9e2 orrs.w r2, r5, r6                                     |         r2 = r5 | r6;
    0x0000a9e4 lsls r6, r0, 8                                        |         r6 = r0 << 8;
    0x0000a9e6 bne 0xa98a                                            |         
                                                                     |     } while (r6 != r0);
                                                                     | label_32:
    0x0000a9e8 mov r7, r8                                            |     r7 = r8;
                                                                     | label_18:
    0x0000a9ea ldr r5, [sp, 0x20]                                    |     r5 = var_20h;
                                                                     |     if (r5 != 0) {
    0x0000a9ec cbz r5, 0xaa0e                                        |         
    0x0000a9ee ldr r0, [sp, 0x24]                                    |         r0 = var_24h;
    0x0000a9f0 mov r2, r5                                            |         r2 = r5;
    0x0000a9f2 ldr r1, [sp, 0x30]                                    |         r1 = var_0h;
    0x0000a9f4 movs r3, 0                                            |         r3 = 0;
    0x0000a9f6 bl 0x120a8                                            |         fcn_000120a8 (r0, r1, r2, r3);
    0x0000a9fa adds r0, r2, r4                                       |         r0 = r2 + r4;
    0x0000a9fc mov r2, r5                                            |         r2 = r5;
    0x0000a9fe adc.w r1, r7, r3                                      |         __asm ("adc.w r1, r7, r3");
    0x0000aa02 movs r3, 0                                            |         r3 = 0;
    0x0000aa04 bl 0x120a8                                            |         fcn_000120a8 (r0, r1, r2, r3);
    0x0000aa08 cmp r2, 0                                             |         
                                                                     |         if (r2 != 0) {
    0x0000aa0a bne.w 0xaee4                                          |             goto label_34;
                                                                     |         }
                                                                     |     }
                                                                     | label_14:
    0x0000aa0e ldr.w r3, [pc, 0x5c8]                                 |     r3 = *(0x0000afd8);
    0x0000aa12 mov.w r0, -0x80000000                                 |     r0 = -0x80000000;
    0x0000aa16 add r3, pc                                            |     r3 += pc;
    0x0000aa18 ldr r2, [r3, 0x18]                                    |     r2 = *((r3 + 0x18));
    0x0000aa1a ldr r1, [r3, 0x1c]                                    |     r1 = *((r3 + 0x1c));
    0x0000aa1c strd r4, r7, [r3, 0x28]                               |     __asm ("strd r4, r7, [r3, 0x28]");
    0x0000aa20 str r2, [sp, 0x20]                                    |     var_20h = r2;
    0x0000aa22 orrs.w r3, r2, r1                                     |     r3 = r2 | r1;
    0x0000aa26 str r1, [sp, 0x24]                                    |     var_24h = r1;
    0x0000aa28 it ne                                                 |     
                                                                     |     if (r3 != r2) {
    0x0000aa2a strdne r2, r1, [sp, 0x28]                             |         __asm ("strdne r2, r1, [sp, 0x28]");
                                                                     |     }
    0x0000aa2e ldr.w r1, [sl, 0x14]                                  |     r1 = *((sl + 0x14));
    0x0000aa30 asrs r4, r2, 0x20                                     |     r4 = r2 >> 0x20;
    0x0000aa32 bl 0x11768                                            |     fcn_00011768 (r0, r1, r2);
    0x0000aa36 ldr r2, [sp, 0x28]                                    |     r2 = var_28h;
    0x0000aa38 movs r3, 0                                            |     r3 = 0;
    0x0000aa3a cmp r0, r2                                            |     
    0x0000aa3c ldr r2, [sp, 0x2c]                                    |     r2 = var_2ch;
    0x0000aa3e sbcs r3, r2                                           |     __asm ("sbcs r3, r2");
    0x0000aa40 itttt lo                                              |     
                                                                     |     if (r0 >= r2) {
    0x0000aa42 ldrlo r2, [sl, 0x10]                                  |         r2 = *((sl + 0x10));
                                                                     |     }
                                                                     |     if (r0 >= r2) {
    0x0000aa46 ldrlo r3, [r2, 0x64]                                  |         r3 = *((r2 + 0x64));
                                                                     |     }
                                                                     |     if (r0 >= r2) {
    0x0000aa48 orrlo r3, r3, 2                                       |         r3 |= 2;
                                                                     |     }
                                                                     |     if (r0 < r2) {
    0x0000aa4c str r3, [r2, 0x64]                                    |         *((r2 + 0x64)) = r3;
                                                                     |     }
    0x0000aa4e ldr.w r3, [pc, 0x58c]                                 |     
    0x0000aa52 ldr r2, [sp, 0x38]                                    |     r2 = s2;
    0x0000aa54 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0000aa56 str r3, [sp, 0x70]                                    |     *(arg_70h) = r3;
    0x0000aa58 ldr r3, [r3]                                          |     r3 = *(0xafde);
    0x0000aa5a cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000aa5c bne.w 0xaeb0                                          |         goto label_35;
                                                                     |     }
    0x0000aa60 ldr.w r3, [pc, 0x57c]                                 |     r3 = *(0x0000afe0);
    0x0000aa64 add r3, pc                                            |     r3 += pc;
    0x0000aa66 ldr r3, [r3]                                          |     r3 = *(r3);
                                                                     |     if (r3 != 0) {
    0x0000aa68 cbz r3, 0xaa7e                                        |         
    0x0000aa6a ldr.w r3, [pc, 0x578]                                 |         
    0x0000aa6e ldr r3, [r2, r3]                                      |         r3 = *((r2 + r3));
    0x0000aa70 ldr r3, [r3]                                          |         r3 = *(0xafe6);
                                                                     |         if (r3 == 0) {
    0x0000aa72 cbz r3, 0xaa7e                                        |             goto label_36;
                                                                     |         }
    0x0000aa74 ldr.w r0, [pc, 0x570]                                 |         
    0x0000aa78 add r0, pc                                            |         r0 = 0x15a64;
    0x0000aa7a blx 0x341c                                            |         fcn_0000341c ();
                                                                     |     }
                                                                     | label_36:
    0x0000aa7e ldr.w r4, [pc, 0x56c]                                 |     r4 = *(0x0000afec);
    0x0000aa82 movs r0, 1                                            |     r0 = 1;
    0x0000aa84 ldr.w r1, [pc, 0x568]                                 |     
    0x0000aa88 add r4, pc                                            |     r4 += pc;
    0x0000aa8a ldr r2, [r4, 8]                                       |     r2 = *((r4 + 8));
    0x0000aa8c add r1, pc                                            |     r1 = 0x15a80;
    0x0000aa8e blx 0x3620                                            |     fcn_00003620 ();
    0x0000aa92 ldrd r2, r3, [r4, 0x18]                               |     __asm ("ldrd r2, r3, [r4, 0x18]");
    0x0000aa96 orrs.w r1, r2, r3                                     |     r1 = r2 | r3;
                                                                     |     if (r1 != r2) {
    0x0000aa9a bne.w 0xaf0a                                          |         goto label_37;
                                                                     |     }
                                                                     | label_17:
    0x0000aa9e ldr r2, [sp, 0x38]                                    |     r2 = s2;
    0x0000aaa0 movs r1, 1                                            |     r1 = 1;
    0x0000aaa2 ldr.w r3, [pc, 0x550]                                 |     
    0x0000aaa6 ldr.w r0, [pc, 0x550]                                 |     
    0x0000aaaa ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0000aaac movs r2, 2                                            |     r2 = 2;
    0x0000aaae add r0, pc                                            |     r0 = 0x15aac;
    0x0000aab0 ldr r3, [r3]                                          |     
    0x0000aab2 blx 0x3324                                            |     strcat (r0, r1)
    0x0000aab6 ldr.w r3, [pc, 0x544]                                 |     r3 = *(0x0000affc);
    0x0000aaba add r3, pc                                            |     r3 = 0x15ab4;
    0x0000aabc ldr r2, [r3, 8]                                       |     r2 = *(0x15abc);
    0x0000aabe cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0000aac0 beq.w 0xaec2                                          |         goto label_38;
                                                                     |     }
    0x0000aac4 ldr r2, [r3, 0x18]                                    |     r2 = *((r3 + 0x18));
    0x0000aac6 ldr r3, [r3, 0x1c]                                    |     r3 = *((r3 + 0x1c));
    0x0000aac8 str r2, [sp, 0x20]                                    |     var_20h = r2;
    0x0000aaca str r3, [sp, 0x24]                                    |     var_24h = r3;
                                                                     | label_12:
    0x0000aacc ldr.w r3, [pc, 0x530]                                 |     r3 = *(0x0000b000);
    0x0000aad0 mov fp, sl                                            |     
    0x0000aad2 add r3, pc                                            |     r3 += pc;
    0x0000aad4 str r3, [sp, 0x64]                                    |     *(arg_4h) = r3;
    0x0000aad6 ldr.w r3, [pc, 0x52c]                                 |     r3 = *(0x0000b004);
    0x0000aada add r3, pc                                            |     r3 += pc;
    0x0000aadc str r3, [sp, 0x68]                                    |     *(arg_68h) = r3;
    0x0000aade mov.w r3, 0x8000                                      |     
    0x0000aae2 movt r3, 0xffff                                       |     r3 = 0x-8000;
    0x0000aae6 str r3, [sp, 0x54]                                    |     var_54h = r3;
    0x0000aae8 movw r3, 0xb726                                       |     
    0x0000aaec movt r3, 0x7f2b                                       |     r3 = 0x7f2bb726;
    0x0000aaf0 str r3, [sp, 0x74]                                    |     *(arg_74h) = r3;
    0x0000aaf2 movs r3, 0                                            |     r3 = 0;
    0x0000aaf4 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0000aaf6 add r3, sp, 0x78                                      |     r3 += c;
    0x0000aaf8 str r3, [sp, 0x30]                                    |     var_0h = r3;
                                                                     | label_8:
    0x0000aafa ldr r3, [sp, 0x30]                                    |     r3 = var_0h;
    0x0000aafc mov.w r2, 0x8000                                      |     r2 = 0x8000;
    0x0000ab00 mov r0, fp                                            |     r0 = fp;
    0x0000ab02 str r3, [sp]                                          |     *(sp) = r3;
    0x0000ab04 movs r3, 0                                            |     r3 = 0;
    0x0000ab06 mov r1, r3                                            |     r1 = r3;
    0x0000ab08 blx 0x336c                                            |     r0 = strcpy (r0, r1);
    0x0000ab0c cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000ab0e bne.w 0xace6                                          |         goto label_39;
                                                                     |     }
    0x0000ab12 mov r1, r0                                            |     r1 = r0;
    0x0000ab14 movs r2, 0x7c                                         |     r2 = 0x7c;
    0x0000ab16 add r0, sp, 0xa0                                      |     r0 += arg_a0h;
    0x0000ab18 movs r4, 1                                            |     r4 = 1;
    0x0000ab1a blx 0x35bc                                            |     fcn_000035bc ();
    0x0000ab1e ldr.w r3, [fp, 0x5c]                                  |     r3 = *(arg_5ch);
    0x0000ab22 mov r0, fp                                            |     r0 = fp;
    0x0000ab24 ldr r1, [sp, 0x54]                                    |     r1 = var_54h;
    0x0000ab26 ldr.w r2, [pc, 0x4e0]                                 |     r2 = *(0x0000b008);
    0x0000ab2a mvns r3, r3                                           |     r3 = ~r3;
    0x0000ab2c strh.w r4, [sp, 0xb6]                                 |     *(arg_b6h) = r4;
    0x0000ab30 and r3, r3, 0x1b6                                     |     r3 &= 0x1b6;
    0x0000ab34 orrs r3, r1                                           |     r3 |= r1;
    0x0000ab36 add r2, pc                                            |     r2 += pc;
    0x0000ab38 strh.w r3, [sp, 0x9c]                                 |     *(arg_9ch) = r3;
    0x0000ab3c ldrd r2, r3, [r2]                                     |     __asm ("ldrd r2, r3, [r2]");
    0x0000ab40 ldr r1, [sp, 0x78]                                    |     r1 = *(c);
    0x0000ab42 strh.w r3, [sp, 0xb4]                                 |     *(arg_b4h) = r3;
    0x0000ab46 lsrs r3, r3, 0x10                                     |     r3 >>= 0x10;
    0x0000ab48 strh.w r2, [sp, 0x9e]                                 |     *(arg_9eh) = r2;
    0x0000ab4c lsrs r2, r2, 0x10                                     |     r2 >>= 0x10;
    0x0000ab4e strh.w r3, [sp, 0x116]                                |     *(arg_116h) = r3;
    0x0000ab52 add r3, sp, 0x9c                                      |     r3 += arg_9ch;
    0x0000ab54 strh.w r2, [sp, 0x114]                                |     *(arg_114h) = r2;
    0x0000ab58 mov r2, r3                                            |     r2 = r3;
    0x0000ab5a mov r5, r3                                            |     r5 = r3;
    0x0000ab5c str r3, [sp, 0x58]                                    |     var_58h = r3;
    0x0000ab5e blx 0x3400                                            |     r0 = fcn_00003400 ();
    0x0000ab62 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000ab64 bne.w 0xace6                                          |         goto label_39;
                                                                     |     }
    0x0000ab68 mov r3, r0                                            |     r3 = r0;
    0x0000ab6a ldr r1, [sp, 0x78]                                    |     r1 = *(c);
    0x0000ab6c mov r2, r4                                            |     r2 = r4;
    0x0000ab6e mov r0, fp                                            |     r0 = fp;
    0x0000ab70 blx 0x3798                                            |     strrchr (r0, r1);
    0x0000ab74 ldr r1, [sp, 0x78]                                    |     r1 = *(c);
    0x0000ab76 add r3, sp, 0x7c                                      |     r3 += arg_7ch;
    0x0000ab78 mov r2, r5                                            |     r2 = r5;
    0x0000ab7a mov r0, fp                                            |     r0 = fp;
    0x0000ab7c blx 0x3644                                            |     r0 = fcn_00003644 ();
    0x0000ab80 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000ab82 bne.w 0xace6                                          |         goto label_39;
                                                                     |     }
    0x0000ab86 ldr r3, [sp, 0x20]                                    |     r3 = var_20h;
    0x0000ab88 ldr r2, [sp, 0x24]                                    |     r2 = var_24h;
    0x0000ab8a str.w fp, [sp, 0x28]                                  |     __asm ("str.w fp, [var_28h]");
    0x0000ab8e str r3, [sp, 0x3c]                                    |     var_ch = r3;
    0x0000ab90 orrs r3, r2                                           |     r3 |= r2;
    0x0000ab92 ldr.w r3, [pc, 0x478]                                 |     r3 = *(0x0000b00c);
    0x0000ab96 str r2, [sp, 0x40]                                    |     var_40h = r2;
    0x0000ab98 it eq                                                 |     
                                                                     |     if (r3 == r2) {
    0x0000ab9a strdeq r4, r0, [sp, 0x3c]                             |         __asm ("strdeq r4, r0, [sp, 0x3c]");
                                                                     |     }
    0x0000ab9e add r3, pc                                            |     r3 += pc;
    0x0000aba0 str r3, [sp, 0x48]                                    |     var_48h = r3;
    0x0000aba2 movs r3, 0                                            |     r3 = 0;
    0x0000aba4 mov sb, r3                                            |     sb = r3;
    0x0000aba6 mov sl, r3                                            |     sl = r3;
    0x0000aba8 mov r7, sb                                            |     r7 = sb;
    0x0000abaa strd r3, r3, [sp, 0x4c]                               |     __asm ("strd r3, r3, [sp, 0x4c]");
    0x0000abae strd r3, r3, [sp, 0x5c]                               |     __asm ("strd r3, r3, [sp, 0x5c]");
    0x0000abb2 add r3, sp, 0x80                                      |     r3 += arg_80h;
    0x0000abb4 str r3, [sp, 0x34]                                    |     var_4h = r3;
                                                                     | label_5:
    0x0000abb6 ldr r3, [sp, 0x28]                                    |     r3 = var_28h;
    0x0000abb8 ldr r4, [r3, 0x30]                                    |     r4 = *((r3 + 0x30));
    0x0000abba ldr r0, [r3, 0x10]                                    |     r0 = *((r3 + 0x10));
    0x0000abbc ldr r3, [sp, 0x48]                                    |     r3 = var_48h;
    0x0000abbe ldrd r2, r3, [r3, 0x28]                               |     __asm ("ldrd r2, r3, [r3, 0x28]");
    0x0000abc2 strd r2, r3, [sp, 0x10]                               |     __asm ("strd r2, r3, [sp, 0x10]");
    0x0000abc6 blx 0x33dc                                            |     r0 = fcn_000033dc ();
    0x0000abca mov r5, r0                                            |     r5 = r0;
    0x0000abcc ldrd r2, r3, [sp, 0x10]                               |     __asm ("ldrd r2, r3, [var_10h]");
    0x0000abd0 subs r5, 1                                            |     r5--;
    0x0000abd2 mov r0, r4                                            |     r0 = r4;
    0x0000abd4 sbc r1, r1, 0                                         |     __asm ("sbc r1, r1, 0");
    0x0000abd8 str r5, [sp]                                          |     *(sp) = r5;
    0x0000abda str r1, [sp, 4]                                       |     var_4h_2 = r1;
    0x0000abdc ldr r1, [sp, 0x34]                                    |     r1 = var_4h;
    0x0000abde str r1, [sp, 8]                                       |     var_8h_2 = r1;
    0x0000abe0 blx 0x3864                                            |     r0 = ext2fs_get_journal_params ();
                                                                     |     if (r0 != 0) {
    0x0000abe4 cbz r0, 0xabf4                                        |         
                                                                     | label_6:
    0x0000abe6 mov fp, r0                                            |         
    0x0000abe8 ldr r0, [sp, 0x7c]                                    |         r0 = *(arg_7ch);
                                                                     | label_20:
    0x0000abea cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0000abec beq 0xace8                                            |             goto label_40;
                                                                     |         }
    0x0000abee blx 0x37f8                                            |         ext2fs_numeric_progress_close ();
    0x0000abf2 b 0xace8                                              |         goto label_40;
                                                                     |     }
    0x0000abf4 ldr r3, [sp, 0x28]                                    |     r3 = var_28h;
    0x0000abf6 ldrd r8, sb, [sp, 0x80]                               |     __asm ("ldrd r8, sb, [arg_80h]");
    0x0000abfa ldr r4, [r3, 0x30]                                    |     r4 = *((r3 + 0x30));
    0x0000abfc ldr r0, [r3, 0x10]                                    |     r0 = *((r3 + 0x10));
    0x0000abfe ldr r3, [sp, 0x48]                                    |     r3 = var_48h;
    0x0000ac00 strd r8, sb, [r3, 0x28]                               |     __asm ("strd r8, sb, [r3, 0x28]");
    0x0000ac04 blx 0x33dc                                            |     fcn_000033dc ();
    0x0000ac08 subs r0, 1                                            |     r0--;
    0x0000ac0a mov r2, r8                                            |     r2 = r8;
    0x0000ac0c sbc r1, r1, 0                                         |     __asm ("sbc r1, r1, 0");
    0x0000ac10 str r0, [sp]                                          |     *(sp) = r0;
    0x0000ac12 str r1, [sp, 4]                                       |     var_4h_2 = r1;
    0x0000ac14 mov r3, sb                                            |     r3 = sb;
    0x0000ac16 ldr r1, [sp, 0x34]                                    |     r1 = var_4h;
    0x0000ac18 mov r0, r4                                            |     r0 = r4;
    0x0000ac1a str r1, [sp, 8]                                       |     var_8h_2 = r1;
    0x0000ac1c blx 0x384c                                            |     r0 = ext2fs_block_alloc_stats_range ();
    0x0000ac20 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000ac22 bne.w 0xae0c                                          |         goto label_41;
                                                                     |     }
    0x0000ac26 ldr r3, [sp, 0x80]                                    |     r3 = *(arg_80h);
    0x0000ac28 str r3, [sp, 0x4c]                                    |     var_4ch = r3;
    0x0000ac2a ldr r3, [sp, 0x84]                                    |     r3 = *(arg_84h);
    0x0000ac2c str r3, [sp, 0x50]                                    |     var_50h = r3;
                                                                     | label_9:
    0x0000ac2e ldrd r3, r2, [sp, 0x20]                               |     __asm ("ldrd r3, r2, [var_20h]");
    0x0000ac32 orrs r3, r2                                           |     r3 |= r2;
                                                                     |     if (r3 != r2) {
    0x0000ac34 bne.w 0xae26                                          |         goto label_42;
                                                                     |     }
                                                                     | label_16:
    0x0000ac38 ldr r3, [sp, 0x68]                                    |     r3 = *(arg_68h);
    0x0000ac3a ldr r2, [sp, 0x50]                                    |     r2 = var_50h;
    0x0000ac3c ldrd r6, fp, [r3, 0x28]                               |     __asm ("ldrd r6, fp, [r3, 0x28]");
    0x0000ac40 ldr r3, [sp, 0x4c]                                    |     r3 = var_4ch;
    0x0000ac42 mov r1, r2                                            |     r1 = r2;
    0x0000ac44 mov r0, r3                                            |     r0 = r3;
    0x0000ac46 subs r3, r3, r6                                       |     r3 -= r6;
    0x0000ac48 str r3, [sp, 0x2c]                                    |     var_2ch = r3;
    0x0000ac4a sbc.w r3, r2, fp                                      |     __asm ("sbc.w r3, r2, fp");
    0x0000ac4e str r3, [sp, 0x44]                                    |     var_44h = r3;
                                                                     | label_10:
    0x0000ac50 ldr r2, [pc, 0x3bc]                                   |     
    0x0000ac52 ldr r3, [sp, 0x2c]                                    |     r3 = var_2ch;
    0x0000ac54 add r2, pc                                            |     r2 = "while allocating inode \"%s\";
    0x0000ac56 str r3, [sp]                                          |     *(sp) = r3;
    0x0000ac58 mov r3, fp                                            |     r3 = fp;
    0x0000ac5a strd r0, r1, [r2, 0x28]                               |     __asm ("strd r0, r1, [r2, 0x28]");
    0x0000ac5e movs r2, 1                                            |     r2 = 1;
    0x0000ac60 str r2, [sp, 4]                                       |     var_4h_2 = r2;
    0x0000ac62 mov r2, r6                                            |     r2 = r6;
    0x0000ac64 ldr r0, [sp, 0x28]                                    |     r0 = var_28h;
    0x0000ac66 blx 0x3870                                            |     ext2fs_allocate_tables ();
    0x0000ac6a ldr r2, [pc, 0x3a8]                                   |     
    0x0000ac6c add r2, pc                                            |     
    0x0000ac6e ldr r2, [r2]                                          |     r2 = *(0x15c86);
    0x0000ac70 cmp r2, 0                                             |     
                                                                     |     if (r2 != 0) {
    0x0000ac72 bne.w 0xae60                                          |         goto label_43;
                                                                     |     }
                                                                     | label_11:
    0x0000ac76 ldr r5, [sp, 0x2c]                                    |     r5 = var_2ch;
    0x0000ac78 ldr r3, [sp, 0x44]                                    |     r3 = var_44h;
    0x0000ac7a orrs.w r2, r5, r3                                     |     r2 = r5 | r3;
                                                                     |     if (r2 == r5) {
    0x0000ac7e beq 0xad0a                                            |         goto label_44;
                                                                     |     }
    0x0000ac80 mov r8, r3                                            |     r8 = r3;
    0x0000ac82 mov r3, r7                                            |     r3 = r7;
    0x0000ac84 mov r7, fp                                            |     r7 = fp;
    0x0000ac86 ldr.w fp, [sp, 0x34]                                  |     fp = var_4h;
    0x0000ac8a b 0xaca8                                              |     
                                                                     |     while (r0 == 0) {
    0x0000ac8c ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0000ac8e adds r6, r4, r6                                       |         r6 = r4 + r6;
    0x0000ac90 adc.w r7, sb, r7                                      |         __asm ("adc.w r7, sb, r7");
    0x0000ac94 adds r3, r4, r3                                       |         r3 = r4 + r3;
    0x0000ac96 adc.w sl, sb, sl                                      |         __asm ("adc.w sl, sb, sl");
    0x0000ac9a subs r4, r5, r4                                       |         r4 = r5 - r4;
    0x0000ac9c sbc.w r8, r8, sb                                      |         __asm ("sbc.w r8, r8, sb");
    0x0000aca0 mov r5, r4                                            |         r5 = r4;
    0x0000aca2 orrs.w r2, r4, r8                                     |         r2 = r4 | r8;
                                                                     |         if (r2 == r4) {
    0x0000aca6 beq 0xad08                                            |             goto label_45;
                                                                     |         }
    0x0000aca8 movw r2, 0x8001                                       |         r2 = 0x8001;
    0x0000acac mov r4, r5                                            |         r4 = r5;
    0x0000acae cmp r5, r2                                            |         
    0x0000acb0 str r3, [sp, 0x88]                                    |         *(arg_88h) = r3;
    0x0000acb2 sbcs r2, r8, 0                                        |         __asm ("sbcs r2, r8, 0");
    0x0000acb6 str r3, [sp, 0x10]                                    |         var_10h = r3;
    0x0000acb8 it hs                                                 |         
                                                                     |         if (r5 < r2) {
    0x0000acba movhs r4, 0x8000                                      |             r4 = 0x8000;
                                                                     |         }
    0x0000acbe mov.w r3, 0                                           |         r3 = 0;
    0x0000acc2 ldr r0, [sp, 0x7c]                                    |         r0 = *(arg_7ch);
    0x0000acc4 mov r2, fp                                            |         r2 = fp;
    0x0000acc6 mov.w r1, 1                                           |         r1 = 1;
    0x0000acca mov sb, r8                                            |         sb = r8;
    0x0000accc str r4, [sp, 0x90]                                    |         *(arg_90h) = r4;
    0x0000acce it hs                                                 |         
                                                                     |         if (r5 < r2) {
    0x0000acd0 movhs sb, 0                                           |             sb = 0;
                                                                     |         }
    0x0000acd4 strd r6, r7, [sp, 0x80]                               |         __asm ("strd r6, r7, [sp, 0x80]");
    0x0000acd8 str.w sl, [sp, 0x8c]                                  |         __asm ("str.w sl, [arg_8ch]");
    0x0000acdc str r3, [sp, 0x94]                                    |         *(arg_94h) = r3;
    0x0000acde blx 0x2f40                                            |         r0 = ext2fs_extent_insert ();
    0x0000ace2 cmp r0, 0                                             |         
    0x0000ace4 beq 0xac8c                                            |         
                                                                     |     }
                                                                     | label_39:
    0x0000ace6 mov fp, r0                                            |     
                                                                     | label_40:
    0x0000ace8 ldr r0, [sp, 0x38]                                    |     r0 = s2;
    0x0000acea ldr r1, [pc, 0x32c]                                   |     r1 = *(0xb01a);
    0x0000acec ldr r2, [pc, 0x32c]                                   |     
    0x0000acee ldr r3, [sp, 0x1c]                                    |     r3 = var_1ch;
    0x0000acf0 ldr r1, [r0, r1]                                      |     r1 = *((r0 + r1));
    0x0000acf2 add r2, pc                                            |     r2 = 0x15d12;
    0x0000acf4 ldr r0, [r1]                                          |     r0 = *(0xb01a);
    0x0000acf6 mov r1, fp                                            |     r1 = fp;
    0x0000acf8 blx 0x32cc                                            |     fcn_000032cc ();
                                                                     | label_13:
    0x0000acfc ldr r3, [pc, 0x320]                                   |     
    0x0000acfe add r3, pc                                            |     r3 = 0x15d22;
    0x0000ad00 ldr r0, [r3, 0x34]                                    |     r0 = *(0x15d56);
    0x0000ad02 blx 0x3098                                            |     fcn_00003098 ();
    0x0000ad06 b 0xa82a                                              |     goto label_2;
                                                                     | label_45:
    0x0000ad08 mov r7, r3                                            |     r7 = r3;
                                                                     | label_44:
    0x0000ad0a ldr r2, [sp, 0x5c]                                    |     r2 = var_5ch;
    0x0000ad0c ldr r3, [sp, 0x2c]                                    |     r3 = var_2ch;
    0x0000ad0e ldr r1, [sp, 0x44]                                    |     r1 = var_44h;
    0x0000ad10 adds r3, r3, r2                                       |     r3 += r2;
    0x0000ad12 ldr r2, [sp, 0x60]                                    |     r2 = *(arg_0h);
    0x0000ad14 adc.w r2, r2, r1                                      |     __asm ("adc.w r2, r2, r1");
    0x0000ad16 lsls r1, r0, 8                                        |     r1 = r0 << 8;
    0x0000ad18 strd r3, r2, [sp, 0x5c]                               |     __asm ("strd r3, r2, [sp, 0x5c]");
    0x0000ad1c ldrd r3, r2, [sp, 0x3c]                               |     __asm ("ldrd r3, r2, [var_ch]");
    0x0000ad20 orrs r3, r2                                           |     r3 |= r2;
                                                                     |     if (r3 != r2) {
    0x0000ad22 bne.w 0xabb6                                          |         goto label_5;
                                                                     |     }
    0x0000ad26 ldr.w fp, [sp, 0x28]                                  |     fp = var_28h;
    0x0000ad2a ldr r1, [sp, 0x78]                                    |     r1 = *(c);
    0x0000ad2c ldr r2, [sp, 0x58]                                    |     r2 = var_58h;
    0x0000ad2e mov r0, fp                                            |     r0 = fp;
    0x0000ad30 blx 0x2f58                                            |     r0 = ext2fs_read_inode ();
    0x0000ad34 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000ad36 bne.w 0xabe6                                          |         goto label_6;
                                                                     |     }
    0x0000ad3a ldr.w r2, [fp, 0x64]                                  |     r2 = *(arg_64h);
    0x0000ad3e movs r4, 1                                            |     r4 = 1;
    0x0000ad40 ldrd r0, r1, [sp, 0x5c]                               |     __asm ("ldrd r0, r1, [var_5ch]");
    0x0000ad44 lsl.w r2, r4, r2                                      |     r2 = r4 << r2;
    0x0000ad48 asrs r3, r2, 0x1f                                     |     r3 = r2 >> 0x1f;
    0x0000ad4a bl 0x120a8                                            |     r0 = fcn_000120a8 (r0, r1, r2, r3);
    0x0000ad4e mov r2, r0                                            |     r2 = r0;
    0x0000ad50 mov r3, r1                                            |     r3 = r1;
    0x0000ad52 mov r0, fp                                            |     r0 = fp;
    0x0000ad54 ldr r1, [sp, 0x58]                                    |     r1 = var_58h;
    0x0000ad56 blx 0x3708                                            |     r0 = e2p_edit_feature ();
    0x0000ad5a cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000ad5c bne.w 0xabe6                                          |         goto label_6;
                                                                     |     }
    0x0000ad60 ldr.w r3, [fp, 0x14]                                  |     r3 = *(arg_74h);
    0x0000ad64 mov r0, fp                                            |     r0 = fp;
    0x0000ad66 ldr r2, [sp, 0x5c]                                    |     r2 = var_5ch;
    0x0000ad68 ldr r6, [sp, 0x60]                                    |     r6 = *(arg_0h);
    0x0000ad6a ldr r1, [sp, 0x58]                                    |     r1 = var_58h;
    0x0000ad6c umull r2, r5, r3, r2                                  |     r2:r5 = r3 * r2;
    0x0000ad70 mla r3, r3, r6, r5                                    |     __asm ("mla r3, r3, r6, r5");
    0x0000ad74 blx 0x32f0                                            |     r0 = fcn_000032f0 ();
    0x0000ad78 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000ad7a bne.w 0xabe6                                          |         goto label_6;
                                                                     |     }
    0x0000ad7e ldr r2, [sp, 0x58]                                    |     r2 = var_58h;
    0x0000ad80 mov r0, fp                                            |     r0 = fp;
    0x0000ad82 ldr r1, [sp, 0x78]                                    |     r1 = *(c);
    0x0000ad84 blx 0x3400                                            |     r0 = fcn_00003400 ();
    0x0000ad88 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000ad8a bne.w 0xabe6                                          |         goto label_6;
                                                                     |     }
    0x0000ad8e ldr r3, [pc, 0x294]                                   |     
    0x0000ad90 add r3, pc                                            |     r3 = 0x15dba;
    0x0000ad92 ldr r2, [r3, 0x30]                                    |     r2 = *(0x15dea);
    0x0000ad94 cmp r2, 0                                             |     
                                                                     |     if (r2 != 0) {
    0x0000ad96 bne.w 0xaf22                                          |         goto label_46;
                                                                     |     }
    0x0000ad9a ldr r2, [r3, 8]                                       |     r2 = *((r3 + 8));
    0x0000ad9c cmp r2, 1                                             |     
                                                                     |     if (r2 >= 1) {
    0x0000ad9e bls 0xadb4                                            |         
    0x0000ada0 ldr r0, [r3, 0x20]                                    |         r0 = *((r3 + 0x20));
    0x0000ada2 mov r1, r4                                            |         r1 = r4;
    0x0000ada4 ldr r3, [sp, 0x1c]                                    |         r3 = var_1ch;
    0x0000ada6 mov.w r2, -1                                          |         r2 = -1;
    0x0000adaa str r3, [sp]                                          |         *(sp) = r3;
    0x0000adac ldr r3, [pc, 0x278]                                   |         
    0x0000adae add r3, pc                                            |         r3 = 0x15dda;
    0x0000adb0 blx 0x3594                                            |         ext2fs_open2 ();
                                                                     |     }
                                                                     | label_19:
    0x0000adb4 ldr r5, [pc, 0x274]                                   |     
    0x0000adb6 movs r4, 1                                            |     r4 = 1;
    0x0000adb8 ldr r6, [sp, 0x6c]                                    |     r6 = *(arg_6ch);
    0x0000adba add r5, pc                                            |     r5 = 0x15dea;
    0x0000adbc b 0xadcc                                              |     goto label_47;
                                                                     | label_7:
    0x0000adbe mov r1, r6                                            |     r1 = r6;
    0x0000adc0 mov r0, fp                                            |     r0 = fp;
    0x0000adc2 blx 0x3570                                            |     r0 = ext2fs_init_csum_seed ();
    0x0000adc6 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000adc8 bne.w 0xabe6                                          |         goto label_6;
                                                                     |     }
                                                                     | label_47:
    0x0000adcc ldr r3, [sp, 0x78]                                    |     r3 = *(c);
    0x0000adce mov r1, r6                                            |     r1 = r6;
    0x0000add0 str r4, [sp]                                          |     *(sp) = r4;
    0x0000add2 mov r0, fp                                            |     r0 = fp;
    0x0000add4 ldr r2, [r5, 0x34]                                    |     r2 = *((r5 + 0x34));
    0x0000add6 blx 0x387c                                            |     uuid_generate_time ();
    0x0000add8 vldr d25, [r2, -0x74]                                 |     __asm ("vldr d25, [r2, -0x74]");
    0x0000addc cmp r0, r3                                            |     
                                                                     |     if (r0 == r3) {
    0x0000adde beq 0xadbe                                            |         goto label_7;
                                                                     |     }
    0x0000ade0 ldr r3, [sp, 0x7c]                                    |     r3 = *(arg_7ch);
    0x0000ade2 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000ade4 bne.w 0xaf3e                                          |         goto label_48;
                                                                     |     }
                                                                     |     if (r3 != 0) {
    0x0000ade8 cbz r3, 0xadf0                                        |         
    0x0000adea mov r0, r3                                            |         r0 = r3;
    0x0000adec blx 0x37f8                                            |         ext2fs_numeric_progress_close ();
                                                                     |     }
    0x0000adf0 ldr r3, [sp, 0x1c]                                    |     r3 = var_1ch;
    0x0000adf2 adds r3, 1                                            |     r3++;
    0x0000adf4 mov r1, r3                                            |     r1 = r3;
    0x0000adf6 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0000adf8 ldr r3, [pc, 0x234]                                   |     
    0x0000adfa add r3, pc                                            |     r3 = 0x15e2e;
    0x0000adfc ldr r2, [r3, 8]                                       |     r2 = *(0x15e36);
    0x0000adfe cmp r2, r1                                            |     
                                                                     |     if (r2 < r1) {
    0x0000ae00 bls 0xaec2                                            |         goto label_38;
                                                                     |     }
    0x0000ae02 ldr r2, [r3, 0x18]                                    |     r2 = *((r3 + 0x18));
    0x0000ae04 ldr r3, [r3, 0x1c]                                    |     r3 = *((r3 + 0x1c));
    0x0000ae06 str r2, [sp, 0x20]                                    |     var_20h = r2;
    0x0000ae08 str r3, [sp, 0x24]                                    |     var_24h = r3;
    0x0000ae0a b 0xaafa                                              |     goto label_8;
                                                                     | label_41:
    0x0000ae0c cmp r0, 2                                             |     
                                                                     |     if (r0 != 2) {
    0x0000ae0e bne.w 0xac2e                                          |         goto label_9;
                                                                     |     }
    0x0000ae12 ldr r3, [sp, 0x28]                                    |     r3 = var_28h;
    0x0000ae14 ldr r0, [r3, 0x10]                                    |     r0 = *((r3 + 0x10));
    0x0000ae16 blx 0x33dc                                            |     fcn_000033dc ();
    0x0000ae1a ldrd r3, r2, [sp, 0x20]                               |     __asm ("ldrd r3, r2, [var_20h]");
    0x0000ae1e strd r0, r1, [sp, 0x4c]                               |     __asm ("strd r0, r1, [sp, 0x4c]");
    0x0000ae22 orrs r3, r2                                           |     r3 |= r2;
                                                                     |     if (r3 == r2) {
    0x0000ae24 beq 0xaf00                                            |         goto label_49;
                                                                     |     }
                                                                     | label_42:
    0x0000ae26 ldr r3, [sp, 0x64]                                    |     r3 = *(arg_4h);
    0x0000ae28 ldr r2, [sp, 0x50]                                    |     r2 = var_50h;
    0x0000ae2a ldr r1, [sp, 0x3c]                                    |     r1 = var_ch;
    0x0000ae2c ldrd r6, fp, [r3, 0x28]                               |     __asm ("ldrd r6, fp, [r3, 0x28]");
    0x0000ae30 ldr r3, [sp, 0x4c]                                    |     r3 = var_4ch;
    0x0000ae32 subs r3, r3, r6                                       |     r3 -= r6;
    0x0000ae34 sbc.w r2, r2, fp                                      |     __asm ("sbc.w r2, r2, fp");
    0x0000ae38 str r3, [sp, 0x2c]                                    |     var_2ch = r3;
    0x0000ae3a cmp r3, r1                                            |     
    0x0000ae3c ldr r3, [sp, 0x40]                                    |     r3 = var_40h;
    0x0000ae3e str r2, [sp, 0x44]                                    |     var_44h = r2;
    0x0000ae40 sbcs r2, r3                                           |     __asm ("sbcs r2, r3");
                                                                     |     if (r3 >= r1) {
    0x0000ae42 bhs 0xae98                                            |         goto label_50;
                                                                     |     }
    0x0000ae44 ldr r0, [sp, 0x4c]                                    |     r0 = var_4ch;
    0x0000ae46 ldr r4, [sp, 0x3c]                                    |     r4 = var_ch;
    0x0000ae48 ldr r3, [sp, 0x50]                                    |     r3 = var_50h;
    0x0000ae4a subs r2, r6, r0                                       |     r2 = r6 - r0;
    0x0000ae4c sbc.w r1, fp, r3                                      |     __asm ("sbc.w r1, fp, r3");
    0x0000ae50 adds r2, r2, r4                                       |     r2 += r4;
    0x0000ae52 ldr r4, [sp, 0x40]                                    |     r4 = var_40h;
    0x0000ae54 adc.w r1, r4, r1                                      |     __asm ("adc.w r1, r4, r1");
    0x0000ae56 lsls r1, r0, 4                                        |     r1 = r0 << 4;
    0x0000ae58 strd r2, r1, [sp, 0x3c]                               |     __asm ("strd r2, r1, [sp, 0x3c]");
    0x0000ae5c mov r1, r3                                            |     r1 = r3;
    0x0000ae5e b 0xac50                                              |     goto label_10;
                                                                     | label_43:
    0x0000ae60 ldr r3, [sp, 0x34]                                    |     r3 = var_4h;
    0x0000ae62 movs r2, 0                                            |     r2 = 0;
    0x0000ae64 str r2, [sp, 8]                                       |     var_8h_2 = r2;
    0x0000ae66 mov r2, r6                                            |     r2 = r6;
    0x0000ae68 ldr r0, [sp, 0x28]                                    |     r0 = var_28h;
    0x0000ae6a str r3, [sp, 4]                                       |     var_4h_2 = r3;
    0x0000ae6c ldr r3, [sp, 0x2c]                                    |     r3 = var_2ch;
    0x0000ae6e str r3, [sp]                                          |     *(sp) = r3;
    0x0000ae70 mov r3, fp                                            |     r3 = fp;
    0x0000ae72 blx 0x2f1c                                            |     r0 = ext2fs_zero_blocks2 ();
    0x0000ae76 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000ae78 beq.w 0xac76                                          |         goto label_11;
                                                                     |     }
    0x0000ae7c ldr r3, [sp, 0x38]                                    |     r3 = s2;
    0x0000ae7e mov r1, r0                                            |     r1 = r0;
    0x0000ae80 ldr r2, [pc, 0x194]                                   |     r2 = *(0xb018);
    0x0000ae82 ldrd r4, r5, [sp, 0x80]                               |     __asm ("ldrd r4, r5, [arg_80h]");
    0x0000ae86 ldr r2, [r3, r2]                                      |     r2 = *((r3 + r2));
    0x0000ae88 ldr r0, [r2]                                          |     r0 = *(0xb018);
    0x0000ae8a ldr r2, [pc, 0x1a8]                                   |     
    0x0000ae8c strd r4, r5, [sp]                                     |     __asm ("strd r4, r5, [sp]");
    0x0000ae90 add r2, pc                                            |     r2 = 0x15eca;
    0x0000ae92 blx 0x32cc                                            |     fcn_000032cc ();
    0x0000ae96 b 0xac76                                              |     goto label_11;
                                                                     | label_50:
    0x0000ae98 ldr r3, [sp, 0x3c]                                    |     r3 = var_ch;
    0x0000ae9a ldr r2, [sp, 0x40]                                    |     r2 = var_40h;
    0x0000ae9c adds r0, r6, r3                                       |     r0 = r6 + r3;
    0x0000ae9e str r3, [sp, 0x2c]                                    |     var_2ch = r3;
    0x0000aea0 mov.w r3, 0                                           |     r3 = 0;
    0x0000aea4 adc.w r1, fp, r2                                      |     __asm ("adc.w r1, fp, r2");
    0x0000aea8 str r3, [sp, 0x3c]                                    |     var_ch = r3;
    0x0000aeaa strd r3, r2, [sp, 0x40]                               |     __asm ("strd r3, r2, [sp, 0x40]");
    0x0000aeae b 0xac50                                              |     goto label_10;
                                                                     | label_35:
    0x0000aeb0 ldr r3, [pc, 0x184]                                   |     
    0x0000aeb2 add r3, pc                                            |     
    0x0000aeb4 ldr r3, [r3, 8]                                       |     r3 = *(0x15ef6);
    0x0000aeb6 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000aeb8 bne.w 0xaacc                                          |         goto label_12;
                                                                     |     }
                                                                     |     do {
    0x0000aebc mov.w fp, 0                                           |         
    0x0000aec0 b 0xacfc                                              |         goto label_13;
                                                                     | label_38:
    0x0000aec2 ldr r3, [sp, 0x70]                                    |         r3 = *(arg_70h);
    0x0000aec4 ldr.w fp, [r3]                                        |         fp = *(r3);
    0x0000aec8 cmp.w fp, 0                                           |         
    0x0000aecc bne 0xaebc                                            |         
                                                                     |     } while (fp != 0);
    0x0000aece ldr r1, [sp, 0x38]                                    |     r1 = s2;
    0x0000aed0 movs r2, 5                                            |     r2 = 5;
    0x0000aed2 ldr r3, [pc, 0x120]                                   |     
    0x0000aed4 ldr r0, [pc, 0x164]                                   |     
    0x0000aed6 ldr r3, [r1, r3]                                      |     r3 = *((r1 + r3));
    0x0000aed8 movs r1, 1                                            |     r1 = 1;
    0x0000aeda add r0, pc                                            |     r0 = 0x15f1a;
    0x0000aedc ldr r3, [r3]                                          |     r3 = *(0xaff6);
    0x0000aede blx 0x3324                                            |     strcat (r0, r1)
    0x0000aee2 b 0xacfc                                              |     goto label_13;
                                                                     | label_34:
    0x0000aee4 subs r2, r5, r2                                       |     r2 = r5 - r2;
    0x0000aee6 adds r2, r2, r4                                       |     r2 += r4;
    0x0000aee8 mov r4, r2                                            |     r4 = r2;
    0x0000aeea adc r7, r7, 0                                         |     __asm ("adc r7, r7, 0");
    0x0000aeee b 0xaa0e                                              |     goto label_14;
                                                                     | label_30:
    0x0000aef0 movs r3, 1                                            |     r3 = 1;
    0x0000aef2 mov r6, r7                                            |     r6 = r7;
    0x0000aef4 ldrd sb, r5, [sp, 0x28]                               |     __asm ("ldrd sb, r5, [var_28h]");
    0x0000aef8 mov fp, r3                                            |     
    0x0000aefa mov r7, r3                                            |     r7 = r3;
    0x0000aefc str r3, [r4, 8]                                       |     *((r4 + 8)) = r3;
    0x0000aefe b 0xa932                                              |     goto label_15;
                                                                     | label_49:
    0x0000af00 ldr r3, [sp, 0x20]                                    |     r3 = var_20h;
    0x0000af02 str r3, [sp, 0x3c]                                    |     var_ch = r3;
    0x0000af04 ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
    0x0000af06 str r3, [sp, 0x40]                                    |     var_40h = r3;
    0x0000af08 b 0xac38                                              |     goto label_16;
                                                                     | label_37:
    0x0000af0a ldr r1, [pc, 0x134]                                   |     
    0x0000af0c movs r0, 1                                            |     r0 = 1;
    0x0000af0e add r1, pc                                            |     r1 = 0x15f54;
    0x0000af10 blx 0x3620                                            |     fcn_00003620 ();
    0x0000af14 b 0xaa9e                                              |     goto label_17;
                                                                     | label_33:
    0x0000af16 mov r2, r5                                            |     r2 = r5;
    0x0000af18 mov r5, fp                                            |     r5 = fp;
    0x0000af1a adds r4, r2, r5                                       |     r4 = r2 + r5;
    0x0000af1c adc.w r7, r6, r3                                      |     __asm ("adc.w r7, r6, r3");
    0x0000af20 b 0xa9ea                                              |     goto label_18;
                                                                     | label_46:
    0x0000af22 str r2, [sp]                                          |     *(sp) = r2;
    0x0000af24 mov r1, r4                                            |     r1 = r4;
    0x0000af26 ldr r0, [r3, 0x20]                                    |     r0 = *((r3 + 0x20));
    0x0000af28 mov.w r2, -1                                          |     r2 = -1;
    0x0000af2c ldr r3, [sp, 0x1c]                                    |     r3 = var_1ch;
    0x0000af2e str r3, [sp, 4]                                       |     var_4h_2 = r3;
    0x0000af30 ldr r3, [pc, 0x110]                                   |     
    0x0000af32 add r3, pc                                            |     r3 = 0x15f7a;
    0x0000af34 blx 0x3594                                            |     ext2fs_open2 ();
    0x0000af38 b 0xadb4                                              |     goto label_19;
                                                                     | label_31:
    0x0000af3a blx 0x31f4                                            |     r0 = fcn_000031f4 ();
                                                                     | label_48:
    0x0000af3e mov fp, r0                                            |     
    0x0000af40 mov r0, r3                                            |     r0 = r3;
    0x0000af42 b 0xabea                                              |     goto label_20;
                                                                     | label_28:
    0x0000af44 mov r0, r7                                            |     r0 = r7;
    0x0000af46 mov.w fp, 0xc                                         |     
    0x0000af4a blx 0x3098                                            |     fcn_00003098 ();
    0x0000af4e b 0xa82a                                              |     goto label_2;
                                                                     | label_24:
    0x0000af50 ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0000af52 mov.w fp, 0xc                                         |     
    0x0000af56 blx 0x3098                                            |     fcn_00003098 ();
    0x0000af5a b 0xa82a                                              |     goto label_2;
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/mkfs.ext3 @ 0xd300 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0000d300 ()                                  | void fcn_0000d300 (int16_t arg_1c8h, int16_t arg_318h, int16_t arg_348h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     char * s1;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_1ch;
                                                             |     int16_t var_20h;
                                                             |     int16_t var_30h;
                                                             |     int16_t var_8ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
    0x0000d300 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x0000d304 mov r6, r2                                    |     r6 = r2;
    0x0000d306 ldr r2, [pc, 0x2c0]                           |     
    0x0000d308 sub sp, 0x94                                  |     
    0x0000d30a mov r5, r1                                    |     r5 = r1;
    0x0000d30c movs r1, 0                                    |     r1 = 0;
    0x0000d30e ldr r3, [pc, 0x2bc]                           |     r3 = *(0xd5ce);
    0x0000d310 mov r7, r0                                    |     r7 = r0;
    0x0000d312 add r2, pc                                    |     r2 = 0x1a8e0;
    0x0000d314 ldr.w r8, [pc, 0x2b8]                         |     r8 = *(0x0000d5d0);
    0x0000d316 strh r0, [r7, 0x14]                           |     *((r7 + 0x14)) = r0;
    0x0000d318 ldr r3, [r2, r3]                              |     
    0x0000d31a mov.w r2, 0x1b6                               |     r2 = 0x1b6;
    0x0000d31e add r8, pc                                    |     r8 += pc;
    0x0000d320 ldr r3, [r3]                                  |     r3 = *(0x1a8e0);
    0x0000d322 str r3, [sp, 0x8c]                            |     var_8ch = r3;
    0x0000d324 mov.w r3, 0                                   |     r3 = 0;
    0x0000d328 str r1, [sp, 0x14]                            |     s1 = r1;
    0x0000d32a blx 0x39a8                                    |     r0 = fcn_000039a8 ();
    0x0000d32e subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x0000d330 blt 0xd39a                                    |         goto label_10;
                                                             |     }
                                                             | label_5:
    0x0000d332 add r1, sp, 0x20                              |     r1 += var_20h;
    0x0000d334 mov r0, r4                                    |     r0 = r4;
    0x0000d336 blx 0x3614                                    |     r0 = fcn_00003614 ();
    0x0000d33a cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x0000d33c blt.w 0xd59e                                  |         goto label_11;
                                                             |     }
    0x0000d340 mov r0, r4                                    |     r0 = r4;
    0x0000d342 blx 0x3960                                    |     ext2fs_inode_table_loc ();
    0x0000d346 ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x0000d348 and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x0000d34c cmp.w r3, 0x6000                              |     
                                                             |     if (r3 == 0x6000) {
    0x0000d350 beq 0xd38c                                    |         goto label_12;
                                                             |     }
    0x0000d352 and r3, r5, 1                                 |     r3 = r5 & 1;
    0x0000d356 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0000d358 beq 0xd42a                                    |         goto label_13;
                                                             |     }
    0x0000d35a movs r2, 0                                    |     r2 = 0;
    0x0000d35c str r2, [r6]                                  |     *(r6) = r2;
                                                             |     if (r3 == 0) {
    0x0000d35e cbz r3, 0xd392                                |         goto label_1;
                                                             |     }
                                                             | label_2:
    0x0000d360 ldr r1, [pc, 0x270]                           |     
    0x0000d362 mov r2, r7                                    |     r2 = r7;
    0x0000d364 movs r0, 1                                    |     r0 = 1;
    0x0000d366 movs r4, 0                                    |     r4 = 0;
    0x0000d368 add r1, pc                                    |     r1 = 0x1a940;
    0x0000d36a blx 0x3620                                    |     fcn_00003620 ();
                                                             |     do {
                                                             | label_3:
    0x0000d36e ldr r2, [pc, 0x268]                           |         
    0x0000d370 ldr r3, [pc, 0x258]                           |         r3 = *(0xd5cc);
    0x0000d372 add r2, pc                                    |         r2 = 0x1a950;
    0x0000d374 ldr r3, [r2, r3]                              |         r3 = *(0x1a950);
    0x0000d376 ldr r2, [r3]                                  |         r2 = *(0x1a950);
    0x0000d378 ldr r3, [sp, 0x8c]                            |         r3 = var_8ch;
    0x0000d37a eors r2, r3                                   |         r2 ^= r3;
    0x0000d37c mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0000d380 bne.w 0xd5a8                                  |             goto label_14;
                                                             |         }
    0x0000d384 mov r0, r4                                    |         r0 = r4;
    0x0000d386 add sp, 0x94                                  |         
    0x0000d388 pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
                                                             |         if (r6 != 0) {
                                                             | label_12:
    0x0000d38c cbz r6, 0xd392                                |             
    0x0000d38e movs r3, 1                                    |             r3 = 1;
    0x0000d390 str r3, [r6]                                  |             *(r6) = r3;
                                                             |         }
                                                             | label_1:
    0x0000d392 lsls r3, r5, 0x1d                             |         r3 = r5 << 0x1d;
                                                             |         if (r3 < r5) {
    0x0000d394 bmi 0xd3d4                                    |             goto label_15;
                                                             |         }
                                                             | label_0:
    0x0000d396 movs r4, 1                                    |         r4 = 1;
    0x0000d398 b 0xd36e                                      |         
                                                             |     } while (1);
                                                             | label_10:
    0x0000d39a blx 0x357c                                    |     r0 = sprintf_chk ();
    0x0000d39e mov sb, r0                                    |     sb = r0;
    0x0000d3a0 ldr r0, [r0]                                  |     r0 = *(r0);
    0x0000d3a2 cmp r0, 2                                     |     
                                                             |     if (r0 == 2) {
    0x0000d3a4 beq.w 0xd4dc                                  |         goto label_16;
                                                             |     }
                                                             | label_4:
    0x0000d3a8 ldr r3, [pc, 0x230]                           |     r3 = *(0xd5dc);
    0x0000d3aa ldr.w r4, [r8, r3]                            |     r4 = *((r8 + r3));
    0x0000d3ac ands r3, r0                                   |     r3 &= r0;
    0x0000d3ae ldr r5, [r4]                                  |     r5 = *(r4);
    0x0000d3b0 blx 0x362c                                    |     fcn_0000362c ();
    0x0000d3b4 ldr r2, [pc, 0x228]                           |     
    0x0000d3b6 mov r3, r7                                    |     r3 = r7;
    0x0000d3b8 str r0, [sp]                                  |     *(sp) = r0;
    0x0000d3ba movs r1, 1                                    |     r1 = 1;
    0x0000d3bc mov r0, r5                                    |     r0 = r5;
    0x0000d3be add r2, pc                                    |     r2 = 0x1a9a2;
    0x0000d3c0 blx 0x3684                                    |     ext2fs_write_inode ();
    0x0000d3c4 ldr.w r3, [sb]                                |     r3 = *(sb);
    0x0000d3c8 cmp r3, 2                                     |     
                                                             |     if (r3 == 2) {
    0x0000d3ca beq.w 0xd530                                  |         goto label_17;
                                                             |     }
                                                             | label_7:
    0x0000d3ce movs r0, 1                                    |     r0 = 1;
    0x0000d3d0 blx 0x34b0                                    |     feof (r0);
                                                             | label_15:
    0x0000d3d4 movs r1, 0                                    |     r1 = 0;
    0x0000d3d6 add r0, sp, 0x14                              |     r0 += s1;
    0x0000d3d8 blx 0x3900                                    |     r0 = strncmp (r0, r1, r2);
    0x0000d3dc cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x0000d3de bge 0xd430                                    |         goto label_18;
                                                             |     }
                                                             | label_6:
    0x0000d3e0 mov r0, r7                                    |     r0 = r7;
    0x0000d3e2 blx 0x301c                                    |     r0 = fcn_0000301c ();
    0x0000d3e6 mov r5, r0                                    |     r5 = r0;
    0x0000d3e8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000d3ea beq 0xd396                                    |         goto label_0;
                                                             |     }
    0x0000d3ec movs r1, 1                                    |     r1 = 1;
    0x0000d3ee blx 0x30d4                                    |     r0 = fcn_000030d4 ();
    0x0000d3f2 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x0000d3f4 blt 0xd420                                    |         
    0x0000d3f6 movs r1, 0                                    |         r1 = 0;
    0x0000d3f8 mov r0, r5                                    |         r0 = r5;
    0x0000d3fa blx 0x30a4                                    |         r0 = fcn_000030a4 ();
    0x0000d3fe cmp r0, 0                                     |         
                                                             |         if (r0 < 0) {
    0x0000d400 blt 0xd420                                    |             goto label_19;
                                                             |         }
    0x0000d402 mov r0, r5                                    |         r0 = r5;
    0x0000d404 blx 0x345c                                    |         r0 = ext2fs_badblocks_list_test ();
    0x0000d408 cmp r0, 0                                     |         
                                                             |         if (r0 < 0) {
    0x0000d40a blt 0xd420                                    |             goto label_19;
                                                             |         }
    0x0000d40c ldr r1, [pc, 0x1d4]                           |         
    0x0000d40e movs r3, 0                                    |         r3 = 0;
    0x0000d410 add r2, sp, 0x1c                              |         r2 += var_1ch;
    0x0000d412 mov r0, r5                                    |         r0 = r5;
    0x0000d414 add r1, pc                                    |         r1 = 0x1a9fc;
    0x0000d416 blx 0x2fe0                                    |         r0 = fcn_00002fe0 ();
    0x0000d41a mov r4, r0                                    |         r4 = r0;
    0x0000d41c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0000d41e beq 0xd512                                    |             goto label_20;
                                                             |         }
                                                             |     }
                                                             | label_19:
    0x0000d420 mov r0, r5                                    |     r0 = r5;
    0x0000d422 movs r4, 1                                    |     r4 = 1;
    0x0000d424 blx 0x3774                                    |     ext2fs_inode_alloc_stats2 ();
    0x0000d426 invalid                                       |     
                                                             | label_13:
    0x0000d42a cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0000d42c beq 0xd392                                    |         goto label_1;
                                                             |     }
    0x0000d42e b 0xd360                                      |     goto label_2;
                                                             | label_18:
    0x0000d430 ldr r1, [pc, 0x1b4]                           |     
    0x0000d432 mov r2, r7                                    |     r2 = r7;
    0x0000d434 ldr r0, [sp, 0x14]                            |     r0 = s1;
    0x0000d436 add r1, pc                                    |     r1 = 0x1aa22;
    0x0000d438 blx 0x3248                                    |     r0 = fcn_00003248 ();
    0x0000d43c mov r4, r0                                    |     r4 = r0;
    0x0000d43e cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000d440 beq 0xd50a                                    |         goto label_21;
                                                             |     }
    0x0000d442 ldr r1, [pc, 0x1a8]                           |     
    0x0000d444 mov r2, r7                                    |     r2 = r7;
    0x0000d446 ldr r0, [sp, 0x14]                            |     r0 = s1;
    0x0000d448 add r1, pc                                    |     r1 = 0x1aa3a;
    0x0000d44a blx 0x3248                                    |     r0 = fcn_00003248 ();
    0x0000d44e mov r5, r0                                    |     r5 = r0;
    0x0000d450 ldr r0, [sp, 0x14]                            |     r0 = s1;
    0x0000d452 blx 0x3194                                    |     fcn_00003194 ();
    0x0000d456 mov r3, r4                                    |     r3 = r4;
    0x0000d458 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x0000d45a beq 0xd540                                    |         goto label_22;
                                                             |     }
    0x0000d45c ldr r1, [pc, 0x190]                           |     
    0x0000d45e mov r2, r7                                    |     r2 = r7;
    0x0000d460 movs r0, 1                                    |     r0 = 1;
    0x0000d462 str r5, [sp]                                  |     *(sp) = r5;
    0x0000d464 add r1, pc                                    |     r1 = 0x1aa58;
    0x0000d466 blx 0x3620                                    |     fcn_00003620 ();
                                                             | label_8:
    0x0000d46a ldrb r3, [r4]                                 |     r3 = *(r4);
    0x0000d46c cmp r3, 0x65                                  |     
                                                             |     if (r3 == 0x65) {
    0x0000d46e bne 0xd4cc                                    |         
    0x0000d470 ldrb r3, [r4, 1]                              |         r3 = *((r4 + 1));
    0x0000d472 cmp r3, 0x78                                  |         
                                                             |         if (r3 != 0x78) {
    0x0000d474 bne 0xd4cc                                    |             goto label_23;
                                                             |         }
    0x0000d476 ldrb r3, [r4, 2]                              |         r3 = *((r4 + 2));
    0x0000d478 subs r3, 0x74                                 |         r3 -= 0x74;
                                                             |         if (r3 != 0x74) {
    0x0000d47a bne 0xd4cc                                    |             goto label_23;
                                                             |         }
    0x0000d47c ldr r2, [pc, 0x174]                           |         
    0x0000d47e add r6, sp, 0x18                              |         r6 += var_18h;
    0x0000d480 str r6, [sp, 8]                               |         var_8h = r6;
    0x0000d482 mov r0, r7                                    |         r0 = r7;
    0x0000d484 mov r1, r3                                    |         r1 = r3;
    0x0000d486 ldr.w r2, [r8, r2]                            |         r2 = *((r8 + r2));
    0x0000d48a str r3, [sp]                                  |         *(sp) = r3;
    0x0000d48c ldr r2, [r2]                                  |         r2 = *(0xd5f4);
    0x0000d48e str r2, [sp, 4]                               |         var_4h = r2;
    0x0000d490 mov.w r2, 0x20000                             |         r2 = 0x20000;
    0x0000d494 blx 0x35ac                                    |         r0 = putchar (r0);
                                                             |         if (r0 != 0) {
    0x0000d498 cbnz r0, 0xd4cc                               |             goto label_23;
                                                             |         }
    0x0000d49a ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x0000d49c ldr r7, [r3, 0x10]                            |         r7 = *((r3 + 0x10));
    0x0000d49e ldr r3, [r7, 0x2c]                            |         r3 = *((r7 + 0x2c));
    0x0000d4a0 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0000d4a2 beq 0xd554                                    |             goto label_24;
                                                             |         }
    0x0000d4a4 str r3, [sp, 0x1c]                            |         var_1ch = r3;
    0x0000d4a6 add r0, sp, 0x1c                              |         r0 += var_1ch;
    0x0000d4a8 ldrb.w r3, [r7, 0x88]                         |         r3 = *((r7 + 0x88));
    0x0000d4ac cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0000d4ae beq 0xd576                                    |             goto label_25;
                                                             |         }
    0x0000d4b0 blx 0x31b8                                    |         fcn_000031b8 ();
    0x0000d4b4 ldr r1, [pc, 0x140]                           |         
    0x0000d4b6 add.w r3, r7, 0x88                            |         r3 = r7 + 0x88;
    0x0000d4ba str r0, [sp]                                  |         *(sp) = r0;
    0x0000d4bc movs r2, 0x40                                 |         r2 = 0x40;
    0x0000d4be movs r0, 1                                    |         r0 = 1;
    0x0000d4c0 add r1, pc                                    |         r1 = 0x1aabc;
    0x0000d4c2 blx 0x3620                                    |         fcn_00003620 ();
                                                             | label_9:
    0x0000d4c6 mov r0, r6                                    |         r0 = r6;
    0x0000d4c8 blx 0x3714                                    |         ext2fs_test_generic_bmap ();
                                                             |     }
                                                             | label_23:
    0x0000d4cc mov r0, r4                                    |     r0 = r4;
    0x0000d4ce movs r4, 0                                    |     r4 = 0;
    0x0000d4d0 blx 0x3098                                    |     fcn_00003098 ();
    0x0000d4d4 mov r0, r5                                    |     r0 = r5;
    0x0000d4d6 blx 0x3098                                    |     fcn_00003098 ();
    0x0000d4da b 0xd36e                                      |     goto label_3;
                                                             | label_16:
    0x0000d4dc lsls r4, r5, 0x1b                             |     r4 = r5 << 0x1b;
                                                             |     if (r4 < r5) {
    0x0000d4de bmi 0xd5ac                                    |         goto label_26;
                                                             |     }
    0x0000d4e0 lsls r1, r5, 0x1e                             |     r1 = r5 << 0x1e;
                                                             |     if (r1 >= r5) {
    0x0000d4e2 bpl.w 0xd3a8                                  |         goto label_4;
                                                             |     }
    0x0000d4e6 mov.w r2, 0x1b6                               |     r2 = 0x1b6;
    0x0000d4ea movs r1, 0x40                                 |     r1 = 0x40;
    0x0000d4ec mov r0, r7                                    |     r0 = r7;
    0x0000d4ee blx 0x39a8                                    |     r0 = fcn_000039a8 ();
    0x0000d4f2 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 < r0) {
    0x0000d4f4 blt 0xd54e                                    |         goto label_27;
                                                             |     }
    0x0000d4f6 lsls r2, r5, 0x1c                             |     r2 = r5 << 0x1c;
                                                             |     if (r2 >= r5) {
    0x0000d4f8 bpl.w 0xd332                                  |         goto label_5;
                                                             |     }
    0x0000d4fc ldr r1, [pc, 0xfc]                            |     
    0x0000d4fe mov r2, r7                                    |     r2 = r7;
    0x0000d500 movs r0, 1                                    |     r0 = 1;
    0x0000d502 add r1, pc                                    |     r1 = 0x1ab02;
    0x0000d504 blx 0x3620                                    |     fcn_00003620 ();
    0x0000d508 b 0xd332                                      |     goto label_5;
                                                             | label_21:
    0x0000d50a ldr r0, [sp, 0x14]                            |     r0 = s1;
    0x0000d50c blx 0x3194                                    |     fcn_00003194 ();
    0x0000d510 b 0xd3e0                                      |     goto label_6;
                                                             | label_20:
    0x0000d512 ldr r3, [pc, 0xc8]                            |     r3 = *(0xd5de);
    0x0000d514 movs r1, 1                                    |     r1 = 1;
    0x0000d516 ldr.w r2, [r8, r3]                            |     r2 = *((r8 + r3));
    0x0000d51a str r7, [sp]                                  |     *(sp) = r7;
    0x0000d51c ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x0000d51e ldr r0, [r2]                                  |     r0 = *(r2);
    0x0000d520 ldr r2, [pc, 0xdc]                            |     
    0x0000d522 add r2, pc                                    |     r2 = 0x1ab26;
    0x0000d524 blx 0x3684                                    |     ext2fs_write_inode ();
    0x0000d526 stm.w lr!, {r3, r5, sb, sl, lr}               |     *(lr!) = r3;
                                                             |     *((lr! + 4)) = r5;
                                                             |     *((lr! + 8)) = sb;
                                                             |     *((lr! + 12)) = sl;
                                                             |     *((lr! + 16)) = lr;
    0x0000d52a blx 0x3774                                    |     ext2fs_inode_alloc_stats2 ();
    0x0000d52e b 0xd36e                                      |     goto label_3;
                                                             | label_17:
    0x0000d530 ldr r0, [pc, 0xd0]                            |     
    0x0000d532 movs r2, 0x45                                 |     r2 = 0x45;
    0x0000d534 ldr r3, [r4]                                  |     r3 = *(r4);
    0x0000d536 movs r1, 1                                    |     r1 = 1;
    0x0000d538 add r0, pc                                    |     r0 = 0x1ab40;
    0x0000d53a blx 0x3324                                    |     strcat (r0, r1)
    0x0000d53e b 0xd3ce                                      |     goto label_7;
                                                             | label_22:
    0x0000d540 ldr r1, [pc, 0xc4]                            |     
    0x0000d542 mov r2, r7                                    |     r2 = r7;
    0x0000d544 movs r0, 1                                    |     r0 = 1;
    0x0000d546 add r1, pc                                    |     r1 = 0x1ab52;
    0x0000d548 blx 0x3620                                    |     fcn_00003620 ();
    0x0000d54c b 0xd46a                                      |     goto label_8;
                                                             | label_27:
    0x0000d54e ldr.w r0, [sb]                                |     r0 = *(sb);
    0x0000d552 b 0xd3a8                                      |     goto label_4;
                                                             | label_24:
    0x0000d554 ldr.w r3, [r7, 0x108]                         |     r3 = *((r7 + 0x108));
                                                             |     if (r3 != 0) {
    0x0000d558 cbnz r3, 0xd588                               |         goto label_28;
                                                             |     }
    0x0000d55a ldr r3, [r7, 0x30]                            |     r3 = *((r7 + 0x30));
    0x0000d55c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0000d55e beq 0xd4c6                                    |         goto label_9;
                                                             |     }
    0x0000d560 add r0, sp, 0x1c                              |     r0 += var_1ch;
    0x0000d562 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x0000d564 blx 0x31b8                                    |     fcn_000031b8 ();
    0x0000d568 ldr r1, [pc, 0xa0]                            |     
    0x0000d56a mov r2, r0                                    |     r2 = r0;
    0x0000d56c movs r0, 1                                    |     r0 = 1;
    0x0000d56e add r1, pc                                    |     r1 = 0x1ab7e;
    0x0000d570 blx 0x3620                                    |     fcn_00003620 ();
    0x0000d574 b 0xd4c6                                      |     goto label_9;
                                                             | label_25:
    0x0000d576 blx 0x31b8                                    |     fcn_000031b8 ();
    0x0000d57a ldr r1, [pc, 0x94]                            |     
    0x0000d57c mov r2, r0                                    |     r2 = r0;
    0x0000d57e movs r0, 1                                    |     r0 = 1;
    0x0000d580 add r1, pc                                    |     r1 = 0x1ab96;
    0x0000d582 blx 0x3620                                    |     fcn_00003620 ();
    0x0000d586 b 0xd4c6                                      |     goto label_9;
                                                             | label_28:
    0x0000d588 add r0, sp, 0x1c                              |     r0 += var_1ch;
    0x0000d58a str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x0000d58c blx 0x31b8                                    |     fcn_000031b8 ();
    0x0000d590 ldr r1, [pc, 0x80]                            |     
    0x0000d592 mov r2, r0                                    |     r2 = r0;
    0x0000d594 movs r0, 1                                    |     r0 = 1;
    0x0000d596 add r1, pc                                    |     r1 = 0x1abae;
    0x0000d598 blx 0x3620                                    |     fcn_00003620 ();
    0x0000d59c b 0xd4c6                                      |     goto label_9;
                                                             | label_11:
    0x0000d59e ldr r0, [pc, 0x78]                            |     
    0x0000d5a0 add r0, pc                                    |     r0 = 0x1abbe;
    0x0000d5a2 blx 0x32d8                                    |     fcn_000032d8 ();
    0x0000d5a6 b 0xd3ce                                      |     goto label_7;
                                                             | label_14:
    0x0000d5a8 blx 0x31f4                                    |     fcn_000031f4 ();
                                                             | label_26:
    0x0000d5ac ldr r0, [pc, 0x2c]                            |     
    0x0000d5ae mov r3, r7                                    |     r3 = r7;
    0x0000d5b0 ldr r2, [pc, 0x68]                            |     
    0x0000d5b2 movs r1, 1                                    |     r1 = 1;
    0x0000d5b4 ldr.w r0, [r8, r0]                            |     r0 = *((r8 + r0));
    0x0000d5b8 add r2, pc                                    |     r2 = 0x1abd8;
    0x0000d5ba ldr r0, [r0]                                  |     r0 = *(0xd5dc);
    0x0000d5bc blx 0x3684                                    |     ext2fs_write_inode ();
    0x0000d5c0 movs r0, 1                                    |     r0 = 1;
    0x0000d5c2 blx 0x34b0                                    |     feof (r0);
    0x0000d5c6 nop                                           |     
    0x0000d5c8 add r0, sp, 0x348                             |     r0 += arg_348h;
    0x0000d5ca movs r1, r0                                   |     r1 = r0;
    0x0000d5cc lsls r4, r5, 0xe                              |     r4 = r5 << 0xe;
    0x0000d5ce movs r0, r0                                   |     
    0x0000d5d0 add r0, sp, 0x318                             |     r0 += arg_318h;
    0x0000d5d2 movs r1, r0                                   |     r1 = r0;
    0x0000d5d4 ldrh r4, [r6, 0x38]                           |     r4 = *((r6 + 0x38));
    0x0000d5d6 movs r0, r0                                   |     
    0x0000d5d8 add r0, sp, 0x1c8                             |     r0 += arg_1c8h;
    0x0000d5da movs r1, r0                                   |     r1 = r0;
    0x0000d5dc lsls r0, r0, 0xf                              |     r0 <<= 0xf;
    0x0000d5de movs r0, r0                                   |     
    0x0000d5e0 ldrh r2, [r4, 0x3e]                           |     r2 = *((r4 + 0x3e));
    0x0000d5e2 movs r0, r0                                   |     
    0x0000d5e4 ldrh r0, [r4, 0x3a]                           |     r0 = *((r4 + 0x3a));
    0x0000d5e6 movs r0, r0                                   |     
    0x0000d5e8 ldrh r2, [r1, 0x34]                           |     r2 = *((r1 + 0x34));
    0x0000d5ea movs r0, r0                                   |     
    0x0000d5ec ldrh r0, [r0, 0x34]                           |     r0 = *((r0 + 0x34));
    0x0000d5ee movs r0, r0                                   |     
    0x0000d5f0 ldrh r4, [r5, 0x32]                           |     r4 = *((r5 + 0x32));
    0x0000d5f2 movs r0, r0                                   |     
    0x0000d5f4 lsls r4, r5, 0xf                              |     r4 = r5 << 0xf;
    0x0000d5f6 movs r0, r0                                   |     
    0x0000d5f8 ldrh r4, [r3, 0x32]                           |     r4 = *((r3 + 0x32));
    0x0000d5fa movs r0, r0                                   |     
    0x0000d5fc str r2, [r4, 0x34]                            |     *((r4 + 0x34)) = r2;
    0x0000d5fe movs r0, r0                                   |     
    0x0000d600 ldrh r2, [r3, 0x32]                           |     r2 = *((r3 + 0x32));
    0x0000d602 movs r0, r0                                   |     
    0x0000d604 ldrh r4, [r2, 0x28]                           |     r4 = *((r2 + 0x28));
    0x0000d606 movs r0, r0                                   |     
    0x0000d608 ldrh r6, [r6, 0x2c]                           |     r6 = *((r6 + 0x2c));
    0x0000d60a movs r0, r0                                   |     
    0x0000d60c ldrh r6, [r5, 0x2e]                           |     r6 = *((r5 + 0x2e));
    0x0000d60e movs r0, r0                                   |     
    0x0000d610 ldrh r0, [r7, 0x2c]                           |     r0 = *((r7 + 0x2c));
    0x0000d612 movs r0, r0                                   |     
    0x0000d614 ldrh r6, [r6, 0x2c]                           |     r6 = *((r6 + 0x2c));
    0x0000d616 movs r0, r0                                   |     
    0x0000d618 ldrh r4, [r6, 0x26]                           |     r4 = *((r6 + 0x26));
    0x0000d61a movs r0, r0                                   |     
    0x0000d61c str r4, [r6, 0x24]                            |     *((r6 + 0x24)) = r4;
    0x0000d61e movs r0, r0                                   |     
                                                             | }

[*] Function strcat used 14 times mkfs.ext3