[*] Binary protection state of mkfs.ext3

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


[*] Function sprintf 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 @ 0x8564 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00008564 ()                              | void fcn_00008564 (int16_t arg_1ch, int16_t arg_41ch, int16_t arg1, int16_t arg2) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00008564 ldr r3, [pc, 0x10c]                       |     
    0x00008566 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x00008568 mvns r0, r6                               |     r0 = ~r6;
    0x0000856a mov r6, r1                                |     r6 = r1;
    0x0000856c ldr r1, [pc, 0x108]                       |     
    0x0000856e subw sp, sp, 0x424                        |     __asm ("subw sp, sp, 0x424");
    0x00008572 add r3, pc                                |     
    0x00008574 mov r4, r0                                |     r4 = r0;
    0x00008576 ldr r2, [pc, 0x104]                       |     r2 = *(0x867e);
    0x00008578 add r1, pc                                |     r1 = 0x10bf4;
    0x0000857a ldr r3, [r3, 8]                           |     r3 = *(0x10bf2);
    0x0000857c ldr r5, [r0, 0x14]                        |     r5 = *(arg_1chx14);
    0x0000857e ldr r2, [r1, r2]                          |     
    0x00008580 ldr r2, [r2]                              |     r2 = *(0x10bf4);
    0x00008582 str.w r2, [sp, 0x41c]                     |     __asm ("str.w r2, [arg_41ch]");
    0x00008586 mov.w r2, 0                               |     r2 = 0;
    0x0000858a cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x0000858c bne 0x861c                                |         goto label_2;
                                                         |     }
    0x0000858e ldr.w r8, [pc, 0xf0]                      |     
    0x00008592 add r8, pc                                |     r8 = 0x10c18;
                                                         |     do {
    0x00008594 ldr r3, [pc, 0xec]                        |         
    0x00008596 add r3, pc                                |         
    0x00008598 ldr r3, [r3, 0xc]                         |         r3 = *(0x10c2a);
    0x0000859a cmp r3, 1                                 |         
                                                         |         if (r3 <= 1) {
    0x0000859c ble 0x8624                                |             goto label_3;
                                                         |         }
    0x0000859e ldr.w sb, [pc, 0xe8]                      |         
    0x000085a2 add sb, pc                                |         sb = 0x10c30;
                                                         | label_0:
    0x000085a4 ldrd r7, r0, [r4, 0xc]                    |         __asm ("ldrd r7, r0, [r4, 0xc]");
    0x000085a8 blx 0x33dc                                |         fcn_000033dc ();
    0x000085ac ldr r3, [pc, 0xdc]                        |         
    0x000085ae subs r0, 1                                |         r0--;
    0x000085b0 sbc r1, r1, 0                             |         __asm ("sbc r1, r1, 0");
    0x000085b4 str r7, [sp, 0xc]                         |         var_ch = r7;
    0x000085b6 add r7, sp, 0x1c                          |         r7 += arg_1ch;
    0x000085b8 str r0, [sp, 0x10]                        |         var_10h = r0;
    0x000085ba add r3, pc                                |         r3 = 0x10c4a;
    0x000085bc str r1, [sp, 0x14]                        |         var_14h = r1;
    0x000085be mov.w r2, 0x400                           |         r2 = 0x400;
    0x000085c2 movs r1, 1                                |         r1 = 1;
    0x000085c4 mov r0, r7                                |         r0 = r7;
    0x000085c6 strd r8, sb, [sp, 4]                      |         __asm ("strd r8, sb, [sp, 4]");
    0x000085ca str r5, [sp]                              |         *(sp) = r5;
    0x000085cc blx 0x3594                                |         ext2fs_open2 ();
    0x000085d0 ldr r3, [pc, 0xbc]                        |         
    0x000085d2 add r3, pc                                |         
    0x000085d4 ldr r3, [r3, 0x10]                        |         r3 = *(0x10c76);
                                                         |         if (r3 != 0) {
    0x000085d6 cbnz r3, 0x862c                           |             goto label_4;
                                                         |         }
                                                         | label_1:
    0x000085d8 ldr r1, [pc, 0xb8]                        |         
    0x000085da mov r0, r7                                |         r0 = r7;
    0x000085dc add r1, pc                                |         r1 = 0x10c74;
    0x000085de blx 0x3780                                |         r0 = e2p_string2hash ();
    0x000085e2 mov r5, r0                                |         r5 = r0;
                                                         |         if (r0 == 0) {
    0x000085e4 cbz r0, 0x863a                            |             goto label_5;
                                                         |         }
    0x000085e6 ldr r3, [pc, 0xb0]                        |         
    0x000085e8 mov r1, r0                                |         r1 = r0;
    0x000085ea mov r2, r6                                |         r2 = r6;
    0x000085ec mov r0, r4                                |         r0 = r4;
    0x000085ee add r3, pc                                |         r3 = 0x10c8c;
    0x000085f0 blx 0x3564                                |         r0 = errno_location ();
    0x000085f4 mov r4, r0                                |         r4 = r0;
    0x000085f6 mov r0, r5                                |         r0 = r5;
    0x000085f8 blx 0x39b4                                |         fcn_000039b4 ();
                                                         |         if (r4 != 0) {
    0x000085fc cbnz r4, 0x865a                           |             goto label_6;
                                                         |         }
    0x000085fe ldr r2, [pc, 0x9c]                        |         
    0x00008600 ldr r3, [pc, 0x78]                        |         r3 = *(0x867c);
    0x00008602 add r2, pc                                |         r2 = 0x10ca4;
    0x00008604 ldr r3, [r2, r3]                          |         r3 = *(0x10ca4);
    0x00008606 ldr r2, [r3]                              |         r2 = *(0x10ca4);
    0x00008608 ldr.w r3, [sp, 0x41c]                     |         r3 = *(arg_41ch);
    0x0000860c eors r2, r3                               |         r2 ^= r3;
    0x0000860e mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00008612 bne 0x8656                                |             goto label_7;
                                                         |         }
    0x00008614 addw sp, sp, 0x424                        |         __asm ("addw sp, var_0h");
    0x00008618 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_2:
    0x0000861c ldr.w r8, [pc, 0x80]                      |         
    0x00008620 add r8, pc                                |         r8 = 0x10cc4;
    0x00008622 b 0x8594                                  |         
                                                         |     } while (1);
                                                         | label_3:
    0x00008624 ldr.w sb, [pc, 0x7c]                      |     
    0x00008628 add sb, pc                                |     sb = 0x10cd0;
    0x0000862a b 0x85a4                                  |     goto label_0;
                                                         | label_4:
    0x0000862c ldr r1, [pc, 0x78]                        |     
    0x0000862e mov r2, r7                                |     r2 = r7;
    0x00008630 movs r0, 1                                |     r0 = 1;
    0x00008632 add r1, pc                                |     r1 = 0x10cde;
    0x00008634 blx 0x3620                                |     fcn_00003620 ();
    0x00008638 b 0x85d8                                  |     goto label_1;
                                                         | label_5:
    0x0000863a blx 0x357c                                |     sprintf_chk ()
    0x0000863e ldr r2, [pc, 0x6c]                        |     
    0x00008640 mov r1, r0                                |     r1 = r0;
    0x00008642 ldr r0, [pc, 0x6c]                        |     
    0x00008644 mov r3, r7                                |     r3 = r7;
    0x00008646 ldr r1, [r1]                              |     r1 = *(r1);
    0x00008648 add r2, pc                                |     r2 = 0x10cfa;
    0x0000864a add r0, pc                                |     r0 = 0x10d00;
    0x0000864c blx 0x32cc                                |     fcn_000032cc ();
    0x00008650 movs r0, 1                                |     r0 = 1;
    0x00008652 blx 0x34b0                                |     r0 = feof (r0);
                                                         | label_7:
    0x00008656 blx 0x31f4                                |     fcn_000031f4 ();
                                                         | label_6:
    0x0000865a ldr r0, [pc, 0x58]                        |     
    0x0000865c mov r1, r4                                |     r1 = r4;
    0x0000865e ldr r3, [pc, 0x58]                        |     
    0x00008660 ldr r2, [pc, 0x58]                        |     
    0x00008662 add r0, pc                                |     r0 = 0x10d1c;
    0x00008664 add r3, pc                                |     r3 = 0x10d22;
    0x00008666 add r2, pc                                |     r2 = 0x10d26;
    0x00008668 blx 0x32cc                                |     fcn_000032cc ();
    0x0000866c movs r0, 1                                |     r0 = 1;
    0x0000866e blx 0x34b0                                |     feof (r0);
    0x00008672 nop                                       |     
    0x00008674 smlabb r0, sl, r1, r0                     |     __asm ("smlabb r0, sl, r1, r0");
    0x00008678 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 @ 0xb048 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0000b048 ()                                      | void fcn_0000b048 (int16_t arg_60h, int16_t arg_64h, int16_t arg_68h, int16_t arg_6ch, int16_t arg_70h, int16_t arg_74h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch_2;
                                                                 |     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_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x0000b048 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x0000b04c sub sp, 0x3c                                      |     
    0x0000b04e ldr r4, [pc, 0x124]                               |     
    0x0000b050 mov sb, r2                                        |     sb = r2;
    0x0000b052 ldr r5, [sp, 0x60]                                |     r5 = *(arg_60h);
    0x0000b054 ldr r6, [sp, 0x64]                                |     r6 = *(arg_64h);
    0x0000b056 add r4, pc                                        |     r4 = 0x161d0;
    0x0000b058 ldr r3, [pc, 0x11c]                               |     r3 = *(0xb178);
    0x0000b05a str r5, [sp, 0x14]                                |     var_14h = r5;
    0x0000b05c str r6, [sp, 0x18]                                |     var_18h = r6;
    0x0000b05e ldr r3, [r4, r3]                                  |     
    0x0000b060 ldr r2, [sp, 0x6c]                                |     r2 = *(arg_6ch);
    0x0000b062 ldr r3, [r3]                                      |     r3 = *(0x161d0);
    0x0000b064 str r3, [sp, 0x34]                                |     var_34h = r3;
    0x0000b066 mov.w r3, 0                                       |     r3 = 0;
    0x0000b06a ldr r3, [sp, 0x68]                                |     r3 = *(arg_68h);
    0x0000b06c strd r0, r1, [sp, 0x20]                           |     __asm ("strd r0, r1, [var_24h]");
    0x0000b070 ldr r1, [sp, 0x70]                                |     r1 = *(arg_70h);
    0x0000b072 cmp r5, r3                                        |     
    0x0000b074 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0000b076 sbcs.w r3, r6, r2                                 |     __asm ("sbcs.w r3, r6, r2");
    0x0000b07a str r2, [sp, 0x2c]                                |     var_2ch = r2;
    0x0000b07c str r1, [sp, 0x1c]                                |     var_1ch = r1;
    0x0000b07e ldr r1, [sp, 0x74]                                |     r1 = *(arg_74h);
    0x0000b080 str r1, [sp, 0x10]                                |     var_10h = r1;
                                                                 |     if (r5 >= r3) {
    0x0000b082 bge 0xb10a                                        |         goto label_4;
                                                                 |     }
                                                                 | label_0:
    0x0000b084 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000b086 mov.w r2, 0x10000                                 |     r2 = 0x10000;
    0x0000b08a ldr r1, [sp, 0x1c]                                |     r1 = var_1ch;
    0x0000b08c ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x0000b08e str r3, [sp]                                      |     *(sp) = r3;
    0x0000b090 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x0000b092 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0000b094 blx 0x3384                                        |     r0 = blkid_topology_get_alignment_offset ();
    0x0000b098 subs.w r8, r0, 0                                  |     r8 = r0 - 0;
                                                                 |     if (r8 < r0) {
    0x0000b09c blt 0xb166                                        |         goto label_5;
                                                                 |     }
    0x0000b09e asr.w fp, r8, 0x1f                                |     
                                                                 |     if (r8 == r0) {
    0x0000b0a2 beq 0xb0ee                                        |         goto label_6;
                                                                 |     }
    0x0000b0a4 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0000b0a6 movs r6, 0                                        |     r6 = 0;
    0x0000b0a8 ldr r5, [sp, 0x1c]                                |     r5 = var_1ch;
    0x0000b0aa mov r7, r6                                        |     r7 = r6;
    0x0000b0ac add.w sl, sp, 0x30                                |     sl += var_30h;
    0x0000b0b0 ldr r3, [r3, 0x14]                                |     r3 = *((r3 + 0x14));
                                                                 |     do {
    0x0000b0b2 subs.w r2, r8, r6                                 |         r2 = r8 - r6;
    0x0000b0b6 asr.w r1, r3, 0x1f                                |         r1 = r3 >> 0x1f;
    0x0000b0ba sbc.w r0, fp, r7                                  |         __asm ("sbc.w r0, fp, r7");
    0x0000b0be cmp r2, r3                                        |         
    0x0000b0c0 mov r4, r3                                        |         r4 = r3;
    0x0000b0c2 sbcs r0, r1                                       |         __asm ("sbcs r0, r1");
    0x0000b0c4 ldr r1, [sp, 0x10]                                |         r1 = var_10h;
    0x0000b0c6 it ge                                             |         
                                                                 |         if (r2 < r3) {
    0x0000b0c8 movge r2, r3                                      |             r2 = r3;
                                                                 |         }
    0x0000b0ca mov r0, r5                                        |         r0 = r5;
    0x0000b0cc it lt                                             |         
                                                                 |         if (r2 >= r3) {
    0x0000b0ce movlt r4, r2                                      |             r4 = r2;
                                                                 |         }
    0x0000b0d0 strd r2, r3, [sp, 8]                              |         __asm ("strd r2, r3, [var_8h]");
    0x0000b0d4 blx 0x3170                                        |         r0 = fcn_00003170 ();
                                                                 |         if (r0 != 0) {
    0x0000b0d8 cbnz r0, 0xb126                                   |             goto label_7;
                                                                 |         }
    0x0000b0da ldr r2, [sp, 8]                                   |         r2 = var_8h;
    0x0000b0dc ldr r3, [sp, 0xc]                                 |         r3 = var_ch_2;
    0x0000b0de add r5, r2                                        |         r5 += r2;
                                                                 | label_3:
    0x0000b0e0 adds r6, r3, r6                                   |         r6 = r3 + r6;
    0x0000b0e2 adc r7, r7, 0                                     |         __asm ("adc r7, r7, 0");
    0x0000b0e6 cmp r6, r8                                        |         
    0x0000b0e8 sbcs.w r2, r7, fp                                 |         __asm ("sbcs.w r2, r7, fp");
    0x0000b0ec blt 0xb0b2                                        |         
                                                                 |     } while (r6 < r8);
                                                                 | label_6:
    0x0000b0ee ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000b0f0 ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x0000b0f2 ldr r1, [sp, 0x28]                                |     r1 = var_28h;
    0x0000b0f4 adds.w r3, r3, 0x10000                            |     r3 += 0x10000;
    0x0000b0f8 adc r2, r2, 0                                     |     __asm ("adc r2, r2, 0");
    0x0000b0fc str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0000b0fe cmp r3, r1                                        |     
    0x0000b100 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0000b102 str r2, [sp, 0x18]                                |     var_18h = r2;
    0x0000b104 sbcs.w r3, r2, r3                                 |     __asm ("sbcs.w r3, r2, r3");
                                                                 |     if (r3 < r1) {
    0x0000b108 blt 0xb084                                        |         goto label_0;
                                                                 |     }
                                                                 | label_4:
    0x0000b10a movs r0, 0                                        |     r0 = 0;
                                                                 |     do {
                                                                 | label_1:
    0x0000b10c ldr r2, [pc, 0x6c]                                |         
    0x0000b10e ldr r3, [pc, 0x68]                                |         r3 = *(0xb17a);
    0x0000b110 add r2, pc                                        |         r2 = 0x16290;
    0x0000b112 ldr r3, [r2, r3]                                  |         r3 = *(0x16290);
    0x0000b114 ldr r2, [r3]                                      |         r2 = *(0x16290);
    0x0000b116 ldr r3, [sp, 0x34]                                |         r3 = var_34h;
    0x0000b118 eors r2, r3                                       |         r2 ^= r3;
    0x0000b11a mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0000b11e bne 0xb16e                                        |             goto label_8;
                                                                 |         }
    0x0000b120 add sp, 0x3c                                      |         
    0x0000b122 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_7:
    0x0000b126 movs r3, 0                                        |         r3 = 0;
    0x0000b128 mov r0, sb                                        |         r0 = sb;
    0x0000b12a strd r3, r3, [sp]                                 |         __asm ("strd r3, r3, [sp]");
    0x0000b12e ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x0000b130 adds r2, r3, r6                                   |         r2 = r3 + r6;
    0x0000b132 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x0000b134 adc.w r3, r7, r3                                  |         __asm ("adc.w r3, r7, r3");
    0x0000b138 blx 0x36cc                                        |         r0 = ext2fs_mkdir ();
                                                                 |         if (r0 == 0) {
    0x0000b13c cbz r0, 0xb158                                    |             goto label_9;
                                                                 |         }
    0x0000b13e b 0xb10c                                          |         
                                                                 |     } while (1);
                                                                 | label_2:
    0x0000b140 mov r3, sl                                        |     r3 = sl;
    0x0000b142 mov r2, r4                                        |     r2 = r4;
    0x0000b144 mov r1, r5                                        |     r1 = r5;
    0x0000b146 mov r0, sb                                        |     r0 = sb;
    0x0000b148 blx 0x2fec                                        |     r0 = fcn_00002fec ();
    0x0000b14c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000b14e bne 0xb10c                                        |         goto label_1;
                                                                 |     }
    0x0000b150 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
                                                                 |     if (r3 == 0) {
    0x0000b152 cbz r3, 0xb162                                    |         goto label_10;
                                                                 |     }
    0x0000b154 subs r4, r4, r3                                   |     r4 -= r3;
    0x0000b156 add r5, r3                                        |     r5 += r3;
                                                                 | label_9:
    0x0000b158 cmp r4, 0                                         |     
                                                                 |     if (r4 > 0) {
    0x0000b15a bgt 0xb140                                        |         goto label_2;
                                                                 |     }
    0x0000b15c ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0000b15e ldr r3, [r3, 0x14]                                |     r3 = *((r3 + 0x14));
    0x0000b160 b 0xb0e0                                          |     goto label_3;
                                                                 | label_10:
    0x0000b162 movs r0, 5                                        |     r0 = 5;
    0x0000b164 b 0xb10c                                          |     goto label_1;
                                                                 | label_5:
    0x0000b166 blx 0x357c                                        |     r0 = sprintf_chk ()
    0x0000b16a ldr r0, [r0]                                      |     r0 = *(r0);
    0x0000b16c b 0xb10c                                          |     goto label_1;
                                                                 | label_8:
    0x0000b16e blx 0x31f4                                        |     fcn_000031f4 ();
    0x0000b172 nop                                               |     
    0x0000b174 ldm r3, {r1, r2, r3, r7}                          |     r1 = *(r3);
                                                                 |     r2 = *((r3 + 4));
                                                                 |     r3 = *((r3 + 8));
                                                                 |     r7 = *((r3 + 12));
    0x0000b176 movs r1, r0                                       |     r1 = r0;
    0x0000b178 lsls r4, r5, 0xe                                  |     r4 = r5 << 0xe;
    0x0000b17a movs r0, r0                                       |     
    0x0000b17c ldm r2, {r2, r4, r6, r7}                          |     r2 = *(r2);
                                                                 |     r4 = *((r2 + 4));
                                                                 |     r6 = *((r2 + 8));
                                                                 |     r7 = *((r2 + 12));
    0x0000b17e movs r1, r0                                       |     r1 = 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 @ 0xb180 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0000b180 ()                                      | void fcn_0000b180 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h_2;
                                                                 |     int16_t var_14h_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x0000b180 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x0000b184 sub sp, 0x1c                                      |     
    0x0000b186 ldr r5, [pc, 0x264]                               |     
    0x0000b188 ldr r3, [pc, 0x264]                               |     r3 = *(0xb3f0);
    0x0000b18a add r5, pc                                        |     r5 = "Bad magic value in profile iterator";
    0x0000b18c ldr r4, [pc, 0x264]                               |     
    0x0000b18e ldr.w ip, [pc, 0x268]                             |     ip = *(0xb3fa);
    0x0000b190 stm r2!, {r3, r5, r6}                             |     *(r2!) = r3;
                                                                 |     *((r2! + 4)) = r5;
                                                                 |     *((r2! + 8)) = r6;
    0x0000b192 ldr r3, [r5, r3]                                  |     
    0x0000b194 add r4, pc                                        |     r4 = 0x1658c;
    0x0000b196 ldr r3, [r3]                                      |     r3 = "Bad magic value in profile iterator";
    0x0000b198 str r3, [sp, 0x14]                                |     var_14h_2 = r3;
    0x0000b19a mov.w r3, 0                                       |     r3 = 0;
    0x0000b19e ldr.w r3, [r4, ip]                                |     r3 = *(0x1658c);
    0x0000b1a2 ldr r6, [r3]                                      |     r6 = *(0x1658c);
    0x0000b1a4 cbz r6, 0xb1c6                                    |     
                                                                 |     while (r0 == 0) {
                                                                 | label_0:
    0x0000b1a6 movs r4, 0                                        |         r4 = 0;
                                                                 | label_1:
    0x0000b1a8 ldr r2, [pc, 0x250]                               |         
    0x0000b1aa ldr r3, [pc, 0x244]                               |         r3 = *(0xb3f2);
    0x0000b1ac add r2, pc                                        |         r2 = 0x165ac;
    0x0000b1ae ldr r3, [r2, r3]                                  |         r3 = *(0x165ac);
    0x0000b1b0 ldr r2, [r3]                                      |         r2 = *(0x165ac);
    0x0000b1b2 ldr r3, [sp, 0x14]                                |         r3 = var_14h_2;
    0x0000b1b4 eors r2, r3                                       |         r2 ^= r3;
    0x0000b1b6 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0000b1ba bne.w 0xb3ca                                      |             goto label_4;
                                                                 |         }
    0x0000b1be mov r0, r4                                        |         r0 = r4;
    0x0000b1c0 add sp, 0x1c                                      |         
    0x0000b1c2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x0000b1c6 mov r5, r2                                        |         r5 = r2;
    0x0000b1c8 mov sb, r0                                        |         sb = r0;
    0x0000b1ca mov r7, r1                                        |         r7 = r1;
    0x0000b1cc mov r2, r6                                        |         r2 = r6;
    0x0000b1ce mov r1, r6                                        |         r1 = r6;
    0x0000b1d0 mov r0, r5                                        |         r0 = r5;
    0x0000b1d2 blx 0x36b4                                        |         r0 = set_undo_io_backup_file ();
    0x0000b1d6 cmp.w r0, -1                                      |         
    0x0000b1da mov r8, r0                                        |         r8 = r0;
                                                                 |         if (r0 == -1) {
    0x0000b1dc beq.w 0xb2ee                                      |             goto label_5;
                                                                 |         }
    0x0000b1e0 cmp r0, 0                                         |         
    0x0000b1e2 beq 0xb1a6                                        |         
                                                                 |     }
    0x0000b1e4 mov r0, sb                                        |     r0 = sb;
    0x0000b1e6 add.w sb, sp, 0x10                                |     sb += var_10h_2;
    0x0000b1ea mov r2, sb                                        |     r2 = sb;
    0x0000b1ec mov r1, r7                                        |     r1 = r7;
    0x0000b1ee blx 0x30c8                                        |     r0 = fcn_000030c8 ();
    0x0000b1f2 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 == 0) {
    0x0000b1f4 cbz r0, 0xb214                                    |         goto label_6;
                                                                 |     }
    0x0000b1f6 movw r3, 0xb7a4                                   |     
    0x0000b1fa movt r3, 0x7f2b                                   |     r3 = 0x7f2bb7a4;
    0x0000b1fe cmp r0, r3                                        |     
                                                                 |     if (r0 == r3) {
    0x0000b200 beq 0xb1a6                                        |         goto label_0;
                                                                 |     }
    0x0000b202 ldr r2, [pc, 0x1fc]                               |     
    0x0000b204 mov r3, r7                                        |     r3 = r7;
    0x0000b206 ldr r0, [pc, 0x1fc]                               |     
    0x0000b208 mov r1, r4                                        |     r1 = r4;
    0x0000b20a add r2, pc                                        |     r2 = "Profile section header not at top level";
    0x0000b20c add r0, pc                                        |     r0 = 0x16616;
    0x0000b20e blx 0x32cc                                        |     fcn_000032cc ();
    0x0000b212 b 0xb1a8                                          |     goto label_1;
                                                                 | label_6:
    0x0000b214 ldr r0, [sp, 0x10]                                |     r0 = var_10h_2;
    0x0000b216 blx 0x2f34                                        |     r0 = ext2fs_xattrs_read ();
    0x0000b21a mov r4, r0                                        |     r4 = r0;
    0x0000b21c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000b21e bne 0xb306                                        |         goto label_7;
                                                                 |     }
    0x0000b220 mov r0, r8                                        |     r0 = r8;
    0x0000b222 blx 0x3450                                        |     r0 = strerror (r0);
    0x0000b226 mov r6, r0                                        |     r6 = r0;
    0x0000b228 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000b22a beq.w 0xb33a                                      |         goto label_8;
                                                                 |     }
    0x0000b22e mov r1, r0                                        |     r1 = r0;
    0x0000b230 mov r2, r8                                        |     r2 = r8;
    0x0000b232 mov r0, r5                                        |     r0 = r5;
    0x0000b234 blx 0x36b4                                        |     r0 = set_undo_io_backup_file ();
    0x0000b238 mov r3, r0                                        |     r3 = r0;
    0x0000b23a str r0, [sp, 0xc]                                 |     var_ch = r0;
    0x0000b23c adds r0, r3, 1                                    |     r0 = r3 + 1;
                                                                 |     if (r0 == r3) {
    0x0000b23e beq.w 0xb3b2                                      |         goto label_9;
                                                                 |     }
    0x0000b242 cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x0000b244 bgt 0xb294                                        |         goto label_10;
                                                                 |     }
    0x0000b246 b 0xb358                                          |     goto label_11;
                                                                 |     do {
    0x0000b248 blx 0x3450                                        |         r0 = strerror (r0);
    0x0000b24c mov r8, r0                                        |         r8 = r0;
    0x0000b24e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0000b250 beq.w 0xb3ce                                      |             goto label_12;
                                                                 |         }
    0x0000b254 mov r2, r0                                        |         r2 = r0;
    0x0000b256 mov r3, r4                                        |         r3 = r4;
    0x0000b258 mov r1, fp                                        |         r1 = fp;
    0x0000b25a mov r0, r5                                        |         r0 = r5;
    0x0000b25c blx 0x36fc                                        |         r0 = io_channel_write_blk64 ();
    0x0000b260 adds r2, r0, 1                                    |         r2 = r0 + 1;
    0x0000b262 mov r3, r0                                        |         r3 = r0;
                                                                 |         if (r2 == r0) {
    0x0000b264 beq.w 0xb37e                                      |             goto label_13;
                                                                 |         }
    0x0000b268 ldr r0, [sp, 0x10]                                |         r0 = var_10h_2;
    0x0000b26a mov r2, r8                                        |         r2 = r8;
    0x0000b26c mov r1, fp                                        |         r1 = fp;
    0x0000b26e blx 0x3828                                        |         r0 = ext2fs_find_first_set_generic_bmap ();
    0x0000b272 mov r4, r0                                        |         r4 = r0;
    0x0000b274 mov r0, r8                                        |         r0 = r8;
    0x0000b276 blx 0x3098                                        |         fcn_00003098 ();
    0x0000b27a cmp r4, 0                                         |         
                                                                 |         if (r4 != 0) {
    0x0000b27c bne.w 0xb39e                                      |             goto label_14;
                                                                 |         }
    0x0000b280 mov r0, fp                                        |         r0 = fp;
    0x0000b282 add.w sl, sl, 1                                   |         sl++;
    0x0000b286 blx 0x3504                                        |         e2p_os2string ();
    0x0000b28a ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0000b28c add.w r4, sl, r0                                  |         r4 = sl + r0;
    0x0000b290 cmp r3, r4                                        |         
                                                                 |         if (r3 <= r4) {
    0x0000b292 ble 0xb358                                        |             goto label_11;
                                                                 |         }
                                                                 | label_10:
    0x0000b294 movs r3, 0                                        |         r3 = 0;
    0x0000b296 add.w fp, r6, r4                                  |         
    0x0000b29a mov r1, fp                                        |         r1 = fp;
    0x0000b29c mov r2, r3                                        |         r2 = r3;
    0x0000b29e mov r0, r5                                        |         r0 = r5;
    0x0000b2a0 mov sl, r4                                        |         sl = r4;
    0x0000b2a2 blx 0x36fc                                        |         r0 = io_channel_write_blk64 ();
    0x0000b2a6 adds r1, r0, 1                                    |         r1 = r0 + 1;
    0x0000b2a8 mov r4, r0                                        |         r4 = r0;
    0x0000b2aa bne 0xb248                                        |         
                                                                 |     } while (r1 != r0);
    0x0000b2ac blx 0x357c                                        |     sprintf_chk ()
    0x0000b2b0 ldr r2, [pc, 0x154]                               |     
    0x0000b2b2 mov r3, fp                                        |     r3 = fp;
    0x0000b2b4 ldr r4, [r0]                                      |     r4 = *(r0);
    0x0000b2b6 ldr r0, [pc, 0x154]                               |     
    0x0000b2b8 add r2, pc                                        |     r2 = "Bad magic value in profile_t";
    0x0000b2ba str r5, [sp]                                      |     *(sp) = r5;
    0x0000b2bc mov r1, r4                                        |     r1 = r4;
    0x0000b2be add r0, pc                                        |     r0 = 0x166d0;
    0x0000b2c0 blx 0x32cc                                        |     fcn_000032cc ();
                                                                 | label_3:
    0x0000b2c4 mov r0, r6                                        |     r0 = r6;
    0x0000b2c6 blx 0x3098                                        |     fcn_00003098 ();
    0x0000b2ca mov r0, sb                                        |     r0 = sb;
    0x0000b2cc blx 0x3918                                        |     r0 = ext2fs_punch ();
    0x0000b2d0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000b2d2 beq.w 0xb1a8                                      |         goto label_1;
                                                                 |     }
    0x0000b2d6 mov r1, r4                                        |     r1 = r4;
    0x0000b2d8 ldr r2, [pc, 0x134]                               |     
    0x0000b2da cmp r4, 0                                         |     
    0x0000b2dc it eq                                             |     
                                                                 |     if (r4 != 0) {
    0x0000b2de moveq r4, r0                                      |         r4 = r0;
                                                                 |     }
    0x0000b2e0 ldr r0, [pc, 0x130]                               |     
    0x0000b2e2 mov r3, r7                                        |     r3 = r7;
    0x0000b2e4 add r2, pc                                        |     r2 = 0x166f8;
    0x0000b2e6 add r0, pc                                        |     r0 = 0x166fe;
    0x0000b2e8 blx 0x32cc                                        |     fcn_000032cc ();
    0x0000b2ec b 0xb1a8                                          |     goto label_1;
                                                                 | label_5:
    0x0000b2ee blx 0x357c                                        |     sprintf_chk ()
    0x0000b2f2 ldr r2, [pc, 0x124]                               |     
    0x0000b2f4 mov r3, r5                                        |     r3 = r5;
    0x0000b2f6 ldr r4, [r0]                                      |     r4 = *(r0);
    0x0000b2f8 ldr r0, [pc, 0x120]                               |     
    0x0000b2fa add r2, pc                                        |     r2 = 0x16718;
    0x0000b2fc mov r1, r4                                        |     r1 = r4;
    0x0000b2fe add r0, pc                                        |     r0 = 0x1671e;
    0x0000b300 blx 0x32cc                                        |     fcn_000032cc ();
    0x0000b304 b 0xb1a8                                          |     goto label_1;
                                                                 | label_7:
    0x0000b306 ldr r2, [pc, 0x118]                               |     
    0x0000b308 mov r3, r7                                        |     r3 = r7;
    0x0000b30a ldr r0, [pc, 0x118]                               |     
    0x0000b30c mov r1, r4                                        |     r1 = r4;
    0x0000b30e add r2, pc                                        |     r2 = 0x16734;
    0x0000b310 add r0, pc                                        |     r0 = 0x1673a;
    0x0000b312 blx 0x32cc                                        |     fcn_000032cc ();
                                                                 | label_2:
    0x0000b316 mov r0, r6                                        |     r0 = r6;
    0x0000b318 blx 0x3098                                        |     fcn_00003098 ();
    0x0000b31c mov r0, sb                                        |     r0 = sb;
    0x0000b31e blx 0x3918                                        |     r0 = ext2fs_punch ();
    0x0000b322 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000b324 beq.w 0xb1a8                                      |         goto label_1;
                                                                 |     }
    0x0000b328 ldr r2, [pc, 0xfc]                                |     
    0x0000b32a mov r3, r7                                        |     r3 = r7;
    0x0000b32c ldr r0, [pc, 0xfc]                                |     
    0x0000b32e mov r1, r4                                        |     r1 = r4;
    0x0000b330 add r2, pc                                        |     r2 = 0x1675c;
    0x0000b332 add r0, pc                                        |     r0 = 0x16762;
    0x0000b334 blx 0x32cc                                        |     fcn_000032cc ();
    0x0000b338 b 0xb1a8                                          |     goto label_1;
                                                                 | label_8:
    0x0000b33a ldr r2, [pc, 0xf4]                                |     
    0x0000b33c movw r1, 0xb746                                   |     
    0x0000b340 ldr r0, [pc, 0xf0]                                |     
    0x0000b342 movt r1, 0x7f2b                                   |     r1 = 0x7f2bb746;
    0x0000b346 movw r4, 0xb746                                   |     
    0x0000b34a add r2, pc                                        |     r2 = 0x16780;
    0x0000b34c movt r4, 0x7f2b                                   |     r4 = 0x7f2bb746;
    0x0000b350 add r0, pc                                        |     r0 = 0x16788;
    0x0000b352 blx 0x32cc                                        |     fcn_000032cc ();
    0x0000b356 b 0xb316                                          |     goto label_2;
                                                                 | label_11:
    0x0000b358 mov r0, r6                                        |     r0 = r6;
    0x0000b35a blx 0x3098                                        |     fcn_00003098 ();
    0x0000b35e mov r0, sb                                        |     r0 = sb;
    0x0000b360 blx 0x3918                                        |     r0 = ext2fs_punch ();
    0x0000b364 mov r4, r0                                        |     r4 = r0;
    0x0000b366 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000b368 beq.w 0xb1a8                                      |         goto label_1;
                                                                 |     }
    0x0000b36c ldr r2, [pc, 0xc8]                                |     
    0x0000b36e mov r3, r7                                        |     r3 = r7;
    0x0000b370 ldr r0, [pc, 0xc8]                                |     
    0x0000b372 movs r1, 0                                        |     r1 = 0;
    0x0000b374 add r2, pc                                        |     r2 = 0x167b0;
    0x0000b376 add r0, pc                                        |     r0 = 0x167b6;
    0x0000b378 blx 0x32cc                                        |     fcn_000032cc ();
    0x0000b37c b 0xb1a8                                          |     goto label_1;
                                                                 | label_13:
    0x0000b37e mov r0, r8                                        |     r0 = r8;
    0x0000b380 blx 0x3098                                        |     fcn_00003098 ();
    0x0000b384 blx 0x357c                                        |     sprintf_chk ()
    0x0000b388 ldr r2, [pc, 0xb4]                                |     
    0x0000b38a mov r3, fp                                        |     r3 = fp;
    0x0000b38c ldr r4, [r0]                                      |     r4 = *(r0);
    0x0000b38e ldr r0, [pc, 0xb4]                                |     
    0x0000b390 add r2, pc                                        |     r2 = 0x167d4;
    0x0000b392 str r5, [sp]                                      |     *(sp) = r5;
    0x0000b394 mov r1, r4                                        |     r1 = r4;
    0x0000b396 add r0, pc                                        |     r0 = 0x167e0;
    0x0000b398 blx 0x32cc                                        |     fcn_000032cc ();
    0x0000b39c b 0xb2c4                                          |     goto label_3;
                                                                 | label_14:
    0x0000b39e ldr r2, [pc, 0xa8]                                |     
    0x0000b3a0 mov r3, fp                                        |     r3 = fp;
    0x0000b3a2 ldr r0, [pc, 0xa8]                                |     
    0x0000b3a4 mov r1, r4                                        |     r1 = r4;
    0x0000b3a6 str r7, [sp]                                      |     *(sp) = r7;
    0x0000b3a8 add r2, pc                                        |     r2 = 0x167f6;
    0x0000b3aa add r0, pc                                        |     r0 = 0x167fc;
    0x0000b3ac blx 0x32cc                                        |     fcn_000032cc ();
    0x0000b3b0 b 0xb316                                          |     goto label_2;
                                                                 | label_9:
    0x0000b3b2 blx 0x357c                                        |     sprintf_chk ()
    0x0000b3b6 ldr r2, [pc, 0x98]                                |     
    0x0000b3b8 mov r3, r5                                        |     r3 = r5;
    0x0000b3ba ldr r4, [r0]                                      |     r4 = *(r0);
    0x0000b3bc ldr r0, [pc, 0x94]                                |     
    0x0000b3be add r2, pc                                        |     r2 = 0x16814;
    0x0000b3c0 mov r1, r4                                        |     r1 = r4;
    0x0000b3c2 add r0, pc                                        |     r0 = 0x1681a;
    0x0000b3c4 blx 0x32cc                                        |     fcn_000032cc ();
    0x0000b3c8 b 0xb2c4                                          |     goto label_3;
                                                                 | label_4:
    0x0000b3ca blx 0x31f4                                        |     fcn_000031f4 ();
                                                                 | label_12:
    0x0000b3ce ldr r2, [pc, 0x88]                                |     
    0x0000b3d0 movw r1, 0xb746                                   |     
    0x0000b3d4 ldr r0, [pc, 0x84]                                |     
    0x0000b3d6 movt r1, 0x7f2b                                   |     r1 = 0x7f2bb746;
    0x0000b3da movw r4, 0xb746                                   |     
    0x0000b3de add r2, pc                                        |     r2 = "Bad magic value in profile_file_data_t";
    0x0000b3e0 movt r4, 0x7f2b                                   |     r4 = 0x7f2bb746;
    0x0000b3e4 add r0, pc                                        |     r0 = 0x16844;
    0x0000b3e6 blx 0x32cc                                        |     fcn_000032cc ();
    0x0000b3ea b 0xb316                                          |     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 @ 0xb860 */
                                                                     | #include <stdint.h>
                                                                     |  
                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                     |  
    ; (fcn) fcn.0000b860 ()                                          | void fcn_0000b860 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h_3;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h_3;
                                                                     |     int16_t var_ch_3;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t c;
                                                                     |     char * src;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_30h;
                                                                     |     int16_t var_40h;
                                                                     |     int16_t var_60h;
                                                                     |     int16_t var_9ch;
                                                                     |     int16_t var_a4h;
                                                                     |     int16_t var_b6h;
                                                                     |     int16_t var_bch;
                                                                     |     int16_t var_11ch;
                                                                     |     int16_t var_0h_2;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0000b860 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0000b864 mov r4, r1                                            |     r4 = r1;
    0x0000b866 ldr.w r1, [pc, 0x4cc]                                 |     r1 = *(0x0000bd34);
    0x0000b86a mov r7, r3                                            |     r7 = r3;
    0x0000b86c mov r8, r2                                            |     r8 = r2;
    0x0000b86e movs r2, 0                                            |     r2 = 0;
    0x0000b870 ldr.w r3, [pc, 0x4c4]                                 |     
    0x0000b874 sub sp, 0x124                                         |     
    0x0000b876 add r1, pc                                            |     r1 += pc;
    0x0000b878 mov r6, r0                                            |     r6 = r0;
    0x0000b87a mov r0, r8                                            |     r0 = r8;
    0x0000b87c ldr r3, [r1, r3]                                      |     r3 = *((r1 + r3));
    0x0000b87e mov r1, r2                                            |     r1 = r2;
    0x0000b880 ldr r3, [r3]                                          |     r3 = *(0xbd38);
    0x0000b882 str r3, [sp, 0x11c]                                   |     var_11ch = r3;
    0x0000b884 mov.w r3, 0                                           |     r3 = 0;
    0x0000b888 blx 0x39a8                                            |     r0 = fcn_000039a8 ();
    0x0000b88c subs r5, r0, 0                                        |     r5 = r0 - 0;
                                                                     |     if (r5 < r0) {
    0x0000b88e blt 0xb92c                                            |         goto label_12;
                                                                     |     }
    0x0000b890 add r1, sp, 0x30                                      |     r1 += var_30h;
    0x0000b892 blx 0x38b8                                            |     r0 = scandir64 ();
    0x0000b896 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0000b898 blt.w 0xbad2                                          |         goto label_13;
                                                                     |     }
    0x0000b89c movs r1, 0x2f                                         |     r1 = 0x2f;
    0x0000b89e mov r0, r7                                            |     r0 = r7;
    0x0000b8a0 blx 0x37bc                                            |     r0 = ext2fs_bg_itable_unused ();
    0x0000b8a4 mov r8, r0                                            |     r8 = r0;
    0x0000b8a6 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b8a8 beq 0xb928                                            |         goto label_14;
                                                                     |     }
    0x0000b8aa movs r3, 0                                            |     r3 = 0;
    0x0000b8ac mov r2, r4                                            |     r2 = r4;
    0x0000b8ae strb r3, [r0]                                         |     *(r0) = r3;
    0x0000b8b0 add r3, sp, 0x28                                      |     r3 += src;
    0x0000b8b2 str r3, [sp]                                          |     *(sp) = r3;
    0x0000b8b4 mov r0, r6                                            |     r0 = r6;
    0x0000b8b6 ldr r1, [sp, 0x148]                                   |     r1 = var_0h_2;
    0x0000b8b8 mov r3, r7                                            |     r3 = r7;
    0x0000b8ba blx 0x3110                                            |     r0 = fcn_00003110 ();
    0x0000b8be mov r4, r0                                            |     r4 = r0;
    0x0000b8c0 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b8c2 bne.w 0xbada                                          |         goto label_15;
                                                                     |     }
    0x0000b8c6 ldr r4, [sp, 0x28]                                    |     r4 = src;
    0x0000b8c8 add.w r7, r8, 1                                       |     r7 = r8 + 1;
                                                                     |     do {
    0x0000b8cc add.w r8, sp, 0x24                                    |         r8 += c;
    0x0000b8d0 mov r2, r4                                            |         r2 = r4;
    0x0000b8d2 ldr r1, [sp, 0x148]                                   |         r1 = var_0h_2;
    0x0000b8d4 mov r3, r7                                            |         r3 = r7;
    0x0000b8d6 mov r0, r6                                            |         r0 = r6;
    0x0000b8d8 movw r4, 0xb79b                                       |         
    0x0000b8dc str.w r8, [sp]                                        |         __asm ("str.w r8, [sp]");
    0x0000b8e0 movt r4, 0x7f2b                                       |         r4 = 0x7f2bb79b;
    0x0000b8e4 blx 0x3110                                            |         r0 = fcn_00003110 ();
                                                                     |         if (r0 != 0) {
    0x0000b8e8 cbz r0, 0xb900                                        |             
    0x0000b8ea ldr r1, [sp, 0x28]                                    |             r1 = src;
    0x0000b8ec movs r3, 0                                            |             r3 = 0;
    0x0000b8ee movw r2, 0x11ed                                       |             r2 = 0x11ed;
    0x0000b8f2 mov r0, r6                                            |             r0 = r6;
    0x0000b8f4 str.w r8, [sp]                                        |             __asm ("str.w r8, [sp]");
    0x0000b8f8 blx 0x336c                                            |             r0 = strcpy (r0, r1);
    0x0000b8fc mov r4, r0                                            |             r4 = r0;
                                                                     |             if (r0 == 0) {
    0x0000b8fe cbz r0, 0xb94a                                        |                 goto label_16;
                                                                     |             }
                                                                     |         }
                                                                     | label_1:
    0x0000b900 mov r0, r5                                            |         r0 = r5;
    0x0000b902 blx 0x3960                                            |         ext2fs_inode_table_loc ();
                                                                     | label_0:
    0x0000b906 ldr.w r2, [pc, 0x434]                                 |         r2 = *(0x0000bd3c);
    0x0000b90a ldr.w r3, [pc, 0x42c]                                 |         r3 = *(0xbd3a);
    0x0000b90e add r2, pc                                            |         r2 += pc;
    0x0000b910 ldr r3, [r2, r3]                                      |         r3 = *((r2 + r3));
    0x0000b912 ldr r2, [r3]                                          |         r2 = *(0xbd3a);
    0x0000b914 ldr r3, [sp, 0x11c]                                   |         r3 = var_11ch;
    0x0000b916 eors r2, r3                                           |         r2 ^= r3;
    0x0000b918 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0000b91c bne.w 0xbb62                                          |             goto label_17;
                                                                     |         }
    0x0000b920 mov r0, r4                                            |         r0 = r4;
    0x0000b922 add sp, 0x124                                         |         
    0x0000b924 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_14:
    0x0000b928 str r4, [sp, 0x28]                                    |         src = r4;
    0x0000b92a b 0xb8cc                                              |         
                                                                     |     } while (1);
                                                                     | label_12:
    0x0000b92c blx 0x357c                                            |     r0 = sprintf_chk ()
    0x0000b930 ldr r4, [r0]                                          |     r4 = *(r0);
    0x0000b932 mov r3, r8                                            |     r3 = r8;
    0x0000b934 ldr.w r0, [pc, 0x408]                                 |     
    0x0000b938 ldr.w r2, [pc, 0x408]                                 |     
    0x0000b93c mov r1, r4                                            |     r1 = r4;
    0x0000b93e add r0, pc                                            |     r0 = 0x17682;
    0x0000b940 add r2, pc                                            |     r2 = 0x17688;
    0x0000b942 adds r0, 0x38                                         |     r0 += 0x38;
    0x0000b944 blx 0x32cc                                            |     fcn_000032cc ();
    0x0000b948 b 0xb906                                              |     goto label_0;
                                                                     | label_16:
    0x0000b94a mov.w r8, 1                                           |     r8 = 1;
    0x0000b94e ldr r3, [sp, 0x24]                                    |     r3 = c;
    0x0000b950 ldr r1, [sp, 0x28]                                    |     r1 = src;
    0x0000b952 mov r2, r7                                            |     r2 = r7;
    0x0000b954 mov r0, r6                                            |     r0 = r6;
    0x0000b956 str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x0000b95a blx 0x387c                                            |     uuid_generate_time ();
    0x0000b95e movw r3, 0xb726                                       |     
    0x0000b962 mov r4, r0                                            |     r4 = r0;
    0x0000b964 movt r3, 0x7f2b                                       |     r3 = 0x7f2bb726;
    0x0000b968 cmp r0, r3                                            |     
                                                                     |     if (r0 == r3) {
    0x0000b96a beq.w 0xbaea                                          |         goto label_18;
                                                                     |     }
                                                                     | label_2:
    0x0000b96e cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0000b970 bne 0xb900                                            |         goto label_1;
                                                                     |     }
    0x0000b972 ldr r2, [sp, 0x24]                                    |     r2 = c;
    0x0000b974 mov r3, r4                                            |     r3 = r4;
    0x0000b976 ldr r0, [r6, 0x2c]                                    |     r0 = *((r6 + 0x2c));
    0x0000b978 blx 0x3738                                            |     r0 = ext2fs_block_bitmap_loc_set ();
    0x0000b97c cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b97e bne.w 0xbb14                                          |         goto label_19;
                                                                     |     }
                                                                     | label_4:
    0x0000b982 movs r3, 0                                            |     r3 = 0;
    0x0000b984 ldr r1, [sp, 0x24]                                    |     r1 = c;
    0x0000b986 movs r2, 1                                            |     r2 = 1;
    0x0000b988 mov r0, r6                                            |     r0 = r6;
    0x0000b98a add r7, sp, 0x9c                                      |     r7 += var_9ch;
    0x0000b98c blx 0x3798                                            |     strrchr (r0, r1);
    0x0000b990 movs r2, 0x80                                         |     r2 = 0x80;
    0x0000b992 movs r1, 0                                            |     r1 = 0;
    0x0000b994 mov r0, r7                                            |     r0 = r7;
    0x0000b996 blx 0x35bc                                            |     fcn_000035bc ();
    0x0000b99a ldr r3, [sp, 0x40]                                    |     r3 = var_40h;
    0x0000b99c ldr r0, [r6, 0x60]                                    |     r0 = *((r6 + 0x60));
    0x0000b99e ubfx r3, r3, 0, 0xc                                   |     r3 = (r3 >> 0) & ((1 << 0xc) - 1);
    0x0000b9a2 mvn.w r3, r3, lsl 17                                  |     r3 = ~r3;
    0x0000b9a6 mvn.w r3, r3, lsr 17                                  |     r3 = ~r3;
    0x0000b9aa strh.w r3, [sp, 0x9c]                                 |     var_9ch = r3;
    0x0000b9ae cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b9b0 beq.w 0xbb0e                                          |         goto label_20;
                                                                     |     }
                                                                     | label_3:
    0x0000b9b4 movs r3, 1                                            |     r3 = 1;
    0x0000b9b6 strd r0, r0, [sp, 0xa8]                               |     __asm ("strd r0, r0, [sp, 0xa8]");
    0x0000b9ba str r0, [sp, 0xa4]                                    |     var_a4h = r0;
    0x0000b9bc mov r1, r7                                            |     r1 = r7;
    0x0000b9be strh.w r3, [sp, 0xb6]                                 |     var_b6h = r3;
    0x0000b9c2 mov r0, r6                                            |     r0 = r6;
    0x0000b9c4 ldrd r2, r3, [sp, 0x60]                               |     __asm ("ldrd r2, r3, [var_60h]");
    0x0000b9c8 blx 0x32f0                                            |     r0 = fcn_000032f0 ();
    0x0000b9cc mov r4, r0                                            |     r4 = r0;
    0x0000b9ce cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b9d0 bne 0xb900                                            |         goto label_1;
                                                                     |     }
    0x0000b9d2 ldr r3, [r6, 0x10]                                    |     r3 = *((r6 + 0x10));
    0x0000b9d4 ldr r1, [sp, 0x24]                                    |     r1 = c;
    0x0000b9d6 ldr r3, [r3, 0x60]                                    |     r3 = *((r3 + 0x60));
    0x0000b9d8 lsls r2, r3, 0x10                                     |     r2 = r3 << 0x10;
                                                                     |     if (r2 >= r3) {
    0x0000b9da bpl.w 0xbb26                                          |         goto label_21;
                                                                     |     }
    0x0000b9de ldr r3, [sp, 0xbc]                                    |     r3 = var_bch;
    0x0000b9e0 orr r3, r3, 0x10000000                                |     r3 |= 0x10000000;
    0x0000b9e4 str r3, [sp, 0xbc]                                    |     var_bch = r3;
                                                                     | label_5:
    0x0000b9e6 mov r2, r7                                            |     r2 = r7;
    0x0000b9e8 mov r0, r6                                            |     r0 = r6;
    0x0000b9ea blx 0x3400                                            |     r0 = fcn_00003400 ();
    0x0000b9ee mov r4, r0                                            |     r4 = r0;
    0x0000b9f0 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b9f2 bne 0xb900                                            |         goto label_1;
                                                                     |     }
    0x0000b9f4 ldr r3, [sp, 0xbc]                                    |     r3 = var_bch;
    0x0000b9f6 lsls r7, r3, 3                                        |     r7 = r3 << 3;
                                                                     |     if (r7 < r3) {
    0x0000b9f8 bmi.w 0xbb50                                          |         goto label_22;
                                                                     |     }
                                                                     | label_6:
    0x0000b9fc ldrh.w r3, [sp, 0x9c]                                 |     r3 = var_9ch;
    0x0000ba00 and r3, r3, 0xf000                                    |     r3 &= 0xf000;
    0x0000ba04 cmp.w r3, 0x8000                                      |     
                                                                     |     if (r3 != 0x8000) {
    0x0000ba08 bne.w 0xb900                                          |         goto label_1;
                                                                     |     }
    0x0000ba0c ldr r1, [sp, 0x24]                                    |     r1 = c;
    0x0000ba0e add r3, sp, 0x2c                                      |     r3 += var_2ch;
    0x0000ba10 movs r2, 1                                            |     r2 = 1;
    0x0000ba12 mov r0, r6                                            |     r0 = r6;
    0x0000ba14 blx 0x30f8                                            |     r0 = fcn_000030f8 ();
    0x0000ba16 sbcs.w r6, r0, r4, lsl 16                             |     __asm ("sbcs.w r6, r0, r4, lsl 16");
    0x0000ba1a cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000ba1c bne.w 0xb900                                          |         goto label_1;
                                                                     |     }
    0x0000ba20 mov.w r0, 0x10000                                     |     r0 = 0x10000;
    0x0000ba24 blx 0x3450                                            |     strerror (r0);
    0x0000ba28 ldr r3, [sp, 0x2c]                                    |     r3 = var_2ch;
    0x0000ba2a mov r8, r0                                            |     r8 = r0;
    0x0000ba2c str r3, [sp, 0x18]                                    |     var_18h = r3;
    0x0000ba2e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000ba30 beq.w 0xbd1c                                          |         goto label_23;
                                                                     |     }
    0x0000ba34 ldr r0, [r6, 0x14]                                    |     r0 = *((r6 + 0x14));
    0x0000ba36 movs r1, 1                                            |     r1 = 1;
    0x0000ba38 blx 0x2f10                                            |     r0 = calloc (r0, r1);
    0x0000ba3c mov sl, r0                                            |     sl = r0;
    0x0000ba3e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000ba40 beq.w 0xbd1c                                          |         goto label_23;
                                                                     |     }
    0x0000ba44 mov r7, r4                                            |     r7 = r4;
    0x0000ba46 mov sb, r4                                            |     sb = r4;
    0x0000ba48 b 0xbab0                                              |     
                                                                     |     while (r7 < r2) {
    0x0000ba4a movs r1, 3                                            |         r1 = 3;
    0x0000ba4c mov r2, r7                                            |         r2 = r7;
    0x0000ba4e mov r3, sb                                            |         r3 = sb;
    0x0000ba50 mov r0, r5                                            |         r0 = r5;
    0x0000ba52 str r1, [sp]                                          |         *(sp) = r1;
    0x0000ba54 blx 0x3348                                            |         ext2fs_inline_data_init ();
    0x0000ba58 subs.w fp, r1, 0                                      |         
    0x0000ba5c mov r4, r0                                            |         r4 = r0;
                                                                     |         if (fp < r1) {
    0x0000ba5e blt.w 0xbcec                                          |             goto label_24;
                                                                     |         }
    0x0000ba62 movs r3, 4                                            |         r3 = 4;
    0x0000ba64 mov r2, r0                                            |         r2 = r0;
    0x0000ba66 str r3, [sp]                                          |         *(sp) = r3;
    0x0000ba68 mov r0, r5                                            |         r0 = r5;
    0x0000ba6a mov r3, fp                                            |         r3 = fp;
    0x0000ba6c blx 0x3348                                            |         ext2fs_inline_data_init ();
    0x0000ba70 subs.w sb, r1, 0                                      |         sb = r1 - 0;
    0x0000ba74 mov r7, r0                                            |         r7 = r0;
                                                                     |         if (sb < r1) {
    0x0000ba76 blt.w 0xbb88                                          |             goto label_25;
                                                                     |         }
    0x0000ba7a str.w fp, [sp, 4]                                     |         __asm ("str.w fp, [var_4h]");
    0x0000ba7e mov r1, r5                                            |         r1 = r5;
    0x0000ba80 strd r8, sl, [sp, 0x10]                               |         __asm ("strd r8, sl, [sp, 0x10]");
    0x0000ba84 mov r0, r6                                            |         r0 = r6;
    0x0000ba86 ldr.w ip, [r6, 0x14]                                  |         ip = *((r6 + 0x14));
    0x0000ba8a ldr r2, [sp, 0x18]                                    |         r2 = var_18h;
    0x0000ba8c add.w r3, ip, -1                                      |         r3 = ip + -1;
    0x0000ba90 rsb.w ip, ip, 0                                       |         
    0x0000ba94 adds r3, r7, r3                                       |         r3 = r7 + r3;
    0x0000ba96 and.w r4, r4, ip                                      |         r4 &= ip;
    0x0000ba9a and.w r3, r3, ip                                      |         r3 &= ip;
    0x0000ba9e str r4, [sp]                                          |         *(sp) = r4;
    0x0000baa0 str r3, [sp, 8]                                       |         var_8h_3 = r3;
    0x0000baa2 adc r3, sb, 0                                         |         __asm ("adc r3, sb, 0");
    0x0000baa6 str r3, [sp, 0xc]                                     |         var_ch_3 = r3;
    0x0000baa8 bl 0xb048                                             |         r0 = fcn_0000b048 (r0, r1, r2, r3, r4, r5, r6);
    0x0000baac cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0000baae bne 0xbb66                                            |             goto label_26;
                                                                     |         }
    0x0000bab0 ldrd r2, r3, [sp, 0x60]                               |         __asm ("ldrd r2, r3, [var_60h]");
    0x0000bab4 cmp r7, r2                                            |         
    0x0000bab6 sbcs.w r3, sb, r3                                     |         __asm ("sbcs.w r3, sb, r3");
    0x0000baba blt 0xba4a                                            |         
                                                                     |     }
                                                                     | label_9:
    0x0000babc mov r0, sl                                            |     r0 = sl;
    0x0000babe blx 0x3098                                            |     fcn_00003098 ();
    0x0000bac2 mov r0, r8                                            |     r0 = r8;
    0x0000bac4 blx 0x3098                                            |     fcn_00003098 ();
    0x0000bac8 ldr r0, [sp, 0x2c]                                    |     r0 = var_2ch;
    0x0000baca blx 0x304c                                            |     r0 = fcn_0000304c ();
    0x0000bace mov r4, r0                                            |     r4 = r0;
    0x0000bad0 b 0xb900                                              |     goto label_1;
                                                                     | label_13:
    0x0000bad2 blx 0x357c                                            |     r0 = sprintf_chk ()
    0x0000bad6 ldr r4, [r0]                                          |     r4 = *(r0);
    0x0000bad8 b 0xb900                                              |     goto label_1;
                                                                     | label_15:
    0x0000bada ldr r2, [pc, 0x26c]                                   |     
    0x0000badc mov r3, r7                                            |     r3 = r7;
    0x0000bade mov r0, r7                                            |     r0 = r7;
    0x0000bae0 mov r1, r4                                            |     r1 = r4;
    0x0000bae2 add r2, pc                                            |     r2 = 0x17830;
    0x0000bae4 blx 0x32cc                                            |     fcn_000032cc ();
    0x0000bae8 b 0xb900                                              |     goto label_1;
                                                                     | label_18:
    0x0000baea ldr r1, [sp, 0x28]                                    |     r1 = src;
    0x0000baec mov r0, r6                                            |     r0 = r6;
    0x0000baee blx 0x3570                                            |     r0 = ext2fs_init_csum_seed ();
    0x0000baf2 mov r4, r0                                            |     r4 = r0;
    0x0000baf4 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000baf6 bne.w 0xb900                                          |         goto label_1;
                                                                     |     }
    0x0000bafa ldr r3, [sp, 0x24]                                    |     r3 = c;
    0x0000bafc mov r2, r7                                            |     r2 = r7;
    0x0000bafe ldr r1, [sp, 0x28]                                    |     r1 = src;
    0x0000bb00 mov r0, r6                                            |     r0 = r6;
    0x0000bb02 str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x0000bb06 blx 0x387c                                            |     r0 = uuid_generate_time ();
    0x0000bb0a mov r4, r0                                            |     r4 = r0;
    0x0000bb0c b 0xb96e                                              |     goto label_2;
                                                                     | label_20:
    0x0000bb0e blx 0x3134                                            |     fcn_00003134 ();
    0x0000bb12 b 0xb9b4                                              |     goto label_3;
                                                                     | label_19:
    0x0000bb14 ldr r0, [pc, 0x234]                                   |     
    0x0000bb16 mov r1, r4                                            |     r1 = r4;
    0x0000bb18 ldr r2, [pc, 0x234]                                   |     
    0x0000bb1a add r0, pc                                            |     r0 = 0x1786a;
    0x0000bb1c add r2, pc                                            |     r2 = 0x17870;
    0x0000bb1e adds r0, 0x38                                         |     r0 += 0x38;
    0x0000bb20 blx 0x32cc                                            |     fcn_000032cc ();
    0x0000bb24 b 0xb982                                              |     goto label_4;
                                                                     | label_21:
    0x0000bb26 lsls r3, r3, 0x19                                     |     r3 <<= 0x19;
                                                                     |     if (r3 >= r3) {
    0x0000bb28 bpl.w 0xb9e6                                          |         goto label_5;
                                                                     |     }
    0x0000bb2c ldr r3, [sp, 0xbc]                                    |     r3 = var_bch;
    0x0000bb2e mov r2, r7                                            |     r2 = r7;
    0x0000bb30 mov r0, r6                                            |     r0 = r6;
    0x0000bb32 bic r3, r3, 0x80000                                   |     r3 = BIT_MASK (r3, 0x80000);
    0x0000bb36 str r3, [sp, 0xbc]                                    |     var_bch = r3;
    0x0000bb38 add r3, sp, 0x2c                                      |     r3 += var_2ch;
    0x0000bb3a blx 0x3644                                            |     r0 = fcn_00003644 ();
    0x0000bb3e mov r4, r0                                            |     r4 = r0;
    0x0000bb40 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000bb42 bne.w 0xb900                                          |         goto label_1;
                                                                     |     }
    0x0000bb46 ldr r0, [sp, 0x2c]                                    |     r0 = var_2ch;
    0x0000bb48 blx 0x37f8                                            |     ext2fs_numeric_progress_close ();
    0x0000bb4c ldr r1, [sp, 0x24]                                    |     r1 = c;
    0x0000bb4e b 0xb9e6                                              |     goto label_5;
                                                                     | label_22:
    0x0000bb50 ldr r1, [sp, 0x24]                                    |     r1 = c;
    0x0000bb52 mov r0, r6                                            |     r0 = r6;
    0x0000bb54 blx 0x3354                                            |     r0 = ext2fs_open_inode_scan ();
    0x0000bb58 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000bb5a beq.w 0xb9fc                                          |         goto label_6;
                                                                     |     }
    0x0000bb5e mov r4, r0                                            |     r4 = r0;
    0x0000bb60 b 0xb900                                              |     goto label_1;
                                                                     | label_17:
    0x0000bb62 blx 0x31f4                                            |     fcn_000031f4 ();
                                                                     | label_26:
    0x0000bb66 movw r3, 0xb750                                       |     
    0x0000bb6a mov r4, r0                                            |     r4 = r0;
    0x0000bb6c movt r3, 0x7f2b                                       |     r3 = 0x7f2bb750;
    0x0000bb70 cmp r0, r3                                            |     
                                                                     |     if (r0 != r3) {
    0x0000bb72 beq 0xbb88                                            |         
                                                                     | label_11:
    0x0000bb74 mov r0, sl                                            |         r0 = sl;
    0x0000bb76 blx 0x3098                                            |         fcn_00003098 ();
    0x0000bb7a mov r0, r8                                            |         r0 = r8;
    0x0000bb7c blx 0x3098                                            |         fcn_00003098 ();
    0x0000bb80 ldr r0, [sp, 0x2c]                                    |         r0 = var_2ch;
    0x0000bb82 blx 0x304c                                            |         fcn_0000304c ();
    0x0000bb86 b 0xb900                                              |         goto label_1;
                                                                     |     }
                                                                     | label_25:
    0x0000bb88 ldr r3, [sp, 0x2c]                                    |     r3 = var_2ch;
    0x0000bb8a str r3, [sp, 0x18]                                    |     var_18h = r3;
                                                                     | label_10:
    0x0000bb8c movs r1, 1                                            |     r1 = 1;
    0x0000bb8e movw r0, 0x7020                                       |     r0 = 0x7020;
    0x0000bb92 blx 0x2f10                                            |     r0 = calloc (r0, r1);
    0x0000bb96 mov r7, r0                                            |     r7 = r0;
    0x0000bb98 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000bb9a beq.w 0xbd12                                          |         goto label_27;
                                                                     |     }
    0x0000bb9e add.w r2, r0, 0x20                                    |     r2 = r0 + 0x20;
    0x0000bba2 vmov.i8 d16, 0xff                                     |     __asm ("vmov.i8 d16, 0xff");
    0x0000bba6 movs r3, 0                                            |     r3 = 0;
    0x0000bba8 movw fp, 0x660b                                       |     
    0x0000bbac movs r1, 1                                            |     r1 = 1;
    0x0000bbae str r2, [sp, 0x1c]                                    |     var_1ch = r2;
    0x0000bbb0 movt fp, 0xc020                                       |     fp = 0xc020660b;
    0x0000bbb4 mov r2, r3                                            |     r2 = r3;
    0x0000bbb6 str r1, [r0, 0x10]                                    |     *((r0 + 0x10)) = r1;
    0x0000bbb8 mov.w r1, 0x200                                       |     r1 = 0x200;
    0x0000bbbc vstr d16, [r0, 8]                                     |     __asm ("vstr d16, [r0, 8]");
    0x0000bbc0 str r1, [r0, 0x18]                                    |     *((r0 + 0x18)) = r1;
                                                                     | label_8:
    0x0000bbc2 strd r3, r2, [r7]                                     |     __asm ("strd r3, r2, [r7]");
    0x0000bbc6 movs r1, 0                                            |     r1 = 0;
    0x0000bbc8 mov.w r2, 0x7000                                      |     r2 = 0x7000;
    0x0000bbcc ldr r0, [sp, 0x1c]                                    |     r0 = var_1ch;
    0x0000bbce blx 0x35bc                                            |     fcn_000035bc ();
    0x0000bbd2 mov r2, r7                                            |     r2 = r7;
    0x0000bbd4 mov r1, fp                                            |     r1 = fp;
    0x0000bbd6 mov r0, r5                                            |     r0 = r5;
    0x0000bbd8 blx 0x333c                                            |     r0 = lseek64 ();
    0x0000bbdc subs.w sb, r0, 0                                      |     sb = r0 - 0;
                                                                     |     if (sb < r0) {
    0x0000bbe0 blt 0xbc82                                            |         goto label_28;
                                                                     |     }
    0x0000bbe2 ldr r3, [r7, 0x14]                                    |     r3 = *((r7 + 0x14));
                                                                     |     if (r3 == 0) {
    0x0000bbe4 cbz r3, 0xbc52                                        |         goto label_29;
                                                                     |     }
    0x0000bbe6 add.w sb, r7, 0x58                                    |     sb = r7 + 0x58;
    0x0000bbea movs r4, 0                                            |     r4 = 0;
    0x0000bbec b 0xbbfa                                              |     
                                                                     |     while (r0 == 0) {
    0x0000bbee ldr r0, [r7, 0x14]                                    |         r0 = *((r7 + 0x14));
    0x0000bbf0 adds r4, 1                                            |         r4++;
    0x0000bbf2 add.w sb, sb, 0x38                                    |         sb += 0x38;
    0x0000bbf6 cmp r4, r0                                            |         
                                                                     |         if (r4 >= r0) {
    0x0000bbf8 bhs 0xbcbe                                            |             goto label_30;
                                                                     |         }
    0x0000bbfa ldrd r1, r3, [sb, -0x38]                              |         __asm ("ldrd r1, r3, [sb, -0x38]");
    0x0000bbfe strd r8, sl, [sp, 0x10]                               |         __asm ("strd r8, sl, [sp, 0x10]");
    0x0000bc02 ldr r2, [sb, -0x28]                                   |         r2 = *((sb - 0x28));
    0x0000bc06 ldr r0, [sb, -0x24]                                   |         r0 = *((sb - 0x24));
    0x0000bc0a strd r1, r3, [sp]                                     |         __asm ("strd r1, r3, [sp]");
    0x0000bc0e adds r2, r1, r2                                       |         r2 = r1 + r2;
    0x0000bc10 mov r1, r5                                            |         r1 = r5;
    0x0000bc12 adc.w r3, r3, r0                                      |         __asm ("adc.w r3, r3, r0");
    0x0000bc16 str r2, [sp, 8]                                       |         var_8h_3 = r2;
    0x0000bc18 mov r0, r6                                            |         r0 = r6;
    0x0000bc1a ldr r2, [sp, 0x18]                                    |         r2 = var_18h;
    0x0000bc1c str r3, [sp, 0xc]                                     |         var_ch_3 = r3;
    0x0000bc1e bl 0xb048                                             |         fcn_0000b048 (r0, r1, r2, r3, r4, r5, r6);
    0x0000bc22 mov r1, sb                                            |         r1 = sb;
    0x0000bc24 cmp r0, 0                                             |         
    0x0000bc26 beq 0xbbee                                            |         
                                                                     |     }
    0x0000bc28 mov r4, r0                                            |     r4 = r0;
    0x0000bc2a mov r0, r7                                            |     r0 = r7;
    0x0000bc2c blx 0x3098                                            |     fcn_00003098 ();
    0x0000bc30 movw r3, 0xb750                                       |     
    0x0000bc34 ldr r7, [sp, 0x2c]                                    |     r7 = var_2ch;
    0x0000bc36 movt r3, 0x7f2b                                       |     r3 = 0x7f2bb750;
    0x0000bc3a cmp r4, r3                                            |     
                                                                     |     if (r4 == r3) {
    0x0000bc3c beq 0xbc9c                                            |         goto label_31;
                                                                     |     }
    0x0000bc3e mov r0, sl                                            |     r0 = sl;
    0x0000bc40 blx 0x3098                                            |     fcn_00003098 ();
    0x0000bc44 mov r0, r8                                            |     r0 = r8;
    0x0000bc46 blx 0x3098                                            |     fcn_00003098 ();
    0x0000bc4a mov r0, r7                                            |     r0 = r7;
    0x0000bc4c blx 0x304c                                            |     fcn_0000304c ();
    0x0000bc50 b 0xb900                                              |     goto label_1;
                                                                     |     do {
                                                                     | label_29:
    0x0000bc52 mov r0, r7                                            |         r0 = r7;
    0x0000bc54 blx 0x3098                                            |         r0 = fcn_00003098 ();
    0x0000bc56 bic.w r2, r0, fp, lsl 29                              |         r2 = BIT_MASK (r0, fp);
    0x0000bc5a strb r0, [r2, 0xd]                                    |         *((r2 + 0xd)) = r0;
    0x0000bc5c movt r3, 0x7f2b                                       |         r3 = (r3 & 0xFFFF) | 0x7f2b0000;
    0x0000bc60 cmp sb, r3                                            |         
                                                                     |         if (sb == r3) {
    0x0000bc62 beq 0xbc9c                                            |             goto label_31;
                                                                     |         }
                                                                     | label_7:
    0x0000bc64 mov r0, sl                                            |         r0 = sl;
    0x0000bc66 blx 0x3098                                            |         fcn_00003098 ();
    0x0000bc6a mov r0, r8                                            |         r0 = r8;
    0x0000bc6c blx 0x3098                                            |         fcn_00003098 ();
    0x0000bc70 ldr r0, [sp, 0x2c]                                    |         r0 = var_2ch;
    0x0000bc72 blx 0x304c                                            |         fcn_0000304c ();
    0x0000bc76 cmp.w sb, 0                                           |         
    0x0000bc7a ite ne                                                |         
                                                                     |         if (sb == 0) {
    0x0000bc7c movne r4, sb                                          |             r4 = sb;
                                                                     |         }
                                                                     |         if (sb != 0) {
    0x0000bc7e moveq r4, r0                                          |             r4 = r0;
                                                                     |         }
    0x0000bc80 b 0xb900                                              |         goto label_1;
                                                                     | label_28:
    0x0000bc82 blx 0x357c                                            |         r0 = sprintf_chk ()
    0x0000bc86 ldr.w sb, [r0]                                        |         sb = *(r0);
    0x0000bc8a cmp.w sb, 0x5f                                        |         
                                                                     |         if (sb == 0x5f) {
    0x0000bc8e beq 0xbc96                                            |             goto label_32;
                                                                     |         }
    0x0000bc90 cmp.w sb, 0x19                                        |         
    0x0000bc94 bne 0xbc52                                            |         
                                                                     |     } while (sb != 0x19);
                                                                     | label_32:
    0x0000bc96 mov r0, r7                                            |     r0 = r7;
    0x0000bc98 blx 0x3098                                            |     fcn_00003098 ();
                                                                     | label_31:
    0x0000bc9c vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0000bca0 mov r0, r6                                            |     r0 = r6;
    0x0000bca2 ldrd r6, r7, [sp, 0x60]                               |     __asm ("ldrd r6, r7, [var_60h]");
    0x0000bca6 mov r1, r5                                            |     r1 = r5;
    0x0000bca8 ldr r2, [sp, 0x2c]                                    |     r2 = var_2ch;
    0x0000bcaa strd r8, sl, [sp, 0x10]                               |     __asm ("strd r8, sl, [sp, 0x10]");
    0x0000bcae vstr d16, [sp]                                        |     __asm ("vstr d16, [sp]");
    0x0000bcb2 strd r6, r7, [sp, 8]                                  |     __asm ("strd r6, r7, [sp, 8]");
    0x0000bcb6 bl 0xb048                                             |     r0 = fcn_0000b048 (r0, r1, r2, r3, r4, r5, r6);
    0x0000bcba mov sb, r0                                            |     sb = r0;
    0x0000bcbc b 0xbc64                                              |     goto label_7;
                                                                     | label_30:
    0x0000bcbe ldr r2, [r1, -0x28]                                   |     r2 = *((r1 - 0x28));
    0x0000bcc2 ldr r3, [r1, -0x38]                                   |     r3 = *((r1 - 0x38));
    0x0000bcc6 ldr r4, [r1, -0x24]                                   |     r4 = *((r1 - 0x24));
    0x0000bcc8 ldr r4, [pc, 0x90]                                    |     r4 = *(0xbd5c);
    0x0000bcca adds r3, r3, r2                                       |     r3 += r2;
    0x0000bccc ldr r2, [r1, -0x34]                                   |     r2 = *((r1 - 0x34));
    0x0000bcd0 adc.w r2, r2, r4                                      |     __asm ("adc.w r2, r2, r4");
    0x0000bcd4 cmp.w r0, 0x200                                       |     
                                                                     |     if (r0 != 0x200) {
    0x0000bcd8 bne 0xbce4                                            |         goto label_33;
                                                                     |     }
    0x0000bcda ldr r1, [r1, -0x10]                                   |     r1 = *((r1 - 0x10));
    0x0000bcde lsls r1, r1, 0x1f                                     |     r1 <<= 0x1f;
                                                                     |     if (r1 >= r1) {
    0x0000bce0 bpl.w 0xbbc2                                          |         goto label_8;
                                                                     |     }
                                                                     | label_33:
    0x0000bce4 mov r0, r7                                            |     r0 = r7;
    0x0000bce6 blx 0x3098                                            |     fcn_00003098 ();
    0x0000bcea b 0xbabc                                              |     goto label_9;
                                                                     | label_24:
    0x0000bcec blx 0x357c                                            |     r0 = sprintf_chk ()
    0x0000bcf0 ldr r3, [r0]                                          |     r3 = *(r0);
    0x0000bcf2 ldr r2, [sp, 0x2c]                                    |     r2 = var_2ch;
    0x0000bcf4 cmp r3, 6                                             |     
    0x0000bcf6 str r2, [sp, 0x18]                                    |     var_18h = r2;
                                                                     |     if (r3 != 6) {
    0x0000bcf8 bne.w 0xbb8c                                          |         goto label_10;
                                                                     |     }
    0x0000bcfc mov r0, sl                                            |     r0 = sl;
    0x0000bcfe blx 0x3098                                            |     fcn_00003098 ();
    0x0000bd02 mov r0, r8                                            |     r0 = r8;
    0x0000bd04 blx 0x3098                                            |     fcn_00003098 ();
    0x0000bd08 ldr r0, [sp, 0x18]                                    |     r0 = var_18h;
    0x0000bd0a blx 0x304c                                            |     r0 = fcn_0000304c ();
    0x0000bd0e mov r4, r0                                            |     r4 = r0;
    0x0000bd10 b 0xb900                                              |     goto label_1;
                                                                     | label_27:
    0x0000bd12 movw r4, 0xb746                                       |     
    0x0000bd16 movt r4, 0x7f2b                                       |     r4 = 0x7f2bb746;
    0x0000bd1a b 0xbb74                                              |     goto label_11;
                                                                     | label_23:
    0x0000bd1c mov r0, r8                                            |     r0 = r8;
    0x0000bd1e movw r4, 0xb746                                       |     
    0x0000bd22 blx 0x3098                                            |     fcn_00003098 ();
    0x0000bd26 ldr r0, [sp, 0x18]                                    |     r0 = var_18h;
    0x0000bd28 movt r4, 0x7f2b                                       |     r4 = 0x7f2bb746;
    0x0000bd2c blx 0x304c                                            |     fcn_0000304c ();
    0x0000bd30 b 0xb900                                              |     goto label_1;
                                                                     | }
    ; 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 @ 0xbd54 */
                                                                     | #include <stdint.h>
                                                                     |  
                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                     |  
    ; (fcn) fcn.0000bd54 ()                                          | void fcn_0000bd54 (int16_t arg_158h, int16_t arg_15ch, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int32_t var_4h_2;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_30h;
                                                                     |     int16_t var_34h;
                                                                     |     int16_t var_38h;
                                                                     |     int16_t var_3ch;
                                                                     |     int16_t var_40h;
                                                                     |     int32_t var_40h_2;
                                                                     |     int16_t var_50h;
                                                                     |     int16_t var_54h;
                                                                     |     int16_t var_58h;
                                                                     |     int16_t var_5ch;
                                                                     |     int16_t var_60h;
                                                                     |     int16_t var_70h;
                                                                     |     int32_t var_70h_2;
                                                                     |     int16_t var_88h;
                                                                     |     int16_t var_90h;
                                                                     |     int16_t var_98h;
                                                                     |     int16_t var_a0h;
                                                                     |     int32_t var_a0h_2;
                                                                     |     int16_t var_ach;
                                                                     |     int16_t var_aeh;
                                                                     |     int16_t var_b4h;
                                                                     |     int16_t var_b8h;
                                                                     |     int16_t var_bch;
                                                                     |     int16_t var_c4h;
                                                                     |     int16_t var_c6h;
                                                                     |     int16_t var_124h;
                                                                     |     int16_t var_126h;
                                                                     |     int16_t var_12ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0000bd54 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0000bd58 sub sp, 0x134                                         |     
    0x0000bd5a mov r4, r2                                            |     r4 = r2;
    0x0000bd5c ldr r2, [sp, 0x158]                                   |     r2 = *(arg_158h);
    0x0000bd5e mov fp, r0                                            |     
    0x0000bd60 mov r0, r4                                            |     r0 = r4;
    0x0000bd62 str r3, [sp, 0x20]                                    |     var_20h = r3;
    0x0000bd64 mov r5, r1                                            |     r5 = r1;
    0x0000bd66 str r2, [sp, 0x24]                                    |     var_24h = r2;
    0x0000bd68 ldr.w r2, [pc, 0x7c8]                                 |     r2 = *(0x0000c534);
    0x0000bd6c ldr.w r3, [pc, 0x7c8]                                 |     
    0x0000bd70 add r2, pc                                            |     r2 += pc;
    0x0000bd72 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0000bd74 ldr r3, [r3]                                          |     r3 = *(0xc538);
    0x0000bd76 str r3, [sp, 0x12c]                                   |     var_12ch = r3;
    0x0000bd78 mov.w r3, 0                                           |     r3 = 0;
    0x0000bd7c ldrd sl, r3, [sp, 0x15c]                              |     __asm ("ldrd sl, r3, [arg_15ch]");
    0x0000bd80 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0000bd82 blx 0x329c                                            |     fcn_0000329c ();
    0x0000bd86 ldr.w r3, [pc, 0x7b4]                                 |     r3 = *(0x0000c53c);
    0x0000bd8a cmp r0, 0                                             |     
    0x0000bd8c add r3, pc                                            |     r3 += pc;
                                                                     |     if (r0 < 0) {
    0x0000bd8e blt.w 0xc2e0                                          |         goto label_18;
                                                                     |     }
    0x0000bd92 ldr.w r2, [pc, 0x7ac]                                 |     r2 = *(0xc542);
    0x0000bd96 add r1, sp, 0x38                                      |     r1 += var_38h;
    0x0000bd98 ldr.w r0, [pc, 0x7a8]                                 |     
    0x0000bd9c ldr r3, [r3, r2]                                      |     r3 = *((r3 + r2));
    0x0000bd9e movs r2, 0                                            |     r2 = 0;
    0x0000bda0 add r0, pc                                            |     r0 = 0x182e8;
    0x0000bda2 blx 0x38dc                                            |     r0 = blkid_get_cache ();
    0x0000bda6 subs r7, r0, 0                                        |     r7 = r0 - 0;
                                                                     |     if (r7 < r0) {
    0x0000bda8 blt.w 0xc3b4                                          |         goto label_19;
                                                                     |     }
                                                                     |     if (r7 == r0) {
    0x0000bdac beq.w 0xc0f6                                          |         goto label_20;
                                                                     |     }
    0x0000bdb0 ldr.w r3, [pc, 0x794]                                 |     
    0x0000bdb4 movs r4, 0                                            |     r4 = 0;
    0x0000bdb6 mov sb, r5                                            |     sb = r5;
    0x0000bdb8 str r7, [sp, 0x18]                                    |     var_18h = r7;
    0x0000bdba add r3, pc                                            |     r3 = 0x18306;
    0x0000bdbc adds r3, 0x4c                                         |     r3 += 0x4c;
    0x0000bdbe str r3, [sp, 0x2c]                                    |     var_2ch = r3;
    0x0000bdc0 movw r3, 0xb726                                       |     
    0x0000bdc4 movt r3, 0x7f2b                                       |     r3 = 0x7f2bb726;
    0x0000bdc8 str r3, [sp, 0x30]                                    |     var_30h = r3;
    0x0000bdca b 0xbdde                                              |     
                                                                     |     while (r3 == 0x2e) {
    0x0000bdcc ldrb r3, [r5, 1]                                      |         r3 = *((r5 + 1));
                                                                     |         if (r3 != 0) {
    0x0000bdce cbnz r3, 0xbdf2                                       |             goto label_21;
                                                                     |         }
                                                                     | label_0:
    0x0000bdd0 blx 0x3098                                            |         fcn_00003098 ();
    0x0000bdd4 ldr r3, [sp, 0x18]                                    |         r3 = var_18h;
    0x0000bdd6 adds r4, 1                                            |         r4++;
    0x0000bdd8 cmp r3, r4                                            |         
                                                                     |         if (r3 == r4) {
    0x0000bdda beq.w 0xc0f6                                          |             goto label_20;
                                                                     |         }
                                                                     | label_2:
    0x0000bdde ldr r3, [sp, 0x38]                                    |         r3 = var_38h;
    0x0000bde0 lsls r2, r4, 2                                        |         r2 = r4 << 2;
    0x0000bde2 str r2, [sp, 0x14]                                    |         var_14h = r2;
    0x0000bde4 ldr.w r0, [r3, r4, lsl 2]                             |         offset_0 = r4 << 2;
                                                                     |         r0 = *((r3 + offset_0));
    0x0000bde8 ldrb r3, [r0, 0x13]                                   |         r3 = *((r0 + 0x13));
    0x0000bdea add.w r5, r0, 0x13                                    |         r5 = r0 + 0x13;
    0x0000bdee cmp r3, 0x2e                                          |         
    0x0000bdf0 beq 0xbdcc                                            |         
                                                                     |     }
                                                                     | label_21:
    0x0000bdf2 ldrb r3, [r5]                                         |     r3 = *(r5);
    0x0000bdf4 cmp r3, 0x2e                                          |     
                                                                     |     if (r3 != 0x2e) {
    0x0000bdf6 bne 0xbe04                                            |         goto label_22;
                                                                     |     }
    0x0000bdf8 ldrb r3, [r5, 1]                                      |     r3 = *((r5 + 1));
    0x0000bdfa cmp r3, 0x2e                                          |     
                                                                     |     if (r3 != 0x2e) {
    0x0000bdfc bne 0xbe04                                            |         goto label_22;
                                                                     |     }
    0x0000bdfe ldrb r3, [r5, 2]                                      |     r3 = *((r5 + 2));
    0x0000be00 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000be02 beq 0xbdd0                                            |         goto label_0;
                                                                     |     }
                                                                     | label_22:
    0x0000be04 add r1, sp, 0x40                                      |     r1 += var_40h;
    0x0000be06 mov r0, r5                                            |     r0 = r5;
    0x0000be08 blx 0x311c                                            |     r0 = fcn_0000311c ();
    0x0000be0c cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000be0e bne.w 0xc3ce                                          |         goto label_23;
                                                                     |     }
    0x0000be12 ldr r3, [sp, 0x50]                                    |     r3 = var_50h;
    0x0000be14 and r3, r3, 0xf000                                    |     r3 &= 0xf000;
    0x0000be16 muls r0, r6, r0                                       |     r0 = r6 * r0;
    0x0000be18 cmp.w r3, 0x4000                                      |     
    0x0000be1c it ne                                                 |     
                                                                     |     if (r3 != 0x4000) {
    0x0000be1e cmpne r3, 0xa000                                      |         __asm ("cmpne r3, 0xa000");
                                                                     |     }
    0x0000be22 ite ne                                                |     
                                                                     |     if (r3 == 0x4000) {
    0x0000be24 movne r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     |     if (r3 != 0x4000) {
    0x0000be26 moveq r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r3 == 0x4000) {
    0x0000be28 beq.w 0xbf38                                          |         goto label_24;
                                                                     |     }
    0x0000be2c ldr r3, [sp, 0x54]                                    |     r3 = var_54h;
    0x0000be2e cmp r3, 1                                             |     
                                                                     |     if (r3 < 1) {
    0x0000be30 bls.w 0xc1d2                                          |         goto label_25;
                                                                     |     }
    0x0000be34 ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
    0x0000be36 ldrd r7, r2, [sp, 0x40]                               |     __asm ("ldrd r7, r2, [var_40h]");
    0x0000be3a ldrd r1, r8, [sp, 0xa0]                               |     __asm ("ldrd r1, r8, [var_a0h]");
    0x0000be3e ldr r6, [r3]                                          |     r6 = *(r3);
    0x0000be40 cmp r6, 0                                             |     
                                                                     |     if (r6 <= 0) {
    0x0000be42 ble 0xbf36                                            |         goto label_26;
                                                                     |     }
    0x0000be44 ldr r3, [r3, 8]                                       |     r3 = *((r3 + 8));
    0x0000be46 mov lr, r5                                            |     lr = r5;
    0x0000be48 mov ip, r4                                            |     
    0x0000be4a b 0xbe56                                              |     
                                                                     |     while (r2 != r4) {
                                                                     | label_1:
    0x0000be4c adds r0, 1                                            |         r0++;
    0x0000be4e adds r3, 0x18                                         |         r3 += 0x18;
    0x0000be50 cmp r0, r6                                            |         
                                                                     |         if (r0 == r6) {
    0x0000be52 beq.w 0xc1c8                                          |             goto label_27;
                                                                     |         }
    0x0000be56 ldrd r5, r4, [r3]                                     |         __asm ("ldrd r5, r4, [r3]");
    0x0000be5a cmp r2, r4                                            |         
    0x0000be5c it eq                                                 |         
                                                                     |         if (r2 == r4) {
    0x0000be5e cmpeq r7, r5                                          |             __asm ("cmpeq r7, r5");
                                                                     |         }
    0x0000be60 bne 0xbe4c                                            |         
                                                                     |     }
    0x0000be62 ldrd r5, r4, [r3, 8]                                  |     __asm ("ldrd r5, r4, [r3, 8]");
    0x0000be66 cmp r8, r4                                            |     
    0x0000be68 it eq                                                 |     
                                                                     |     if (r8 != r4) {
    0x0000be6a cmpeq r1, r5                                          |         __asm ("cmpeq r1, r5");
                                                                     |         goto label_28;
                                                                     |     }
                                                                     |     if (r8 != r4) {
                                                                     | label_28:
    0x0000be6c bne 0xbe4c                                            |         goto label_1;
                                                                     |     }
    0x0000be6e ldr r6, [r3, 0x10]                                    |     r6 = *((r3 + 0x10));
    0x0000be70 add r7, sp, 0xac                                      |     r7 += var_ach;
    0x0000be72 mov r2, r7                                            |     r2 = r7;
    0x0000be74 mov r0, fp                                            |     r0 = fp;
    0x0000be76 mov r5, lr                                            |     r5 = lr;
    0x0000be78 mov r4, ip                                            |     r4 = ip;
    0x0000be7a mov r1, r6                                            |     r1 = r6;
    0x0000be7c blx 0x2f58                                            |     r0 = ext2fs_read_inode ();
    0x0000be80 mov r3, r0                                            |     r3 = r0;
    0x0000be82 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000be84 bne.w 0xc39a                                          |         goto label_29;
                                                                     |     }
    0x0000be88 ldrh.w r2, [sp, 0xac]                                 |     r2 = var_ach;
    0x0000be8c and r2, r2, 0xf000                                    |     r2 &= 0xf000;
    0x0000be90 cmp.w r2, 0x8000                                      |     
    0x0000be94 it eq                                                 |     
                                                                     |     if (r2 != 0x8000) {
    0x0000be96 moveq r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     |     if (r2 != 0x8000) {
    0x0000be98 beq 0xbeca                                            |         
    0x0000be9a cmp.w r2, 0x4000                                      |         
                                                                     |         if (r2 == 0x4000) {
    0x0000be9e beq.w 0xc3ea                                          |             goto label_30;
                                                                     |         }
    0x0000bea2 cmp.w r2, 0x2000                                      |         
                                                                     |         if (r2 == 0x2000) {
    0x0000bea6 beq.w 0xc44e                                          |             goto label_31;
                                                                     |         }
    0x0000beaa cmp.w r2, 0x6000                                      |         
                                                                     |         if (r2 == 0x6000) {
    0x0000beae beq.w 0xc452                                          |             goto label_32;
                                                                     |         }
    0x0000beb2 cmp.w r2, 0xa000                                      |         
                                                                     |         if (r2 == 0xa000) {
    0x0000beb6 beq.w 0xc456                                          |             goto label_33;
                                                                     |         }
    0x0000beba cmp.w r2, 0x1000                                      |         
                                                                     |         if (r2 == 0x1000) {
    0x0000bebe beq.w 0xc45a                                          |             goto label_34;
                                                                     |         }
    0x0000bec2 cmp.w r2, 0xc000                                      |         
    0x0000bec6 it eq                                                 |         
                                                                     |         if (r2 == 0xc000) {
    0x0000bec8 moveq r3, 6                                           |             r3 = 6;
                                                                     |             goto label_16;
                                                                     |         }
                                                                     |     }
                                                                     | label_16:
    0x0000beca mov r2, r5                                            |     r2 = r5;
    0x0000becc str r3, [sp]                                          |     *(sp) = r3;
    0x0000bece mov r1, sb                                            |     r1 = sb;
    0x0000bed0 mov r3, r6                                            |     r3 = r6;
    0x0000bed2 mov r0, fp                                            |     r0 = fp;
    0x0000bed4 blx 0x387c                                            |     uuid_generate_time ();
    0x0000bed8 ldr r2, [sp, 0x30]                                    |     r2 = var_30h;
    0x0000beda mov r3, r0                                            |     r3 = r0;
    0x0000bedc cmp r0, r2                                            |     
                                                                     |     if (r0 == r2) {
    0x0000bede beq.w 0xc312                                          |         goto label_35;
                                                                     |     }
    0x0000bee2 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000bee4 bne.w 0xc2fa                                          |         goto label_14;
                                                                     |     }
                                                                     | label_13:
    0x0000bee8 ldrh.w r3, [sp, 0xc6]                                 |     r3 = var_c6h;
    0x0000beec mov r2, r7                                            |     r2 = r7;
    0x0000beee mov r1, r6                                            |     r1 = r6;
    0x0000bef0 mov r0, fp                                            |     r0 = fp;
    0x0000bef2 adds r3, 1                                            |     r3++;
    0x0000bef4 strh.w r3, [sp, 0xc6]                                 |     var_c6h = r3;
    0x0000bef8 blx 0x36a8                                            |     r0 = ext2fs_file_llseek ();
    0x0000befc cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000befe beq.w 0xc0e2                                          |         
    0x0000bf00 strh r0, [r6, 6]                                      |         *((r6 + 6)) = r0;
    0x0000bf02 mov r8, r6                                            |         r8 = r6;
    0x0000bf04 mov r6, r0                                            |         r6 = r0;
    0x0000bf06 ldr.w r0, [pc, 0x644]                                 |         
    0x0000bf0a mov r3, r8                                            |         r3 = r8;
    0x0000bf0c ldr.w r2, [pc, 0x640]                                 |         
    0x0000bf10 mov r1, r6                                            |         r1 = r6;
    0x0000bf12 ldr r7, [sp, 0x18]                                    |         r7 = var_18h;
    0x0000bf14 add r0, pc                                            |         r0 = 0x18466;
    0x0000bf16 adds r0, 0x5c                                         |         r0 += 0x5c;
    0x0000bf18 add r2, pc                                            |         r2 = 0x1846c;
    0x0000bf1a blx 0x32cc                                            |         fcn_000032cc ();
                                                                     | label_12:
    0x0000bf1e ldr.w r0, [pc, 0x634]                                 |         
    0x0000bf22 mov r3, r5                                            |         r3 = r5;
    0x0000bf24 ldr.w r2, [pc, 0x630]                                 |         
    0x0000bf28 mov r1, r6                                            |         r1 = r6;
    0x0000bf2a add r0, pc                                            |         r0 = 0x18484;
    0x0000bf2c adds r0, 0x4c                                         |         r0 += 0x4c;
    0x0000bf2e add r2, pc                                            |         r2 = 0x1848a;
    0x0000bf30 blx 0x32cc                                            |         fcn_000032cc ();
    0x0000bf34 b 0xc200                                              |         goto label_10;
                                                                     | label_26:
    0x0000bf36 movs r3, 1                                            |         r3 = 1;
                                                                     | label_24:
    0x0000bf38 str r3, [sp, 0x28]                                    |         var_28h = r3;
                                                                     | label_7:
    0x0000bf3a ldr.w r7, [sl, 4]                                     |         r7 = *((sl + 4));
    0x0000bf3e mov r0, r5                                            |         r0 = r5;
    0x0000bf40 blx 0x3504                                            |         e2p_os2string ();
    0x0000bf44 ldr.w r1, [sl, 8]                                     |         r1 = *((sl + 8));
    0x0000bf48 adds r2, r7, 1                                        |         r2 = r7 + 1;
    0x0000bf4a ldr.w r3, [sl]                                        |         r3 = *(sl);
    0x0000bf4e add r2, r0                                            |         r2 += r0;
    0x0000bf50 cmp r2, r1                                            |         
                                                                     |         if (r2 < r1) {
    0x0000bf52 bls.w 0xc1c4                                          |             goto label_36;
                                                                     |         }
    0x0000bf56 lsls r1, r1, 1                                        |         r1 <<= 1;
    0x0000bf58 mov r0, r3                                            |         r0 = r3;
    0x0000bf5a str.w r1, [sl, 8]                                     |         __asm ("str.w r1, [sl, 8]");
    0x0000bf5e blx 0x3254                                            |         r0 = fcn_00003254 ();
    0x0000bf62 mov r3, r0                                            |         r3 = r0;
    0x0000bf64 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0000bf66 beq.w 0xc4fc                                          |             goto label_37;
                                                                     |         }
    0x0000bf6a str.w r0, [sl]                                        |         __asm ("str.w r0, [sl]");
    0x0000bf6e ldr.w r0, [sl, 4]                                     |         r0 = *((sl + 4));
                                                                     | label_6:
    0x0000bf72 add r0, r3                                            |         r0 += r3;
    0x0000bf74 ldr.w r3, [pc, 0x5e4]                                 |         
    0x0000bf78 mov.w r2, -1                                          |         r2 = -1;
    0x0000bf7c movs r1, 1                                            |         r1 = 1;
    0x0000bf7e str r5, [sp]                                          |         *(sp) = r5;
    0x0000bf80 add r3, pc                                            |         r3 = 0x184e0;
    0x0000bf82 blx 0x3594                                            |         ext2fs_open2 ();
    0x0000bf84 add.w r8, r8, sl, lsr 31                              |         r8 += (sl >> 31);
    0x0000bf88 adds r0, 4                                            |         r0 += 4;
    0x0000bf8a add r3, r0                                            |         r3 += r0;
    0x0000bf8c str.w r3, [sl, 4]                                     |         __asm ("str.w r3, [sl, 4]");
    0x0000bf90 ldr r3, [sp, 0x1c]                                    |         r3 = var_1ch;
                                                                     |         if (r3 != 0) {
    0x0000bf92 cbz r3, 0xbfba                                        |             
    0x0000bf94 ldr r3, [sp, 0x1c]                                    |             r3 = var_1ch;
    0x0000bf96 ldr r6, [r3]                                          |             r6 = *(r3);
    0x0000bf98 ldr r3, [sp, 0x50]                                    |             r3 = var_50h;
                                                                     |             if (r6 == 0) {
    0x0000bf9a cbz r6, 0xbfbc                                        |                 goto label_38;
                                                                     |             }
    0x0000bf9c and r3, r3, 0xf000                                    |             r3 &= 0xf000;
    0x0000bfa0 mov r2, r5                                            |             r2 = r5;
    0x0000bfa2 str r3, [sp, 4]                                       |             var_4h = r3;
    0x0000bfa4 mov r0, fp                                            |             r0 = fp;
    0x0000bfa6 ldr r3, [sp, 0x20]                                    |             r3 = var_20h;
    0x0000bfa8 str r3, [sp]                                          |             *(sp) = r3;
    0x0000bfaa mov r3, sb                                            |             r3 = sb;
    0x0000bfac ldr.w r1, [sl]                                        |             r1 = *(sl);
    0x0000bfb0 blx r6                                                |             r0 = uint32_t (*r6)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x0000bfb2 mov r3, r0                                            |             r3 = r0;
    0x0000bfb4 cmp r0, 0                                             |             
                                                                     |             if (r0 != 0) {
    0x0000bfb6 bne.w 0xc41c                                          |                 goto label_39;
                                                                     |             }
                                                                     |         }
    0x0000bfba ldr r3, [sp, 0x50]                                    |         r3 = var_50h;
                                                                     | label_38:
    0x0000bfbc and r2, r3, 0xf000                                    |         r2 = r3 & 0xf000;
    0x0000bfc0 cmp.w r2, 0x8000                                      |         
                                                                     |         if (r2 == 0x8000) {
    0x0000bfc4 beq.w 0xc232                                          |             goto label_40;
                                                                     |         }
                                                                     |         if (r2 > 0x8000) {
    0x0000bfc8 bhi.w 0xc130                                          |             goto label_41;
                                                                     |         }
    0x0000bfcc cmp.w r2, 0x4000                                      |         
                                                                     |         if (r2 == 0x4000) {
    0x0000bfd0 beq.w 0xc25e                                          |             goto label_42;
                                                                     |         }
                                                                     |         if (r2 < 0x4000) {
    0x0000bfd4 bls.w 0xc120                                          |             goto label_43;
                                                                     |         }
    0x0000bfd8 cmp.w r2, 0x6000                                      |         
                                                                     |         if (r2 == 0x6000) {
    0x0000bfdc beq.w 0xc19a                                          |             goto label_44;
                                                                     |         }
                                                                     | label_3:
    0x0000bfe0 ldr.w r2, [pc, 0x57c]                                 |         
    0x0000bfe4 mov r3, r5                                            |         r3 = r5;
    0x0000bfe6 ldr r0, [sp, 0x2c]                                    |         r0 = var_2ch;
    0x0000bfe8 movs r1, 0                                            |         r1 = 0;
    0x0000bfea add r6, sp, 0x3c                                      |         r6 += var_3ch;
    0x0000bfec add r2, pc                                            |         r2 = 0x18550;
    0x0000bfee blx 0x32cc                                            |         fcn_000032cc ();
                                                                     | label_4:
    0x0000bff2 ldr r1, [sp, 0x20]                                    |         r1 = var_20h;
    0x0000bff4 mov r3, r5                                            |         r3 = r5;
    0x0000bff6 mov r2, sb                                            |         r2 = sb;
    0x0000bff8 mov r0, fp                                            |         r0 = fp;
    0x0000bffa str r6, [sp]                                          |         *(sp) = r6;
    0x0000bffc blx 0x3110                                            |         r0 = fcn_00003110 ();
    0x0000c000 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0000c002 bne.w 0xc422                                          |             goto label_45;
                                                                     |         }
    0x0000c006 ldr r6, [sp, 0x3c]                                    |         r6 = var_3ch;
    0x0000c008 add.w r8, sp, 0xac                                    |         r8 += var_ach;
    0x0000c00c mov r2, r8                                            |         r2 = r8;
    0x0000c00e mov r0, fp                                            |         r0 = fp;
    0x0000c010 mov r1, r6                                            |         r1 = r6;
    0x0000c012 blx 0x2f58                                            |         r0 = ext2fs_read_inode ();
    0x0000c016 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0000c018 bne.w 0xc1d6                                          |             goto label_46;
                                                                     |         }
    0x0000c01a strh r5, [r3, 6]                                      |         *((r3 + 6)) = r5;
    0x0000c01c ldr r3, [sp, 0x58]                                    |         r3 = var_58h;
    0x0000c01e mov r2, r8                                            |         r2 = r8;
    0x0000c020 ldr r1, [sp, 0x50]                                    |         r1 = var_50h;
    0x0000c022 mov r0, fp                                            |         r0 = fp;
    0x0000c024 strh.w r3, [sp, 0xae]                                 |         var_aeh = r3;
    0x0000c028 lsrs r3, r3, 0x10                                     |         r3 >>= 0x10;
    0x0000c02a ubfx r1, r1, 0, 0xc                                   |         r1 = (r1 >> 0) & ((1 << 0xc) - 1);
    0x0000c02e strh.w r3, [sp, 0x124]                                |         var_124h = r3;
    0x0000c032 ldr r3, [sp, 0x5c]                                    |         r3 = var_5ch;
    0x0000c034 strh.w r3, [sp, 0xc4]                                 |         var_c4h = r3;
    0x0000c038 lsrs r3, r3, 0x10                                     |         r3 >>= 0x10;
    0x0000c03a strh.w r3, [sp, 0x126]                                |         var_126h = r3;
    0x0000c03e ldrh.w r3, [sp, 0xac]                                 |         r3 = var_ach;
    0x0000c042 bic r3, r3, 0xff0                                     |         r3 = BIT_MASK (r3, 0xff0);
    0x0000c044 str r7, [r7, 0x34]                                    |         *((r7 + 0x34)) = r7;
    0x0000c046 bic r3, r3, 0xf                                       |         r3 = BIT_MASK (r3, 0xf);
    0x0000c04a orrs r3, r1                                           |         r3 |= r1;
    0x0000c04c mov r1, r6                                            |         r1 = r6;
    0x0000c04e strh.w r3, [sp, 0xac]                                 |         var_ach = r3;
    0x0000c052 ldr r3, [sp, 0x88]                                    |         r3 = var_88h;
    0x0000c054 str r3, [sp, 0xb4]                                    |         var_b4h = r3;
    0x0000c056 ldr r3, [sp, 0x90]                                    |         r3 = var_90h;
    0x0000c058 str r3, [sp, 0xbc]                                    |         var_bch = r3;
    0x0000c05a ldr r3, [sp, 0x98]                                    |         r3 = var_98h;
    0x0000c05c str r3, [sp, 0xb8]                                    |         var_b8h = r3;
    0x0000c05e blx 0x36a8                                            |         r0 = ext2fs_file_llseek ();
    0x0000c062 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0000c064 bne.w 0xc218                                          |             goto label_47;
                                                                     |         }
    0x0000c068 ldr r1, [sp, 0x3c]                                    |         r1 = var_3ch;
    0x0000c06a mov r2, r5                                            |         r2 = r5;
    0x0000c06c mov r0, fp                                            |         r0 = fp;
    0x0000c06e bl 0xb180                                             |         r0 = fcn_0000b180 (r0, r1, r2);
    0x0000c072 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0000c074 bne.w 0xc436                                          |             goto label_48;
                                                                     |         }
    0x0000c078 ldr r3, [sp, 0x1c]                                    |         r3 = var_1ch;
                                                                     |         if (r3 != 0) {
    0x0000c07a cbz r3, 0xc0a2                                        |             
    0x0000c07c ldr r3, [sp, 0x1c]                                    |             r3 = var_1ch;
    0x0000c07e ldr r6, [r3, 4]                                       |             r6 = *((r3 + 4));
                                                                     |             if (r6 == 0) {
    0x0000c080 cbz r6, 0xc0a2                                        |                 goto label_49;
                                                                     |             }
    0x0000c082 ldr r3, [sp, 0x20]                                    |             r3 = var_20h;
    0x0000c084 mov r2, r5                                            |             r2 = r5;
    0x0000c086 mov r0, fp                                            |             r0 = fp;
    0x0000c088 str r3, [sp]                                          |             *(sp) = r3;
    0x0000c08a ldr r3, [sp, 0x50]                                    |             r3 = var_50h;
    0x0000c08c and r3, r3, 0xf000                                    |             r3 &= 0xf000;
    0x0000c090 str r3, [sp, 4]                                       |             var_4h = r3;
    0x0000c092 mov r3, sb                                            |             r3 = sb;
    0x0000c094 ldr.w r1, [sl]                                        |             r1 = *(sl);
    0x0000c098 blx r6                                                |             r0 = uint32_t (*r6)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x0000c09a mov r3, r0                                            |             r3 = r0;
    0x0000c09c cmp r0, 0                                             |             
                                                                     |             if (r0 != 0) {
    0x0000c09e bne.w 0xc41c                                          |                 goto label_39;
                                                                     |             }
                                                                     |         }
                                                                     | label_49:
    0x0000c0a2 ldr r3, [sp, 0x28]                                    |         r3 = var_28h;
                                                                     |         if (r3 != 0) {
    0x0000c0a4 cbz r3, 0xc0d6                                        |             
    0x0000c0a6 ldr r1, [sp, 0x24]                                    |             r1 = var_24h;
    0x0000c0a8 ldrd r3, r2, [r1]                                     |             __asm ("ldrd r3, r2, [r1]");
    0x0000c0ac ldr r0, [r1, 8]                                       |             r0 = *((r1 + 8));
    0x0000c0ae cmp r3, r2                                            |             
                                                                     |             if (r3 == r2) {
    0x0000c0b0 beq.w 0xc37a                                          |                 goto label_50;
                                                                     |             }
                                                                     | label_15:
    0x0000c0b4 add.w r2, r3, r3, lsl 1                               |             r2 = r3 + (r3 << 1);
    0x0000c0b8 ldr r1, [sp, 0x3c]                                    |             r1 = var_3ch;
    0x0000c0ba vldr d16, [sp, 0xa0]                                  |             __asm ("vldr d16, [sp, 0xa0]");
    0x0000c0be adds r3, 1                                            |             r3++;
    0x0000c0c0 add.w r2, r0, r2, lsl 3                               |             r2 = r0 + (r2 << 3);
    0x0000c0c4 str r1, [r2, 0x10]                                    |             *((r2 + 0x10)) = r1;
    0x0000c0c6 ldrd r0, r1, [sp, 0x40]                               |             __asm ("ldrd r0, r1, [var_40h]");
    0x0000c0ca vstr d16, [r2, 8]                                     |             __asm ("vstr d16, [r2, 8]");
    0x0000c0ce strd r0, r1, [r2]                                     |             __asm ("strd r0, r1, [r2]");
    0x0000c0d2 ldr r2, [sp, 0x24]                                    |             r2 = var_24h;
    0x0000c0d4 str r3, [r2]                                          |             *(r2) = r3;
                                                                     |         }
    0x0000c0d6 ldr.w r3, [sl]                                        |         r3 = *(sl);
    0x0000c0da movs r2, 0                                            |         r2 = 0;
    0x0000c0dc str.w r7, [sl, 4]                                     |         __asm ("str.w r7, [sl, 4]");
    0x0000c0e0 strb r2, [r3, r7]                                     |         *((r3 + r7)) = r2;
                                                                     |     }
    0x0000c0e2 ldr r3, [sp, 0x38]                                    |     r3 = var_38h;
    0x0000c0e4 adds r4, 1                                            |     r4++;
    0x0000c0e6 ldr r2, [sp, 0x14]                                    |     r2 = var_14h;
    0x0000c0e8 ldr r0, [r3, r2]                                      |     r0 = *((r3 + r2));
    0x0000c0ea blx 0x3098                                            |     fcn_00003098 ();
    0x0000c0ee ldr r3, [sp, 0x18]                                    |     r3 = var_18h;
    0x0000c0f0 cmp r3, r4                                            |     
                                                                     |     if (r3 != r4) {
    0x0000c0f2 bne.w 0xbdde                                          |         goto label_2;
                                                                     |     }
                                                                     | label_20:
    0x0000c0f6 movs r6, 0                                            |     r6 = 0;
                                                                     | label_8:
    0x0000c0f8 ldr r0, [sp, 0x38]                                    |     r0 = var_38h;
    0x0000c0fa blx 0x3098                                            |     fcn_00003098 ();
                                                                     | label_11:
    0x0000c0fe ldr.w r2, [pc, 0x464]                                 |     r2 = *(0x0000c564);
    0x0000c102 ldr.w r3, [pc, 0x434]                                 |     r3 = *(0xc53a);
    0x0000c106 add r2, pc                                            |     r2 += pc;
    0x0000c108 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0000c10a ldr r2, [r3]                                          |     r2 = *(0xc53a);
    0x0000c10c ldr r3, [sp, 0x12c]                                   |     r3 = var_12ch;
    0x0000c10e eors r2, r3                                           |     r2 ^= r3;
    0x0000c110 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0000c114 bne.w 0xc4da                                          |         goto label_51;
                                                                     |     }
    0x0000c116 strh r1, [r4, 0xe]                                    |     *((r4 + 0xe)) = r1;
    0x0000c118 mov r0, r6                                            |     r0 = r6;
    0x0000c11a add sp, 0x134                                         |     
    0x0000c11c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_43:
    0x0000c120 sub.w r2, r2, 0x1000                                  |     r2 -= 0x1000;
    0x0000c124 bic r2, r2, 0x1000                                    |     r2 = BIT_MASK (r2, 0x1000);
    0x0000c126 strh r0, [r0, r2]                                     |     *((r0 + r2)) = r0;
    0x0000c128 cmp r2, 0                                             |     
                                                                     |     if (r2 != 0) {
    0x0000c12a bne.w 0xbfe0                                          |         goto label_3;
                                                                     |     }
    0x0000c12e b 0xc19a                                              |     goto label_44;
                                                                     | label_41:
    0x0000c130 cmp.w r2, 0xa000                                      |     
                                                                     |     if (r2 == 0xa000) {
    0x0000c134 bne 0xc192                                            |         
    0x0000c136 ldr r2, [sp, 0x70]                                    |         r2 = var_70h;
    0x0000c138 add.w r8, r2, 1                                       |         r8 = r2 + 1;
    0x0000c13c mov r0, r8                                            |         r0 = r8;
    0x0000c13e blx 0x3450                                            |         r0 = strerror (r0);
    0x0000c142 mov r6, r0                                            |         r6 = r0;
    0x0000c144 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0000c146 beq.w 0xc520                                          |             goto label_52;
                                                                     |         }
    0x0000c14a mov r1, r0                                            |         r1 = r0;
    0x0000c14c mov r2, r8                                            |         r2 = r8;
    0x0000c14e mov r0, r5                                            |         r0 = r5;
    0x0000c150 blx 0x32fc                                            |         r0 = fcn_000032fc ();
    0x0000c154 adds r3, r0, 1                                        |         r3 = r0 + 1;
                                                                     |         if (r3 == r0) {
    0x0000c156 beq.w 0xc47a                                          |             goto label_53;
                                                                     |         }
    0x0000c15a ldrd r1, r2, [sp, 0x70]                               |         __asm ("ldrd r1, r2, [var_70h]");
    0x0000c15e asrs r3, r0, 0x1f                                     |         r3 = r0 >> 0x1f;
    0x0000c160 cmp r1, r0                                            |         
    0x0000c162 sbcs.w r3, r2, r3                                     |         __asm ("sbcs.w r3, r2, r3");
                                                                     |         if (r1 < r0) {
    0x0000c166 blt.w 0xc45e                                          |             goto label_54;
                                                                     |         }
    0x0000c16a movs r3, 0                                            |         r3 = 0;
    0x0000c16c mov r2, r5                                            |         r2 = r5;
    0x0000c16e strb r3, [r6, r0]                                     |         *((r6 + r0)) = r3;
    0x0000c170 mov r1, sb                                            |         r1 = sb;
    0x0000c172 ldr r3, [sp, 0x20]                                    |         r3 = var_20h;
    0x0000c174 mov r0, fp                                            |         r0 = fp;
    0x0000c176 str r3, [sp]                                          |         *(sp) = r3;
    0x0000c178 mov r3, r6                                            |         r3 = r6;
    0x0000c17a bl 0xb66c                                             |         fcn_0000b66c (r0, r1, r2, r3, r4);
    0x0000c17e str r0, [sp, 0x34]                                    |         var_34h = r0;
    0x0000c180 mov r0, r6                                            |         r0 = r6;
    0x0000c182 blx 0x3098                                            |         fcn_00003098 ();
    0x0000c186 ldr r3, [sp, 0x34]                                    |         r3 = var_34h;
    0x0000c188 cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0000c18a bne.w 0xc404                                          |             goto label_55;
                                                                     |         }
                                                                     | label_5:
    0x0000c18e add r6, sp, 0x3c                                      |         r6 += var_3ch;
    0x0000c190 b 0xbff2                                              |         goto label_4;
                                                                     |     }
    0x0000c192 cmp.w r2, 0xc000                                      |     
                                                                     |     if (r2 != 0xc000) {
    0x0000c196 bne.w 0xbfe0                                          |         goto label_3;
                                                                     |     }
                                                                     | label_44:
    0x0000c19a ldr r2, [sp, 0x60]                                    |     r2 = var_60h;
    0x0000c19c mov r1, sb                                            |     r1 = sb;
    0x0000c19e mov r0, fp                                            |     r0 = fp;
    0x0000c1a0 str r2, [sp]                                          |     *(sp) = r2;
    0x0000c1a2 mov r2, r5                                            |     r2 = r5;
    0x0000c1a4 bl 0xb460                                             |     r0 = fcn_0000b460 (r0, r1, r2, r3, r4, r5, r6);
    0x0000c1a8 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000c1aa beq 0xc18e                                            |         goto label_5;
                                                                     |     }
    0x0000c1ac mov r6, r0                                            |     r6 = r0;
    0x0000c1ae ldr r0, [pc, 0x3b8]                                   |     
    0x0000c1b0 ldr r2, [pc, 0x3b8]                                   |     
    0x0000c1b2 mov r3, r5                                            |     r3 = r5;
    0x0000c1b4 mov r1, r6                                            |     r1 = r6;
    0x0000c1b6 ldr r7, [sp, 0x18]                                    |     r7 = var_18h;
    0x0000c1b8 add r0, pc                                            |     r0 = 0x18726;
    0x0000c1ba adds r0, 0x4c                                         |     r0 += 0x4c;
    0x0000c1bc add r2, pc                                            |     r2 = 0x1872c;
    0x0000c1be blx 0x32cc                                            |     fcn_000032cc ();
    0x0000c1c2 b 0xc200                                              |     goto label_10;
                                                                     | label_36:
    0x0000c1c4 mov r0, r7                                            |     r0 = r7;
    0x0000c1c6 b 0xbf72                                              |     goto label_6;
                                                                     | label_27:
    0x0000c1c8 movs r3, 1                                            |     r3 = 1;
    0x0000c1ca mov r5, lr                                            |     r5 = lr;
    0x0000c1cc mov r4, ip                                            |     r4 = ip;
    0x0000c1ce str r3, [sp, 0x28]                                    |     var_28h = r3;
    0x0000c1d0 b 0xbf3a                                              |     goto label_7;
                                                                     | label_25:
    0x0000c1d2 str r0, [sp, 0x28]                                    |     var_28h = r0;
    0x0000c1d4 b 0xbf3a                                              |     goto label_7;
                                                                     | label_46:
    0x0000c1d6 mov sb, r6                                            |     sb = r6;
    0x0000c1d8 mov r6, r0                                            |     r6 = r0;
    0x0000c1da ldr r0, [pc, 0x394]                                   |     
    0x0000c1dc mov r3, sb                                            |     r3 = sb;
    0x0000c1de ldr r2, [pc, 0x394]                                   |     
    0x0000c1e0 mov r1, r6                                            |     r1 = r6;
    0x0000c1e2 ldr r7, [sp, 0x18]                                    |     r7 = var_18h;
    0x0000c1e4 add r0, pc                                            |     r0 = 0x1875a;
    0x0000c1e6 adds r0, 0x68                                         |     r0 += 0x68;
    0x0000c1e8 add r2, pc                                            |     r2 = 0x18762;
    0x0000c1ea blx 0x32cc                                            |     fcn_000032cc ();
                                                                     | label_9:
    0x0000c1ee ldr r0, [pc, 0x388]                                   |     
    0x0000c1f0 mov r3, r5                                            |     r3 = r5;
    0x0000c1f2 ldr r2, [pc, 0x388]                                   |     
    0x0000c1f4 mov r1, r6                                            |     r1 = r6;
    0x0000c1f6 add r0, pc                                            |     r0 = 0x18774;
    0x0000c1f8 adds r0, 0x4c                                         |     r0 += 0x4c;
    0x0000c1fa add r2, pc                                            |     r2 = 0x1877c;
    0x0000c1fc blx 0x32cc                                            |     fcn_000032cc ();
                                                                     | label_10:
    0x0000c200 cmp r7, r4                                            |     
                                                                     |     if (r7 <= r4) {
    0x0000c202 ble.w 0xc0f8                                          |         goto label_8;
                                                                     |     }
                                                                     |     do {
    0x0000c206 ldr r3, [sp, 0x38]                                    |         r3 = var_38h;
    0x0000c208 ldr.w r0, [r3, r4, lsl 2]                             |         offset_1 = r4 << 2;
                                                                     |         r0 = *((r3 + offset_1));
    0x0000c20c adds r4, 1                                            |         r4++;
    0x0000c20e blx 0x3098                                            |         fcn_00003098 ();
    0x0000c212 cmp r7, r4                                            |         
    0x0000c214 bne 0xc206                                            |         
                                                                     |     } while (r7 != r4);
    0x0000c216 b 0xc0f8                                              |     goto label_8;
                                                                     | label_47:
    0x0000c218 mov sb, r6                                            |     sb = r6;
    0x0000c21a mov r6, r0                                            |     r6 = r0;
    0x0000c21c ldr r0, [pc, 0x360]                                   |     
    0x0000c21e mov r3, sb                                            |     r3 = sb;
    0x0000c220 ldr r2, [pc, 0x360]                                   |     
    0x0000c222 mov r1, r6                                            |     r1 = r6;
    0x0000c224 ldr r7, [sp, 0x18]                                    |     r7 = var_18h;
    0x0000c226 add r0, pc                                            |     r0 = 0x187aa;
    0x0000c228 adds r0, 0x68                                         |     r0 += 0x68;
    0x0000c22a add r2, pc                                            |     r2 = 0x187b2;
    0x0000c22c blx 0x32cc                                            |     fcn_000032cc ();
    0x0000c230 b 0xc1ee                                              |     goto label_9;
                                                                     | label_40:
    0x0000c232 ldr r3, [sp, 0x20]                                    |     r3 = var_20h;
    0x0000c234 mov r2, r5                                            |     r2 = r5;
    0x0000c236 mov r1, sb                                            |     r1 = sb;
    0x0000c238 mov r0, fp                                            |     r0 = fp;
    0x0000c23a str r3, [sp]                                          |     *(sp) = r3;
    0x0000c23c mov r3, r5                                            |     r3 = r5;
    0x0000c23e bl 0xb860                                             |     r0 = fcn_0000b860 (r0, r1, r2, r3);
    0x0000c242 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000c244 beq 0xc18e                                            |         goto label_5;
                                                                     |     }
    0x0000c246 mov r6, r0                                            |     r6 = r0;
    0x0000c248 ldr r0, [pc, 0x33c]                                   |     
    0x0000c24a ldr r2, [pc, 0x340]                                   |     
    0x0000c24c mov r3, r5                                            |     r3 = r5;
    0x0000c24e mov r1, r6                                            |     r1 = r6;
    0x0000c250 ldr r7, [sp, 0x18]                                    |     r7 = var_18h;
    0x0000c252 add r0, pc                                            |     r0 = 0x187de;
    0x0000c254 adds r0, 0x4c                                         |     r0 += 0x4c;
    0x0000c256 add r2, pc                                            |     r2 = 0x187e8;
    0x0000c258 blx 0x32cc                                            |     fcn_000032cc ();
    0x0000c25c b 0xc200                                              |     goto label_10;
                                                                     | label_42:
    0x0000c25e cmp.w sb, 2                                           |     
                                                                     |     if (sb == 2) {
    0x0000c262 bne 0xc270                                            |         
    0x0000c264 ldr r1, [pc, 0x328]                                   |         
    0x0000c266 mov r0, r5                                            |         r0 = r5;
    0x0000c268 add r1, pc                                            |         r1 = 0x187fc;
    0x0000c26a blx 0x2f98                                            |         r0 = fcn_00002f98 ();
                                                                     |         if (r0 == 0) {
    0x0000c26e cbz r0, 0xc282                                        |             goto label_56;
                                                                     |         }
                                                                     |     }
    0x0000c270 ldr r3, [sp, 0x20]                                    |     r3 = var_20h;
    0x0000c272 mov r2, r5                                            |     r2 = r5;
    0x0000c274 mov r1, sb                                            |     r1 = sb;
    0x0000c276 mov r0, fp                                            |     r0 = fp;
    0x0000c278 bl 0xb764                                             |     r0 = fcn_0000b764 (r0, r1, r2, r3);
    0x0000c27c cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000c27e bne.w 0xc4ae                                          |         goto label_57;
                                                                     |     }
                                                                     | label_56:
    0x0000c282 add r6, sp, 0x3c                                      |     r6 += var_3ch;
    0x0000c284 mov r3, r5                                            |     r3 = r5;
    0x0000c286 ldr r1, [sp, 0x20]                                    |     r1 = var_20h;
    0x0000c288 mov r2, sb                                            |     r2 = sb;
    0x0000c28a mov r0, fp                                            |     r0 = fp;
    0x0000c28c str r6, [sp]                                          |     *(sp) = r6;
    0x0000c28e blx 0x3110                                            |     r0 = fcn_00003110 ();
    0x0000c292 mov r3, r0                                            |     r3 = r0;
    0x0000c294 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000c296 bne.w 0xc49e                                          |         goto label_58;
                                                                     |     }
    0x0000c298 strh r2, [r0, 8]                                      |     *((r0 + 8)) = r2;
    0x0000c29a ldr r3, [sp, 0x1c]                                    |     r3 = var_1ch;
    0x0000c29c mov r2, r5                                            |     r2 = r5;
    0x0000c29e ldr r1, [sp, 0x3c]                                    |     r1 = var_3ch;
    0x0000c2a0 mov r0, fp                                            |     r0 = fp;
    0x0000c2a2 strd sl, r3, [sp, 4]                                  |     __asm ("strd sl, r3, [var_4h]");
    0x0000c2a6 ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
    0x0000c2a8 str r3, [sp]                                          |     *(sp) = r3;
    0x0000c2aa ldr r3, [sp, 0x20]                                    |     r3 = var_20h;
    0x0000c2ac bl 0xbd54                                             |     r0 = fcn_0000bd54 (r0, r1, r2, r3, r4, r5);
    0x0000c2b0 mov r3, r0                                            |     r3 = r0;
    0x0000c2b2 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000c2b4 bne.w 0xc41c                                          |         goto label_39;
                                                                     |     }
    0x0000c2b8 ldr r0, [pc, 0x2d8]                                   |     
    0x0000c2ba add r0, pc                                            |     r0 = 0x18852;
    0x0000c2bc blx 0x329c                                            |     r0 = fcn_0000329c ();
    0x0000c2c0 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000c2c2 beq.w 0xbff2                                          |         goto label_4;
                                                                     |     }
    0x0000c2c6 blx 0x357c                                            |     r0 = sprintf_chk ()
    0x0000c2ca ldr r6, [r0]                                          |     r6 = *(r0);
    0x0000c2cc ldr r0, [pc, 0x2c8]                                   |     
    0x0000c2ce ldr r2, [pc, 0x2cc]                                   |     
    0x0000c2d0 mov r1, r6                                            |     r1 = r6;
    0x0000c2d2 ldr r7, [sp, 0x18]                                    |     r7 = var_18h;
    0x0000c2d4 add r0, pc                                            |     r0 = 0x18870;
    0x0000c2d6 add r2, pc                                            |     r2 = 0x18878;
    0x0000c2d8 adds r0, 0x4c                                         |     r0 += 0x4c;
    0x0000c2da blx 0x32cc                                            |     fcn_000032cc ();
    0x0000c2de b 0xc200                                              |     goto label_10;
                                                                     | label_18:
    0x0000c2e0 blx 0x357c                                            |     r0 = sprintf_chk ()
    0x0000c2e4 ldr r6, [r0]                                          |     r6 = *(r0);
    0x0000c2e6 mov r3, r4                                            |     r3 = r4;
    0x0000c2e8 ldr r0, [pc, 0x2b4]                                   |     
    0x0000c2ea ldr r2, [pc, 0x2b8]                                   |     
    0x0000c2ec mov r1, r6                                            |     r1 = r6;
    0x0000c2ee add r0, pc                                            |     r0 = 0x18892;
    0x0000c2f0 add r2, pc                                            |     r2 = 0x1889a;
    0x0000c2f2 adds r0, 0x4c                                         |     r0 += 0x4c;
    0x0000c2f4 blx 0x32cc                                            |     fcn_000032cc ();
    0x0000c2f8 b 0xc0fe                                              |     goto label_11;
                                                                     | label_14:
    0x0000c2fa ldr r0, [pc, 0x2ac]                                   |     
    0x0000c2fc mov r6, r3                                            |     r6 = r3;
    0x0000c2fe ldr r2, [pc, 0x2ac]                                   |     
    0x0000c300 mov r3, r5                                            |     r3 = r5;
    0x0000c302 mov r1, r6                                            |     r1 = r6;
    0x0000c304 ldr r7, [sp, 0x18]                                    |     r7 = var_18h;
    0x0000c306 add r0, pc                                            |     r0 = 0x188b4;
    0x0000c308 adds r0, 0x5c                                         |     r0 += 0x5c;
    0x0000c30a add r2, pc                                            |     r2 = 0x188bc;
    0x0000c30c blx 0x32cc                                            |     fcn_000032cc ();
    0x0000c310 b 0xbf1e                                              |     goto label_12;
                                                                     | label_35:
    0x0000c312 mov r1, sb                                            |     r1 = sb;
    0x0000c314 mov r0, fp                                            |     r0 = fp;
    0x0000c316 blx 0x3570                                            |     r0 = ext2fs_init_csum_seed ();
    0x0000c31a mov r3, r0                                            |     r3 = r0;
    0x0000c31c cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000c31e bne 0xc3ee                                            |         goto label_59;
                                                                     |     }
    0x0000c320 ldrh.w r2, [sp, 0xac]                                 |     r2 = var_ach;
    0x0000c324 and r2, r2, 0xf000                                    |     r2 &= 0xf000;
    0x0000c328 cmp.w r2, 0x8000                                      |     
    0x0000c32c it eq                                                 |     
                                                                     |     if (r2 != 0x8000) {
    0x0000c32e moveq r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     |     if (r2 != 0x8000) {
    0x0000c330 beq 0xc362                                            |         
    0x0000c332 cmp.w r2, 0x4000                                      |         
                                                                     |         if (r2 == 0x4000) {
    0x0000c336 beq.w 0xc4c6                                          |             goto label_60;
                                                                     |         }
    0x0000c33a cmp.w r2, 0x2000                                      |         
                                                                     |         if (r2 == 0x2000) {
    0x0000c33e beq.w 0xc4ca                                          |             goto label_61;
                                                                     |         }
    0x0000c342 cmp.w r2, 0x6000                                      |         
                                                                     |         if (r2 == 0x6000) {
    0x0000c346 beq.w 0xc4d2                                          |             goto label_62;
                                                                     |         }
    0x0000c34a cmp.w r2, 0xa000                                      |         
                                                                     |         if (r2 == 0xa000) {
    0x0000c34e beq.w 0xc4ce                                          |             goto label_63;
                                                                     |         }
    0x0000c352 cmp.w r2, 0x1000                                      |         
                                                                     |         if (r2 == 0x1000) {
    0x0000c356 beq.w 0xc4d6                                          |             goto label_64;
                                                                     |         }
    0x0000c35a cmp.w r2, 0xc000                                      |         
    0x0000c35e it eq                                                 |         
                                                                     |         if (r2 == 0xc000) {
    0x0000c360 moveq r3, 6                                           |             r3 = 6;
                                                                     |             goto label_17;
                                                                     |         }
                                                                     |     }
                                                                     | label_17:
    0x0000c362 str r3, [sp]                                          |     *(sp) = r3;
    0x0000c364 mov r2, r5                                            |     r2 = r5;
    0x0000c366 mov r3, r6                                            |     r3 = r6;
    0x0000c368 mov r1, sb                                            |     r1 = sb;
    0x0000c36a mov r0, fp                                            |     r0 = fp;
    0x0000c36c blx 0x387c                                            |     r0 = uuid_generate_time ();
    0x0000c370 mov r3, r0                                            |     r3 = r0;
    0x0000c372 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000c374 beq.w 0xbee8                                          |         goto label_13;
                                                                     |     }
    0x0000c378 b 0xc2fa                                              |     goto label_14;
                                                                     | label_50:
    0x0000c37a adds r3, 4                                            |     r3 += 4;
    0x0000c37c add.w r3, r3, r3, lsl 1                               |     r3 += (r3 << 1);
    0x0000c380 lsls r1, r3, 3                                        |     r1 = r3 << 3;
    0x0000c382 blx 0x3254                                            |     r0 = fcn_00003254 ();
    0x0000c386 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000c388 beq.w 0xc4de                                          |         
    0x0000c38c ldr r2, [sp, 0x24]                                    |         r2 = var_24h;
    0x0000c38e ldr r3, [r2, 4]                                       |         r3 = *((r2 + 4));
    0x0000c390 str r0, [r2, 8]                                       |         *((r2 + 8)) = r0;
    0x0000c392 adds r3, 4                                            |         r3 += 4;
    0x0000c394 str r3, [r2, 4]                                       |         *((r2 + 4)) = r3;
    0x0000c396 ldr r3, [r2]                                          |         r3 = *(r2);
    0x0000c398 b 0xc0b4                                              |         goto label_15;
                                                                     | label_29:
    0x0000c39a mov r8, r6                                            |         r8 = r6;
    0x0000c39c mov r6, r0                                            |         r6 = r0;
    0x0000c39e ldr r0, [pc, 0x210]                                   |         
    0x0000c3a0 mov r3, r8                                            |         r3 = r8;
    0x0000c3a2 ldr r2, [pc, 0x210]                                   |         
    0x0000c3a4 mov r1, r6                                            |         r1 = r6;
    0x0000c3a6 ldr r7, [sp, 0x18]                                    |         r7 = var_18h;
    0x0000c3a8 add r0, pc                                            |         r0 = 0x1895e;
    0x0000c3aa adds r0, 0x5c                                         |         r0 += 0x5c;
    0x0000c3ac add r2, pc                                            |         r2 = 0x18966;
    0x0000c3ae blx 0x32cc                                            |         fcn_000032cc ();
    0x0000c3b2 b 0xbf1e                                              |         goto label_12;
                                                                     | label_19:
    0x0000c3b4 blx 0x357c                                            |         r0 = sprintf_chk ()
    0x0000c3b8 ldr r6, [r0]                                          |         r6 = *(r0);
    0x0000c3ba mov r3, r4                                            |         r3 = r4;
    0x0000c3bc ldr r0, [pc, 0x1f8]                                   |         
    0x0000c3be ldr r2, [pc, 0x1fc]                                   |         
    0x0000c3c0 mov r1, r6                                            |         r1 = r6;
    0x0000c3c2 add r0, pc                                            |         r0 = 0x1897e;
    0x0000c3c4 add r2, pc                                            |         r2 = 0x18986;
    0x0000c3c6 adds r0, 0x4c                                         |         r0 += 0x4c;
    0x0000c3c8 blx 0x32cc                                            |         fcn_000032cc ();
    0x0000c3ca invalid                                               |         
                                                                     | label_23:
    0x0000c3ce blx 0x357c                                            |         r0 = sprintf_chk ()
    0x0000c3d2 ldr r6, [r0]                                          |         r6 = *(r0);
    0x0000c3d4 mov r3, r5                                            |         r3 = r5;
    0x0000c3d6 ldr r0, [pc, 0x1e8]                                   |         
    0x0000c3d8 ldr r2, [pc, 0x1e8]                                   |         
    0x0000c3da mov r1, r6                                            |         r1 = r6;
    0x0000c3dc ldr r7, [sp, 0x18]                                    |         r7 = var_18h;
    0x0000c3de add r0, pc                                            |         r0 = 0x189a4;
    0x0000c3e0 adds r0, 0x4c                                         |         r0 += 0x4c;
    0x0000c3e2 add r2, pc                                            |         r2 = 0x189aa;
    0x0000c3e4 blx 0x32cc                                            |         fcn_000032cc ();
    0x0000c3e8 b 0xc200                                              |         goto label_10;
                                                                     | label_30:
    0x0000c3ea movs r3, 2                                            |         r3 = 2;
    0x0000c3ec b 0xbeca                                              |         goto label_16;
                                                                     | label_59:
    0x0000c3ee mov r6, r0                                            |         r6 = r0;
    0x0000c3f0 ldr r0, [pc, 0x1d4]                                   |         
    0x0000c3f2 ldr r2, [pc, 0x1d8]                                   |         
    0x0000c3f4 mov r1, r3                                            |         r1 = r3;
    0x0000c3f6 ldr r7, [sp, 0x18]                                    |         r7 = var_18h;
    0x0000c3f8 add r0, pc                                            |         r0 = 0x189c4;
    0x0000c3fa adds r0, 0x5c                                         |         r0 += 0x5c;
    0x0000c3fc add r2, pc                                            |         r2 = 0x189ce;
    0x0000c3fe blx 0x32cc                                            |         fcn_000032cc ();
    0x0000c402 b 0xbf1e                                              |         goto label_12;
                                                                     | label_55:
    0x0000c404 ldr r0, [pc, 0x1c8]                                   |         
    0x0000c406 mov r6, r3                                            |         r6 = r3;
    0x0000c408 ldr r2, [pc, 0x1c8]                                   |         
    0x0000c40a mov r3, r5                                            |         r3 = r5;
    0x0000c40c mov r1, r6                                            |         r1 = r6;
    0x0000c40e ldr r7, [sp, 0x18]                                    |         r7 = var_18h;
    0x0000c410 add r0, pc                                            |         r0 = 0x189e4;
    0x0000c412 adds r0, 0x4c                                         |         r0 += 0x4c;
    0x0000c414 add r2, pc                                            |         r2 = 0x189ec;
    0x0000c416 blx 0x32cc                                            |         fcn_000032cc ();
    0x0000c41a b 0xc200                                              |         goto label_10;
                                                                     | label_39:
    0x0000c41c ldr r7, [sp, 0x18]                                    |         r7 = var_18h;
    0x0000c41e mov r6, r3                                            |         r6 = r3;
    0x0000c420 b 0xc200                                              |         goto label_10;
                                                                     | label_45:
    0x0000c422 ldr r2, [pc, 0x1b4]                                   |         
    0x0000c424 mov r6, r0                                            |         r6 = r0;
    0x0000c426 mov r3, r5                                            |         r3 = r5;
    0x0000c428 mov r0, r5                                            |         r0 = r5;
    0x0000c42a mov r1, r6                                            |         r1 = r6;
    0x0000c42c ldr r7, [sp, 0x18]                                    |         r7 = var_18h;
    0x0000c42e add r2, pc                                            |         r2 = 0x18a0c;
    0x0000c430 blx 0x32cc                                            |         fcn_000032cc ();
    0x0000c434 b 0xc200                                              |         goto label_10;
                                                                     | label_48:
    0x0000c436 mov r6, r0                                            |         r6 = r0;
    0x0000c438 ldr r0, [pc, 0x1a0]                                   |         
    0x0000c43a ldr r2, [pc, 0x1a4]                                   |         
    0x0000c43c mov r3, r5                                            |         r3 = r5;
    0x0000c43e mov r1, r6                                            |         r1 = r6;
    0x0000c440 ldr r7, [sp, 0x18]                                    |         r7 = var_18h;
    0x0000c442 add r0, pc                                            |         r0 = 0x18a22;
    0x0000c444 adds r0, 0x4c                                         |         r0 += 0x4c;
    0x0000c446 add r2, pc                                            |         r2 = 0x18a2c;
    0x0000c448 blx 0x32cc                                            |         fcn_000032cc ();
    0x0000c44c b 0xc200                                              |         goto label_10;
                                                                     | label_31:
    0x0000c44e movs r3, 3                                            |         r3 = 3;
    0x0000c450 b 0xbeca                                              |         goto label_16;
                                                                     | label_32:
    0x0000c452 movs r3, 4                                            |         r3 = 4;
    0x0000c454 b 0xbeca                                              |         goto label_16;
                                                                     | label_33:
    0x0000c456 movs r3, 7                                            |         r3 = 7;
    0x0000c458 b 0xbeca                                              |         goto label_16;
                                                                     | label_34:
    0x0000c45a movs r3, 5                                            |         r3 = 5;
    0x0000c45c b 0xbeca                                              |         goto label_16;
                                                                     | label_54:
    0x0000c45e ldr r0, [pc, 0x184]                                   |         
    0x0000c460 movs r1, 0                                            |         r1 = 0;
    0x0000c462 ldr r2, [pc, 0x184]                                   |         
    0x0000c464 ldr r7, [sp, 0x18]                                    |         r7 = var_18h;
    0x0000c466 add r0, pc                                            |         r0 = 0x18a50;
    0x0000c468 add r2, pc                                            |         r2 = 0x18a56;
    0x0000c46a adds r0, 0x4c                                         |         r0 += 0x4c;
    0x0000c46c blx 0x32cc                                            |         fcn_000032cc ();
    0x0000c470 mov r0, r6                                            |         r0 = r6;
    0x0000c472 movs r6, 0                                            |         r6 = 0;
    0x0000c474 blx 0x3098                                            |         fcn_00003098 ();
    0x0000c478 b 0xc200                                              |         goto label_10;
                                                                     | label_53:
    0x0000c47a blx 0x357c                                            |         sprintf_chk ()
    0x0000c47e mov sb, r6                                            |         sb = r6;
    0x0000c480 ldr r6, [r0]                                          |         r6 = *(r0);
    0x0000c482 ldr r0, [pc, 0x168]                                   |         
    0x0000c484 mov r3, r5                                            |         r3 = r5;
    0x0000c486 ldr r2, [pc, 0x168]                                   |         
    0x0000c488 mov r1, r6                                            |         r1 = r6;
    0x0000c48a ldr r7, [sp, 0x18]                                    |         r7 = var_18h;
    0x0000c48c add r0, pc                                            |         r0 = 0x18a7e;
    0x0000c48e adds r0, 0x4c                                         |         r0 += 0x4c;
    0x0000c490 add r2, pc                                            |         r2 = 0x18a86;
    0x0000c492 blx 0x32cc                                            |         fcn_000032cc ();
    0x0000c496 mov r0, sb                                            |         r0 = sb;
    0x0000c498 blx 0x3098                                            |         fcn_00003098 ();
    0x0000c49a ldcl p6, c14, [lr, 0x2c0]!                            |         __asm ("ldcl p6, c14, [lr, 0x2c0]!");
                                                                     | label_58:
    0x0000c49e mov r6, r0                                            |         r6 = r0;
    0x0000c4a0 movs r2, 0                                            |         r2 = 0;
    0x0000c4a2 mov r0, r5                                            |         r0 = r5;
    0x0000c4a4 mov r1, r3                                            |         r1 = r3;
    0x0000c4a6 ldr r7, [sp, 0x18]                                    |         r7 = var_18h;
    0x0000c4a8 blx 0x32cc                                            |         fcn_000032cc ();
    0x0000c4ac b 0xc200                                              |         goto label_10;
                                                                     | label_57:
    0x0000c4ae mov r6, r0                                            |         r6 = r0;
    0x0000c4b0 ldr r0, [pc, 0x140]                                   |         
    0x0000c4b2 ldr r2, [pc, 0x144]                                   |         
    0x0000c4b4 mov r3, r5                                            |         r3 = r5;
    0x0000c4b6 mov r1, r6                                            |         r1 = r6;
    0x0000c4b8 ldr r7, [sp, 0x18]                                    |         r7 = var_18h;
    0x0000c4ba add r0, pc                                            |         r0 = 0x18ab2;
    0x0000c4bc adds r0, 0x4c                                         |         r0 += 0x4c;
    0x0000c4be add r2, pc                                            |         r2 = 0x18abc;
    0x0000c4c0 blx 0x32cc                                            |         fcn_000032cc ();
    0x0000c4c4 b 0xc200                                              |         goto label_10;
                                                                     | label_60:
    0x0000c4c6 movs r3, 2                                            |         r3 = 2;
    0x0000c4c8 b 0xc362                                              |         goto label_17;
                                                                     | label_61:
    0x0000c4ca movs r3, 3                                            |         r3 = 3;
    0x0000c4cc b 0xc362                                              |         goto label_17;
                                                                     | label_63:
    0x0000c4ce movs r3, 7                                            |         r3 = 7;
    0x0000c4d0 b 0xc362                                              |         goto label_17;
                                                                     | label_62:
    0x0000c4d2 movs r3, 4                                            |         r3 = 4;
    0x0000c4d4 b 0xc362                                              |         goto label_17;
                                                                     | label_64:
    0x0000c4d6 movs r3, 5                                            |         r3 = 5;
    0x0000c4d8 b 0xc362                                              |         goto label_17;
                                                                     | label_51:
    0x0000c4da blx 0x31f4                                            |         fcn_000031f4 ();
                                                                     |     }
    0x0000c4de ldr r2, [pc, 0x11c]                                   |     
    0x0000c4e0 movw r1, 0xb746                                       |     
    0x0000c4e4 movt r1, 0x7f2b                                       |     r1 = 0x7f2bb746;
    0x0000c4e8 mov r0, r5                                            |     r0 = r5;
    0x0000c4ea movw r6, 0xb746                                       |     
    0x0000c4ee ldr r7, [sp, 0x18]                                    |     r7 = var_18h;
    0x0000c4f0 add r2, pc                                            |     r2 = 0x18af2;
    0x0000c4f2 movt r6, 0x7f2b                                       |     r6 = 0x7f2bb746;
    0x0000c4f6 blx 0x32cc                                            |     fcn_000032cc ();
    0x0000c4fa b 0xc200                                              |     goto label_10;
                                                                     | label_37:
    0x0000c4fc ldr r0, [pc, 0x100]                                   |     
    0x0000c4fe movw r1, 0xb746                                       |     
    0x0000c502 ldr r2, [pc, 0x100]                                   |     
    0x0000c504 mov r3, r5                                            |     r3 = r5;
    0x0000c506 movt r1, 0x7f2b                                       |     r1 = 0x7f2bb746;
    0x0000c50a movw r6, 0xb746                                       |     
    0x0000c50e add r0, pc                                            |     r0 = 0x18b12;
    0x0000c510 ldr r7, [sp, 0x18]                                    |     r7 = var_18h;
    0x0000c512 add r2, pc                                            |     r2 = 0x18b1c;
    0x0000c514 adds r0, 0x4c                                         |     r0 += 0x4c;
    0x0000c516 movt r6, 0x7f2b                                       |     r6 = 0x7f2bb746;
    0x0000c51a blx 0x32cc                                            |     fcn_000032cc ();
    0x0000c51e b 0xc200                                              |     goto label_10;
                                                                     | label_52:
    0x0000c520 ldr r0, [pc, 0xe4]                                    |     
    0x0000c522 mov r1, r6                                            |     r1 = r6;
    0x0000c524 ldr r2, [pc, 0xe4]                                    |     
    0x0000c526 ldr r7, [sp, 0x18]                                    |     r7 = var_18h;
    0x0000c528 add r0, pc                                            |     r0 = 0x18b34;
    0x0000c52a add r2, pc                                            |     r2 = 0x18b3a;
    0x0000c52c adds r0, 0x4c                                         |     r0 += 0x4c;
    0x0000c52e blx 0x32cc                                            |     fcn_000032cc ();
    0x0000c532 b 0xc200                                              |     goto label_10;
                                                                     | }
    ; 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 @ 0xc610 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0000c610 ()                                  | void fcn_0000c610 (int16_t arg_50h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_1ch;
                                                             |     int16_t var_20h;
                                                             |     int32_t var_20h_2;
                                                             |     int16_t var_28h;
                                                             |     int16_t var_2ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x0000c610 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x0000c614 mov r5, r0                                    |     r5 = r0;
    0x0000c616 ldr r4, [pc, 0xd4]                            |     
    0x0000c618 mov r7, r3                                    |     r7 = r3;
    0x0000c61a mov r8, r1                                    |     r8 = r1;
    0x0000c61c sub sp, 0x34                                  |     
    0x0000c61e ldr r0, [pc, 0xd0]                            |     r0 = *(0xc6f2);
    0x0000c620 ldr r3, [r5, 8]                               |     r3 = *((r5 + 8));
    0x0000c622 add r4, pc                                    |     r4 = 0x18d14;
    0x0000c624 ldr.w sb, [sp, 0x50]                          |     sb = *(arg_50h);
    0x0000c628 ldr r0, [r4, r0]                              |     
    0x0000c62a ands r1, r3, 1                                |     r1 = r3 & 1;
    0x0000c62e ldr r0, [r0]                                  |     r0 = *(0x18d14);
    0x0000c630 str r0, [sp, 0x2c]                            |     var_2ch = r0;
    0x0000c632 mov.w r0, 0                                   |     r0 = 0;
                                                             |     if (r1 == r3) {
    0x0000c636 beq 0xc6be                                    |         goto label_0;
                                                             |     }
    0x0000c638 movs r3, 4                                    |     r3 = 4;
    0x0000c63a movs r4, 0                                    |     r4 = 0;
    0x0000c63c movs r0, 0x60                                 |     r0 = 0x60;
    0x0000c63e mov r6, r2                                    |     r6 = r2;
    0x0000c640 strd r4, r3, [sp, 0x20]                       |     __asm ("strd r4, r3, [var_20h]");
    0x0000c644 blx 0x3450                                    |     strerror (r0);
    0x0000c648 str r0, [sp, 0x28]                            |     var_28h = r0;
    0x0000c64a cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000c64c beq 0xc6d4                                    |         goto label_1;
                                                             |     }
    0x0000c64e movs r0, 0xff                                 |     r0 = 0xff;
    0x0000c650 movs r1, 1                                    |     r1 = 1;
    0x0000c652 str r4, [sp, 0x18]                            |     var_18h = r4;
    0x0000c654 str r0, [sp, 0x1c]                            |     var_1ch = r0;
    0x0000c656 blx 0x2f10                                    |     calloc (r0, r1);
    0x0000c65a mov r2, r6                                    |     r2 = r6;
    0x0000c65c str r0, [sp, 0x14]                            |     var_14h = r0;
    0x0000c65e mov r1, r7                                    |     r1 = r7;
    0x0000c660 mov r0, r5                                    |     r0 = r5;
    0x0000c662 bl 0xb180                                     |     r0 = fcn_0000b180 (r0, r1, r2);
    0x0000c666 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r0 != 0) {
    0x0000c668 cbnz r0, 0xc6ac                               |         goto label_2;
                                                             |     }
    0x0000c66a add r4, sp, 0x14                              |     r4 += var_14h;
    0x0000c66c mov r3, r7                                    |     r3 = r7;
    0x0000c66e str r4, [sp, 4]                               |     var_4h = r4;
    0x0000c670 add r4, sp, 0x20                              |     r4 += var_20h;
    0x0000c672 str r4, [sp]                                  |     *(sp) = r4;
    0x0000c674 mov r2, r6                                    |     r2 = r6;
    0x0000c676 mov r1, r8                                    |     r1 = r8;
    0x0000c678 mov r0, r5                                    |     r0 = r5;
    0x0000c67a str.w sb, [sp, 8]                             |     __asm ("str.w sb, [var_8h]");
    0x0000c67e bl 0xbd54                                     |     r0 = fcn_0000bd54 (r0, r1, r2, r3, r4, r5);
    0x0000c682 mov r4, r0                                    |     r4 = r0;
    0x0000c684 ldr r0, [sp, 0x14]                            |     r0 = var_14h;
    0x0000c686 blx 0x3098                                    |     fcn_00003098 ();
    0x0000c68a ldr r0, [sp, 0x28]                            |     r0 = var_28h;
    0x0000c68c blx 0x3098                                    |     fcn_00003098 ();
                                                             |     do {
    0x0000c690 ldr r2, [pc, 0x60]                            |         
    0x0000c692 ldr r3, [pc, 0x5c]                            |         r3 = *(0xc6f2);
    0x0000c694 add r2, pc                                    |         r2 = 0x18d8c;
    0x0000c696 ldr r3, [r2, r3]                              |         r3 = *(0x18d8c);
    0x0000c698 ldr r2, [r3]                                  |         r2 = *(0x18d8c);
    0x0000c69a ldr r3, [sp, 0x2c]                            |         r3 = var_2ch;
    0x0000c69c eors r2, r3                                   |         r2 ^= r3;
    0x0000c69e mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0000c6a2 bne 0xc6d0                                    |             goto label_3;
                                                             |         }
    0x0000c6a4 mov r0, r4                                    |         r0 = r4;
    0x0000c6a6 add sp, 0x34                                  |         
    0x0000c6a8 pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
                                                             | label_2:
    0x0000c6ac ldr r0, [pc, 0x48]                            |         
    0x0000c6ae mov r1, r4                                    |         r1 = r4;
    0x0000c6b0 ldr r2, [pc, 0x48]                            |         
    0x0000c6b2 add r0, pc                                    |         r0 = 0x18dae;
    0x0000c6b4 add r2, pc                                    |         r2 = 0x18db4;
    0x0000c6b6 adds r0, 0x78                                 |         r0 += 0x78;
    0x0000c6b8 blx 0x32cc                                    |         fcn_000032cc ();
    0x0000c6ba cdp p7, 0, c14, c8, c2, 7                     |         __asm ("cdp p7, 0, c14, c8, c2, 7");
                                                             | label_0:
    0x0000c6be ldr r0, [pc, 0x40]                            |         
    0x0000c6c0 movs r4, 0x1e                                 |         r4 = 0x1e;
    0x0000c6c2 ldr r2, [pc, 0x40]                            |         
    0x0000c6c4 add r0, pc                                    |         r0 = 0x18dca;
    0x0000c6c6 add r2, pc                                    |         r2 = 0x18dd0;
    0x0000c6c8 adds r0, 0x78                                 |         r0 += 0x78;
    0x0000c6ca blx 0x32cc                                    |         fcn_000032cc ();
    0x0000c6ce b 0xc690                                      |         
                                                             |     } while (1);
                                                             | label_3:
    0x0000c6d0 blx 0x31f4                                    |     fcn_000031f4 ();
                                                             | label_1:
    0x0000c6d4 blx 0x357c                                    |     r0 = sprintf_chk ()
    0x0000c6d8 ldr r4, [r0]                                  |     r4 = *(r0);
    0x0000c6da ldr r0, [pc, 0x2c]                            |     
    0x0000c6dc ldr r2, [pc, 0x2c]                            |     
    0x0000c6de mov r1, r4                                    |     r1 = r4;
    0x0000c6e0 add r0, pc                                    |     r0 = 0x18dee;
    0x0000c6e2 add r2, pc                                    |     r2 = 0x18df2;
    0x0000c6e4 adds r0, 0x78                                 |     r0 += 0x78;
    0x0000c6e6 blx 0x32cc                                    |     fcn_000032cc ();
    0x0000c6e8 ldcl p7, c14, [r2, 0x344]!                    |     __asm ("ldcl p7, c14, [r2, 0x344]!");
                                                             | }
    ; 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 @ 0xccb8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0000ccb8 ()                                      | void fcn_0000ccb8 (uint32_t arg1) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
    0x0000ccb8 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x0000ccbc sub sp, 0x1c                                      |     
    0x0000ccbe ldr.w sl, [pc, 0xa4]                              |     sl = *(0x0000cd64);
    0x0000ccc2 add sl, pc                                        |     sl += pc;
    0x0000ccc4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000ccc6 beq 0xcd5e                                        |         goto label_1;
                                                                 |     }
    0x0000ccc8 ldr.w sb, [pc, 0x9c]                              |     
    0x0000cccc mov r7, r0                                        |     r7 = r0;
    0x0000ccce ldr r6, [r0]                                      |     r6 = *(r0);
    0x0000ccd0 ldr.w fp, [pc, 0x98]                              |     
    0x0000ccd4 add sb, pc                                        |     sb = 0x19a40;
    0x0000ccd6 adds r4, r6, 4                                    |     r4 = r6 + 4;
    0x0000ccd8 add.w r5, r6, 0xc                                 |     r5 = r6 + 0xc;
    0x0000ccdc add.w sb, sb, 8                                   |     sb += 8;
    0x0000cce0 add fp, pc                                        |     fp = 0x19a50;
    0x0000cce2 add.w r8, r6, 0x10                                |     r8 = r6 + 0x10;
                                                                 |     do {
    0x0000cce6 ldr r3, [r4]                                      |         r3 = *(r4);
    0x0000cce8 movs r2, 0                                        |         r2 = 0;
    0x0000ccea str r2, [r4], 4                                   |         *(r4) = r2;
                                                                 |         r4 += 4;
    0x0000ccee mov r0, r3                                        |         r0 = r3;
    0x0000ccf0 str r3, [sp, 0x14]                                |         var_14h = r3;
                                                                 |         if (r3 != 0) {
    0x0000ccf2 cbz r3, 0xcd00                                    |             
    0x0000ccf4 bl 0x1125c                                        |             fcn_0001125c (r0);
    0x0000ccf8 ldr r3, [sp, 0x14]                                |             r3 = var_14h;
    0x0000ccfa mov r0, r3                                        |             r0 = r3;
    0x0000ccfc blx 0x3098                                        |             fcn_00003098 ();
                                                                 |         }
    0x0000cd00 ldr r1, [r5, 4]!                                  |         r1 = *((r5 += 4));
    0x0000cd04 mov r0, r6                                        |         r0 = r6;
                                                                 |         if (r1 != 0) {
    0x0000cd06 cbz r1, 0xcd0e                                    |             
    0x0000cd08 bl 0xf4e0                                         |             r0 = fcn_0000f4e0 (r0, r1);
                                                                 |             if (r0 != 0) {
    0x0000cd0c cbnz r0, 0xcd22                                   |                 goto label_2;
                                                                 |             }
                                                                 |         }
                                                                 | label_0:
    0x0000cd0e cmp r4, r8                                        |         
    0x0000cd10 bne 0xcce6                                        |         
                                                                 |     } while (r4 != r8);
    0x0000cd12 movs r3, 0                                        |     r3 = 0;
    0x0000cd14 mov r0, r6                                        |     r0 = r6;
    0x0000cd16 str r3, [r7]                                      |     *(r7) = r3;
    0x0000cd18 add sp, 0x1c                                      |     
    0x0000cd1a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x0000cd1e b.w 0x3094                                        |     void (*0x3094)() ();
                                                                 | label_2:
    0x0000cd22 ldr r3, [pc, 0x4c]                                |     
    0x0000cd24 ldr.w r3, [sl, r3]                                |     r3 = *((sl + r3));
    0x0000cd28 ldr r3, [r3]                                      |     r3 = *(0xcd72);
    0x0000cd2a str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0000cd2c blx 0x357c                                        |     r0 = sprintf_chk ()
    0x0000cd30 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0000cd32 blx 0x3468                                        |     ext2fs_add_journal_inode3 ();
    0x0000cd36 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000cd38 movs r1, 1                                        |     r1 = 1;
    0x0000cd3a ldr r2, [pc, 0x38]                                |     
    0x0000cd3c str r0, [sp, 8]                                   |     var_8h = r0;
    0x0000cd3e mov r0, r3                                        |     r0 = r3;
    0x0000cd40 movw r3, 0x161                                    |     r3 = 0x161;
    0x0000cd44 add r2, pc                                        |     r2 = 0x19abe;
    0x0000cd46 str r3, [sp]                                      |     *(sp) = r3;
    0x0000cd48 str.w sb, [sp, 4]                                 |     __asm ("str.w sb, [var_4h]");
    0x0000cd4c mov r3, fp                                        |     r3 = fp;
    0x0000cd4e blx 0x3684                                        |     ext2fs_write_inode ();
    0x0000cd50 ldc p8, c6, [sl], {0x28}                          |     __asm ("ldc p8, c6, [sl], {0x28}");
    0x0000cd54 blx 0x3098                                        |     fcn_00003098 ();
    0x0000cd58 movs r3, 0                                        |     r3 = 0;
    0x0000cd5a str r3, [r5]                                      |     *(r5) = r3;
    0x0000cd5c b 0xcd0e                                          |     goto label_0;
                                                                 | label_1:
    0x0000cd5e add sp, 0x1c                                      |     
    0x0000cd60 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | }
    ; 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                                   |     
                                                             | }
    ; 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 @ 0xdd14 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0000dd14 ()                              | void fcn_0000dd14 (int16_t arg_814h, int16_t arg1) {
                                                         |     int16_t var_ch_2;
                                                         |     int16_t var_14h;
                                                         |     r0 = arg1;
    0x0000dd14 mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, 0xb4000");
    0x0000dd18 mov sb, r0                                |     sb = r0;
    0x0000dd1a ldr r0, [pc, 0xdc]                        |     
    0x0000dd1c subw sp, sp, 0x81c                        |     __asm ("subw sp, sp, 0x81c");
    0x0000dd20 movs r1, 0                                |     r1 = 0;
    0x0000dd22 mov r6, sp                                |     r6 = sp;
    0x0000dd24 ldr r3, [pc, 0xd4]                        |     r3 = *(0xddfc);
    0x0000dd26 add r2, sp, 0xc                           |     r2 += var_ch_2;
    0x0000dd28 add r0, pc                                |     r0 = 0x1bb26;
    0x0000dd2a ldr r3, [r0, r3]                          |     
    0x0000dd2c ldr r0, [pc, 0xd0]                        |     
    0x0000dd2e ldr r3, [r3]                              |     r3 = *(0x1bb26);
    0x0000dd30 str.w r3, [sp, 0x814]                     |     __asm ("str.w r3, [arg_814h]");
    0x0000dd34 mov.w r3, 0                               |     r3 = 0;
    0x0000dd38 strd r1, r1, [r6]                         |     __asm ("strd r1, r1, [r6]");
    0x0000dd3c add r0, pc                                |     r0 = 0x1bb40;
    0x0000dd3e strd r1, r1, [r6, 8]                      |     __asm ("strd r1, r1, [r6, 8]");
    0x0000dd42 str r1, [r6, 0x10]                        |     *((r6 + 0x10)) = r1;
    0x0000dd44 bl 0xd7cc                                 |     r0 = fcn_0000d7cc (r0, r1, r2);
    0x0000dd48 mov r8, r0                                |     r8 = r0;
                                                         |     if (r0 != 0) {
    0x0000dd4a cbz r0, 0xdd6c                            |         
                                                         | label_0:
    0x0000dd4c ldr r2, [pc, 0xb4]                        |         
    0x0000dd4e ldr r3, [pc, 0xac]                        |         r3 = *(0xddfe);
    0x0000dd50 add r2, pc                                |         r2 = 0x1bb58;
    0x0000dd52 ldr r3, [r2, r3]                          |         r3 = *(0x1bb58);
    0x0000dd54 ldr r2, [r3]                              |         r2 = *(0x1bb58);
    0x0000dd56 ldr.w r3, [sp, 0x814]                     |         r3 = *(arg_814h);
    0x0000dd5a eors r2, r3                               |         r2 ^= r3;
    0x0000dd5c mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0000dd60 bne 0xdde2                                |             goto label_1;
                                                         |         }
    0x0000dd62 mov r0, r8                                |         r0 = r8;
    0x0000dd64 addw sp, sp, 0x81c                        |         __asm ("addw sp, sp, 0x81c");
    0x0000dd68 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         |     }
    0x0000dd6c blx 0x357c                                |     sprintf_chk ()
    0x0000dd70 ldr r1, [pc, 0x94]                        |     
    0x0000dd72 mov r4, r0                                |     r4 = r0;
    0x0000dd74 str.w r8, [r0]                            |     __asm ("str.w r8, [r0]");
    0x0000dd78 ldr.w r0, [sb, 4]                         |     r0 = *((sb + 4));
    0x0000dd7c add r1, pc                                |     r1 = 0x1bb88;
    0x0000dd7e blx 0x3004                                |     r0 = fcn_00003004 ();
    0x0000dd82 mov r5, r0                                |     r5 = r0;
                                                         |     if (r0 == 0) {
    0x0000dd84 cbz r0, 0xdde6                            |         goto label_2;
                                                         |     }
    0x0000dd86 ldr.w r3, [sb, 0x10]                      |     r3 = *((sb + 0x10));
    0x0000dd8a add r7, sp, 0x14                          |     r7 += var_14h;
    0x0000dd8c adds r3, 1                                |     r3++;
    0x0000dd8e str.w r3, [sb, 0x10]                      |     __asm ("str.w r3, [sb, 0x10]");
    0x0000dd92 b 0xddae                                  |     
                                                         |     while (r0 == 0) {
    0x0000dd94 mov r2, r5                                |         r2 = r5;
    0x0000dd96 mov.w r1, 0x800                           |         r1 = 0x800;
    0x0000dd9a mov r0, r7                                |         r0 = r7;
    0x0000dd9c blx 0x30bc                                |         r0 = fcn_000030bc ();
                                                         |         if (r0 == 0) {
    0x0000dda0 cbz r0, 0xddb8                            |             goto label_3;
                                                         |         }
    0x0000dda2 mov r1, r6                                |         r1 = r6;
    0x0000dda4 mov r0, r7                                |         r0 = r7;
    0x0000dda6 bl 0xd914                                 |         r0 = fcn_0000d914 (r0, r1);
    0x0000ddaa mov r4, r0                                |         r4 = r0;
                                                         |         if (r0 != 0) {
    0x0000ddac cbnz r0, 0xddc6                           |             goto label_4;
                                                         |         }
    0x0000ddae mov r0, r5                                |         r0 = r5;
    0x0000ddb0 blx 0x34c8                                |         r0 = ext2fs_update_bb_inode ();
    0x0000ddb4 cmp r0, 0                                 |         
    0x0000ddb6 beq 0xdd94                                |         
                                                         |     }
                                                         | label_3:
    0x0000ddb8 ldr r3, [r6, 0xc]                         |     r3 = *((r6 + 0xc));
    0x0000ddba mov r0, r5                                |     r0 = r5;
    0x0000ddbc str.w r3, [sb, 0x14]                      |     __asm ("str.w r3, [sb, 0x14]");
    0x0000ddc0 blx 0x369c                                |     ext2fs_unmark_generic_bmap ();
    0x0000ddc4 b 0xdd4c                                  |     goto label_0;
                                                         | label_4:
    0x0000ddc6 ldr r3, [pc, 0x44]                        |     
    0x0000ddc8 add r3, pc                                |     
    0x0000ddca ldr r3, [r3]                              |     r3 = *(0x1bbda);
                                                         |     if (r3 != 0) {
    0x0000ddcc cbz r3, 0xddd8                            |         
    0x0000ddce ldr r2, [r6, 8]                           |         r2 = *((r6 + 8));
    0x0000ddd0 mov r1, r4                                |         r1 = r4;
    0x0000ddd2 ldr.w r0, [sb, 4]                         |         r0 = *((sb + 4));
    0x0000ddd6 blx r3                                    |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
                                                         |     }
    0x0000ddd8 mov r0, r5                                |     r0 = r5;
    0x0000ddda mov r8, r4                                |     r8 = r4;
    0x0000dddc blx 0x369c                                |     ext2fs_unmark_generic_bmap ();
    0x0000dde0 b 0xdd4c                                  |     goto label_0;
                                                         | label_1:
    0x0000dde2 blx 0x31f4                                |     fcn_000031f4 ();
                                                         | label_2:
    0x0000dde6 ldr.w r8, [r4]                            |     r8 = *(r4);
    0x0000ddea cmp.w r8, 0                               |     
    0x0000ddee it eq                                     |     
                                                         |     if (r8 != 0) {
    0x0000ddf0 moveq r8, 2                               |         r8 = 2;
                                                         |     }
    0x0000ddf4 b 0xdd4c                                  |     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 @ 0xde10 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0000de10 ()                                  | void fcn_0000de10 (int16_t arg1, int16_t arg2) {
                                                             |     int16_t var_4h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0000de10 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x0000de14 mov r6, r0                                    |     r6 = r0;
    0x0000de16 sub sp, 0xc                                   |     
    0x0000de18 movs r0, 0x1c                                 |     r0 = 0x1c;
    0x0000de1a mov r7, r1                                    |     r7 = r1;
    0x0000de1c blx 0x3450                                    |     r0 = strerror (r0);
    0x0000de20 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000de22 beq 0xdef0                                    |         goto label_6;
                                                             |     }
    0x0000de24 movw r1, 0x6019                               |     
    0x0000de28 movs r2, 0                                    |     r2 = 0;
    0x0000de2a mov r4, r0                                    |     r4 = r0;
    0x0000de2c movt r1, 0xaaca                               |     r1 = 0xaaca6019;
    0x0000de30 strd r2, r2, [r0, 4]                          |     __asm ("strd r2, r2, [r0, 4]");
    0x0000de34 strd r2, r2, [r0, 0xc]                        |     __asm ("strd r2, r2, [r0, 0xc]");
    0x0000de38 strd r2, r2, [r0, 0x14]                       |     __asm ("strd r2, r2, [r0, 0x14]");
    0x0000de3c mov r0, r6                                    |     r0 = r6;
    0x0000de3e str r1, [r4]                                  |     *(r4) = r1;
    0x0000de40 blx 0x3504                                    |     e2p_os2string ();
    0x0000de44 ldrb r3, [r6]                                 |     r3 = *(r6);
    0x0000de46 add.w r8, r0, 1                               |     r8 = r0 + 1;
    0x0000de4a cmp r3, 0x7e                                  |     
    0x0000de4c beq 0xde7c                                    |     
                                                             |     while (r3 != 0x2f) {
                                                             | label_0:
    0x0000de4e mov r0, r8                                    |         r0 = r8;
    0x0000de50 blx 0x3450                                    |         r0 = strerror (r0);
    0x0000de54 mov r5, r0                                    |         r5 = r0;
    0x0000de56 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0000de58 beq 0xdef4                                    |             goto label_7;
                                                             |         }
    0x0000de5a mov r2, r8                                    |         r2 = r8;
    0x0000de5c mov r1, r6                                    |         r1 = r6;
    0x0000de5e blx 0x30e0                                    |         fcn_000030e0 ();
                                                             | label_1:
    0x0000de62 ldr r1, [pc, 0xe4]                            |         
    0x0000de64 mov r0, r5                                    |         r0 = r5;
    0x0000de66 str r5, [r4, 4]                               |         *((r4 + 4)) = r5;
    0x0000de68 add r1, pc                                    |         r1 = 0x1bdb6;
    0x0000de6a blx 0x2f98                                    |         r0 = fcn_00002f98 ();
                                                             |         if (r0 != 0) {
    0x0000de6e cbnz r0, 0xdeb4                               |             goto label_8;
                                                             |         }
                                                             | label_2:
    0x0000de70 movs r5, 0                                    |         r5 = 0;
    0x0000de72 str r4, [r7]                                  |         *(r7) = r4;
                                                             | label_3:
    0x0000de74 mov r0, r5                                    |         r0 = r5;
    0x0000de76 add sp, 0xc                                   |         
    0x0000de78 pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
    0x0000de7c ldrb r3, [r6, 1]                              |         r3 = *((r6 + 1));
    0x0000de7e cmp r3, 0x2f                                  |         
    0x0000de80 bne 0xde4e                                    |         
                                                             |     }
    0x0000de82 ldr r0, [pc, 0xc8]                            |     
    0x0000de84 add r0, pc                                    |     r0 = 0x1bdd6;
    0x0000de86 blx 0x33e8                                    |     r0 = fcn_000033e8 ();
    0x0000de8a cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000de8c beq 0xde4e                                    |         goto label_0;
                                                             |     }
    0x0000de8e str r0, [sp, 4]                               |     var_4h = r0;
    0x0000de90 blx 0x3504                                    |     r0 = e2p_os2string ();
    0x0000de94 mov sb, r0                                    |     sb = r0;
    0x0000de96 add r0, r8                                    |     r0 += r8;
    0x0000de98 blx 0x3450                                    |     strerror (r0);
    0x0000de9c ldr r1, [sp, 4]                               |     r1 = var_4h;
    0x0000de9e mov r5, r0                                    |     r5 = r0;
                                                             |     if (r0 == 0) {
    0x0000dea0 cbz r0, 0xdef4                                |         goto label_7;
                                                             |     }
    0x0000dea2 mov r2, sb                                    |     r2 = sb;
    0x0000dea4 blx 0x30e0                                    |     fcn_000030e0 ();
    0x0000dea8 adds r1, r6, 1                                |     r1 = r6 + 1;
    0x0000deaa add.w r0, r5, sb                              |     r0 = r5 + sb;
    0x0000deae blx 0x3378                                    |     pread64 ();
    0x0000deb2 b 0xde62                                      |     goto label_1;
                                                             | label_8:
    0x0000deb4 ldr r3, [r4, 0xc]                             |     r3 = *((r4 + 0xc));
    0x0000deb6 lsls r3, r3, 0x1d                             |     r3 <<= 0x1d;
                                                             |     if (r3 < r3) {
    0x0000deb8 bmi 0xde70                                    |         goto label_2;
                                                             |     }
    0x0000deba ldr r3, [r4, 0x14]                            |     r3 = *((r4 + 0x14));
    0x0000debc cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0000debe bne 0xde70                                    |         goto label_2;
                                                             |     }
    0x0000dec0 mov r0, r4                                    |     r0 = r4;
    0x0000dec2 bl 0xdd14                                     |     r0 = fcn_0000dd14 (r0, r1);
    0x0000dec6 mov r5, r0                                    |     r5 = r0;
    0x0000dec8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000deca beq 0xde70                                    |         goto label_2;
                                                             |     }
    0x0000decc ldr r0, [r4, 0x14]                            |     r0 = *((r4 + 0x14));
                                                             |     if (r0 != 0) {
    0x0000dece cbz r0, 0xdee2                                |         
    0x0000ded0 ldr r2, [r0]                                  |         r2 = *(r0);
    0x0000ded2 movw r3, 0x6001                               |         
    0x0000ded6 movt r3, 0xaaca                               |         r3 = 0xaaca6001;
    0x0000deda cmp r2, r3                                    |         
                                                             |         if (r2 != r3) {
    0x0000dedc bne 0xdee2                                    |             goto label_9;
                                                             |         }
    0x0000dede bl 0xd6c4                                     |         fcn_0000d6c4 (r0, r1);
                                                             |     }
                                                             | label_9:
    0x0000dee2 ldr r0, [r4, 4]                               |     r0 = *((r4 + 4));
    0x0000dee4 blx 0x3098                                    |     fcn_00003098 ();
    0x0000dee8 mov r0, r4                                    |     r0 = r4;
    0x0000deea blx 0x3098                                    |     fcn_00003098 ();
    0x0000deee b 0xde74                                      |     goto label_3;
                                                             | label_6:
    0x0000def0 movs r5, 0xc                                  |     r5 = 0xc;
    0x0000def2 b 0xde74                                      |     goto label_3;
                                                             | label_7:
    0x0000def4 ldr r5, [r4, 0x14]                            |     r5 = *((r4 + 0x14));
                                                             |     if (r5 != 0) {
    0x0000def6 cbz r5, 0xdf06                                |         
    0x0000def8 ldr r6, [r5]                                  |         r6 = *(r5);
    0x0000defa movw r3, 0x6001                               |         
    0x0000defe movt r3, 0xaaca                               |         r3 = 0xaaca6001;
    0x0000df02 cmp r6, r3                                    |         
                                                             |         if (r6 == r3) {
    0x0000df04 beq 0xdf1a                                    |             goto label_10;
                                                             |         }
                                                             |     }
                                                             | label_5:
    0x0000df06 ldr r0, [r4, 4]                               |     r0 = *((r4 + 4));
    0x0000df08 blx 0x3098                                    |     fcn_00003098 ();
    0x0000df0c mov r0, r4                                    |     r0 = r4;
    0x0000df0e blx 0x3098                                    |     fcn_00003098 ();
    0x0000df12 blx 0x357c                                    |     r0 = sprintf_chk ()
    0x0000df16 ldr r5, [r0]                                  |     r5 = *(r0);
    0x0000df18 b 0xde74                                      |     goto label_3;
                                                             | label_10:
    0x0000df1a ldr r0, [r5, 4]                               |     r0 = *((r5 + 4));
    0x0000df1c blx 0x3098                                    |     fcn_00003098 ();
    0x0000df20 ldr r0, [r5, 8]                               |     r0 = *((r5 + 8));
    0x0000df22 blx 0x3098                                    |     fcn_00003098 ();
    0x0000df26 ldr r0, [r5, 0x14]                            |     r0 = *((r5 + 0x14));
                                                             |     if (r0 == 0) {
                                                             |         do {
                                                             | label_4:
    0x0000df28 cbz r0, 0xdf3e                                |             goto label_11;
                                                             |         }
    0x0000df2a ldr r3, [r0]                                  |         r3 = *(r0);
    0x0000df2c ldr r7, [r0, 0x1c]                            |         r7 = *((r0 + 0x1c));
    0x0000df2e cmp r3, r6                                    |         
                                                             |         if (r3 == r6) {
    0x0000df30 beq 0xdf36                                    |             goto label_12;
                                                             |         }
    0x0000df32 mov r0, r7                                    |         r0 = r7;
    0x0000df34 b 0xdf28                                      |         
                                                             |     } while (1);
                                                             | label_12:
    0x0000df36 bl 0xd6c4                                     |     fcn_0000d6c4 (r0, r1);
    0x0000df3a mov r0, r7                                    |     r0 = r7;
    0x0000df3c b 0xdf28                                      |     goto label_4;
                                                             | label_11:
    0x0000df3e mov r0, r5                                    |     r0 = r5;
    0x0000df40 blx 0x3098                                    |     fcn_00003098 ();
    0x0000df44 b 0xdf06                                      |     goto label_5;
                                                             | }
    ; 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 @ 0xe318 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0000e318 ()                                          | void fcn_0000e318 (int16_t arg1, int16_t arg2) {
                                                                     |     int32_t var_0h;
                                                                     |     int32_t var_0h_2;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_38h;
                                                                     |     int16_t var_84h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0000e318 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0000e31c mov r3, r0                                            |     r3 = r0;
    0x0000e31e sub sp, 0x8c                                          |     
    0x0000e320 ldr r2, [pc, 0x2c4]                                   |     
    0x0000e322 mov r4, r3                                            |     r4 = r3;
    0x0000e324 movs r0, 8                                            |     r0 = 8;
    0x0000e326 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0000e328 ldr r3, [pc, 0x2c0]                                   |     r3 = *(0xe5ec);
    0x0000e32a add r2, pc                                            |     r2 = 0x1c916;
    0x0000e32c str r1, [sp, 0x18]                                    |     var_18h = r1;
    0x0000e32e ldr r3, [r2, r3]                                      |     
    0x0000e330 ldr r3, [r3]                                          |     r3 = *(0x1c916);
    0x0000e332 str r3, [sp, 0x84]                                    |     var_84h = r3;
    0x0000e334 mov.w r3, 0                                           |     r3 = 0;
    0x0000e338 blx 0x3450                                            |     strerror (r0);
    0x0000e33c str r0, [sp, 0x14]                                    |     var_14h = r0;
    0x0000e33e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000e340 beq.w 0xe59a                                          |         goto label_11;
                                                                     |     }
    0x0000e344 movw r3, 0x6012                                       |     
    0x0000e348 movs r6, 0                                            |     r6 = 0;
    0x0000e34a movt r3, 0xaaca                                       |     r3 = 0xaaca6012;
    0x0000e34e adds r2, r0, 4                                        |     r2 = r0 + 4;
    0x0000e350 strd r3, r6, [r0]                                     |     __asm ("strd r3, r6, [r0]");
    0x0000e354 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0000e356 beq.w 0xe4ea                                          |         goto label_12;
                                                                     |     }
    0x0000e35a ldr r3, [r4]                                          |     r3 = *(r4);
    0x0000e35c cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000e35e beq.w 0xe596                                          |         goto label_13;
                                                                     |     }
    0x0000e362 ldr.w fp, [pc, 0x28c]                                 |     
    0x0000e366 str r2, [sp, 0x10]                                    |     var_10h = r2;
    0x0000e368 ldr r2, [pc, 0x288]                                   |     
    0x0000e36a add fp, pc                                            |     fp = 0x1c960;
    0x0000e36c add r2, pc                                            |     r2 = 0x1c964;
    0x0000e36e str r2, [sp, 0x1c]                                    |     var_1ch = r2;
                                                                     | label_2:
    0x0000e370 ldrb r3, [r3]                                         |     r3 = *(r3);
    0x0000e372 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000e374 beq.w 0xe4c8                                          |         goto label_14;
                                                                     |     }
                                                                     |     if (r6 == 0) {
    0x0000e378 cbz r6, 0xe392                                        |         goto label_15;
                                                                     |     }
    0x0000e37a ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000e37c mov r4, r6                                            |     r4 = r6;
                                                                     |     if (r0 == 0) {
    0x0000e37e cbz r0, 0xe38c                                        |         goto label_16;
                                                                     |     }
                                                                     |     do {
    0x0000e380 blx 0x3098                                            |         fcn_00003098 ();
    0x0000e384 ldr r0, [r4, 4]!                                      |         r0 = *((r4 += 4));
    0x0000e388 cmp r0, 0                                             |         
    0x0000e38a bne 0xe380                                            |         
                                                                     |     } while (r0 != 0);
                                                                     | label_16:
    0x0000e38c mov r0, r6                                            |     r0 = r6;
    0x0000e38e blx 0x3098                                            |     fcn_00003098 ();
                                                                     | label_15:
    0x0000e392 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0000e394 mov.w r8, 0                                           |     r8 = 0;
    0x0000e398 mov sl, r8                                            |     sl = r8;
    0x0000e39a mov sb, r8                                            |     sb = r8;
    0x0000e39c ldr r7, [r3]                                          |     r7 = *(r3);
    0x0000e39e mov r0, r7                                            |     r0 = r7;
    0x0000e3a0 blx 0x33d0                                            |     r0 = fcn_000033d0 ();
    0x0000e3a4 mov r6, r0                                            |     r6 = r0;
    0x0000e3a6 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000e3a8 beq.w 0xe51e                                          |         goto label_17;
                                                                     |     }
                                                                     |     do {
                                                                     | label_3:
    0x0000e3ac mov r0, r6                                            |         r0 = r6;
    0x0000e3ae blx 0x37b0                                            |         r0 = uuid_parse ();
    0x0000e3b2 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0000e3b4 beq 0xe444                                            |             goto label_18;
                                                                     |         }
                                                                     | label_1:
    0x0000e3b6 ldrb r4, [r0, 0xb]                                    |         r4 = *((r0 + 0xb));
    0x0000e3b8 add.w r5, r0, 0xb                                     |         r5 = r0 + 0xb;
                                                                     |         if (r4 == 0) {
    0x0000e3bc cbz r4, 0xe3e8                                        |             goto label_19;
                                                                     |         }
    0x0000e3be blx 0x34a4                                            |         r0 = set_undo_io_backing_manager ();
    0x0000e3c2 ldr r1, [r0]                                          |         r1 = *(r0);
    0x0000e3c4 mov r2, r5                                            |         r2 = r5;
                                                                     | label_0:
    0x0000e3c6 ldrh.w r3, [r1, r4, lsl 1]                            |         offset_0 = r4 << 1;
                                                                     |         r3 = *((r1 + offset_0));
    0x0000e3ca cmp r4, 0x2d                                          |         
    0x0000e3cc it ne                                                 |         
                                                                     |         if (r4 != 0x2d) {
    0x0000e3ce cmpne r4, 0x5f                                        |             __asm ("cmpne r4, 0x5f");
                                                                     |         }
    0x0000e3d0 ite ne                                                |         
                                                                     |         if (r4 == 0x2d) {
    0x0000e3d2 movne r4, 1                                           |             r4 = 1;
                                                                     |         }
                                                                     |         if (r4 != 0x2d) {
    0x0000e3d4 moveq r4, 0                                           |             r4 = 0;
                                                                     |         }
    0x0000e3d6 eor r3, r3, 8                                         |         r3 ^= 8;
    0x0000e3da ands.w r4, r4, r3, lsr 3                              |         r4 &= (r3 >> 3);
    0x0000e3de bne 0xe3ac                                            |         
                                                                     |     } while (r4 != r4);
    0x0000e3e0 ldrb r4, [r2, 1]!                                     |     r4 = *((r2 += 1));
    0x0000e3e4 cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0000e3e6 bne 0xe3c6                                            |         goto label_0;
                                                                     |     }
                                                                     | label_19:
    0x0000e3e8 mov r0, r7                                            |     r0 = r7;
    0x0000e3ea blx 0x3504                                            |     r0 = e2p_os2string ();
    0x0000e3ee mov r4, r0                                            |     r4 = r0;
    0x0000e3f0 mov r0, r5                                            |     r0 = r5;
    0x0000e3f2 blx 0x3504                                            |     e2p_os2string ();
    0x0000e3f6 add r0, r4                                            |     r0 += r4;
    0x0000e3f8 adds r0, 2                                            |     r0 += 2;
    0x0000e3fa blx 0x3450                                            |     r0 = strerror (r0);
    0x0000e3fe mov r4, r0                                            |     r4 = r0;
    0x0000e400 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000e402 beq.w 0xe5a8                                          |         goto label_20;
                                                                     |     }
    0x0000e406 mov r3, fp                                            |     r3 = fp;
    0x0000e408 mov.w r2, -1                                          |     r2 = -1;
    0x0000e40c movs r1, 1                                            |     r1 = 1;
    0x0000e40e strd r7, r5, [sp]                                     |     __asm ("strd r7, r5, [sp]");
    0x0000e412 blx 0x3594                                            |     ext2fs_open2 ();
    0x0000e416 add r1, sp, 0x28                                      |     r1 += var_28h;
    0x0000e418 mov r0, r4                                            |     r0 = r4;
    0x0000e41a blx 0x3498                                            |     r0 = exit (r0);
    0x0000e41e cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0000e420 blt 0xe4f4                                            |         goto label_21;
                                                                     |     }
    0x0000e422 ldr r3, [sp, 0x38]                                    |     r3 = var_38h;
    0x0000e424 and r3, r3, 0xf000                                    |     r3 &= 0xf000;
    0x0000e428 cmp.w r3, 0x8000                                      |     
                                                                     |     if (r3 != 0x8000) {
    0x0000e42c bne 0xe4f4                                            |         goto label_21;
                                                                     |     }
    0x0000e42e cmp r8, sl                                            |     
                                                                     |     if (r8 >= sl) {
    0x0000e430 bge 0xe4fc                                            |         goto label_22;
                                                                     |     }
                                                                     | label_4:
    0x0000e432 str.w r4, [sb, r8, lsl 2]                             |     __asm ("str.w r4, [sb, r8, lsl 2]");
    0x0000e436 mov r0, r6                                            |     r0 = r6;
    0x0000e438 add.w r8, r8, 1                                       |     r8++;
    0x0000e43c blx 0x37b0                                            |     r0 = uuid_parse ();
    0x0000e440 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000e442 bne 0xe3b6                                            |         goto label_1;
                                                                     |     }
                                                                     | label_18:
    0x0000e444 mov r4, r0                                            |     r4 = r0;
    0x0000e446 cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x0000e44a beq 0xe514                                            |         goto label_23;
                                                                     |     }
    0x0000e44c ldr r3, [pc, 0x1a8]                                   |     
    0x0000e44e movs r2, 4                                            |     r2 = 4;
    0x0000e450 mov r1, r8                                            |     r1 = r8;
    0x0000e452 mov r0, sb                                            |     r0 = sb;
    0x0000e454 add r3, pc                                            |     r3 = 0x1ca50;
    0x0000e456 blx 0x3858                                            |     ext2fs_link ();
    0x0000e45a mov r0, r6                                            |     r0 = r6;
    0x0000e45c str.w r4, [sb, r8, lsl 2]                             |     __asm ("str.w r4, [sb, r8, lsl 2]");
    0x0000e460 blx 0x3978                                            |     ext2fs_badblocks_list_iterate ();
    0x0000e464 ldr.w r0, [sb]                                        |     r0 = *(sb);
    0x0000e468 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000e46a beq.w 0xe582                                          |         goto label_24;
                                                                     |     }
    0x0000e46e ldr r4, [sp, 0x10]                                    |     r4 = var_10h;
    0x0000e470 mov r5, sb                                            |     r5 = sb;
    0x0000e472 add r7, sp, 0x24                                      |     r7 += var_24h;
                                                                     |     do {
    0x0000e474 mov r1, r7                                            |         r1 = r7;
    0x0000e476 bl 0xde10                                             |         r0 = fcn_0000de10 (r0, r1);
    0x0000e47a cmp r0, 0xd                                           |         
                                                                     |         if (r0 != 0xd) {
    0x0000e47c beq 0xe48a                                            |             
    0x0000e47e cmp r0, 0                                             |             
                                                                     |             if (r0 != 0) {
    0x0000e480 bne 0xe544                                            |                 goto label_25;
                                                                     |             }
    0x0000e482 ldr r3, [sp, 0x24]                                    |             r3 = var_24h;
    0x0000e484 str r3, [r4]                                          |             *(r4) = r3;
    0x0000e486 add.w r4, r3, 0x18                                    |             r4 = r3 + 0x18;
                                                                     |         }
    0x0000e48a ldr r0, [r5, 4]!                                      |         r0 = *((r5 += 4));
    0x0000e48e cmp r0, 0                                             |         
    0x0000e490 bne 0xe474                                            |         
                                                                     |     } while (r0 != 0);
    0x0000e492 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0000e494 mov r6, sb                                            |     r6 = sb;
    0x0000e496 str r4, [sp, 0x10]                                    |     var_10h = r4;
    0x0000e498 ldr r5, [r3]                                          |     r5 = *(r3);
                                                                     | label_6:
    0x0000e49a mov r1, r7                                            |     r1 = r7;
    0x0000e49c mov r0, r5                                            |     r0 = r5;
    0x0000e49e bl 0xde10                                             |     r0 = fcn_0000de10 (r0, r1);
    0x0000e4a2 cmp r0, 0xd                                           |     
    0x0000e4a4 it ne                                                 |     
                                                                     |     if (r0 != 0xd) {
    0x0000e4a6 cmpne r0, 2                                           |         __asm ("cmpne r0, 2");
                                                                     |     }
    0x0000e4a8 mov r4, r0                                            |     r4 = r0;
                                                                     |     if (r0 != 0xd) {
    0x0000e4aa beq 0xe4ba                                            |         
    0x0000e4ac cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0000e4ae bne 0xe58e                                            |             goto label_26;
                                                                     |         }
    0x0000e4b0 ldr r3, [sp, 0x24]                                    |         r3 = var_24h;
    0x0000e4b2 ldr r2, [sp, 0x10]                                    |         r2 = var_10h;
    0x0000e4b4 str r3, [r2]                                          |         *(r2) = r3;
    0x0000e4b6 adds r3, 0x18                                         |         r3 += 0x18;
    0x0000e4b8 str r3, [sp, 0x10]                                    |         var_10h = r3;
                                                                     |     }
                                                                     | label_5:
    0x0000e4ba ldr r2, [sp, 0xc]                                     |     r2 = var_ch;
    0x0000e4bc ldr r3, [r2, 4]!                                      |     r3 = *((r2 += 4));
    0x0000e4c0 str r2, [sp, 0xc]                                     |     var_ch = r2;
    0x0000e4c2 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0000e4c4 bne.w 0xe370                                          |         goto label_2;
                                                                     |     }
                                                                     | label_14:
    0x0000e4c8 ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x0000e4ca ldr r3, [r3, 4]                                       |     r3 = *((r3 + 4));
    0x0000e4cc cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0000e4ce beq 0xe58c                                            |         goto label_27;
                                                                     |     }
                                                                     |     if (r6 == 0) {
    0x0000e4d0 cbz r6, 0xe4ea                                        |         goto label_12;
                                                                     |     }
    0x0000e4d2 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0000e4d4 mov r4, r6                                            |     r4 = r6;
                                                                     |     if (r0 == 0) {
    0x0000e4d6 cbz r0, 0xe4e4                                        |         goto label_28;
                                                                     |     }
                                                                     |     do {
    0x0000e4d8 blx 0x3098                                            |         fcn_00003098 ();
    0x0000e4dc ldr r0, [r4, 4]!                                      |         r0 = *((r4 += 4));
    0x0000e4e0 cmp r0, 0                                             |         
    0x0000e4e2 bne 0xe4d8                                            |         
                                                                     |     } while (r0 != 0);
                                                                     | label_28:
    0x0000e4e4 mov r0, r6                                            |     r0 = r6;
    0x0000e4e6 blx 0x3098                                            |     fcn_00003098 ();
                                                                     | label_12:
    0x0000e4ea ldrd r2, r3, [sp, 0x14]                               |     __asm ("ldrd r2, r3, [var_18h]");
    0x0000e4ee movs r4, 0                                            |     r4 = 0;
    0x0000e4f0 str r2, [r3]                                          |     *(r3) = r2;
    0x0000e4f2 b 0xe566                                              |     goto label_9;
                                                                     | label_21:
    0x0000e4f4 mov r0, r4                                            |     r0 = r4;
    0x0000e4f6 blx 0x3098                                            |     fcn_00003098 ();
    0x0000e4fa b 0xe3ac                                              |     goto label_3;
                                                                     | label_22:
    0x0000e4fc add.w r1, sl, 0xb                                     |     r1 = sl + 0xb;
    0x0000e500 mov r0, sb                                            |     r0 = sb;
    0x0000e502 lsls r1, r1, 2                                        |     r1 <<= 2;
    0x0000e504 add.w sl, sl, 0xa                                     |     sl += 0xa;
    0x0000e508 blx 0x3254                                            |     r0 = fcn_00003254 ();
    0x0000e50c cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000e50e beq 0xe5a2                                            |         goto label_29;
                                                                     |     }
    0x0000e510 mov sb, r0                                            |     sb = r0;
    0x0000e512 b 0xe432                                              |     goto label_4;
                                                                     | label_23:
    0x0000e514 mov r0, r6                                            |     r0 = r6;
    0x0000e516 mov r6, sb                                            |     r6 = sb;
    0x0000e518 blx 0x3978                                            |     ext2fs_badblocks_list_iterate ();
    0x0000e51c b 0xe4ba                                              |     goto label_5;
                                                                     | label_17:
    0x0000e51e blx 0x357c                                            |     r0 = sprintf_chk ()
    0x0000e522 ldr r4, [r0]                                          |     r4 = *(r0);
    0x0000e524 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0000e526 beq 0xe4ba                                            |         goto label_5;
                                                                     |     }
    0x0000e528 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0000e52a cmp r4, 0x14                                          |     
    0x0000e52c ldr r5, [r3]                                          |     r5 = *(r3);
    0x0000e52e mov r3, r5                                            |     r3 = r5;
                                                                     |     if (r4 != 0x14) {
    0x0000e530 beq 0xe540                                            |         
                                                                     | label_10:
    0x0000e532 ldr r1, [sp, 0x1c]                                    |         r1 = var_1ch;
    0x0000e534 mov r0, r3                                            |         r0 = r3;
    0x0000e536 mov r5, r3                                            |         r5 = r3;
    0x0000e538 blx 0x2f98                                            |         r0 = fcn_00002f98 ();
    0x0000e53c mov r6, r0                                            |         r6 = r0;
                                                                     |         if (r0 != 0) {
    0x0000e53e cbnz r0, 0xe560                                       |             goto label_8;
                                                                     |         }
                                                                     |     }
    0x0000e540 add r7, sp, 0x24                                      |     r7 += var_24h;
    0x0000e542 b 0xe49a                                              |     goto label_6;
                                                                     | label_25:
    0x0000e544 mov r4, r0                                            |     r4 = r0;
                                                                     | label_7:
    0x0000e546 ldr.w r0, [sb]                                        |     r0 = *(sb);
    0x0000e54a mov r5, sb                                            |     r5 = sb;
                                                                     |     if (r0 == 0) {
    0x0000e54c cbz r0, 0xe55a                                        |         goto label_30;
                                                                     |     }
                                                                     |     do {
    0x0000e54e blx 0x3098                                            |         fcn_00003098 ();
    0x0000e552 ldr r0, [r5, 4]!                                      |         r0 = *((r5 += 4));
    0x0000e556 cmp r0, 0                                             |         
    0x0000e558 bne 0xe54e                                            |         
                                                                     |     } while (r0 != 0);
                                                                     | label_30:
    0x0000e55a mov r0, sb                                            |     r0 = sb;
    0x0000e55c blx 0x3098                                            |     fcn_00003098 ();
                                                                     |     do {
                                                                     | label_8:
    0x0000e560 ldr r0, [sp, 0x14]                                    |         r0 = var_14h;
    0x0000e562 bl 0xe28c                                             |         fcn_0000e28c (r0);
                                                                     | label_9:
    0x0000e566 ldr r2, [pc, 0x94]                                    |         
    0x0000e568 ldr r3, [pc, 0x80]                                    |         r3 = *(0xe5ec);
    0x0000e56a add r2, pc                                            |         r2 = 0x1cb6c;
    0x0000e56c ldr r3, [r2, r3]                                      |         r3 = *(0x1cb6c);
    0x0000e56e ldr r2, [r3]                                          |         r2 = *(0x1cb6c);
    0x0000e570 ldr r3, [sp, 0x84]                                    |         r3 = var_84h;
    0x0000e572 eors r2, r3                                           |         r2 ^= r3;
    0x0000e574 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0000e578 bne 0xe59e                                            |             goto label_31;
                                                                     |         }
    0x0000e57a mov r0, r4                                            |         r0 = r4;
    0x0000e57c add sp, 0x8c                                          |         
    0x0000e57e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_24:
    0x0000e582 ldr r3, [sp, 0xc]                                     |         r3 = var_ch;
    0x0000e584 mov r6, sb                                            |         r6 = sb;
    0x0000e586 add r7, sp, 0x24                                      |         r7 += var_24h;
    0x0000e588 ldr r5, [r3]                                          |         r5 = *(r3);
    0x0000e58a b 0xe49a                                              |         goto label_6;
                                                                     | label_27:
    0x0000e58c movs r4, 2                                            |         r4 = 2;
                                                                     | label_26:
    0x0000e58e mov sb, r6                                            |         sb = r6;
    0x0000e590 cmp r6, 0                                             |         
    0x0000e592 beq 0xe560                                            |         
                                                                     |     } while (r6 == 0);
    0x0000e594 b 0xe546                                              |     goto label_7;
                                                                     | label_13:
    0x0000e596 movs r4, 2                                            |     r4 = 2;
    0x0000e598 b 0xe560                                              |     goto label_8;
                                                                     | label_11:
    0x0000e59a movs r4, 0xc                                          |     r4 = 0xc;
    0x0000e59c b 0xe566                                              |     goto label_9;
                                                                     | label_31:
    0x0000e59e blx 0x31f4                                            |     fcn_000031f4 ();
                                                                     | label_29:
    0x0000e5a2 mov r0, r4                                            |     r0 = r4;
    0x0000e5a4 blx 0x3098                                            |     fcn_00003098 ();
                                                                     | label_20:
    0x0000e5a8 mov r0, r6                                            |     r0 = r6;
    0x0000e5aa cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x0000e5ae beq 0xe5dc                                            |         goto label_32;
                                                                     |     }
    0x0000e5b0 movs r3, 0                                            |     r3 = 0;
    0x0000e5b2 mov r4, sb                                            |     r4 = sb;
    0x0000e5b4 str.w r3, [sb, r8, lsl 2]                             |     __asm ("str.w r3, [sb, r8, lsl 2]");
    0x0000e5b8 blx 0x3978                                            |     ext2fs_badblocks_list_iterate ();
    0x0000e5bc ldr.w r0, [sb]                                        |     r0 = *(sb);
                                                                     |     if (r0 == 0) {
    0x0000e5c0 cbz r0, 0xe5ce                                        |         goto label_33;
                                                                     |     }
                                                                     |     do {
    0x0000e5c2 blx 0x3098                                            |         fcn_00003098 ();
    0x0000e5c6 ldr r0, [r4, 4]!                                      |         r0 = *((r4 += 4));
    0x0000e5ca cmp r0, 0                                             |         
    0x0000e5cc bne 0xe5c2                                            |         
                                                                     |     } while (r0 != 0);
                                                                     | label_33:
    0x0000e5ce mov r0, sb                                            |     r0 = sb;
    0x0000e5d0 movs r4, 0xc                                          |     r4 = 0xc;
    0x0000e5d2 blx 0x3098                                            |     fcn_00003098 ();
    0x0000e5d6 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0000e5d8 ldr r3, [r3]                                          |     r3 = *(r3);
    0x0000e5da b 0xe532                                              |     goto label_10;
                                                                     | label_32:
    0x0000e5dc blx 0x3978                                            |     ext2fs_badblocks_list_iterate ();
    0x0000e5e0 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0000e5e2 movs r4, 0xc                                          |     r4 = 0xc;
    0x0000e5e4 ldr r3, [r3]                                          |     r3 = *(r3);
    0x0000e5e6 b 0xe532                                              |     goto label_10;
                                                                     | }
    ; 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 @ 0xe8b8 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0000e8b8 ()                              | void fcn_0000e8b8 (int16_t arg_30h, int16_t arg_80h, int16_t arg_2d0h, int16_t arg1) {
                                                         |     int16_t var_30h;
                                                         |     int16_t var_ch_5;
                                                         |     int16_t var_10h_4;
                                                         |     int16_t var_14h;
                                                         |     r0 = arg1;
    0x0000e8b8 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0000e8bc sub sp, 0x18                              |     
    0x0000e8be ldr r6, [pc, 0xa0]                        |     
    0x0000e8c0 mov r4, r0                                |     r4 = r0;
    0x0000e8c2 ldr r5, [pc, 0xa0]                        |     r5 = *(0xe966);
    0x0000e8c4 add r6, pc                                |     r6 = 0x1d22a;
    0x0000e8c6 ldr r5, [r6, r5]                          |     
    0x0000e8c8 ldr r5, [r5]                              |     r5 = *(0x1d22a);
    0x0000e8ca str r5, [sp, 0x14]                        |     var_14h = r5;
    0x0000e8cc mov.w r5, 0                               |     r5 = 0;
    0x0000e8d0 ldrd r5, r6, [sp, 0x30]                   |     __asm ("ldrd r5, r6, [arg_30h]");
    0x0000e8d4 str r5, [r6]                              |     *(r6) = r5;
                                                         |     if (r0 == 0) {
    0x0000e8d6 cbz r0, 0xe92c                            |         goto label_0;
                                                         |     }
    0x0000e8d8 add r4, sp, 0xc                           |     r4 += var_ch_5;
    0x0000e8da str r4, [sp]                              |     *(sp) = r4;
    0x0000e8dc bl 0xe1b0                                 |     fcn_0000e1b0 (r0, r1, r2, r3, r4, r5, r6);
    0x0000e8e0 movw r3, 0x9ffe                           |     
    0x0000e8e4 mov r4, r0                                |     r4 = r0;
    0x0000e8e6 movt r3, 0x5535                           |     r3 = 0x55359ffe;
    0x0000e8ea add r3, r0                                |     r3 += r0;
    0x0000e8ec cmp r3, 1                                 |     
    0x0000e8ee itt ls                                    |     
                                                         |     if (r3 > 1) {
    0x0000e8f0 movls r4, 0                               |         r4 = 0;
                                                         |     }
                                                         |     if (r3 > 1) {
    0x0000e8f2 strls r5, [r6]                            |         *(r6) = r5;
                                                         |     }
                                                         |     if (r3 < 1) {
    0x0000e8f4 bls 0xe92c                                |         goto label_0;
                                                         |     }
                                                         |     if (r4 != 0) {
    0x0000e8f6 cbnz r4, 0xe92c                           |         goto label_0;
                                                         |     }
    0x0000e8f8 ldr r5, [sp, 0xc]                         |     r5 = var_ch_5;
    0x0000e8fa ldrb r3, [r5]                             |     r3 = *(r5);
                                                         |     if (r3 == 0) {
    0x0000e8fc cbz r3, 0xe950                            |         goto label_1;
                                                         |     }
    0x0000e8fe blx 0x357c                                |     sprintf_chk ()
    0x0000e902 mov r2, r4                                |     r2 = r4;
    0x0000e904 str r4, [r0]                              |     *(r0) = r4;
    0x0000e906 mov r8, r0                                |     r8 = r0;
    0x0000e908 add r1, sp, 0x10                          |     r1 += var_10h_4;
    0x0000e90a mov r0, r5                                |     r0 = r5;
    0x0000e90c blx 0x2fbc                                |     r0 = fcn_00002fbc ();
    0x0000e910 add.w r3, r0, -0x80000000                 |     r3 = r0 + -0x80000000;
    0x0000e914 mov r7, r0                                |     r7 = r0;
    0x0000e916 subs r3, 1                                |     r3--;
    0x0000e918 adds r3, 3                                |     r3 += 3;
    0x0000e91a bhi 0xe948                                |     
                                                         |     while (r3 == 0) {
    0x0000e91c mov r0, r5                                |         r0 = r5;
    0x0000e91e blx 0x3504                                |         e2p_os2string ();
    0x0000e922 ldr r3, [sp, 0x10]                        |         r3 = var_10h_4;
    0x0000e924 add r5, r0                                |         r5 += r0;
    0x0000e926 cmp r3, r5                                |         
                                                         |         if (r3 != r5) {
    0x0000e928 bne 0xe950                                |             goto label_1;
                                                         |         }
    0x0000e92a str r7, [r6]                              |         *(r6) = r7;
                                                         | label_0:
    0x0000e92c ldr r2, [pc, 0x38]                        |         
    0x0000e92e ldr r3, [pc, 0x34]                        |         r3 = *(0xe966);
    0x0000e930 add r2, pc                                |         r2 = 0x1d29c;
    0x0000e932 ldr r3, [r2, r3]                          |         r3 = *(0x1d29c);
    0x0000e934 ldr r2, [r3]                              |         r2 = *(0x1d29c);
    0x0000e936 ldr r3, [sp, 0x14]                        |         r3 = var_14h;
    0x0000e938 eors r2, r3                               |         r2 ^= r3;
    0x0000e93a mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0000e93e bne 0xe95a                                |             goto label_2;
                                                         |         }
    0x0000e940 mov r0, r4                                |         r0 = r4;
    0x0000e942 add sp, 0x18                              |         
    0x0000e944 pop.w {r4, r5, r6, r7, r8, pc}            |         
    0x0000e948 ldr.w r3, [r8]                            |         r3 = *(r8);
    0x0000e94c cmp r3, 0                                 |         
    0x0000e94e beq 0xe91c                                |         
                                                         |     }
                                                         | label_1:
    0x0000e950 movw r4, 0x601d                           |     
    0x0000e954 movt r4, 0xaaca                           |     r4 = 0xaaca601d;
    0x0000e958 b 0xe92c                                  |     goto label_0;
                                                         | label_2:
    0x0000e95a blx 0x31f4                                |     fcn_000031f4 ();
    0x0000e95e nop                                       |     
    0x0000e960 str r3, [sp, 0x80]                        |     *(arg_80h) = r3;
    0x0000e962 movs r1, r0                               |     r1 = r0;
    0x0000e964 lsls r4, r5, 0xe                          |     r4 = r5 << 0xe;
    0x0000e966 movs r0, r0                               |     
    0x0000e968 str r2, [sp, 0x2d0]                       |     *(arg_2d0h) = r2;
    0x0000e96a movs r1, r0                               |     r1 = 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 @ 0xe96c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0000e96c ()                          | void fcn_0000e96c (int16_t arg_1b0h, int16_t arg1) {
                                                     |     int16_t var_50h;
                                                     |     int16_t var_ch_4;
                                                     |     int16_t var_10h_3;
                                                     |     int16_t var_14h_2;
                                                     |     int16_t var_18h;
                                                     |     int16_t var_30h;
                                                     |     r0 = arg1;
    0x0000e96c mvnsmi lr, sp, lsr 18                 |     __asm ("mvnsmi lr, sp, lsr 18");
    0x0000e970 sub sp, 0x18                          |     
    0x0000e972 ldr r6, [pc, 0x98]                    |     
    0x0000e974 mov r4, r0                            |     r4 = r0;
    0x0000e976 ldr r5, [pc, 0x98]                    |     r5 = *(0xea12);
    0x0000e978 add r6, pc                            |     r6 = 0x1d38a;
    0x0000e97a ldr r5, [r6, r5]                      |     
    0x0000e97c ldr r5, [r5]                          |     r5 = *(0x1d38a);
    0x0000e97e str r5, [sp, 0x14]                    |     var_14h_2 = r5;
    0x0000e980 mov.w r5, 0                           |     r5 = 0;
    0x0000e984 ldrd r5, r6, [sp, 0x30]               |     __asm ("ldrd r5, r6, [var_30h]");
    0x0000e988 str r5, [r6]                          |     *(r6) = r5;
                                                     |     if (r0 == 0) {
    0x0000e98a cbz r0, 0xe9da                        |         goto label_0;
                                                     |     }
    0x0000e98c add r4, sp, 0xc                       |     r4 += var_ch_4;
    0x0000e98e str r4, [sp]                          |     *(sp) = r4;
    0x0000e990 bl 0xe1b0                             |     fcn_0000e1b0 (r0, r1, r2, r3, r4, r5, r6);
    0x0000e994 movw r3, 0x9ffe                       |     
    0x0000e998 mov r4, r0                            |     r4 = r0;
    0x0000e99a movt r3, 0x5535                       |     r3 = 0x55359ffe;
    0x0000e99e add r3, r0                            |     r3 += r0;
    0x0000e9a0 cmp r3, 1                             |     
    0x0000e9a2 itt ls                                |     
                                                     |     if (r3 > 1) {
    0x0000e9a4 movls r4, 0                           |         r4 = 0;
                                                     |     }
                                                     |     if (r3 > 1) {
    0x0000e9a6 strls r5, [r6]                        |         *(r6) = r5;
                                                     |     }
                                                     |     if (r3 < 1) {
    0x0000e9a8 bls 0xe9da                            |         goto label_0;
                                                     |     }
                                                     |     if (r4 != 0) {
    0x0000e9aa cbnz r4, 0xe9da                       |         goto label_0;
                                                     |     }
    0x0000e9ac ldr r5, [sp, 0xc]                     |     r5 = var_ch_4;
    0x0000e9ae ldrb r3, [r5]                         |     r3 = *(r5);
                                                     |     if (r3 == 0) {
    0x0000e9b0 cbz r3, 0xe9fe                        |         goto label_1;
                                                     |     }
    0x0000e9b2 blx 0x357c                            |     sprintf_chk ()
    0x0000e9b6 mov r2, r4                            |     r2 = r4;
    0x0000e9b8 str r4, [r0]                          |     *(r0) = r4;
    0x0000e9ba mov r8, r0                            |     r8 = r0;
    0x0000e9bc add r1, sp, 0x10                      |     r1 += var_10h_3;
    0x0000e9be mov r0, r5                            |     r0 = r5;
    0x0000e9c0 blx 0x34f8                            |     r0 = ext2fs_inode_bitmap_loc_set ();
    0x0000e9c4 adds r3, r0, 1                        |     r3 = r0 + 1;
    0x0000e9c6 mov r7, r0                            |     r7 = r0;
    0x0000e9c8 beq 0xe9f6                            |     
                                                     |     while (r3 == 0) {
    0x0000e9ca mov r0, r5                            |         r0 = r5;
    0x0000e9cc blx 0x3504                            |         e2p_os2string ();
    0x0000e9d0 ldr r3, [sp, 0x10]                    |         r3 = var_10h_3;
    0x0000e9d2 add r5, r0                            |         r5 += r0;
    0x0000e9d4 cmp r3, r5                            |         
                                                     |         if (r3 != r5) {
    0x0000e9d6 bne 0xe9fe                            |             goto label_1;
                                                     |         }
    0x0000e9d8 str r7, [r6]                          |         *(r6) = r7;
                                                     | label_0:
    0x0000e9da ldr r2, [pc, 0x38]                    |         
    0x0000e9dc ldr r3, [pc, 0x30]                    |         r3 = *(0xea10);
    0x0000e9de add r2, pc                            |         r2 = 0x1d3f8;
    0x0000e9e0 ldr r3, [r2, r3]                      |         r3 = *(0x1d3f8);
    0x0000e9e2 ldr r2, [r3]                          |         r2 = *(0x1d3f8);
    0x0000e9e4 ldr r3, [sp, 0x14]                    |         r3 = var_14h_2;
    0x0000e9e6 eors r2, r3                           |         r2 ^= r3;
    0x0000e9e8 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0000e9ec bne 0xea08                            |             goto label_2;
                                                     |         }
    0x0000e9ee mov r0, r4                            |         r0 = r4;
    0x0000e9f0 add sp, 0x18                          |         
    0x0000e9f2 pop.w {r4, r5, r6, r7, r8, pc}        |         
    0x0000e9f6 ldr.w r3, [r8]                        |         r3 = *(r8);
    0x0000e9fa cmp r3, 0                             |         
    0x0000e9fc beq 0xe9ca                            |         
                                                     |     }
                                                     | label_1:
    0x0000e9fe movw r4, 0x601d                       |     
    0x0000ea02 movt r4, 0xaaca                       |     r4 = 0xaaca601d;
    0x0000ea06 b 0xe9da                              |     goto label_0;
                                                     | label_2:
    0x0000ea08 blx 0x31f4                            |     fcn_000031f4 ();
    0x0000ea0c str r2, [sp, 0x1b0]                   |     *(arg_1b0h) = r2;
    0x0000ea0e movs r1, r0                           |     r1 = r0;
    0x0000ea10 lsls r4, r5, 0xe                      |     r4 = r5 << 0xe;
    0x0000ea12 movs r0, r0                           |     
    0x0000ea14 str r2, [sp, 0x18]                    |     var_18h = r2;
    0x0000ea16 movs r1, r0                           |     r1 = 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 @ 0xea18 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0000ea18 ()                      | void fcn_0000ea18 (int16_t arg_160h, int16_t arg_310h, int16_t arg1) {
                                                 |     int16_t var_20h;
                                                 |     int16_t var_ch_3;
                                                 |     int16_t var_10h_2;
                                                 |     int16_t var_14h_3;
                                                 |     int16_t var_38h;
                                                 |     r0 = arg1;
    0x0000ea18 invalid                           |     
    0x0000ea1c ldr r6, [pc, 0x9c]                |     
    0x0000ea1e ldr r5, [pc, 0xa0]                |     r5 = *(0xeac2);
    0x0000ea20 add r6, pc                        |     r6 = 0x1d4e0;
    0x0000ea22 vpush {d8}                        |     __asm ("vpush {d8}");
    0x0000ea26 sub sp, 0x1c                      |     
    0x0000ea28 ldr r5, [r6, r5]                  |     
    0x0000ea2a ldr r5, [r5]                      |     r5 = *(0x1d4e0);
    0x0000ea2c str r5, [sp, 0x14]                |     var_14h_3 = r5;
    0x0000ea2e mov.w r5, 0                       |     r5 = 0;
    0x0000ea32 ldr r5, [sp, 0x38]                |     r5 = var_38h;
    0x0000ea34 vstr d0, [r5]                     |     __asm ("vstr d0, [r5]");
                                                 |     if (r0 == 0) {
    0x0000ea38 cbz r0, 0xea88                    |         goto label_0;
                                                 |     }
    0x0000ea3a add r4, sp, 0xc                   |     r4 += var_ch_3;
    0x0000ea3c vmov.f64 d8, d0                   |     __asm ("vmov.f64 d8, d0");
    0x0000ea40 str r4, [sp]                      |     *(sp) = r4;
    0x0000ea42 bl 0xe1b0                         |     fcn_0000e1b0 (r0, r1, r2, r3, r4, r5, r6);
    0x0000ea46 movw r3, 0x9ffe                   |     
    0x0000ea4a mov r4, r0                        |     r4 = r0;
    0x0000ea4c movt r3, 0x5535                   |     r3 = 0x55359ffe;
    0x0000ea50 add r3, r0                        |     r3 += r0;
    0x0000ea52 cmp r3, 1                         |     
                                                 |     if (r3 < 1) {
    0x0000ea54 bls 0xeaa6                        |         goto label_1;
                                                 |     }
                                                 |     if (r0 != 0) {
    0x0000ea56 cbnz r0, 0xea88                   |         goto label_0;
                                                 |     }
    0x0000ea58 ldr r6, [sp, 0xc]                 |     r6 = var_ch_3;
    0x0000ea5a ldrb r3, [r6]                     |     r3 = *(r6);
                                                 |     if (r3 == 0) {
    0x0000ea5c cbz r3, 0xeaae                    |         goto label_2;
                                                 |     }
    0x0000ea5e blx 0x357c                        |     sprintf_chk ()
    0x0000ea62 add r1, sp, 0x10                  |     r1 += var_10h_2;
    0x0000ea64 str r4, [r0]                      |     *(r0) = r4;
    0x0000ea66 mov r7, r0                        |     r7 = r0;
    0x0000ea68 mov r0, r6                        |     r0 = r6;
    0x0000ea6a blx 0x3638                        |     fcn_00003638 ();
    0x0000ea6e ldr r4, [r7]                      |     r4 = *(r7);
    0x0000ea70 vmov.f64 d8, d0                   |     __asm ("vmov.f64 d8, d0");
                                                 |     if (r4 != 0) {
    0x0000ea74 cbnz r4, 0xeaae                   |         goto label_2;
                                                 |     }
    0x0000ea76 mov r0, r6                        |     r0 = r6;
    0x0000ea78 blx 0x3504                        |     e2p_os2string ();
    0x0000ea7c ldr r3, [sp, 0x10]                |     r3 = var_10h_2;
    0x0000ea7e add r6, r0                        |     r6 += r0;
    0x0000ea80 cmp r3, r6                        |     
                                                 |     if (r3 != r6) {
    0x0000ea82 bne 0xeaae                        |         goto label_2;
                                                 |     }
    0x0000ea84 vstr d8, [r5]                     |     __asm ("vstr d8, [r5]");
                                                 |     do {
                                                 | label_0:
    0x0000ea88 ldr r2, [pc, 0x38]                |         
    0x0000ea8a ldr r3, [pc, 0x34]                |         r3 = *(0xeac2);
    0x0000ea8c add r2, pc                        |         r2 = 0x1d554;
    0x0000ea8e ldr r3, [r2, r3]                  |         r3 = *(0x1d554);
    0x0000ea90 ldr r2, [r3]                      |         r2 = *(0x1d554);
    0x0000ea92 ldr r3, [sp, 0x14]                |         r3 = var_14h_3;
    0x0000ea94 eors r2, r3                       |         r2 ^= r3;
    0x0000ea96 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0000ea9a bne 0xeab8                        |             goto label_3;
                                                 |         }
    0x0000ea9c mov r0, r4                        |         r0 = r4;
    0x0000ea9e add sp, 0x1c                      |         
    0x0000eaa0 vpop {d8}                         |         __asm ("vpop {d8}");
    0x0000eaa4 pop {r4, r5, r6, r7, pc}          |         
                                                 | label_1:
    0x0000eaa6 movs r4, 0                        |         r4 = 0;
    0x0000eaa8 vstr d8, [r5]                     |         __asm ("vstr d8, [r5]");
    0x0000eaac b 0xea88                          |         
                                                 |     } while (1);
                                                 | label_2:
    0x0000eaae movw r4, 0x601d                   |     
    0x0000eab2 movt r4, 0xaaca                   |     r4 = 0xaaca601d;
    0x0000eab6 b 0xea88                          |     goto label_0;
                                                 | label_3:
    0x0000eab8 blx 0x31f4                        |     fcn_000031f4 ();
    0x0000eabc str r1, [sp, 0x310]               |     *(arg_310h) = r1;
    0x0000eabe movs r1, r0                       |     r1 = r0;
    0x0000eac0 lsls r4, r5, 0xe                  |     r4 = r5 << 0xe;
    0x0000eac2 movs r0, r0                       |     
    0x0000eac4 str r1, [sp, 0x160]               |     *(arg_160h) = r1;
    0x0000eac6 movs r1, r0                       |     r1 = 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 @ 0xfd40 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000fd40 ()                  | void fcn_0000fd40 (int16_t arg2, int16_t arg3) {
                                             |     int32_t var_0h;
                                             |     int32_t var_0h_2;
                                             |     int32_t var_8h;
                                             |     int32_t var_8h_2;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x0000fd40 invalid                       |     
    0x0000fd44 str r0, [r0, 0x38]            |     *((r0 + 0x38)) = r0;
    0x0000fd46 sub sp, 0x10                  |     
    0x0000fd48 mov r5, r1                    |     r5 = r1;
    0x0000fd4a mov r4, r2                    |     r4 = r2;
    0x0000fd4c adds r0, 0x10                 |     r0 += 0x10;
    0x0000fd4e ldr r1, [r0, 0xc]             |     r1 = *((r0 + 0xc));
    0x0000fd50 ldr r6, [pc, 0x60]            |     
    0x0000fd52 strd r2, r3, [sp]             |     __asm ("strd r2, r3, [sp]");
    0x0000fd54 movs r3, 0                    |     r3 = 0;
    0x0000fd56 lsls r2, r5, 0xa              |     r2 = r5 << 0xa;
    0x0000fd58 movs r3, 0                    |     r3 = 0;
    0x0000fd5a blx r1                        |     r0 = uint32_t (*r1)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x0000fd5c cmp r0, 0                     |     
    0x0000fd5e add r6, pc                    |     r6 = 0x1fb16;
                                             |     if (r0 >= 0) {
    0x0000fd60 blt 0xfd7e                    |         
    0x0000fd62 cmp.w r0, 0x400               |         
                                             |         if (r0 == 0x400) {
    0x0000fd66 bne 0xfd6c                    |             
    0x0000fd68 add sp, 0x10                  |             
    0x0000fd6a pop {r4, r5, r6, pc}          |             
                                             |         }
    0x0000fd6c rsb.w r2, r0, 0x400           |         r2 = 0x400 - r0;
    0x0000fd70 movs r1, 0                    |         r1 = 0;
    0x0000fd72 add r0, r4                    |         r0 += r4;
    0x0000fd74 add sp, 0x10                  |         
    0x0000fd76 pop.w {r4, r5, r6, lr}        |         
    0x0000fd7a b.w 0x35b8                    |         void (*0x35b8)() ();
                                             |     }
    0x0000fd7e ldr r3, [pc, 0x38]            |     r3 = *(0xfdba);
    0x0000fd80 movs r4, 0x45                 |     r4 = 0x45;
    0x0000fd82 ldr r3, [r6, r3]              |     r3 = *((r6 + r3));
    0x0000fd84 ldr r6, [r3]                  |     r6 = *(0xfdba);
    0x0000fd86 blx 0x357c                    |     r0 = sprintf_chk ()
    0x0000fd8a ldr r0, [r0]                  |     r0 = *(r0);
    0x0000fd8c blx 0x3468                    |     ext2fs_add_journal_inode3 ();
    0x0000fd90 ldr r1, [pc, 0x28]            |     
    0x0000fd92 mov r3, r0                    |     r3 = r0;
    0x0000fd94 strd r5, r3, [sp, 8]          |     __asm ("strd r5, r3, [var_8h]");
    0x0000fd98 mov r0, r6                    |     r0 = r6;
    0x0000fd9a ldr r3, [pc, 0x24]            |     
    0x0000fd9c ldr r2, [pc, 0x24]            |     
    0x0000fd9e add r1, pc                    |     r1 = 0x1fb5e;
    0x0000fda0 strd r4, r1, [sp]             |     __asm ("strd r4, r1, [sp]");
    0x0000fda4 movs r1, 1                    |     r1 = 1;
    0x0000fda6 add r3, pc                    |     r3 = 0x1fb6c;
    0x0000fda8 add r2, pc                    |     r2 = 0x1fb70;
    0x0000fdaa blx 0x3684                    |     ext2fs_write_inode ();
    0x0000fdae add sp, 0x10                  |     
    0x0000fdb0 pop {r4, r5, r6, pc}          |     
                                             | }
    ; 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 @ 0xfdc8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000fdc8 ()                  | void fcn_0000fdc8 (int16_t arg2, int16_t arg3) {
                                             |     int32_t var_0h;
                                             |     int32_t var_0h_2;
                                             |     int16_t var_8h;
                                             |     int16_t var_ch;
                                             |     r1 = arg2;
                                             |     r2 = arg3;
    0x0000fdc8 invalid                       |     
    0x0000fdcc str r0, [r0, 0x38]            |     *((r0 + 0x38)) = r0;
    0x0000fdce sub sp, 0x10                  |     
    0x0000fdd0 mov r4, r1                    |     r4 = r1;
    0x0000fdd2 adds r0, 0x10                 |     r0 += 0x10;
    0x0000fdd4 ldr r1, [r0, 0x10]            |     r1 = *((r0 + 0x10));
    0x0000fdd6 ldr r5, [pc, 0x64]            |     
    0x0000fdd8 strd r2, r3, [sp]             |     __asm ("strd r2, r3, [sp]");
    0x0000fddc lsls r2, r4, 0xa              |     r2 = r4 << 0xa;
    0x0000fdde movs r3, 0                    |     r3 = 0;
    0x0000fde0 blx r1                        |     r0 = uint32_t (*r1)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x0000fde2 cmp r0, 0                     |     
    0x0000fde4 add r5, pc                    |     r5 = 0x1fc26;
                                             |     if (r0 < 0) {
    0x0000fde6 blt 0xfdf8                    |         goto label_0;
                                             |     }
    0x0000fde8 cmp.w r0, 0x400               |     
    0x0000fdec ite ne                        |     
                                             |     if (r0 == 0x400) {
    0x0000fdee mvnne r0, 0x1b                |         r0 = ~0x1b;
                                             |     }
    0x0000fdf2 movs r0, 0                    |     r0 = 0;
                                             |     while (r0 == 0x1c) {
    0x0000fdf4 add sp, 0x10                  |         
    0x0000fdf6 pop {r4, r5, r6, pc}          |         
                                             | label_0:
    0x0000fdf8 blx 0x357c                    |         r0 = sprintf_chk ()
    0x0000fdfc ldr r0, [r0]                  |         r0 = *(r0);
    0x0000fdfe cmp r0, 0x1c                  |         
    0x0000fe00 it eq                         |         
                                             |         if (r0 != 0x1c) {
    0x0000fe02 mvneq r0, 0x1b                |             r0 = ~0x1b;
                                             |         }
    0x0000fe06 beq 0xfdf4                    |         
                                             |     }
    0x0000fe08 ldr r3, [pc, 0x34]            |     r3 = *(0xfe40);
    0x0000fe0a ldr r3, [r5, r3]              |     r3 = *((r5 + r3));
    0x0000fe0c movs r5, 0x52                 |     r5 = 0x52;
    0x0000fe0e ldr r6, [r3]                  |     r6 = *(0xfe40);
    0x0000fe10 blx 0x3468                    |     ext2fs_add_journal_inode3 ();
    0x0000fe14 ldr r1, [pc, 0x2c]            |     
    0x0000fe16 ldr r3, [pc, 0x30]            |     
    0x0000fe18 ldr r2, [pc, 0x30]            |     
    0x0000fe1a add r1, pc                    |     r1 = 0x1fc62;
    0x0000fe1c str r0, [sp, 0xc]             |     var_ch = r0;
    0x0000fe1e adds r1, 0xc                  |     r1 += 0xc;
    0x0000fe20 mov r0, r6                    |     r0 = r6;
    0x0000fe22 strd r5, r1, [sp]             |     __asm ("strd r5, r1, [sp]");
    0x0000fe26 add r3, pc                    |     r3 = 0x1fc74;
    0x0000fe28 add r2, pc                    |     r2 = 0x1fc78;
    0x0000fe2a movs r1, 1                    |     r1 = 1;
    0x0000fe2c str r4, [sp, 8]               |     var_8h = r4;
    0x0000fe2e blx 0x3684                    |     ext2fs_write_inode ();
    0x0000fe32 mvn r0, 0x1b                  |     r0 = ~0x1b;
    0x0000fe36 add sp, 0x10                  |     
    0x0000fe38 pop {r4, r5, r6, pc}          |     
                                             | }
    ; 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 @ 0x10abc */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00010abc ()                                      | void fcn_00010abc (int16_t arg1) {
                                                                 |     int16_t var_0h_3;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
    0x00010abc qaddhs r4, r7, r1                                 |     __asm ("qaddhs r4, r7, r1");
    0x00010ac0 ldr r3, [pc, 0x15c]                               |     
    0x00010ac2 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x00010ac6 mov r4, r0                                        |     r4 = r0;
    0x00010ac8 add r2, pc                                        |     r2 += pc;
    0x00010aca ldr r6, [r0, 0xc]                                 |     r6 = *((r0 + 0xc));
    0x00010acc sub sp, 0x18                                      |     
    0x00010ace ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00010ad0 ldr r7, [pc, 0x150]                               |     
    0x00010ad2 ldr r0, [r6, 0x3c]                                |     r0 = *((r6 + 0x3c));
    0x00010ad4 ldr r3, [r3]                                      |     r3 = *(0x10c20);
    0x00010ad6 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x00010ad8 mov.w r3, 0                                       |     r3 = 0;
    0x00010adc add r7, pc                                        |     r7 = 0x21704;
    0x00010ade blx 0x2f10                                        |     r0 = calloc (r0, r1);
    0x00010ae2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00010ae4 beq 0x10b6c                                       |         goto label_2;
                                                                 |     }
    0x00010ae6 ldrd r3, r2, [r4, 0x48]                           |     __asm ("ldrd r3, r2, [r4, 0x48]");
    0x00010aea mov r5, r0                                        |     r5 = r0;
    0x00010aec orrs r3, r2                                       |     r3 |= r2;
    0x00010aee beq 0x10bbe                                       |     
                                                                 |     while (r0 >= 0) {
                                                                 | label_0:
    0x00010af0 ldr r3, [r6, 0x40]                                |         r3 = *((r6 + 0x40));
    0x00010af2 mov r1, r4                                        |         r1 = r4;
    0x00010af4 mov r0, r5                                        |         r0 = r5;
    0x00010af6 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00010af8 blx r3                                            |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x00010afa ldr r3, [r6, 0x3c]                                |         r3 = *((r6 + 0x3c));
    0x00010afc add.w r0, r6, 0x10                                |         r0 = r6 + 0x10;
    0x00010b00 strd r5, r3, [sp]                                 |         __asm ("strd r5, r3, [sp]");
    0x00010b04 ldr r1, [r6, 0x20]                                |         r1 = *((r6 + 0x20));
    0x00010b06 ldrd r2, r3, [r4, 0x48]                           |         __asm ("ldrd r2, r3, [r4, 0x48]");
    0x00010b0a blx r1                                            |         uint32_t (*r1)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x00010b0c ldr r3, [r6, 0x3c]                                |         r3 = *((r6 + 0x3c));
    0x00010b0e mov r6, r0                                        |         r6 = r0;
    0x00010b10 cmp r3, r0                                        |         
                                                                 |         if (r3 != r0) {
    0x00010b12 beq 0x10b4c                                       |             
    0x00010b14 blx 0x357c                                        |             sprintf_chk ()
    0x00010b18 cmp r6, 0                                         |             
                                                                 |             if (r6 != 0) {
    0x00010b1a bne 0x10c10                                       |                 goto label_3;
                                                                 |             }
    0x00010b1c ldr r0, [r0]                                      |             r0 = *(r0);
                                                                 | label_1:
    0x00010b1e ldr r3, [pc, 0x108]                               |             r3 = *(0x10c2a);
    0x00010b20 ldr r6, [r4, 4]                                   |             r6 = *((r4 + 4));
    0x00010b22 ldr r3, [r7, r3]                                  |             r3 = *((r7 + r3));
    0x00010b24 ldr r4, [r3]                                      |             r4 = *(0x10c2a);
    0x00010b26 blx 0x3468                                        |             ext2fs_add_journal_inode3 ();
    0x00010b2a ldr r2, [pc, 0x100]                               |             
    0x00010b2c movw r1, 0x15b                                    |             r1 = 0x15b;
    0x00010b30 ldr r3, [pc, 0xfc]                                |             
    0x00010b32 strd r6, r0, [sp, 8]                              |             __asm ("strd r6, r0, [var_ch]");
    0x00010b36 mov r0, r4                                        |             r0 = r4;
    0x00010b38 add r2, pc                                        |             r2 = 0x2176a;
    0x00010b3a adds r2, 0x8c                                     |             r2 += 0x8c;
    0x00010b3c add r3, pc                                        |             r3 = 0x21770;
    0x00010b3e strd r1, r2, [sp]                                 |             __asm ("strd r1, r2, [sp]");
    0x00010b42 movs r1, 1                                        |             r1 = 1;
    0x00010b44 ldr r2, [pc, 0xec]                                |             
    0x00010b46 add r2, pc                                        |             r2 = 0x2177e;
    0x00010b48 blx 0x3684                                        |             ext2fs_write_inode ();
    0x00010b4a invalid                                           |             
                                                                 |         }
    0x00010b4c ldr r2, [pc, 0xe8]                                |         
    0x00010b4e ldr r3, [pc, 0xd0]                                |         r3 = *(0x10c22);
    0x00010b50 add r2, pc                                        |         r2 = 0x2178c;
    0x00010b52 ldr r3, [r2, r3]                                  |         r3 = *(0x2178c);
    0x00010b54 ldr r2, [r3]                                      |         r2 = *(0x2178c);
    0x00010b56 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x00010b58 eors r2, r3                                       |         r2 ^= r3;
    0x00010b5a mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00010b5e bne 0x10c18                                       |             goto label_4;
                                                                 |         }
    0x00010b60 mov r0, r5                                        |         r0 = r5;
    0x00010b62 add sp, 0x18                                      |         
    0x00010b64 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}            |         
    0x00010b68 b.w 0x3094                                        |         void (*0x3094)() ();
                                                                 | label_2:
    0x00010b6c blx 0x357c                                        |         sprintf_chk ()
    0x00010b70 ldr r3, [pc, 0xb4]                                |         r3 = *(0x10c28);
    0x00010b72 movs r2, 0xc                                      |         r2 = 0xc;
    0x00010b74 str r2, [r0]                                      |         *(r0) = r2;
    0x00010b76 mov r0, r2                                        |         r0 = r2;
    0x00010b78 ldr r5, [r4, 4]                                   |         r5 = *((r4 + 4));
    0x00010b7a movw r4, 0x149                                    |         r4 = 0x149;
    0x00010b7e ldr r3, [r7, r3]                                  |         r3 = *((r7 + r3));
    0x00010b80 ldr r6, [r3]                                      |         r6 = *(0x10c28);
    0x00010b82 blx 0x3468                                        |         ext2fs_add_journal_inode3 ();
    0x00010b86 ldr r1, [pc, 0xb4]                                |         
    0x00010b88 ldr r3, [pc, 0xb4]                                |         
    0x00010b8a ldr r2, [pc, 0xb8]                                |         
    0x00010b8c add r1, pc                                        |         r1 = 0x217ce;
    0x00010b8e str r0, [sp, 0xc]                                 |         var_ch = r0;
    0x00010b90 adds r1, 0x8c                                     |         r1 += 0x8c;
    0x00010b92 add r3, pc                                        |         r3 = 0x217d6;
    0x00010b94 add r2, pc                                        |         r2 = 0x217de;
    0x00010b96 strd r4, r1, [sp]                                 |         __asm ("strd r4, r1, [sp]");
    0x00010b98 asrs r0, r0                                       |         r0 >>= r0;
    0x00010b9a mov r0, r6                                        |         r0 = r6;
    0x00010b9c movs r1, 1                                        |         r1 = 1;
    0x00010b9e str r5, [sp, 8]                                   |         var_8h = r5;
    0x00010ba0 blx 0x3684                                        |         ext2fs_write_inode ();
    0x00010ba4 ldr r2, [pc, 0xa0]                                |         
    0x00010ba6 ldr r3, [pc, 0x78]                                |         r3 = *(0x10c22);
    0x00010ba8 add r2, pc                                        |         r2 = 0x217f4;
    0x00010baa ldr r3, [r2, r3]                                  |         r3 = *(0x217f4);
    0x00010bac ldr r2, [r3]                                      |         r2 = *(0x217f4);
    0x00010bae ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x00010bb0 eors r2, r3                                       |         r2 ^= r3;
    0x00010bb2 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00010bb6 bne 0x10c18                                       |             goto label_4;
                                                                 |         }
    0x00010bb8 add sp, 0x18                                      |         
    0x00010bba pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
    0x00010bbe mov.w r8, 1                                       |         r8 = 1;
    0x00010bc2 movs r3, 0                                        |         r3 = 0;
    0x00010bc4 add r2, sp, 0x10                                  |         r2 += var_10h;
    0x00010bc6 mov r1, r4                                        |         r1 = r4;
    0x00010bc8 mov r0, r6                                        |         r0 = r6;
    0x00010bca str.w r8, [sp, 0x10]                              |         __asm ("str.w r8, [var_10h]");
    0x00010bce bl 0x10410                                        |         r0 = fcn_00010410 (r0, r1, r2, r3, r4, r5);
    0x00010bd2 cmp r0, 0                                         |         
    0x00010bd4 bge 0x10af0                                       |         
                                                                 |     }
    0x00010bd6 ldr r3, [pc, 0x50]                                |     r3 = *(0x10c2a);
    0x00010bd8 ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x00010bda ldr.w sb, [r3]                                    |     sb = *(0x10c2a);
    0x00010bde blx 0x357c                                        |     r0 = sprintf_chk ()
    0x00010be2 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00010be4 ldr.w sl, [r4, 4]                                 |     sl = *((r4 + 4));
    0x00010be8 blx 0x3468                                        |     ext2fs_add_journal_inode3 ();
    0x00010bec ldr r3, [pc, 0x5c]                                |     
    0x00010bee mov r1, r8                                        |     r1 = r8;
    0x00010bf0 ldr r2, [pc, 0x5c]                                |     
    0x00010bf2 strd sl, r0, [sp, 8]                              |     __asm ("strd sl, r0, [var_ch]");
    0x00010bf6 mov r0, sb                                        |     r0 = sb;
    0x00010bf8 add r3, pc                                        |     r3 = 0x21848;
    0x00010bfa adds r3, 0xa0                                     |     r3 += 0xa0;
    0x00010bfc add r2, pc                                        |     r2 = 0x21850;
    0x00010bfe str r3, [sp, 4]                                   |     var_4h_3 = r3;
    0x00010c00 mov.w r3, 0x136                                   |     r3 = 0x136;
    0x00010c04 str r3, [sp]                                      |     *(sp) = r3;
    0x00010c06 ldr r3, [pc, 0x4c]                                |     
    0x00010c08 add r3, pc                                        |     r3 = 0x21862;
    0x00010c0a blx 0x3684                                        |     ext2fs_write_inode ();
    0x00010c0e b 0x10af0                                         |     goto label_0;
                                                                 | label_3:
    0x00010c10 movs r3, 0x1c                                     |     r3 = 0x1c;
    0x00010c12 str r3, [r0]                                      |     *(r0) = r3;
    0x00010c14 mov r0, r3                                        |     r0 = r3;
    0x00010c16 b 0x10b1e                                         |     goto label_1;
                                                                 | label_4:
    0x00010c18 blx 0x31f4                                        |     fcn_000031f4 ();
    0x00010c1c strb r4, [r3, 4]                                  |     *((r3 + 4)) = r4;
    0x00010c1e movs r1, r0                                       |     r1 = r0;
    0x00010c20 lsls r4, r5, 0xe                                  |     r4 = r5 << 0xe;
    0x00010c22 movs r0, r0                                       |     
    0x00010c24 strb r0, [r1, 4]                                  |     *((r1 + 4)) = r0;
    0x00010c26 movs r1, r0                                       |     r1 = r0;
    0x00010c28 lsls r0, r0, 0xf                                  |     r0 <<= 0xf;
    0x00010c2a movs r0, r0                                       |     
    0x00010c2c str r0, [r3, 0x50]                                |     *((r3 + 0x50)) = r0;
    0x00010c2e movs r0, r0                                       |     
    0x00010c30 str r0, [r1, 0x20]                                |     *((r1 + 0x20)) = r0;
    0x00010c32 movs r0, r0                                       |     
    0x00010c34 str r2, [r4, 0x44]                                |     *((r4 + 0x44)) = r2;
    0x00010c36 movs r0, r0                                       |     
    0x00010c38 strb r4, [r2, 2]                                  |     *((r2 + 2)) = r4;
    0x00010c3a movs r1, r0                                       |     r1 = r0;
    0x00010c3c str r4, [r0, 0x4c]                                |     *((r0 + 0x4c)) = r4;
    0x00010c3e movs r0, r0                                       |     
    0x00010c40 str r2, [r6, 0x18]                                |     *((r6 + 0x18)) = r2;
    0x00010c42 movs r0, r0                                       |     
    0x00010c44 str r4, [r2, 0x40]                                |     *((r2 + 0x40)) = r4;
    0x00010c46 movs r0, r0                                       |     
    0x00010c48 strb r4, [r7]                                     |     *(r7) = r4;
    0x00010c4a movs r1, r0                                       |     r1 = r0;
    0x00010c4c str r0, [r3, 0x44]                                |     *((r3 + 0x44)) = r0;
    0x00010c4e movs r0, r0                                       |     
    0x00010c50 str r0, [r4, 0x3c]                                |     *((r4 + 0x3c)) = r0;
    0x00010c52 movs r0, r0                                       |     
    0x00010c54 str r4, [r7, 0x10]                                |     *((r7 + 0x10)) = r4;
    0x00010c56 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 @ 0x10c58 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00010c58 ()                              | void fcn_00010c58 (int16_t arg1) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_0h_2;
                                                         |     int16_t var_4h_2;
                                                         |     int16_t var_8h_2;
                                                         |     int16_t var_ch_2;
                                                         |     r0 = arg1;
    0x00010c58 blmi 0x4a34a4                             |     __asm ("blmi aav.0x00016f84");
    0x00010c5c push {r4, lr}                             |     
    0x00010c5e sub sp, 8                                 |     
    0x00010c60 add r2, pc                                |     r2 += pc;
    0x00010c62 movs r4, 1                                |     r4 = 1;
    0x00010c64 ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x00010c66 ldr r3, [r3]                              |     r3 = *(r3);
    0x00010c68 str r3, [sp, 4]                           |     var_4h = r3;
    0x00010c6a mov.w r3, 0                               |     r3 = 0;
    0x00010c6e ldrd r3, r2, [r0, 0x48]                   |     __asm ("ldrd r3, r2, [var_0hx48]");
    0x00010c72 str r4, [sp]                              |     *(sp) = r4;
    0x00010c74 orrs r3, r2                               |     r3 |= r2;
                                                         |     if (r3 != r2) {
    0x00010c76 beq 0x10c84                               |         
    0x00010c78 mov r1, r0                                |         r1 = r0;
    0x00010c7a movs r3, 0                                |         r3 = 0;
    0x00010c7c ldr r0, [r0, 0xc]                         |         r0 = *(var_0hxc);
    0x00010c7e mov r2, sp                                |         r2 = sp;
    0x00010c80 bl 0x107a0                                |         fcn_000107a0 (r0, r1, r2, r3);
                                                         |     }
    0x00010c84 ldr r2, [pc, 0x20]                        |     
    0x00010c86 ldr r3, [pc, 0x1c]                        |     r3 = *(0x10ca6);
    0x00010c88 add r2, pc                                |     r2 = 0x21934;
    0x00010c8a ldr r3, [r2, r3]                          |     r3 = *(0x21934);
    0x00010c8c ldr r2, [r3]                              |     r2 = *(0x21934);
    0x00010c8e ldr r3, [sp, 4]                           |     r3 = var_4h;
    0x00010c90 eors r2, r3                               |     r2 ^= r3;
    0x00010c92 mov.w r3, 0                               |     r3 = 0;
                                                         |     if (r2 == r3) {
    0x00010c96 bne 0x10c9c                               |         
    0x00010c98 add sp, 8                                 |         
    0x00010c9a pop {r4, pc}                              |         
                                                         |     }
    0x00010c9c blx 0x31f4                                |     fcn_000031f4 ();
    0x00010ca0 ldr r4, [r0, 0x78]                        |     r4 = *((r0 + 0x78));
    0x00010ca2 movs r1, r0                               |     r1 = r0;
    0x00010ca4 lsls r4, r5, 0xe                          |     r4 = r5 << 0xe;
    0x00010ca6 movs r0, r0                               |     
    0x00010ca8 ldr r4, [r3, 0x74]                        |     r4 = *((r3 + 0x74));
    0x00010caa movs r1, r0                               |     r1 = r0;
    0x00010cac push.w {r4, r5, r6, r7, r8, lr}           |     
    0x00010cb0 sub sp, 0x10                              |     
    0x00010cb2 ldr r7, [pc, 0xcc]                        |     
    0x00010cb4 mov r5, r0                                |     r5 = r0;
    0x00010cb6 mov r8, r1                                |     r8 = r1;
    0x00010cb8 bl 0xf788                                 |     fcn_0000f788 ();
    0x00010cbc add r7, pc                                |     r7 = 0x21a42;
    0x00010cbe mov r4, r0                                |     r4 = r0;
    0x00010cc0 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00010cc2 beq 0x10d60                               |         goto label_0;
                                                         |     }
    0x00010cc4 ldr r0, [r5, 0x3c]                        |     r0 = *((r5 + 0x3c));
    0x00010cc6 blx 0x3450                                |     r0 = strerror (r0);
    0x00010cca mov r6, r0                                |     r6 = r0;
    0x00010ccc cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00010cce beq 0x10d70                               |         goto label_1;
                                                         |     }
    0x00010cd0 movs r2, 0x40                             |     r2 = 0x40;
    0x00010cd2 movs r1, 0                                |     r1 = 0;
    0x00010cd4 add.w r0, r4, 0x10                        |     r0 = r4 + 0x10;
    0x00010cd8 str.w r8, [r4, 4]                         |     __asm ("str.w r8, [r4, 4]");
    0x00010cdc str r5, [r4, 0xc]                         |     *((r4 + 0xc)) = r5;
    0x00010cde blx 0x35bc                                |     fcn_000035bc ();
    0x00010ce2 movs r3, 0                                |     r3 = 0;
    0x00010ce4 movs r2, 1                                |     r2 = 1;
    0x00010ce6 mov r1, r4                                |     r1 = r4;
    0x00010ce8 mov r0, r5                                |     r0 = r5;
    0x00010cea bl 0x10284                                |     fcn_00010284 (r0, r1, r2, r3, r4);
    0x00010cee mov r3, r1                                |     r3 = r1;
    0x00010cf0 cmp r0, 1                                 |     
    0x00010cf2 sbcs r1, r3, 0                            |     __asm ("sbcs r1, r3, 0");
                                                         |     if (r0 < 1) {
    0x00010cf6 blt 0x10d5a                               |         goto label_2;
                                                         |     }
    0x00010cf8 strd r0, r3, [r4, 0x48]                   |     __asm ("strd r0, r3, [r4, 0x48]");
    0x00010cfc mov r2, r0                                |     r2 = r0;
    0x00010cfe str r6, [sp]                              |     *(sp) = r6;
    0x00010d00 add.w r0, r5, 0x10                        |     r0 = r5 + 0x10;
    0x00010d04 ldr r1, [r5, 0x3c]                        |     r1 = *((r5 + 0x3c));
    0x00010d06 str r1, [sp, 4]                           |     var_4h_2 = r1;
    0x00010d08 ldr r1, [r5, 0x1c]                        |     r1 = *((r5 + 0x1c));
    0x00010d0a blx r1                                    |     uint32_t (*r1)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x00010d0c ldr r3, [r5, 0x3c]                        |     r3 = *((r5 + 0x3c));
    0x00010d0e mov r8, r0                                |     r8 = r0;
    0x00010d10 cmp r3, r0                                |     
                                                         |     if (r3 == r0) {
    0x00010d12 beq 0x10d50                               |         goto label_3;
                                                         |     }
    0x00010d14 blx 0x357c                                |     sprintf_chk ()
    0x00010d18 cmp.w r8, 0                               |     
                                                         |     if (r8 != 0) {
    0x00010d1c bne 0x10d68                               |         goto label_4;
                                                         |     }
    0x00010d1e ldr r0, [r0]                              |     r0 = *(r0);
                                                         |     do {
    0x00010d20 ldr r3, [pc, 0x60]                        |         r3 = *(0x10d84);
    0x00010d22 ldr r3, [r7, r3]                          |         r3 = *((r7 + r3));
    0x00010d24 ldr r7, [r4, 4]                           |         r7 = *((r4 + 4));
    0x00010d26 ldr.w r8, [r3]                            |         r8 = *(0x10d84);
    0x00010d2a blx 0x3468                                |         ext2fs_add_journal_inode3 ();
    0x00010d2e ldr r3, [pc, 0x58]                        |         
    0x00010d30 movs r1, 1                                |         r1 = 1;
    0x00010d32 ldr r2, [pc, 0x58]                        |         
    0x00010d34 str r0, [sp, 0xc]                         |         var_ch_2 = r0;
    0x00010d36 mov r0, r8                                |         r0 = r8;
    0x00010d38 add r3, pc                                |         r3 = 0x21ac6;
    0x00010d3a str r7, [sp, 8]                           |         var_8h_2 = r7;
    0x00010d3c adds r3, 0xb0                             |         r3 += 0xb0;
    0x00010d3e add r2, pc                                |         r2 = 0x21ad0;
    0x00010d40 str r3, [sp, 4]                           |         var_4h_2 = r3;
    0x00010d42 movw r3, 0x216                            |         r3 = 0x216;
    0x00010d46 str r3, [sp]                              |         *(sp) = r3;
    0x00010d48 ldr r3, [pc, 0x44]                        |         
    0x00010d4a add r3, pc                                |         r3 = 0x21ade;
    0x00010d4c blx 0x3684                                |         ext2fs_write_inode ();
                                                         | label_3:
    0x00010d50 ldr r3, [r5, 0x40]                        |         r3 = *((r5 + 0x40));
    0x00010d52 mov r1, r6                                |         r1 = r6;
    0x00010d54 mov r0, r4                                |         r0 = r4;
    0x00010d56 ldr r3, [r3, 4]                           |         r3 = *((r3 + 4));
    0x00010d58 blx r3                                    |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
                                                         | label_2:
    0x00010d5a mov r0, r6                                |         r0 = r6;
    0x00010d5c blx 0x3098                                |         fcn_00003098 ();
                                                         | label_0:
    0x00010d60 mov r0, r4                                |         r0 = r4;
    0x00010d62 add sp, 0x10                              |         
    0x00010d64 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_4:
    0x00010d68 movs r3, 5                                |         r3 = 5;
    0x00010d6a str r3, [r0]                              |         *(r0) = r3;
    0x00010d6c mov r0, r3                                |         r0 = r3;
    0x00010d6e b 0x10d20                                 |         
                                                         |     } while (1);
                                                         | label_1:
    0x00010d70 mov r0, r4                                |     r0 = r4;
    0x00010d72 mov r4, r6                                |     r4 = r6;
    0x00010d74 blx 0x3098                                |     fcn_00003098 ();
    0x00010d78 mov r0, r4                                |     r0 = r4;
    0x00010d7a add sp, 0x10                              |     
    0x00010d7c pop.w {r4, r5, r6, r7, r8, pc}            |     
                                                         | }

[*] Function sprintf used 31 times mkfs.ext3