[*] Binary protection state of kmod

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


[*] Function system tear down of kmod

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/kmod @ 0x2c84 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00002c84 ()                                      | void fcn_00002c84 (int16_t arg1) {
                                                                 |     int16_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_10h_2;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     r0 = arg1;
    0x00002c84 ldr r1, [pc, 0x3d0]                               |     
    0x00002c86 movs r3, 0                                        |     r3 = 0;
    0x00002c88 ldr r2, [pc, 0x3d0]                               |     r2 = *(0x305c);
    0x00002c8a push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00002c8e sub sp, 0x2c                                      |     
    0x00002c90 add r1, pc                                        |     r1 = 0x5cec;
    0x00002c92 mov r7, r0                                        |     r7 = r0;
    0x00002c94 ldr r2, [r1, r2]                                  |     
    0x00002c96 ldr r2, [r2]                                      |     r2 = *(0x5cec);
    0x00002c98 str r2, [sp, 0x24]                                |     var_24h = r2;
    0x00002c9a mov.w r2, 0                                       |     r2 = 0;
    0x00002c9e strd r3, r3, [sp, 0x18]                           |     __asm ("strd r3, r3, [var_18h]");
    0x00002ca2 bl 0xd738                                         |     r0 = fcn_0000d738 (r0);
    0x00002ca6 mov r4, r0                                        |     r4 = r0;
    0x00002ca8 mov r6, r0                                        |     r6 = r0;
    0x00002caa cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00002cac beq.w 0x2e86                                      |         goto label_13;
                                                                 |     }
                                                                 | label_6:
    0x00002cb0 ldr r3, [pc, 0x3ac]                               |     
    0x00002cb2 add r3, pc                                        |     r3 = 0x5d16;
    0x00002cb4 ldr r5, [r3]                                      |     r5 = *(0x5d16);
    0x00002cb6 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00002cb8 beq.w 0x2ed2                                      |         goto label_14;
                                                                 |     }
                                                                 | label_3:
    0x00002cbc ldr r1, [pc, 0x3a4]                               |     
    0x00002cbe mov r0, r5                                        |     r0 = r5;
    0x00002cc0 add r1, pc                                        |     r1 = 0x5d28;
    0x00002cc2 blx 0x2058                                        |     r0 = fcn_00002058 ();
    0x00002cc6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00002cc8 beq.w 0x2eec                                      |         goto label_15;
                                                                 |     }
                                                                 | label_7:
    0x00002ccc add r1, sp, 0x18                                  |     r1 += var_18h;
    0x00002cce mov r0, r7                                        |     r0 = r7;
    0x00002cd0 bl 0xe7b0                                         |     r0 = fcn_0000e7b0 (r0, r1, r2, r3);
    0x00002cd4 subs r6, r0, 0                                    |     r6 = r0 - 0;
                                                                 |     if (r6 < r0) {
    0x00002cd6 blt.w 0x2e78                                      |         goto label_16;
                                                                 |     }
    0x00002cda ldr r3, [pc, 0x38c]                               |     
    0x00002cdc ldr.w r8, [sp, 0x18]                              |     r8 = var_18h;
    0x00002ce0 add r3, pc                                        |     r3 = 0x5d4e;
    0x00002ce2 ldr r0, [r3]                                      |     r0 = *(0x5d4e);
    0x00002ce4 mov r4, r8                                        |     r4 = r8;
    0x00002ce6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00002ce8 beq.w 0x2ea4                                      |         goto label_17;
                                                                 |     }
    0x00002cec ldr.w sb, [pc, 0x37c]                             |     
    0x00002cf0 add sb, pc                                        |     sb = 0x5d60;
    0x00002cf2 mov r1, sb                                        |     r1 = sb;
    0x00002cf4 blx 0x2058                                        |     r0 = fcn_00002058 ();
    0x00002cf8 mov r7, r0                                        |     r7 = r0;
    0x00002cfa cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00002cfc beq.w 0x2f4c                                      |         goto label_18;
                                                                 |     }
    0x00002d00 cmp r4, 0                                         |     
    0x00002d02 and lr, r0, 0xa7                                  |     lr = r0 & 0xa7;
                                                                 | label_4:
    0x00002d06 movs r0, r0                                       |     
    0x00002d08 invalid                                           |     
    0x00002d0c ldr.w sb, [pc, 0x368]                             |     
    0x00002d10 add r7, pc                                        |     r7 += pc;
    0x00002d12 add r8, pc                                        |     r8 += pc;
    0x00002d14 add sb, pc                                        |     sb = 0x5d90;
    0x00002d16 b 0x2d32                                          |     
                                                                 |     while (r3 != 0) {
    0x00002d18 mov r1, r5                                        |         r1 = r5;
    0x00002d1a mov r0, r3                                        |         r0 = r3;
    0x00002d1c blx 0x2058                                        |         r0 = fcn_00002058 ();
    0x00002d20 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00002d22 beq 0x2e1c                                        |             goto label_19;
                                                                 |         }
                                                                 | label_2:
    0x00002d24 mov r1, r4                                        |         r1 = r4;
    0x00002d26 ldr r0, [sp, 0x18]                                |         r0 = var_18h;
    0x00002d28 bl 0xaaac                                         |         r0 = fcn_0000aaac (r0, r1);
    0x00002d2c mov r4, r0                                        |         r4 = r0;
    0x00002d2e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00002d30 beq 0x2d9e                                        |             goto label_20;
                                                                 |         }
                                                                 | label_0:
    0x00002d32 mov r0, r4                                        |         r0 = r4;
    0x00002d34 bl 0xe784                                         |         r0 = fcn_0000e784 (r0);
    0x00002d38 mov r5, r0                                        |         r5 = r0;
    0x00002d3a mov r0, r4                                        |         r0 = r4;
    0x00002d3c bl 0xe78c                                         |         fcn_0000e78c (r0);
    0x00002d40 ldr r3, [r7]                                      |         r3 = *(r7);
    0x00002d42 mov sl, r0                                        |         sl = r0;
    0x00002d44 cmp r3, 0                                         |         
    0x00002d46 bne 0x2d18                                        |         
                                                                 |     }
    0x00002d48 mov r1, r8                                        |     r1 = r8;
    0x00002d4a mov r0, r5                                        |     r0 = r5;
    0x00002d4c blx 0x2058                                        |     r0 = fcn_00002058 ();
    0x00002d50 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00002d52 beq 0x2e30                                        |         goto label_21;
                                                                 |     }
    0x00002d54 mov r1, sb                                        |     r1 = sb;
    0x00002d56 mov r0, r5                                        |     r0 = r5;
    0x00002d58 blx 0x2058                                        |     r0 = fcn_00002058 ();
    0x00002d5c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00002d5e beq 0x2e30                                        |         goto label_21;
                                                                 |     }
    0x00002d60 ldr r3, [pc, 0x318]                               |     
    0x00002d62 add r3, pc                                        |     r3 = 0x5de2;
    0x00002d64 ldrb.w fp, [r3]                                   |     fp = *(r3);
    0x00002d68 cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x00002d6c beq.w 0x2f38                                      |         goto label_22;
                                                                 |     }
    0x00002d70 mov r0, r5                                        |     r0 = r5;
    0x00002d72 blx 0x1d74                                        |     fcn_00001d74 ();
    0x00002d76 ldr r1, [pc, 0x308]                               |     
    0x00002d78 rsb.w r3, r0, 0xf                                 |     r3 = 0xf - r0;
    0x00002d7c mov r2, r5                                        |     r2 = r5;
    0x00002d7e movs r0, 1                                        |     r0 = 1;
    0x00002d80 strd sl, fp, [sp, 4]                              |     __asm ("strd sl, fp, [var_8h]");
    0x00002d84 add r1, pc                                        |     r1 = 0x5e0a;
    0x00002d86 str r1, [sp]                                      |     *(sp) = r1;
    0x00002d88 ldr r1, [pc, 0x2f8]                               |     
    0x00002d8a add r1, pc                                        |     r1 = 0x5e12;
    0x00002d8c blx 0x1c1c                                        |     system (r0)
    0x00002d90 mov r1, r4                                        |     r1 = r4;
    0x00002d92 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x00002d94 bl 0xaaac                                         |     r0 = fcn_0000aaac (r0, r1);
    0x00002d98 mov r4, r0                                        |     r4 = r0;
    0x00002d9a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00002d9c bne 0x2d32                                        |         goto label_0;
                                                                 |     }
                                                                 | label_20:
    0x00002d9e ldr r3, [pc, 0x2e8]                               |     
    0x00002da0 ldr r4, [sp, 0x1c]                                |     r4 = var_1ch;
    0x00002da2 add r3, pc                                        |     
    0x00002da4 ldr r3, [r3]                                      |     r3 = *(0x5e30);
    0x00002da6 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00002da8 bne 0x2e42                                        |         goto label_23;
                                                                 |     }
    0x00002daa cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00002dac beq.w 0x304c                                      |         goto label_24;
                                                                 |     }
    0x00002db0 ldr r7, [pc, 0x2d8]                               |     
    0x00002db2 ldr.w sb, [pc, 0x2dc]                             |     
    0x00002db6 ldr.w r8, [pc, 0x2dc]                             |     
    0x00002dba add r7, pc                                        |     r7 = 0x5e4a;
    0x00002dbc add sb, pc                                        |     sb = 0x5e52;
    0x00002dbe add r8, pc                                        |     r8 = 0x5e58;
    0x00002dc0 b 0x2de8                                          |     
                                                                 |     while (r1 != 0) {
    0x00002dc2 strd r1, ip, [sp, 0x10]                           |         __asm ("strd r1, ip, [var_10h]");
    0x00002dc6 ldr r1, [r5, 0x18]                                |         r1 = *((r5 + 0x18));
    0x00002dc8 strd lr, r2, [sp, 4]                              |         __asm ("strd lr, r2, [var_8h]");
    0x00002dcc ldr r2, [pc, 0x2c8]                               |         
    0x00002dce str r1, [sp, 0xc]                                 |         var_ch = r1;
    0x00002dd0 ldr r1, [pc, 0x2c8]                               |         
    0x00002dd2 str r0, [sp]                                      |         *(sp) = r0;
    0x00002dd4 add r2, pc                                        |         r2 = 0x5e70;
    0x00002dd6 movs r0, 1                                        |         r0 = 1;
    0x00002dd8 add r1, pc                                        |         r1 = 0x5e78;
    0x00002dda blx 0x1c1c                                        |         system (r0)
                                                                 | label_1:
    0x00002dde mov r0, r5                                        |         r0 = r5;
    0x00002de0 blx 0x1cb0                                        |         fcn_00001cb0 ();
    0x00002de4 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x00002de6 beq 0x2e52                                        |             goto label_25;
                                                                 |         }
    0x00002de8 mov r5, r4                                        |         r5 = r4;
    0x00002dea ldr r4, [r4]                                      |         r4 = *(r4);
    0x00002dec ldrd r2, r1, [r5, 8]                              |         __asm ("ldrd r2, r1, [r5, 8]");
    0x00002df0 ldr r3, [r5, 0x10]                                |         r3 = *((r5 + 0x10));
    0x00002df2 ldr r0, [r5, 4]                                   |         r0 = *((r5 + 4));
    0x00002df4 ldrb.w ip, [r7]                                   |         ip = *(r7);
    0x00002df8 str r4, [sp, 0x1c]                                |         var_1ch = r4;
    0x00002dfa cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x00002dfc beq.w 0x2f1e                                      |             goto label_26;
                                                                 |         }
    0x00002e00 ldr.w lr, [r5, 0x14]                              |         
    0x00002e04 cmp r1, 0                                         |         
    0x00002e06 bne 0x2dc2                                        |         
                                                                 |     }
    0x00002e08 strd r2, ip, [sp, 8]                              |     __asm ("strd r2, ip, [var_ch]");
    0x00002e0c mov r1, r8                                        |     r1 = r8;
    0x00002e0e strd r0, lr, [sp]                                 |     __asm ("strd r0, lr, [sp]");
    0x00002e12 mov r2, sb                                        |     r2 = sb;
    0x00002e14 movs r0, 1                                        |     r0 = 1;
    0x00002e16 blx 0x1c1c                                        |     system (r0)
    0x00002e1a b 0x2dde                                          |     goto label_1;
                                                                 | label_19:
    0x00002e1c ldr r3, [pc, 0x280]                               |     
    0x00002e1e mov r2, sl                                        |     r2 = sl;
    0x00002e20 ldr r1, [pc, 0x280]                               |     
    0x00002e22 movs r0, 1                                        |     r0 = 1;
    0x00002e24 add r3, pc                                        |     r3 = 0x5ec8;
    0x00002e26 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00002e28 add r1, pc                                        |     r1 = 0x5ed0;
    0x00002e2a blx 0x1c1c                                        |     system (r0)
    0x00002e2e b 0x2d24                                          |     goto label_2;
                                                                 | label_21:
    0x00002e30 mov r1, sl                                        |     r1 = sl;
    0x00002e32 mov r0, r5                                        |     r0 = r5;
    0x00002e34 add r2, sp, 0x1c                                  |     r2 += var_1ch;
    0x00002e36 bl 0x2ba8                                         |     r0 = fcn_00002ba8 (r0, r1, r2);
    0x00002e3a subs r6, r0, 0                                    |     r6 = r0 - 0;
                                                                 |     if (r6 >= r0) {
    0x00002e3c bge.w 0x2d24                                      |         goto label_2;
                                                                 |     }
    0x00002e40 ldr r4, [sp, 0x1c]                                |     r4 = var_1ch;
                                                                 |     if (r4 == 0) {
                                                                 | label_23:
    0x00002e42 cbz r4, 0x2e52                                    |         goto label_25;
                                                                 |     }
                                                                 |     do {
    0x00002e44 mov r0, r4                                        |         r0 = r4;
    0x00002e46 ldr r4, [r4]                                      |         r4 = *(r4);
    0x00002e48 str r4, [sp, 0x1c]                                |         var_1ch = r4;
    0x00002e4a blx 0x1cb0                                        |         fcn_00001cb0 ();
    0x00002e4e cmp r4, 0                                         |         
    0x00002e50 bne 0x2e44                                        |         
                                                                 |     } while (r4 != 0);
                                                                 | label_25:
    0x00002e52 ldr r4, [sp, 0x18]                                |     r4 = var_18h;
                                                                 | label_5:
    0x00002e54 mov r0, r4                                        |     r0 = r4;
    0x00002e56 bl 0xe794                                         |     fcn_0000e794 (r0);
                                                                 |     do {
                                                                 | label_9:
    0x00002e5a ldr r2, [pc, 0x24c]                               |         
    0x00002e5c ldr r3, [pc, 0x1fc]                               |         r3 = *(0x305c);
    0x00002e5e add r2, pc                                        |         r2 = 0x5f0c;
    0x00002e60 ldr r3, [r2, r3]                                  |         r3 = *(0x5f0c);
    0x00002e62 ldr r2, [r3]                                      |         r2 = *(0x5f0c);
    0x00002e64 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x00002e66 eors r2, r3                                       |         r2 ^= r3;
    0x00002e68 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00002e6c bne.w 0x3052                                      |             goto label_27;
                                                                 |         }
    0x00002e70 mov r0, r6                                        |         r0 = r6;
    0x00002e72 add sp, 0x2c                                      |         
    0x00002e74 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_16:
    0x00002e78 cmp r4, 0                                         |         
    0x00002e7a it eq                                             |         
                                                                 |         if (r4 == 0) {
    0x00002e7c cmneq r6, 2                                       |             __asm ("cmneq r6, 2");
                                                                 |         }
                                                                 |         if (r4 != 0) {
    0x00002e80 bne 0x2f00                                        |             goto label_28;
                                                                 |         }
                                                                 | label_8:
    0x00002e82 movs r6, 0                                        |         r6 = 0;
    0x00002e84 b 0x2e5a                                          |         
                                                                 |     } while (1);
                                                                 | label_13:
    0x00002e86 ldr r3, [pc, 0x224]                               |     
    0x00002e88 add r3, pc                                        |     r3 = 0x5f3a;
    0x00002e8a ldr r5, [r3]                                      |     r5 = *(0x5f3a);
    0x00002e8c cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00002e8e beq.w 0x3018                                      |         goto label_29;
                                                                 |     }
    0x00002e92 ldr r1, [pc, 0x21c]                               |     
    0x00002e94 mov r0, r5                                        |     r0 = r5;
    0x00002e96 add r1, pc                                        |     r1 = 0x5f4c;
    0x00002e98 blx 0x2058                                        |     r0 = fcn_00002058 ();
                                                                 |     if (r0 == 0) {
    0x00002e9c cbz r0, 0x2eb4                                    |         goto label_30;
                                                                 |     }
    0x00002e9e ldr r6, [pc, 0x214]                               |     
    0x00002ea0 add r6, pc                                        |     r6 = 0x5f5a;
    0x00002ea2 b 0x2cbc                                          |     goto label_3;
                                                                 | label_17:
    0x00002ea4 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00002ea8 bne.w 0x2d06                                      |         goto label_4;
                                                                 |     }
                                                                 | label_12:
    0x00002eac mov r4, r8                                        |     r4 = r8;
    0x00002eae mov r7, r6                                        |     r7 = r6;
                                                                 |     do {
    0x00002eb0 mov r6, r7                                        |         r6 = r7;
    0x00002eb2 b 0x2e54                                          |         goto label_5;
                                                                 | label_30:
    0x00002eb4 mov r0, r7                                        |         r0 = r7;
    0x00002eb6 bl 0xd730                                         |         fcn_0000d730 (r0);
    0x00002eba ldr r3, [pc, 0x1fc]                               |         
    0x00002ebc mov r2, r0                                        |         r2 = r0;
    0x00002ebe ldr r1, [pc, 0x1fc]                               |         
    0x00002ec0 movs r0, 1                                        |         r0 = 1;
    0x00002ec2 add r3, pc                                        |         r3 = 0x5f80;
    0x00002ec4 ldrb r3, [r3]                                     |         r3 = *(r3);
    0x00002ec6 add r1, pc                                        |         r1 = 0x5f88;
    0x00002ec8 blx 0x1c1c                                        |         system (r0)
                                                                 | label_11:
    0x00002ecc ldr r6, [pc, 0x1f0]                               |         
    0x00002ece add r6, pc                                        |         r6 = 0x5f92;
    0x00002ed0 b 0x2cb0                                          |         goto label_6;
                                                                 | label_14:
    0x00002ed2 ldr r1, [pc, 0x1f0]                               |         
    0x00002ed4 mov r3, r6                                        |         r3 = r6;
    0x00002ed6 ldr r2, [pc, 0x1f0]                               |         
    0x00002ed8 movs r0, 1                                        |         r0 = 1;
    0x00002eda add r1, pc                                        |         r1 = 0x5fa4;
    0x00002edc ldrb r1, [r1]                                     |         r1 = *(r1);
    0x00002ede add r2, pc                                        |         r2 = 0x5fac;
    0x00002ee0 str r1, [sp]                                      |         *(sp) = r1;
    0x00002ee2 ldr r1, [pc, 0x1e8]                               |         
    0x00002ee4 add r1, pc                                        |         r1 = 0x5fb6;
    0x00002ee6 blx 0x1c1c                                        |         system (r0)
    0x00002eea b 0x2ccc                                          |         goto label_7;
                                                                 | label_15:
    0x00002eec ldr r3, [pc, 0x1e0]                               |         
    0x00002eee mov r2, r6                                        |         r2 = r6;
    0x00002ef0 ldr r1, [pc, 0x1e0]                               |         
    0x00002ef2 movs r0, 1                                        |         r0 = 1;
    0x00002ef4 add r3, pc                                        |         r3 = 0x5fc8;
    0x00002ef6 ldrb r3, [r3]                                     |         r3 = *(r3);
    0x00002ef8 add r1, pc                                        |         r1 = 0x5fd0;
    0x00002efa blx 0x1c1c                                        |         system (r0)
    0x00002efe b 0x2e82                                          |         goto label_8;
                                                                 | label_28:
    0x00002f00 mov r0, r7                                        |         r0 = r7;
    0x00002f02 bl 0xd730                                         |         r0 = fcn_0000d730 (r0);
    0x00002f06 mov r4, r0                                        |         r4 = r0;
    0x00002f08 rsbs r0, r6, 0                                    |         r0 = r6 - ;
    0x00002f0a blx 0x1b54                                        |         fcn_00001b54 ();
    0x00002f0e ldr r1, [pc, 0x1c8]                               |         
    0x00002f10 mov r3, r0                                        |         r3 = r0;
    0x00002f12 mov r2, r4                                        |         r2 = r4;
    0x00002f14 movs r0, 3                                        |         r0 = 3;
    0x00002f16 add r1, pc                                        |         r1 = 0x5ff4;
    0x00002f18 bl 0x8a58                                         |         fcn_00008a58 (r0);
    0x00002f1c b 0x2e5a                                          |         goto label_9;
                                                                 | label_26:
    0x00002f1e strd r1, ip, [sp, 8]                              |         __asm ("strd r1, ip, [var_ch]");
    0x00002f22 ldr r2, [r5, 0x18]                                |         r2 = *((r5 + 0x18));
    0x00002f24 ldr r1, [pc, 0x1b4]                               |         
    0x00002f26 strd r0, r2, [sp]                                 |         __asm ("strd r0, r2, [sp]");
    0x00002f2a movs r0, 1                                        |         r0 = 1;
    0x00002f2c ldr r2, [pc, 0x1b0]                               |         
    0x00002f2e add r1, pc                                        |         r1 = 0x600e;
    0x00002f30 add r2, pc                                        |         r2 = 0x6014;
    0x00002f32 blx 0x1c1c                                        |         system (r0)
    0x00002f36 b 0x2dde                                          |         goto label_1;
                                                                 | label_22:
    0x00002f38 ldr r1, [pc, 0x1a8]                               |         
    0x00002f3a mov r3, sl                                        |         r3 = sl;
    0x00002f3c mov r2, r5                                        |         r2 = r5;
    0x00002f3e str.w fp, [sp]                                    |         __asm ("str.w fp, [sp]");
    0x00002f42 movs r0, 1                                        |         r0 = 1;
    0x00002f44 add r1, pc                                        |         r1 = 0x602c;
    0x00002f46 blx 0x1c1c                                        |         system (r0)
    0x00002f4a b 0x2d24                                          |         goto label_2;
                                                                 | label_18:
    0x00002f4c str r0, [sp, 0x20]                                |         var_20h = r0;
    0x00002f4e cmp.w r8, 0                                       |         
    0x00002f52 beq 0x2eb0                                        |         
                                                                 |     } while (r8 == 0);
    0x00002f54 ldr.w fp, [pc, 0x190]                             |     
    0x00002f58 add.w sl, sp, 0x20                                |     sl += var_20h;
    0x00002f5c add fp, pc                                        |     fp = 0x6048;
                                                                 |     do {
    0x00002f5e mov r0, r4                                        |         r0 = r4;
    0x00002f60 bl 0xe784                                         |         r0 = fcn_0000e784 (r0);
    0x00002f64 mov r5, r0                                        |         r5 = r0;
    0x00002f66 mov r0, r4                                        |         r0 = r4;
    0x00002f68 bl 0xe78c                                         |         fcn_0000e78c (r0);
    0x00002f6c mov r1, sb                                        |         r1 = sb;
    0x00002f6e mov r6, r0                                        |         r6 = r0;
    0x00002f70 mov r0, r5                                        |         r0 = r5;
    0x00002f72 blx 0x2058                                        |         r0 = fcn_00002058 ();
                                                                 |         if (r0 != 0) {
    0x00002f76 cbz r0, 0x2f82                                    |             
    0x00002f78 mov r1, fp                                        |             r1 = fp;
    0x00002f7a mov r0, r5                                        |             r0 = r5;
    0x00002f7c blx 0x2058                                        |             r0 = fcn_00002058 ();
                                                                 |             if (r0 != 0) {
    0x00002f80 cbnz r0, 0x2f90                                   |                 goto label_31;
                                                                 |             }
                                                                 |         }
    0x00002f82 mov r1, r6                                        |         r1 = r6;
    0x00002f84 mov r0, r5                                        |         r0 = r5;
    0x00002f86 mov r2, sl                                        |         r2 = sl;
    0x00002f88 bl 0x2ba8                                         |         r0 = fcn_00002ba8 (r0, r1, r2);
    0x00002f8c subs r7, r0, 0                                    |         r7 = r0 - 0;
                                                                 |         if (r7 < r0) {
    0x00002f8e blt 0x3000                                        |             goto label_32;
                                                                 |         }
                                                                 | label_31:
    0x00002f90 mov r1, r4                                        |         r1 = r4;
    0x00002f92 mov r0, r8                                        |         r0 = r8;
    0x00002f94 bl 0xaaac                                         |         r0 = fcn_0000aaac (r0, r1);
    0x00002f98 mov r4, r0                                        |         r4 = r0;
    0x00002f9a cmp r0, 0                                         |         
    0x00002f9c bne 0x2f5e                                        |         
                                                                 |     } while (r0 != 0);
    0x00002f9e ldr r5, [sp, 0x20]                                |     r5 = var_20h;
    0x00002fa0 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00002fa2 beq 0x3012                                        |         goto label_33;
                                                                 |     }
    0x00002fa4 ldr r6, [pc, 0x144]                               |     
    0x00002fa6 ldr.w sb, [pc, 0x148]                             |     
    0x00002faa ldr.w r8, [pc, 0x148]                             |     
    0x00002fae add r6, pc                                        |     r6 = 0x609e;
    0x00002fb0 add sb, pc                                        |     sb = 0x60a6;
    0x00002fb2 add r8, pc                                        |     r8 = 0x60ac;
    0x00002fb4 b 0x2fd2                                          |     
                                                                 |     while (r0 != 0) {
    0x00002fb6 strd r0, lr, [sp, 0xc]                            |         __asm ("strd r0, lr, [var_ch]");
    0x00002fba ldr r0, [r4, 0x18]                                |         r0 = *((r4 + 0x18));
    0x00002fbc strd ip, r1, [sp]                                 |         __asm ("strd ip, r1, [sp]");
    0x00002fc0 mov r1, r8                                        |         r1 = r8;
    0x00002fc2 str r0, [sp, 8]                                   |         var_8h = r0;
    0x00002fc4 movs r0, 1                                        |         r0 = 1;
    0x00002fc6 blx 0x1c1c                                        |         system (r0)
                                                                 | label_10:
    0x00002fca mov r0, r4                                        |         r0 = r4;
    0x00002fcc blx 0x1cb0                                        |         fcn_00001cb0 ();
                                                                 |         if (r5 == 0) {
    0x00002fd0 cbz r5, 0x3012                                    |             goto label_33;
                                                                 |         }
    0x00002fd2 mov r4, r5                                        |         r4 = r5;
    0x00002fd4 ldr r5, [r5]                                      |         r5 = *(r5);
    0x00002fd6 ldrd r1, r0, [r4, 8]                              |         __asm ("ldrd r1, r0, [r4, 8]");
    0x00002fda ldr r2, [r4, 0x10]                                |         r2 = *((r4 + 0x10));
    0x00002fdc ldr r3, [r4, 4]                                   |         r3 = *((r4 + 4));
    0x00002fde ldrb.w lr, [r6]                                   |         
    0x00002fe2 str r5, [sp, 0x20]                                |         var_20h = r5;
                                                                 |         if (r1 == 0) {
    0x00002fe4 cbz r1, 0x3038                                    |             goto label_34;
                                                                 |         }
    0x00002fe6 ldr.w ip, [r4, 0x14]                              |         ip = *((r4 + 0x14));
    0x00002fea cmp r0, 0                                         |         
    0x00002fec bne 0x2fb6                                        |         
                                                                 |     }
    0x00002fee strd r1, lr, [sp, 4]                              |     __asm ("strd r1, lr, [var_8h]");
    0x00002ff2 movs r0, 1                                        |     r0 = 1;
    0x00002ff4 mov r1, sb                                        |     r1 = sb;
    0x00002ff6 str.w ip, [sp]                                    |     __asm ("str.w ip, [sp]");
    0x00002ffa blx 0x1c1c                                        |     system (r0)
    0x00002ffe b 0x2fca                                          |     goto label_10;
                                                                 | label_32:
    0x00003000 ldr r4, [sp, 0x20]                                |     r4 = var_20h;
                                                                 |     if (r4 == 0) {
    0x00003002 cbz r4, 0x3012                                    |         goto label_33;
                                                                 |     }
                                                                 |     do {
    0x00003004 mov r0, r4                                        |         r0 = r4;
    0x00003006 ldr r4, [r4]                                      |         r4 = *(r4);
    0x00003008 str r4, [sp, 0x20]                                |         var_20h = r4;
    0x0000300a blx 0x1cb0                                        |         fcn_00001cb0 ();
    0x0000300e cmp r4, 0                                         |         
    0x00003010 bne 0x3004                                        |         
                                                                 |     } while (r4 != 0);
                                                                 | label_33:
    0x00003012 ldr r4, [sp, 0x18]                                |     r4 = var_18h;
    0x00003014 mov r6, r7                                        |     r6 = r7;
    0x00003016 b 0x2e54                                          |     goto label_5;
                                                                 | label_29:
    0x00003018 mov r0, r7                                        |     r0 = r7;
    0x0000301a bl 0xd730                                         |     fcn_0000d730 (r0);
    0x0000301e ldr r1, [pc, 0xd8]                                |     
    0x00003020 mov r3, r0                                        |     r3 = r0;
    0x00003022 ldr r2, [pc, 0xd8]                                |     
    0x00003024 movs r0, 1                                        |     r0 = 1;
    0x00003026 add r1, pc                                        |     r1 = 0x6124;
    0x00003028 ldrb r1, [r1]                                     |     r1 = *(r1);
    0x0000302a add r2, pc                                        |     r2 = 0x612c;
    0x0000302c str r1, [sp]                                      |     *(sp) = r1;
    0x0000302e ldr r1, [pc, 0xd0]                                |     
    0x00003030 add r1, pc                                        |     r1 = 0x6136;
    0x00003032 blx 0x1c1c                                        |     system (r0)
    0x00003036 b 0x2ecc                                          |     goto label_11;
                                                                 | label_34:
    0x00003038 strd r0, lr, [sp, 4]                              |     __asm ("strd r0, lr, [var_8h]");
    0x0000303c movs r0, 1                                        |     r0 = 1;
    0x0000303e ldr r1, [r4, 0x18]                                |     r1 = *((r4 + 0x18));
    0x00003040 str r1, [sp]                                      |     *(sp) = r1;
    0x00003042 ldr r1, [pc, 0xc0]                                |     
    0x00003044 add r1, pc                                        |     r1 = 0x614e;
    0x00003046 blx 0x1c1c                                        |     system (r0)
    0x0000304a b 0x2fca                                          |     goto label_10;
                                                                 | label_24:
    0x0000304c ldr.w r8, [sp, 0x18]                              |     r8 = var_18h;
    0x00003050 b 0x2eac                                          |     goto label_12;
                                                                 | label_27:
    0x00003052 blx 0x1ed8                                        |     fcn_00001ed8 ();
    0x00003056 nop                                               |     
    0x00003058 str r0, [r5, r5]                                  |     *((r5 + r5)) = r0;
    0x0000305a movs r1, r0                                       |     r1 = r0;
    0x0000305c lsls r4, r4, 7                                    |     r4 <<= 7;
    0x0000305e movs r0, r0                                       |     
    0x00003060 strh r2, [r7, r7]                                 |     *((r7 + r7)) = r2;
    0x00003062 movs r1, r0                                       |     r1 = r0;
    0x00003064 strb.w r0, [r0]                                   |     *(r0) = r0;
    0x00003068 strh r4, [r1, r7]                                 |     *((r1 + r7)) = r4;
    0x0000306a movs r1, r0                                       |     r1 = r0;
    0x0000306c ldrb.w r0, [r8, r0]                               |     r0 = *((r8 + r0));
    0x00003070 strh r4, [r3, r6]                                 |     *((r3 + r6)) = r4;
    0x00003072 movs r1, r0                                       |     r1 = r0;
    0x00003074 invalid                                           |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/kmod @ 0x5e78 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00005e78 ()                                      | void fcn_00005e78 (int16_t arg_0h, int16_t arg_4h, int16_t arg_b30h, int16_t arg_1320h, int16_t arg_3b00h, int16_t arg1, int16_t arg2, int16_t arg3, FILE * arg4) {
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_bp_28h;
                                                                 |     int16_t var_804h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch_3;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t sig;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_sp_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     size_t nmemb;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_50h;
                                                                 |     int16_t var_54h;
                                                                 |     FILE * stream;
                                                                 |     int16_t var_5ch;
                                                                 |     int16_t var_60h;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_68h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_70h;
                                                                 |     int16_t var_74h;
                                                                 |     int16_t var_78h;
                                                                 |     int16_t var_a8h;
                                                                 |     int16_t var_b0h;
                                                                 |     int16_t var_110h;
                                                                 |     int16_t var_10ch;
                                                                 |     FILE * var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h_2;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_28h_2;
                                                                 |     int16_t var_1b0h;
                                                                 |     int16_t var_84h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00005e78 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x00005e7c mov fp, r2                                        |     
    0x00005e7e sub sp, 0x8c                                      |     
    0x00005e80 ldr r2, [pc, 0x1d8]                               |     
    0x00005e82 mov r8, r0                                        |     r8 = r0;
    0x00005e84 mov r0, r1                                        |     r0 = r1;
    0x00005e86 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00005e88 mov r7, r1                                        |     r7 = r1;
    0x00005e8a ldr r3, [pc, 0x1d4]                               |     r3 = *(0x6062);
    0x00005e8c add r2, pc                                        |     r2 = 0xbeec;
    0x00005e8e mov.w sb, 0                                       |     sb = 0;
    0x00005e92 ldr r3, [r2, r3]                                  |     
    0x00005e94 ldr r3, [r3]                                      |     r3 = *(0xbeec);
    0x00005e96 str r3, [sp, 0x84]                                |     var_84h = r3;
    0x00005e98 mov.w r3, 0                                       |     r3 = 0;
    0x00005e9c blx 0x1e30                                        |     fcn_00001e30 ();
    0x00005ea0 ldr r3, [pc, 0x1c0]                               |     
    0x00005ea2 str r0, [sp, 0x14]                                |     var_14h = r0;
    0x00005ea4 add r3, pc                                        |     r3 = 0xbf0c;
    0x00005ea6 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00005ea8 ldr r3, [pc, 0x1bc]                               |     
    0x00005eaa add r3, pc                                        |     r3 = 0xbf16;
    0x00005eac str r3, [sp, 0xc]                                 |     var_ch = r3;
                                                                 |     do {
                                                                 | label_0:
    0x00005eae mov r0, r7                                        |         r0 = r7;
    0x00005eb0 blx 0x1fac                                        |         r0 = strcspn (r0, r1);
    0x00005eb4 mov r4, r0                                        |         r4 = r0;
    0x00005eb6 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00005eb8 beq.w 0x5fc0                                      |             goto label_63;
                                                                 |         }
                                                                 | label_2:
    0x00005ebc ldrb r3, [r4, 0x13]                               |         r3 = *((r4 + 0x13));
    0x00005ebe add.w r5, r4, 0x13                                |         r5 = r4 + 0x13;
    0x00005ec2 ldr.w r6, [r8]                                    |         r6 = *(r8);
    0x00005ec6 cmp r3, 0x2e                                      |         
                                                                 |         if (r3 == 0x2e) {
    0x00005ec8 beq.w 0x5fdc                                      |             goto label_64;
                                                                 |         }
                                                                 | label_3:
    0x00005ecc ldr r1, [sp, 8]                                   |         r1 = var_8h;
    0x00005ece mov r0, r5                                        |         r0 = r5;
    0x00005ed0 blx 0x2058                                        |         r0 = fcn_00002058 ();
    0x00005ed4 cmp r0, 0                                         |         
    0x00005ed6 beq 0x5eae                                        |         
                                                                 |     } while (r0 == 0);
    0x00005ed8 ldr r1, [sp, 0xc]                                 |     r1 = var_ch;
    0x00005eda mov r0, r5                                        |     r0 = r5;
    0x00005edc blx 0x2058                                        |     r0 = fcn_00002058 ();
    0x00005ee0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00005ee2 beq 0x5eae                                        |         goto label_0;
                                                                 |     }
    0x00005ee4 add.w r6, r6, 0x1000                              |     r6 += 0x1000;
    0x00005ee8 ldr r6, [r6, 0x18]                                |     r6 = *((r6 + 0x18));
                                                                 |     if (r6 == 0) {
    0x00005eea cbz r6, 0x5efe                                    |         goto label_65;
                                                                 |     }
                                                                 | label_1:
    0x00005eec adds r1, r6, 4                                    |     r1 = r6 + 4;
    0x00005eee mov r0, r5                                        |     r0 = r5;
    0x00005ef0 blx 0x2058                                        |     r0 = fcn_00002058 ();
    0x00005ef4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00005ef6 beq 0x5eae                                        |         goto label_0;
                                                                 |     }
    0x00005ef8 ldr r6, [r6]                                      |     r6 = *(r6);
    0x00005efa cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00005efc bne 0x5eec                                        |         goto label_1;
                                                                 |     }
                                                                 | label_65:
    0x00005efe mov r0, r5                                        |     r0 = r5;
    0x00005f00 blx 0x1d74                                        |     r0 = fcn_00001d74 ();
    0x00005f04 mov r6, r0                                        |     r6 = r0;
    0x00005f06 ldr r0, [sp, 4]                                   |     r0 = var_4h;
    0x00005f08 add.w sl, r6, fp                                  |     sl = r6 + fp;
    0x00005f0c add.w r1, sl, 2                                   |     r1 = sl + 2;
    0x00005f10 bl 0x96c4                                         |     r0 = fcn_000096c4 (r0, r1);
    0x00005f14 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00005f16 blt 0x6004                                        |         goto label_66;
                                                                 |     }
    0x00005f18 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00005f1a adds r2, r6, 1                                    |     r2 = r6 + 1;
    0x00005f1c mov r1, r5                                        |     r1 = r5;
    0x00005f1e ldr r3, [r3]                                      |     r3 = *(r3);
    0x00005f20 add.w r0, r3, fp                                  |     r0 = r3 + fp;
    0x00005f24 str r3, [sp, 0x10]                                |     var_10h_2 = r3;
    0x00005f26 blx 0x1d90                                        |     feof (r0);
    0x00005f2a ldrb r3, [r4, 0x12]                               |     r3 = *((r4 + 0x12));
    0x00005f2c cmp r3, 8                                         |     
                                                                 |     if (r3 == 8) {
    0x00005f2e beq 0x5ff4                                        |         goto label_67;
                                                                 |     }
    0x00005f30 cmp r3, 4                                         |     
                                                                 |     if (r3 != 4) {
    0x00005f32 beq 0x5f56                                        |         
    0x00005f34 ldr r0, [sp, 0x14]                                |         r0 = var_14h;
    0x00005f36 movs r3, 0                                        |         r3 = 0;
    0x00005f38 add r2, sp, 0x18                                  |         r2 += var_18h_2;
    0x00005f3a mov r1, r5                                        |         r1 = r5;
    0x00005f3c blx 0x1f38                                        |         r0 = fcn_00001f38 ();
    0x00005f40 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00005f42 blt 0x6032                                        |             goto label_68;
                                                                 |         }
    0x00005f44 ldr r3, [sp, 0x28]                                |         r3 = var_28h_2;
    0x00005f46 and r3, r3, 0xf000                                |         r3 &= 0xf000;
    0x00005f4a cmp.w r3, 0x8000                                  |         
                                                                 |         if (r3 == 0x8000) {
    0x00005f4e beq 0x5ff4                                        |             goto label_67;
                                                                 |         }
    0x00005f50 cmp.w r3, 0x4000                                  |         
                                                                 |         if (r3 != 0x4000) {
    0x00005f54 bne 0x6024                                        |             goto label_69;
                                                                 |         }
                                                                 |     }
    0x00005f56 ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x00005f58 movs r2, 0                                        |     r2 = 0;
    0x00005f5a mov r1, r5                                        |     r1 = r5;
    0x00005f5c blx 0x1cfc                                        |     r0 = fcn_00001cfc ();
    0x00005f60 subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x00005f62 blt 0x6014                                        |         goto label_70;
                                                                 |     }
    0x00005f64 blx 0x20a0                                        |     r0 = fcn_000020a0 ();
    0x00005f68 mov r5, r0                                        |     r5 = r0;
    0x00005f6a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00005f6c beq 0x6042                                        |         goto label_71;
                                                                 |     }
    0x00005f6e ldr r2, [sp, 0x10]                                |     r2 = var_10h_2;
    0x00005f70 movs r3, 0x2f                                     |     r3 = 0x2f;
    0x00005f72 mov r1, r0                                        |     r1 = r0;
    0x00005f74 mov r0, r8                                        |     r0 = r8;
    0x00005f76 strh.w r3, [r2, sl]                               |     *((r2 + sl)) = r3;
    0x00005f7a add.w r2, sl, 1                                   |     r2 = sl + 1;
    0x00005f7e ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00005f80 bl 0x5e78                                         |     r0 = fcn_00005e78 (r0, r1, r2, r3, r4, r5, r6);
    0x00005f84 mov sb, r0                                        |     sb = r0;
    0x00005f86 mov r0, r5                                        |     r0 = r5;
    0x00005f88 blx 0x1e90                                        |     fcn_00001e90 ();
                                                                 | label_4:
    0x00005f8c cmp.w sb, 0                                       |     
                                                                 |     if (sb >= 0) {
    0x00005f90 bge 0x5eae                                        |         goto label_0;
                                                                 |     }
    0x00005f92 ldr r4, [sp, 0x10]                                |     r4 = var_10h_2;
    0x00005f94 rsb.w r0, sb, 0                                   |     r0 = sb - ;
    0x00005f98 mov.w sb, 0                                       |     sb = 0;
    0x00005f9c strb.w sb, [r4, sl]                               |     *((r4 + sl)) = sb;
    0x00005fa0 blx 0x1b54                                        |     fcn_00001b54 ();
    0x00005fa4 ldr r1, [pc, 0xc4]                                |     
    0x00005fa6 mov r3, r0                                        |     r3 = r0;
    0x00005fa8 mov r2, r4                                        |     r2 = r4;
    0x00005faa movs r0, 3                                        |     r0 = 3;
    0x00005fac add r1, pc                                        |     r1 = 0xc01c;
    0x00005fae bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00005fb2 mov r0, r7                                        |     r0 = r7;
    0x00005fb4 blx 0x1fac                                        |     r0 = strcspn (r0, r1);
    0x00005fb8 mov r4, r0                                        |     r4 = r0;
    0x00005fba cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00005fbc bne.w 0x5ebc                                      |         goto label_2;
                                                                 |     }
                                                                 | label_63:
    0x00005fc0 ldr r2, [pc, 0xac]                                |     
    0x00005fc2 ldr r3, [pc, 0x9c]                                |     r3 = *(0x6062);
    0x00005fc4 add r2, pc                                        |     r2 = 0xc038;
    0x00005fc6 ldr r3, [r2, r3]                                  |     r3 = *(0xc038);
    0x00005fc8 ldr r2, [r3]                                      |     r2 = *(0xc038);
    0x00005fca ldr r3, [sp, 0x84]                                |     r3 = var_84h;
    0x00005fcc eors r2, r3                                       |     r2 ^= r3;
    0x00005fce mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00005fd2 bne 0x6056                                        |         goto label_72;
                                                                 |     }
    0x00005fd4 mov r0, sb                                        |     r0 = sb;
    0x00005fd6 add sp, 0x8c                                      |     
    0x00005fd8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_64:
    0x00005fdc ldrb r3, [r4, 0x14]                               |     r3 = *((r4 + 0x14));
    0x00005fde cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00005fe0 beq.w 0x5eae                                      |         goto label_0;
                                                                 |     }
    0x00005fe4 cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x00005fe6 bne.w 0x5ecc                                      |         goto label_3;
                                                                 |     }
    0x00005fea ldrb r3, [r4, 0x15]                               |     r3 = *((r4 + 0x15));
    0x00005fec cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00005fee bne.w 0x5ecc                                      |         goto label_3;
                                                                 |     }
    0x00005ff2 b 0x5eae                                          |     goto label_0;
                                                                 | label_67:
    0x00005ff4 ldr r3, [sp, 0x10]                                |     r3 = var_10h_2;
    0x00005ff6 mov r2, r6                                        |     r2 = r6;
    0x00005ff8 mov r1, fp                                        |     r1 = fp;
    0x00005ffa mov r0, r8                                        |     r0 = r8;
    0x00005ffc bl 0x5a4c                                         |     r0 = fcn_00005a4c (r0, r1, r2, r3, r4, r5, r6);
    0x00006000 mov sb, r0                                        |     sb = r0;
    0x00006002 b 0x5f8c                                          |     goto label_4;
                                                                 | label_66:
    0x00006004 ldr r1, [pc, 0x6c]                                |     
    0x00006006 movs r0, 3                                        |     r0 = 3;
    0x00006008 mvn sb, 0xb                                       |     sb = ~0xb;
    0x0000600c add r1, pc                                        |     r1 = 0xc084;
    0x0000600e bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006012 b 0x5eae                                          |     goto label_0;
                                                                 | label_70:
    0x00006014 ldr r1, [pc, 0x60]                                |     
    0x00006016 mov r3, r5                                        |     r3 = r5;
    0x00006018 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0000601a movs r0, 3                                        |     r0 = 3;
    0x0000601c add r1, pc                                        |     r1 = 0xc098;
    0x0000601e bl 0x8a58                                         |     fcn_00008a58 (r0);
                                                                 |     do {
    0x00006020 ldc2 p7, c14, [fp, -0x110]                        |         __asm ("ldc2 p7, c14, [fp, -0x110]");
                                                                 | label_69:
    0x00006024 ldr r1, [pc, 0x54]                                |         
    0x00006026 movs r0, 3                                        |         r0 = 3;
    0x00006028 ldr r2, [sp, 0x10]                                |         r2 = var_10h_2;
    0x0000602a add r1, pc                                        |         r1 = 0xc0aa;
    0x0000602c bl 0x8a58                                         |         fcn_00008a58 (r0);
    0x00006030 b 0x5eae                                          |         goto label_0;
                                                                 | label_68:
    0x00006032 ldr r1, [pc, 0x4c]                                |         
    0x00006034 mov r3, r5                                        |         r3 = r5;
    0x00006036 ldr r2, [sp, 0x14]                                |         r2 = var_14h;
    0x00006038 movs r0, 3                                        |         r0 = 3;
    0x0000603a add r1, pc                                        |         r1 = 0xc0c0;
    0x0000603c bl 0x8a58                                         |         fcn_00008a58 (r0);
    0x00006040 b 0x5eae                                          |         goto label_0;
                                                                 | label_71:
    0x00006042 ldr r1, [pc, 0x40]                                |         
    0x00006044 mov r2, r4                                        |         r2 = r4;
    0x00006046 movs r0, 3                                        |         r0 = 3;
    0x00006048 add r1, pc                                        |         r1 = 0xc0d2;
    0x0000604a bl 0x8a58                                         |         fcn_00008a58 (r0);
    0x0000604e mov r0, r4                                        |         r0 = r4;
    0x00006050 blx 0x1e60                                        |         fcn_00001e60 ();
    0x00006054 b 0x5eae                                          |         goto label_0;
                                                                 | label_72:
    0x00006056 blx 0x1ed8                                        |         fcn_00001ed8 ();
    0x0000605a nop                                               |         
    0x0000605c subs r4, r5, 5                                    |         r4 = r5 - 5;
    0x0000605e movs r1, r0                                       |         r1 = r0;
    0x00006060 lsls r4, r4, 7                                    |         r4 <<= 7;
    0x00006062 movs r0, r0                                       |         
                                                                 |         if (r0 >= r0) {
    0x00006064 bge 0x6088                                        |             goto label_73;
                                                                 |         }
    0x00006066 movs r0, r0                                       |         
                                                                 |         if (r0 >= r0) {
    0x00006068 bge 0x6090                                        |             goto label_74;
                                                                 |         }
    0x0000606a movs r0, r0                                       |         
    0x0000606c bls 0x6020                                        |         
                                                                 |     } while (r0 < r0);
    0x0000606e movs r0, r0                                       |     
    0x00006070 subs r4, r6, 0                                    |     r4 = r6 - 0;
    0x00006072 movs r1, r0                                       |     r1 = r0;
    0x00006074 udf 0xc4                                          |     __asm ("udf 0xc4");
                                                                 | label_73:
    0x00006088 push.w {r4, r5, r6, r7, r8, lr}                   |     
    0x0000608c mov r6, r1                                        |     r6 = r1;
    0x0000608e ldr r1, [pc, 0xa8]                                |     r1 = *(0x613a);
                                                                 | label_74:
    0x00006090 sub sp, 0x110                                     |     
    0x00006092 mov r4, sp                                        |     r4 = sp;
    0x00006094 mov.w r2, 0x100                                   |     r2 = 0x100;
    0x00006098 ldr r3, [pc, 0xa0]                                |     
    0x0000609a mov r8, r0                                        |     r8 = r0;
    0x0000609c add r1, pc                                        |     r1 += pc;
    0x0000609e mov r0, r6                                        |     r0 = r6;
    0x000060a0 ldr r3, [r1, r3]                                  |     r3 = *((r1 + r3));
    0x000060a2 ldr r3, [r3]                                      |     r3 = *(0x613c);
    0x000060a4 str r3, [sp, 0x10c]                               |     var_10ch = r3;
    0x000060a6 mov.w r3, 0                                       |     r3 = 0;
    0x000060aa add r3, sp, 0xc                                   |     r3 += var_ch_2;
    0x000060ac strd r3, r2, [r4]                                 |     __asm ("strd r3, r2, [r4]");
    0x000060b0 movs r3, 0                                        |     r3 = 0;
    0x000060b2 strb r3, [r4, 8]                                  |     var_60h = r3;
    0x000060b4 blx 0x1b90                                        |     r0 = fcn_00001b90 ();
                                                                 |     if (r0 == 0) {
    0x000060b8 cbz r0, 0x611e                                    |         goto label_75;
                                                                 |     }
    0x000060ba mov r7, r0                                        |     r7 = r0;
    0x000060bc mov r0, r6                                        |     r0 = r6;
    0x000060be blx 0x1d74                                        |     r0 = fcn_00001d74 ();
    0x000060c2 mov r5, r0                                        |     r5 = r0;
    0x000060c4 mov r0, r4                                        |     r0 = r4;
    0x000060c6 adds r1, r5, 2                                    |     r1 = r5 + 2;
    0x000060c8 bl 0x96c4                                         |     r0 = fcn_000096c4 (r0, r1);
    0x000060cc cmp r0, 0                                         |     
    0x000060ce it lt                                             |     
                                                                 |     if (r0 >= 0) {
    0x000060d0 mvnlt r5, 0xb                                     |         r5 = ~0xb;
                                                                 |     }
                                                                 |     if (r0 >= 0) {
    0x000060d4 blt 0x60f6                                        |         
    0x000060d6 ldr r3, [r4]                                      |         r3 = *(r4);
    0x000060d8 mov r2, r5                                        |         r2 = r5;
    0x000060da mov r1, r6                                        |         r1 = r6;
    0x000060dc mov r0, r3                                        |         r0 = r3;
    0x000060de blx 0x1d90                                        |         feof (r0);
    0x000060e2 movs r2, 0x2f                                     |         r2 = 0x2f;
    0x000060e4 mov r3, r0                                        |         r3 = r0;
    0x000060e6 strh r2, [r3, r5]                                 |         *((r3 + r5)) = r2;
    0x000060e8 mov r0, r8                                        |         r0 = r8;
    0x000060ea adds r2, r5, 1                                    |         r2 = r5 + 1;
    0x000060ec mov r3, r4                                        |         r3 = r4;
    0x000060ee mov r1, r7                                        |         r1 = r7;
    0x000060f0 bl 0x5e78                                         |         r0 = fcn_00005e78 (r0, r1, r2, r3, r4, r5, r6);
    0x000060f4 mov r5, r0                                        |         r5 = r0;
                                                                 |     }
    0x000060f6 mov r0, r7                                        |     r0 = r7;
    0x000060f8 blx 0x1e90                                        |     fcn_00001e90 ();
                                                                 |     do {
    0x000060fc mov r0, r4                                        |         r0 = r4;
    0x000060fe bl 0x9704                                         |         fcn_00009704 (r0);
    0x00006102 ldr r2, [pc, 0x3c]                                |         r2 = *(0x6142);
                                                                 | label_5:
    0x00006104 ldr r3, [pc, 0x34]                                |         r3 = *(0x613c);
    0x00006106 add r2, pc                                        |         r2 += pc;
    0x00006108 ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x0000610a ldr r2, [r3]                                      |         r2 = *(0x613c);
    0x0000610c ldr r3, [sp, 0x10c]                               |         r3 = var_10ch;
    0x0000610e eors r2, r3                                       |         r2 ^= r3;
    0x00006110 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00006114 bne 0x6134                                        |             goto label_76;
                                                                 |         }
    0x00006116 mov r0, r5                                        |         r0 = r5;
    0x00006118 add sp, 0x110                                     |         
    0x0000611a pop.w {r4, r5, r6, r7, r8, pc}                    |         
                                                                 | label_75:
    0x0000611e blx 0x207c                                        |         fcn_0000207c ();
    0x00006122 ldr r1, [pc, 0x20]                                |         
    0x00006124 mov r2, r6                                        |         r2 = r6;
    0x00006126 ldr r5, [r0]                                      |         r5 = *(r0);
    0x00006128 movs r0, 3                                        |         r0 = 3;
    0x0000612a add r1, pc                                        |         r1 = 0xc274;
    0x0000612c rsbs r5, r5, 0                                    |         r5 -= ;
    0x0000612e bl 0x8a58                                         |         fcn_00008a58 (r0);
    0x00006132 b 0x60fc                                          |         
                                                                 |     } while (1);
                                                                 | label_76:
    0x00006134 blx 0x1ed8                                        |     fcn_00001ed8 ();
    0x00006138 adds r4, r3, 5                                    |     r4 = r3 + 5;
    0x0000613a movs r1, r0                                       |     r1 = r0;
    0x0000613c lsls r4, r4, 7                                    |     r4 <<= 7;
    0x0000613e movs r0, r0                                       |     
    0x00006140 adds r2, r6, 3                                    |     r2 = r6 + 3;
    0x00006142 movs r1, r0                                       |     r1 = r0;
                                                                 |     if (r1 >= r0) {
    0x00006144 bge 0x6104                                        |         goto label_5;
                                                                 |     }
    0x00006146 movs r0, r0                                       |     
    0x00006148 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0000614c movs r4, 0                                        |     r4 = 0;
    0x0000614e vpush {d8}                                        |     __asm ("vpush {d8}");
    0x00006152 sub.w sp, sp, 0x3b00                              |     
    0x00006156 sub sp, 0x34                                      |     
    0x00006158 mov sl, r4                                        |     sl = r4;
    0x0000615a ldr.w r2, [pc, 0xb58]                             |     
    0x0000615e add r3, sp, 0x78                                  |     r3 += var_78h;
    0x00006160 str r4, [r3]                                      |     *(r3) = r4;
    0x00006162 add.w r5, sp, 0xb30                               |     r5 += arg_b30h;
    0x00006166 ldr.w r3, [pc, 0xb50]                             |     r3 = *(0x6cba);
    0x0000616a add.w fp, sp, 0x330                               |     
    0x0000616e add r2, pc                                        |     r2 = 0xce28;
    0x00006170 strd r0, r1, [sp, 0x1c]                           |     __asm ("strd r0, r1, [sp, 0x1c]");
    0x00006174 str r5, [sp, 0x24]                                |     var_24h = r5;
    0x00006176 add.w r1, sp, 0x3b00                              |     r1 += arg_3b00h;
    0x0000617a ldr r3, [r2, r3]                                  |     
    0x0000617c add r2, sp, 0xb0                                  |     r2 += var_b0h;
    0x0000617e ldr.w sb, [pc, 0xb3c]                             |     
    0x00006182 adds r1, 0x2c                                     |     r1 += 0x2c;
    0x00006184 ldr.w r8, [pc, 0xb38]                             |     
    0x00006188 sub.w r0, fp, 0x2c                                |     r0 = fp - 0x2c;
    0x0000618c ldr.w r7, [pc, 0xb34]                             |     
    0x00006190 ldr r3, [r3]                                      |     r3 = *(0xce28);
    0x00006192 str r3, [r1]                                      |     *(r1) = r3;
    0x00006194 mov.w r3, 0                                       |     r3 = 0;
    0x00006198 mov r6, r2                                        |     r6 = r2;
    0x0000619a mov r1, r4                                        |     r1 = r4;
    0x0000619c str r2, [sp, 0x4c]                                |     var_4ch = r2;
    0x0000619e movw r2, 0x101c                                   |     r2 = 0x101c;
    0x000061a2 str r4, [sp, 0x2c]                                |     var_sp_2ch = r4;
    0x000061a4 add sb, pc                                        |     sb = 0xce66;
    0x000061a6 str r0, [sp, 0x30]                                |     var_30h = r0;
    0x000061a8 add r8, pc                                        |     r8 = 0xce6c;
    0x000061aa blx 0x1c64                                        |     uname ();
    0x000061ae add r3, sp, 0x110                                 |     r3 += var_110h;
    0x000061b0 sub.w r0, r6, 0x2c                                |     r0 = r6 - 0x2c;
    0x000061b4 mov r1, r4                                        |     r1 = r4;
    0x000061b6 movs r2, 0x24                                     |     r2 = 0x24;
    0x000061b8 add r7, pc                                        |     r7 = 0xce80;
    0x000061ba mov r5, r3                                        |     r5 = r3;
    0x000061bc str r0, [sp, 0x48]                                |     var_48h = r0;
    0x000061be str r4, [sp, 0x28]                                |     var_28h = r4;
    0x000061c0 strd r4, r4, [sp, 0x38]                           |     __asm ("strd r4, r4, [sp, 0x38]");
    0x000061c4 strd r4, r4, [sp, 0x40]                           |     __asm ("strd r4, r4, [sp, 0x40]");
    0x000061c8 str r4, [sp, 0x34]                                |     nmemb = r4;
    0x000061ca str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000061cc blx 0x1c64                                        |     uname ();
                                                                 |     do {
                                                                 | label_6:
    0x000061d0 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x000061d2 mov r2, r7                                        |         r2 = r7;
    0x000061d4 ldrd r0, r1, [sp, 0x1c]                           |         __asm ("ldrd r0, r1, [sig]");
    0x000061d8 str r3, [sp]                                      |         *(sp) = r3;
    0x000061da mov r3, r8                                        |         r3 = r8;
    0x000061dc str r4, [r5]                                      |         *(r5) = r4;
    0x000061de blx 0x1cd4                                        |         r0 = fcn_00001cd4 ();
    0x000061e2 adds r2, r0, 1                                    |         r2 = r0 + 1;
                                                                 |         if (r2 == r0) {
    0x000061e4 beq.w 0x63b0                                      |             goto label_77;
                                                                 |         }
    0x000061e8 sub.w r3, r0, 0x3f                                |         r3 = r0 - 0x3f;
    0x000061ec cmp r3, 0x38                                      |         
                                                                 |         if (r3 <= 0x38) {
    0x000061ee bhi 0x622e                                        |             
                                                                 |             /* switch table (57 cases) at 0x61f4 */
    0x000061f0 tbb [pc, r3]                                      |             __asm ("tbb [0x000061f8]");
                                                                 |         }
    0x0000622e ldr.w r1, [pc, 0xa98]                             |         
    0x00006232 mov r2, r0                                        |         r2 = r0;
    0x00006234 movs r0, 3                                        |         r0 = 3;
    0x00006236 add r1, pc                                        |         r1 = 0xcf04;
    0x00006238 bl 0x8a58                                         |         fcn_00008a58 (r0);
                                                                 | label_10:
    0x0000623c ldr r0, [sp, 0x30]                                |         r0 = var_30h;
    0x0000623e movs r4, 1                                        |         r4 = 1;
    0x00006240 bl 0x4a74                                         |         fcn_00004a74 (r0);
                                                                 | label_7:
    0x00006244 ldr r0, [sp, 0x2c]                                |         r0 = var_sp_2ch;
    0x00006246 blx 0x1cb0                                        |         fcn_00001cb0 ();
    0x0000624a ldr r0, [sp, 0x28]                                |         r0 = var_28h;
    0x0000624c blx 0x1cb0                                        |         fcn_00001cb0 ();
    0x00006250 ldr.w r2, [pc, 0xa78]                             |         
    0x00006254 add.w r1, sp, 0x3b00                              |         r1 += arg_3b00h;
    0x00006258 ldr.w r3, [pc, 0xa5c]                             |         r3 = *(0x6cb8);
    0x0000625c adds r1, 0x2c                                     |         r1 += 0x2c;
    0x0000625e add r2, pc                                        |         r2 = 0xcf2e;
    0x00006260 ldr r3, [r2, r3]                                  |         r3 = *(0xcf2e);
    0x00006262 ldr r2, [r3]                                      |         r2 = *(0xcf2e);
    0x00006264 ldr r3, [r1]                                      |         r3 = *(r1);
    0x00006266 eors r2, r3                                       |         r2 ^= r3;
    0x00006268 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0000626c bne.w 0x78fe                                      |             goto label_78;
                                                                 |         }
    0x00006270 mov r0, r4                                        |         r0 = r4;
    0x00006272 add.w sp, sp, 0x3b00                              |         
    0x00006276 add sp, 0x34                                      |         
    0x00006278 vpop {d8}                                         |         __asm ("vpop {d8}");
    0x0000627c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00006280 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x00006282 sub.w r3, r3, 0xa20                               |         r3 -= 0xa20;
    0x00006286 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00006288 cmp r3, 0                                         |         
                                                                 |         if (r3 <= 0) {
    0x0000628a ble.w 0x63a0                                      |             goto label_79;
                                                                 |         }
    0x0000628e ldr.w r2, [pc, 0xa40]                             |         
    0x00006292 lsls r3, r3, 4                                    |         r3 <<= 4;
    0x00006294 ldr.w r1, [pc, 0xa3c]                             |         
    0x00006298 movs r0, 4                                        |         r0 = 4;
    0x0000629a add r2, pc                                        |         
    0x0000629c ldr r2, [r2, r3]                                  |         r2 = *(0xcf70);
    0x0000629e add r1, pc                                        |         r1 = 0xcf76;
    0x000062a0 bl 0x8a58                                         |         fcn_00008a58 (r0);
    0x000062a4 b 0x61d0                                          |         
                                                                 |     } while (1);
    0x000062a6 ldr.w r3, [pc, 0xa30]                             |     
    0x000062aa ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x000062ae ldr r3, [r3]                                      |     r3 = *(0x6cda);
    0x000062b0 str r3, [sp, 0x34]                                |     nmemb = r3;
    0x000062b2 b 0x61d0                                          |     goto label_6;
    0x000062b4 ldr.w r3, [pc, 0xa24]                             |     r3 = *(0x6cdc);
    0x000062b8 movs r0, 1                                        |     r0 = 1;
    0x000062ba ldr.w r1, [pc, 0xa24]                             |     
    0x000062be ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x000062c2 add r1, pc                                        |     r1 = 0xcfa8;
    0x000062c4 ldr r2, [r3]                                      |     r2 = *(0x6cdc);
    0x000062c6 blx 0x1c1c                                        |     system (r0)
                                                                 |     do {
    0x000062ca movs r4, 0                                        |         r4 = 0;
    0x000062cc b 0x6244                                          |         goto label_7;
    0x000062ce ldr r2, [sp, 0x24]                                |         r2 = var_24h;
    0x000062d0 movs r3, 1                                        |         r3 = 1;
    0x000062d2 strb.w r3, [r2, 0x7de]                            |         *((r2 + 0x7de)) = r3;
    0x000062d6 b 0x61d0                                          |         goto label_6;
    0x000062d8 ldr r2, [sp, 0x24]                                |         r2 = var_24h;
    0x000062da movs r3, 1                                        |         r3 = 1;
    0x000062dc strb.w r3, [r2, 0x7df]                            |         *((r2 + 0x7df)) = r3;
    0x000062e0 b 0x61d0                                          |         goto label_6;
    0x000062e2 ldr.w r2, [pc, 0xa00]                             |         
    0x000062e6 add r2, pc                                        |         r2 = 0xcfd0;
    0x000062e8 ldr r3, [r2]                                      |         r3 = *(0xcfd0);
    0x000062ea adds r3, 1                                        |         r3++;
    0x000062ec str r3, [r2]                                      |         *(r2) = r3;
    0x000062ee b 0x61d0                                          |         goto label_6;
    0x000062f0 ldr r3, [sp, 0x28]                                |         r3 = var_28h;
                                                                 |         if (r3 != 0) {
    0x000062f2 cbz r3, 0x62fa                                    |             
    0x000062f4 mov r0, r3                                        |             r0 = r3;
    0x000062f6 blx 0x1cb0                                        |             fcn_00001cb0 ();
                                                                 |         }
    0x000062fa ldr.w r3, [pc, 0x9ec]                             |         r3 = *(0x6cea);
    0x000062fe ldr.w r3, [sb, r3]                                |         r3 = *((sb + r3));
    0x00006302 ldr r0, [r3]                                      |         r0 = *(0x6cea);
    0x00006304 bl 0x9a7c                                         |         fcn_00009a7c (r0);
    0x00006308 str r0, [sp, 0x28]                                |         var_28h = r0;
    0x0000630a b 0x61d0                                          |         goto label_6;
    0x0000630c ldr.w r0, [pc, 0x9dc]                             |         
    0x00006310 add r0, pc                                        |         r0 = 0xd000;
    0x00006312 blx 0x1f5c                                        |         fcn_00001f5c ();
    0x00006316 ldr.w r0, [pc, 0x9d8]                             |         
    0x0000631a add r0, pc                                        |         r0 = 0xd010;
    0x0000631c blx 0x1f5c                                        |         fcn_00001f5c ();
    0x00006320 b 0x62ca                                          |         
                                                                 |     } while (1);
    0x00006322 ldr.w r3, [pc, 0x9c4]                             |     
    0x00006326 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x0000632a ldr r3, [r3]                                      |     r3 = *(0x6cea);
    0x0000632c ldrb r2, [r3, 1]                                  |     r2 = *((r3 + 1));
    0x0000632e cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x00006330 bne.w 0x7480                                      |         goto label_80;
                                                                 |     }
    0x00006334 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00006336 ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x00006338 strb.w r3, [r2, 0x7dc]                            |     *((r2 + 0x7dc)) = r3;
    0x0000633c b 0x61d0                                          |     goto label_6;
    0x0000633e ldr.w r3, [pc, 0x9a8]                             |     
    0x00006342 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00006346 ldr r3, [r3]                                      |     r3 = *(0x6cea);
    0x00006348 str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x0000634a b 0x61d0                                          |     goto label_6;
    0x0000634c ldr.w r3, [pc, 0x998]                             |     
    0x00006350 ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x00006352 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00006356 ldr r3, [r3]                                      |     r3 = *(0x6ce8);
    0x00006358 str r3, [sp, 0x38]                                |     var_38h = r3;
    0x0000635a movs r3, 1                                        |     r3 = 1;
    0x0000635c strb.w r3, [r2, 0x7dd]                            |     *((r2 + 0x7dd)) = r3;
    0x00006360 b 0x61d0                                          |     goto label_6;
    0x00006362 add.w r6, sl, 2                                   |     r6 = sl + 2;
    0x00006366 ldr r0, [sp, 0x2c]                                |     r0 = var_sp_2ch;
    0x00006368 lsls r6, r6, 2                                    |     r6 <<= 2;
    0x0000636a mov r1, r6                                        |     r1 = r6;
    0x0000636c blx 0x200c                                        |     r0 = lzma_stream_decoder ();
    0x00006370 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006372 beq.w 0x7a2a                                      |         goto label_81;
                                                                 |     }
    0x00006376 ldr.w r3, [pc, 0x970]                             |     
    0x0000637a add r6, r0                                        |     r6 += r0;
    0x0000637c str r0, [sp, 0x2c]                                |     var_sp_2ch = r0;
    0x0000637e add.w sl, sl, 1                                   |     sl++;
    0x00006382 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00006386 ldr r3, [r3]                                      |     r3 = *(0x6cea);
    0x00006388 str r3, [r6, -0x8]                                |     *((r6 - 0x8)) = r3;
    0x0000638c movs r3, 0                                        |     r3 = 0;
    0x0000638e str r3, [r6, -0x4]                                |     *((r6 - 0x4)) = r3;
    0x00006392 b 0x61d0                                          |     goto label_6;
    0x00006394 movs r3, 1                                        |     r3 = 1;
    0x00006396 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x00006398 b 0x61d0                                          |     goto label_6;
    0x0000639a movs r3, 1                                        |     r3 = 1;
    0x0000639c str r3, [sp, 0x40]                                |     var_40h = r3;
    0x0000639e b 0x61d0                                          |     goto label_6;
                                                                 | label_79:
    0x000063a0 ldr.w r1, [pc, 0x950]                             |     
    0x000063a4 mov r2, r0                                        |     r2 = r0;
    0x000063a6 movs r0, 4                                        |     r0 = 4;
    0x000063a8 add r1, pc                                        |     r1 = 0xd0a0;
    0x000063aa bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000063ae b 0x61d0                                          |     goto label_6;
                                                                 | label_77:
    0x000063b0 ldr.w r3, [pc, 0x944]                             |     
    0x000063b4 mov r6, r0                                        |     r6 = r0;
    0x000063b6 ldr r2, [sp, 0x1c]                                |     r2 = sig;
    0x000063b8 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x000063bc str r3, [sp, 0x50]                                |     var_50h = r3;
    0x000063be ldr r3, [r3]                                      |     r3 = *(0x6cf8);
    0x000063c0 cmp r3, r2                                        |     
                                                                 |     if (r3 < r2) {
    0x000063c2 blt.w 0x667a                                      |         goto label_82;
                                                                 |     }
    0x000063c6 add r4, sp, 0x1b0                                 |     r4 += var_1b0h;
    0x000063c8 sub.w r0, r4, 0x34                                |     r0 = r4 - 0x34;
    0x000063cc blx 0x1c70                                        |     r0 = strrchr (r0, r1);
    0x000063d0 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x000063d2 blt.w 0x744a                                      |         goto label_83;
                                                                 |     }
    0x000063d6 ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x000063d8 add.w r3, r4, 0x4e                                |     r3 = r4 + 0x4e;
    0x000063dc subw r2, r2, 0x82c                                |     __asm ("subw r2, r2, 0x82c");
    0x000063e0 str r3, [r2]                                      |     *(r2) = r3;
                                                                 | label_11:
    0x000063e2 ldr r2, [sp, 0x28]                                |     r2 = var_28h;
    0x000063e4 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000063e6 beq.w 0x66c4                                      |         goto label_84;
                                                                 |     }
    0x000063ea ldr r2, [sp, 0x28]                                |     r2 = var_28h;
                                                                 | label_13:
    0x000063ec strd r2, r3, [sp, 4]                              |     __asm ("strd r2, r3, [sp, 4]");
    0x000063f0 sub.w r4, fp, 0x28                                |     r4 = fp - 0x28;
    0x000063f4 ldr.w r3, [pc, 0x904]                             |     
    0x000063f8 movs r2, 1                                        |     r2 = 1;
    0x000063fa mov r0, r4                                        |     r0 = r4;
    0x000063fc add r3, pc                                        |     r3 = 0xd0fc;
    0x000063fe str r3, [sp]                                      |     *(sp) = r3;
    0x00006400 mov.w r3, 0x1000                                  |     r3 = 0x1000;
    0x00006404 mov r1, r3                                        |     r1 = r3;
    0x00006406 blx 0x1e24                                        |     fcn_00001e24 ();
    0x0000640a ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0000640c ldr r2, [sp, 0x40]                                |     r2 = var_40h;
    0x0000640e ldr r1, [sp, 0x1c]                                |     r1 = sig;
    0x00006410 str.w r0, [r3, 0x7d8]                             |     __asm ("str.w r0, [r3, 0x7d8]");
    0x00006414 ldr r3, [sp, 0x50]                                |     r3 = var_50h;
    0x00006416 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00006418 cmp r3, r1                                        |     
    0x0000641a it eq                                             |     
                                                                 |     if (r3 != r1) {
    0x0000641c moveq r2, 1                                       |         r2 = 1;
                                                                 |     }
    0x0000641e ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00006420 str r2, [sp, 0x40]                                |     var_40h = r2;
    0x00006422 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00006424 beq.w 0x66ae                                      |         goto label_85;
                                                                 |     }
    0x00006426 strh r3, [r0, 0xa]                                |     *((r0 + 0xa)) = r3;
    0x00006428 ldr.w r3, [pc, 0x8ac]                             |     
    0x0000642c ldr r2, [sp, 0x34]                                |     r2 = nmemb;
    0x0000642e ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00006432 ldr r3, [r3]                                      |     r3 = *(0x6cd8);
    0x00006434 cmp r3, r2                                        |     
                                                                 |     if (r3 == r2) {
    0x00006436 beq.w 0x66b4                                      |         goto label_86;
                                                                 |     }
    0x0000643a mov r0, r4                                        |     r0 = r4;
    0x0000643c blx 0x1b90                                        |     r0 = fcn_00001b90 ();
    0x00006440 mov r5, r0                                        |     r5 = r0;
    0x00006442 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006444 beq.w 0x7a5c                                      |         goto label_87;
                                                                 |     }
    0x00006448 blx 0x1e30                                        |     fcn_00001e30 ();
    0x0000644c ldr.w r1, [pc, 0x8b0]                             |     r1 = fcn.0000df18;
    0x00006450 movs r3, 0                                        |     r3 = 0;
    0x00006452 ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00006454 add r1, pc                                        |     r1 += pc;
    0x00006456 blx 0x1f38                                        |     r0 = fcn_00001f38 ();
    0x0000645a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000645c bne.w 0x6b2c                                      |         goto label_88;
                                                                 |     }
    0x00006460 add.w r8, sp, 0x1320                              |     r8 += arg_1320h;
    0x00006464 mov r0, r4                                        |     r0 = r4;
    0x00006466 add.w r8, r8, 0xc                                 |     r8 += 0xc;
    0x0000646a blx 0x1d74                                        |     fcn_00001d74 ();
    0x0000646e mov r1, r4                                        |     r1 = r4;
    0x00006470 mov r7, r0                                        |     r7 = r0;
    0x00006472 mov r2, r0                                        |     r2 = r0;
    0x00006474 mov.w r3, 0x1000                                  |     r3 = 0x1000;
    0x00006478 mov r0, r8                                        |     r0 = r8;
    0x0000647a blx 0x1d38                                        |     fcn_00001d38 ();
    0x0000647e ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x00006480 movs r3, 0x2f                                     |     r3 = 0x2f;
    0x00006482 strh.w r3, [r8, r7]                               |     *((r8 + r7)) = r3;
    0x00006486 adds r2, r7, 1                                    |     r2 = r7 + 1;
    0x00006488 mov r3, r8                                        |     r3 = r8;
    0x0000648a mov r0, r5                                        |     r0 = r5;
    0x0000648c sub.w r1, r1, 0xa20                               |     r1 -= 0xa20;
    0x00006490 ldr r1, [r1, 0x50]                                |     r1 = *((r1 + 0x50));
    0x00006492 bl 0x4b00                                         |     r0 = fcn_00004b00 (r0, r1, r2, r3);
    0x00006496 mov r4, r0                                        |     r4 = r0;
    0x00006498 mov r0, r5                                        |     r0 = r5;
    0x0000649a blx 0x1e90                                        |     fcn_00001e90 ();
                                                                 | label_21:
    0x0000649e cmp r4, 1                                         |     
                                                                 |     if (r4 == 1) {
    0x000064a0 beq.w 0x66b4                                      |         goto label_86;
                                                                 |     }
                                                                 | label_12:
    0x000064a4 ldr r3, [sp, 0x4c]                                |     r3 = var_4ch;
    0x000064a6 sub.w r5, fp, 0x28                                |     r5 = fp - 0x28;
    0x000064aa mov r0, r5                                        |     r0 = r5;
    0x000064ac sub.w r1, r3, 0x38                                |     r1 = r3 - 0x38;
    0x000064b0 bl 0xa178                                         |     r0 = fcn_0000a178 (r0, r1);
    0x000064b4 mov r4, r0                                        |     r4 = r0;
    0x000064b6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000064b8 beq.w 0x6f64                                      |         goto label_89;
                                                                 |     }
    0x000064bc ldr.w r3, [pc, 0x844]                             |     
    0x000064c0 add r3, pc                                        |     r3 = 0xd1c8;
    0x000064c2 ldr r1, [r3]                                      |     r1 = *(0xd1c8);
    0x000064c4 bl 0x8b30                                         |     fcn_00008b30 (r0, r1);
    0x000064c8 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x000064ca movs r1, 0x80                                     |     r1 = 0x80;
    0x000064cc subw r5, r3, 0xaac                                |     __asm ("subw r5, r3, 0xaac");
    0x000064d0 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x000064d2 strd r3, r4, [r5]                                 |     __asm ("strd r3, r4, [r5]");
    0x000064d6 ldr r3, [sp, 0x4c]                                |     r3 = var_4ch;
    0x000064d8 sub.w r0, r3, 0x24                                |     r0 = r3 - 0x24;
    0x000064dc bl 0x8fdc                                         |     fcn_00008fdc (r0, r1);
    0x000064e0 movs r1, 0                                        |     r1 = 0;
    0x000064e2 mov.w r0, 0x200                                   |     r0 = 0x200;
    0x000064e6 bl 0x9094                                         |     fcn_00009094 (r0, r1);
    0x000064ea str r0, [r5, 0x18]                                |     *((r5 + 0x18)) = r0;
    0x000064ec cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000064ee beq.w 0x67f2                                      |         goto label_90;
                                                                 |     }
    0x000064f2 movs r1, 0                                        |     r1 = 0;
    0x000064f4 mov.w r0, 0x200                                   |     r0 = 0x200;
    0x000064f8 bl 0x9094                                         |     fcn_00009094 (r0, r1);
    0x000064fc str r0, [r5, 0x1c]                                |     *((r5 + 0x1c)) = r0;
    0x000064fe cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006500 beq.w 0x73e4                                      |         goto label_91;
                                                                 |     }
    0x00006504 ldr.w r1, [pc, 0x800]                             |     r1 = *(0x00006d08);
    0x00006508 mov.w r0, 0x800                                   |     r0 = 0x800;
    0x0000650c add r1, pc                                        |     r1 += pc;
    0x0000650e bl 0x9094                                         |     fcn_00009094 (r0, r1);
    0x00006512 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00006514 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006516 beq.w 0x7592                                      |         goto label_92;
                                                                 |     }
                                                                 | label_17:
    0x0000651a ldr r0, [sp, 0x38]                                |     r0 = var_38h;
    0x0000651c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000651e beq.w 0x66cc                                      |         goto label_93;
                                                                 |     }
    0x00006522 ldr.w r1, [pc, 0x7e8]                             |     
    0x00006526 add r1, pc                                        |     r1 = 0xd238;
    0x00006528 blx 0x1d9c                                        |     r0 = ftell (r0);
    0x0000652c mov fp, r0                                        |     
    0x0000652e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006530 beq.w 0x7942                                      |         goto label_94;
                                                                 |     }
    0x00006534 ldr.w r7, [pc, 0x7d8]                             |     
    0x00006538 add.w r8, sp, 0x1320                              |     r8 += arg_1320h;
    0x0000653a ldr r1, [r3, r2]                                  |     r1 = *((r3 + r2));
    0x0000653c ldr.w sl, [pc, 0x7d4]                             |     
    0x00006540 mov.w sb, 0                                       |     sb = 0;
    0x00006544 ldr.w r1, [pc, 0x7d0]                             |     
    0x00006548 add.w r8, r8, 0xc                                 |     r8 += 0xc;
    0x0000654c add r7, pc                                        |     r7 = 0xd260;
    0x0000654e ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x00006550 add sl, pc                                        |     sl = 0xd268;
    0x00006552 movs r0, 7                                        |     r0 = 7;
    0x00006554 add r1, pc                                        |     r1 = 0xd270;
    0x00006556 bl 0x8a58                                         |     fcn_00008a58 (r0);
                                                                 |     do {
                                                                 | label_8:
    0x0000655a mov r2, fp                                        |         r2 = fp;
    0x0000655c mov.w r1, 0x2800                                  |         r1 = 0x2800;
    0x00006560 mov r0, r8                                        |         r0 = r8;
    0x00006562 blx 0x1c00                                        |         r0 = fcn_00001c00 ();
    0x00006564 adc.w r8, lr, r0, lsl 8                           |         __asm ("adc.w r8, lr, r0, lsl 8");
                                                                 |         if (r0 == 7) {
    0x00006568 beq 0x65e4                                        |             goto label_95;
                                                                 |         }
                                                                 | label_9:
    0x0000656a mov r1, r7                                        |         r1 = r7;
    0x0000656c mov r0, r8                                        |         r0 = r8;
    0x0000656e blx 0x1f08                                        |         fcn_00001f08 ();
    0x00006570 stcl p6, c4, [ip], {0x39}                         |         __asm ("stcl p6, c4, [ip], {0x39}");
    0x00006572 mov r1, r7                                        |         r1 = r7;
    0x00006574 mov r4, r0                                        |         r4 = r0;
    0x00006576 movs r0, 0                                        |         r0 = 0;
    0x00006578 add.w sb, sb, 1                                   |         sb++;
    0x0000657a lsrs r1, r0, 4                                    |         r1 = r0 >> 4;
    0x0000657c blx 0x1f08                                        |         fcn_00001f08 ();
    0x00006580 mov r1, r7                                        |         r1 = r7;
    0x00006582 mov r5, r0                                        |         r5 = r0;
    0x00006584 movs r0, 0                                        |         r0 = 0;
    0x00006586 blx 0x1f08                                        |         r0 = fcn_00001f08 ();
    0x00006588 stcl p13, c2, [r0], {0}                           |         __asm ("stcl p13, c2, [r0], {0}");
    0x0000658c it ne                                             |         
                                                                 |         if (r0 != 0) {
    0x0000658e cmpne r4, 0                                       |             __asm ("cmpne r4, 0");
                                                                 |         }
    0x00006590 ite eq                                            |         
                                                                 |         if (r0 != 0) {
    0x00006592 moveq r3, 1                                       |             r3 = 1;
                                                                 |         }
                                                                 |         if (r0 == 0) {
    0x00006594 movne r3, 0                                       |             r3 = 0;
                                                                 |         }
    0x00006596 cmp r0, 0                                         |         
    0x00006598 it eq                                             |         
                                                                 |         if (r0 != 0) {
    0x0000659a orreq r3, r3, 1                                   |             r3 |= 1;
                                                                 |         }
    0x0000659e cmp r3, 0                                         |         
    0x000065a0 bne 0x655a                                        |         
                                                                 |     } while (r3 != 0);
    0x000065a2 mov r1, sl                                        |     r1 = sl;
    0x000065a4 blx 0x2058                                        |     r0 = fcn_00002058 ();
    0x000065a8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000065aa bne 0x655a                                        |         goto label_8;
                                                                 |     }
    0x000065ac movs r2, 0x10                                     |     r2 = 0x10;
    0x000065ae ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x000065b0 mov r0, r4                                        |     r0 = r4;
    0x000065b2 blx 0x1ca0                                        |     free (r0);
    0x000065b6 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x000065b8 sub.w r3, r3, 0xa20                               |     r3 -= 0xa20;
    0x000065bc ldr r3, [r3]                                      |     r3 = *(r3);
    0x000065be ldrb r2, [r3]                                     |     r2 = *(r3);
    0x000065c0 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x000065c2 bne.w 0x67de                                      |         goto label_96;
                                                                 |     }
    0x000065c6 strd r0, r1, [sp]                                 |     __asm ("strd r0, r1, [sp]");
    0x000065ca mov r1, r5                                        |     r1 = r5;
    0x000065cc ldr r0, [sp, 0x48]                                |     r0 = var_48h;
    0x000065ce str r2, [sp, 8]                                   |     var_8h_2 = r2;
    0x000065d0 bl 0x575c                                         |     fcn_0000575c (r0, r1, r2, r3);
    0x000065d4 mov r2, fp                                        |     r2 = fp;
    0x000065d6 mov.w r1, 0x2800                                  |     r1 = 0x2800;
    0x000065da mov r0, r8                                        |     r0 = r8;
    0x000065dc blx 0x1c00                                        |     r0 = fcn_00001c00 ();
    0x000065e0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000065e2 bne 0x656a                                        |         goto label_9;
                                                                 |     }
                                                                 | label_95:
    0x000065e4 ldr r0, [sp, 0x48]                                |     r0 = var_48h;
    0x000065e6 bl 0x57ec                                         |     fcn_000057ec (r0);
    0x000065ea ldr.w r1, [pc, 0x730]                             |     
    0x000065ee movs r0, 7                                        |     r0 = 7;
    0x000065f0 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x000065f2 add r1, pc                                        |     r1 = 0xd314;
    0x000065f4 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000065f8 mov r0, fp                                        |     r0 = fp;
    0x000065fa blx 0x1bf4                                        |     fcn_00001bf4 ();
                                                                 | label_15:
    0x000065fe ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00006600 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00006602 bne.w 0x6b48                                      |         goto label_97;
                                                                 |     }
    0x00006606 ldr r3, [sp, 0x50]                                |     r3 = var_50h;
    0x00006608 ldr.w sb, [r3]                                    |     sb = *(r3);
    0x0000660c ldr r3, [sp, 0x1c]                                |     r3 = sig;
    0x0000660e cmp r3, sb                                        |     
                                                                 |     if (r3 <= sb) {
    0x00006610 ble.w 0x69a6                                      |         goto label_42;
                                                                 |     }
    0x00006614 ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x00006616 mov fp, r3                                        |     
    0x00006618 str r6, [sp, 0x1c]                                |     sig = r6;
    0x0000661a ldr.w sl, [sp, 0x48]                              |     sl = var_48h;
    0x0000661e ldr r6, [sp, 0x18]                                |     r6 = var_18h;
    0x00006620 add.w r4, r2, sb, lsl 2                           |     r4 = r2 + (sb << 2);
    0x00006624 ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x00006626 subw r8, r2, 0xaac                                |     __asm ("subw r8, r2, 0xaac");
    0x0000662a sub.w r7, r2, 0xa20                               |     r7 = r2 - 0xa20;
    0x0000662e b 0x665a                                          |     
                                                                 |     while (r3 == 0x2f) {
    0x00006630 ldr.w r0, [r8, 4]                                 |         r0 = *((r8 + 4));
    0x00006634 mov r2, r6                                        |         r2 = r6;
    0x00006636 mov r1, r5                                        |         r1 = r5;
    0x00006638 bl 0xcf78                                         |         r0 = fcn_0000cf78 (r0, r1, r2);
    0x0000663c cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0000663e blt.w 0x7466                                      |             goto label_98;
                                                                 |         }
    0x00006642 ldr r1, [r7]                                      |         r1 = *(r7);
    0x00006644 mov r0, sl                                        |         r0 = sl;
    0x00006646 bl 0x4e24                                         |         r0 = fcn_00004e24 (r0, r1, r2, r3);
    0x0000664a cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0000664c blt.w 0x7510                                      |             goto label_99;
                                                                 |         }
    0x0000664e strh r0, [r4, 0x3a]                               |         *((r4 + 0x3a)) = r0;
    0x00006650 add.w sb, sb, 1                                   |         sb++;
    0x00006654 cmp fp, sb                                        |         
                                                                 |         if (fp == sb) {
    0x00006656 beq.w 0x7530                                      |             goto label_100;
                                                                 |         }
    0x0000665a ldr r5, [r4], 4                                   |         r5 = *(r4);
                                                                 |         r4 += 4;
    0x0000665e ldrb r3, [r5]                                     |         r3 = *(r5);
    0x00006660 cmp r3, 0x2f                                      |         
    0x00006662 beq 0x6630                                        |         
                                                                 |     }
    0x00006664 ldr.w r1, [pc, 0x6b8]                             |     
    0x00006668 mov r2, r5                                        |     r2 = r5;
    0x0000666a movs r0, 2                                        |     r0 = 2;
    0x0000666c add r1, pc                                        |     r1 = 0xd390;
    0x0000666e bl 0x8a58                                         |     fcn_00008a58 (r0);
                                                                 | label_31:
    0x00006672 ldr r0, [sp, 0x48]                                |     r0 = var_48h;
    0x00006674 bl 0x4d7c                                         |     fcn_00004d7c (r0);
    0x00006678 b 0x623c                                          |     goto label_10;
                                                                 | label_82:
    0x0000667a ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x0000667c ldr.w r1, [pc, 0x6a4]                             |     
    0x00006680 ldr.w r0, [r2, r3, lsl 2]                         |     offset_0 = r3 << 2;
                                                                 |     r0 = *((r2 + offset_0));
    0x00006684 ldr r2, [sp, 0x4c]                                |     r2 = var_4ch;
    0x00006686 add r1, pc                                        |     r1 = 0xd3ae;
    0x00006688 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x0000668a subs r2, 8                                        |     r2 -= 8;
    0x0000668c blx 0x1bc0                                        |     r0 = fcn_00001bc0 ();
    0x00006690 cmp r0, 2                                         |     
                                                                 |     if (r0 != 2) {
    0x00006692 bne.w 0x6f76                                      |         goto label_101;
                                                                 |     }
    0x00006696 ldr r0, [sp, 0x50]                                |     r0 = var_50h;
    0x00006698 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0000669a ldr r2, [r0]                                      |     r2 = *(r0);
    0x0000669c subw r1, r3, 0x82c                                |     __asm ("subw r1, r3, 0x82c");
    0x000066a0 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x000066a2 ldr.w r3, [r3, r2, lsl 2]                         |     offset_1 = r2 << 2;
                                                                 |     r3 = *((r3 + offset_1));
    0x000066a6 adds r2, 1                                        |     r2++;
    0x000066a8 str r2, [r0]                                      |     *(r0) = r2;
    0x000066aa str r3, [r1]                                      |     *(r1) = r3;
    0x000066ac b 0x63e2                                          |     goto label_11;
                                                                 | label_85:
    0x000066ae ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x000066b0 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x000066b2 b 0x64a4                                          |     goto label_12;
                                                                 | label_86:
    0x000066b4 movs r4, 0                                        |     r4 = 0;
                                                                 | label_34:
    0x000066b6 ldr r0, [sp, 0x48]                                |     r0 = var_48h;
    0x000066b8 bl 0x4d7c                                         |     fcn_00004d7c (r0);
    0x000066bc ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x000066be bl 0x4a74                                         |     fcn_00004a74 (r0);
    0x000066c2 b 0x6244                                          |     goto label_7;
                                                                 | label_84:
    0x000066c4 ldr.w r2, [pc, 0x660]                             |     
    0x000066c8 add r2, pc                                        |     r2 = 0xd3f4;
    0x000066ca b 0x63ec                                          |     goto label_13;
                                                                 | label_93:
    0x000066cc ldr r4, [sp, 0x3c]                                |     r4 = var_3ch;
    0x000066ce cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x000066d0 beq.w 0x73fc                                      |         goto label_102;
                                                                 |     }
    0x000066d4 ldr.w r2, [pc, 0x654]                             |     
    0x000066d8 add.w r3, sp, 0x1320                              |     r3 += arg_1320h;
    0x000066dc add r2, pc                                        |     r2 = 0xd40c;
    0x000066de ldm r2, {r0, r1, r2}                              |     r0 = *(r2);
                                                                 |     r1 = *((r2 + 4));
                                                                 |     r2 = *((r2 + 8));
    0x000066e0 stm r3!, {r0, r1}                                 |     *(r3!) = r0;
                                                                 |     *((r3! + 4)) = r1;
    0x000066e2 mov r0, r4                                        |     r0 = r4;
    0x000066e4 ldr.w r1, [pc, 0x648]                             |     
    0x000066e8 strh r2, [r3], 2                                  |     *(r3) = r2;
                                                                 |     r3 += 2;
    0x000066ec lsrs r2, r2, 0x10                                 |     r2 >>= 0x10;
    0x000066ee add r1, pc                                        |     r1 = 0xd422;
    0x000066f0 strb r2, [r3]                                     |     *(r3) = r2;
    0x000066f2 blx 0x1d9c                                        |     r0 = ftell (r0);
    0x000066f6 mov r7, r0                                        |     r7 = r0;
    0x000066f8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000066fa beq.w 0x7972                                      |         goto label_103;
                                                                 |     }
    0x000066fe ldr.w sl, [pc, 0x634]                             |     
    0x00006702 add.w sb, sp, 0x1320                              |     sb += arg_1320h;
    0x00006706 ldr.w r1, [pc, 0x630]                             |     
    0x0000670a add.w r8, sp, 0x1320                              |     r8 += arg_1320h;
    0x0000670e vmov.i32 d8, 0                                    |     __asm ("vmov.i32 d8, 0");
    0x00006712 add.w sb, sb, 0x10                                |     sb += 0x10;
    0x00006716 add sl, pc                                        |     sl = 0xd450;
    0x00006718 add.w r8, r8, 0xc                                 |     r8 += 0xc;
    0x0000671c ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x0000671e add r1, pc                                        |     r1 = 0xd45c;
    0x00006720 movs r0, 7                                        |     r0 = 7;
    0x00006722 ldr r5, [sp, 0x38]                                |     r5 = var_38h;
    0x00006724 bl 0x8a58                                         |     fcn_00008a58 (r0);
                                                                 |     do {
                                                                 | label_16:
    0x00006728 mov r2, r7                                        |         r2 = r7;
    0x0000672a mov.w r1, 0x2800                                  |         r1 = 0x2800;
    0x0000672e mov r0, r8                                        |         r0 = r8;
    0x00006730 blx 0x1c00                                        |         r0 = fcn_00001c00 ();
    0x00006734 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00006736 beq 0x67b0                                        |             goto label_104;
                                                                 |         }
                                                                 | label_14:
    0x00006738 movs r1, 0x20                                     |         r1 = 0x20;
    0x0000673a mov r0, r8                                        |         r0 = r8;
    0x0000673c adds r5, 1                                        |         r5++;
    0x0000673e blx 0x1c34                                        |         r0 = get_current_dir_name ();
    0x00006742 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00006744 beq 0x67cc                                        |             goto label_105;
                                                                 |         }
    0x00006746 adds r0, 1                                        |         r0++;
    0x00006748 movs r1, 0x20                                     |         r1 = 0x20;
    0x0000674a blx 0x1c34                                        |         r0 = get_current_dir_name ();
    0x0000674e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00006750 beq 0x67cc                                        |             goto label_105;
                                                                 |         }
    0x00006752 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x00006754 sub.w r1, sb, 0x10                                |         r1 = sb - 0x10;
    0x00006758 ldrb r2, [r0, 1]                                  |         r2 = *((r0 + 1));
    0x0000675a subw r3, r3, 0xaac                                |         __asm ("subw r3, r3, 0xaac");
    0x0000675e ldr r3, [r3]                                      |         r3 = *(r3);
    0x00006760 add.w r3, r3, 0x1000                              |         r3 += 0x1000;
    0x00006764 ldrb r3, [r3, 8]                                  |         r3 = *((r3 + 8));
    0x00006766 cmp r2, r3                                        |         
    0x00006768 mov.w r2, 0xa                                     |         r2 = 0xa;
    0x0000676a lsls r2, r1, 8                                    |         r2 = r1 << 8;
    0x0000676c ite ne                                            |         
                                                                 |         if (r2 == r1) {
    0x0000676e addne r4, r0, 1                                   |             r4 = r0 + 1;
                                                                 |         }
                                                                 |         if (r2 != r1) {
    0x00006770 addeq r4, r0, 2                                   |             r4 = r0 + 2;
                                                                 |         }
    0x00006772 mov r0, r4                                        |         r0 = r4;
    0x00006774 blx 0x1ff4                                        |         r0 = libc_start_main (r0, r1, r2, r3, r4, r5, r6);
    0x00006778 mov fp, r0                                        |         
    0x0000677a cmp r0, 0                                         |         
    0x0000677c bne 0x6728                                        |         
                                                                 |     } while (r0 != 0);
    0x0000677e movs r1, 0xa                                      |     r1 = 0xa;
    0x00006780 mov r0, r4                                        |     r0 = r4;
    0x00006782 blx 0x1c34                                        |     r0 = get_current_dir_name ();
                                                                 |     if (r0 != 0) {
    0x00006786 cbz r0, 0x678c                                    |         
    0x00006788 strb.w fp, [r0]                                   |         *(r0) = fp;
                                                                 |     }
    0x0000678c movs r3, 0                                        |     r3 = 0;
    0x0000678e ldr r0, [sp, 0x48]                                |     r0 = var_48h;
    0x00006790 add.w r1, r4, 0xa                                 |     r1 = r4 + 0xa;
    0x00006794 movs r2, 1                                        |     r2 = 1;
    0x00006796 vstr d8, [sp]                                     |     __asm ("vstr d8, [sp]");
    0x0000679a str r3, [sp, 8]                                   |     var_8h_2 = r3;
    0x0000679c bl 0x575c                                         |     fcn_0000575c (r0, r1, r2, r3);
    0x000067a0 mov r2, r7                                        |     r2 = r7;
    0x000067a2 mov.w r1, 0x2800                                  |     r1 = 0x2800;
    0x000067a6 mov r0, r8                                        |     r0 = r8;
    0x000067a8 blx 0x1c00                                        |     r0 = fcn_00001c00 ();
    0x000067ac cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000067ae bne 0x6738                                        |         goto label_14;
                                                                 |     }
                                                                 | label_104:
    0x000067b0 ldr r0, [sp, 0x48]                                |     r0 = var_48h;
    0x000067b2 bl 0x57ec                                         |     fcn_000057ec (r0);
    0x000067b6 ldr.w r1, [pc, 0x584]                             |     
    0x000067ba movs r0, 7                                        |     r0 = 7;
    0x000067bc ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x000067be add r1, pc                                        |     r1 = 0xd500;
    0x000067c0 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000067c4 mov r0, r7                                        |     r0 = r7;
    0x000067c6 blx 0x1bf4                                        |     fcn_00001bf4 ();
    0x000067ca b 0x65fe                                          |     goto label_15;
                                                                 | label_105:
    0x000067cc ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x000067ce mov r3, r5                                        |     r3 = r5;
    0x000067d0 mov r1, sl                                        |     r1 = sl;
    0x000067d2 movs r0, 3                                        |     r0 = 3;
    0x000067d4 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x000067d6 strh r0, [r0]                                     |     *(r0) = r0;
    0x000067d8 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000067dc b 0x6728                                          |     goto label_16;
                                                                 | label_96:
    0x000067de ldr.w r1, [pc, 0x560]                             |     
    0x000067e2 mov r3, sb                                        |     r3 = sb;
    0x000067e4 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x000067e6 movs r0, 3                                        |     r0 = 3;
    0x000067e8 str r4, [sp]                                      |     *(sp) = r4;
    0x000067ea add r1, pc                                        |     r1 = 0xd530;
    0x000067ec bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000067f0 b 0x655a                                          |     goto label_8;
                                                                 | label_90:
    0x000067f2 blx 0x207c                                        |     r0 = fcn_0000207c ();
    0x000067f6 ldr r5, [r0]                                      |     r5 = *(r0);
    0x000067f8 rsbs r5, r5, 0                                    |     r5 -= ;
                                                                 | label_39:
    0x000067fa cmp r5, 0                                         |     
                                                                 |     if (r5 >= 0) {
    0x000067fc bge.w 0x651a                                      |         goto label_17;
                                                                 |     }
    0x00006800 rsbs r0, r5, 0                                    |     r0 = r5 - ;
    0x00006802 blx 0x1b54                                        |     fcn_00001b54 ();
    0x00006806 ldr.w r1, [pc, 0x53c]                             |     
    0x0000680a mov r2, r0                                        |     r2 = r0;
    0x0000680c movs r0, 2                                        |     r0 = 2;
    0x0000680e add r1, pc                                        |     r1 = 0xd558;
    0x00006810 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006814 mov r0, r4                                        |     r0 = r4;
    0x00006816 bl 0xa7d8                                         |     fcn_0000a7d8 (r0);
    0x0000681a b 0x623c                                          |     goto label_10;
                                                                 | label_23:
    0x0000681c ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x0000681e mov r7, r4                                        |     r7 = r4;
    0x00006820 ldr r6, [sp, 0x38]                                |     r6 = var_38h;
    0x00006822 subw r3, r2, 0xab4                                |     __asm ("subw r3, r2, 0xab4");
    0x00006826 ldr r5, [r3]                                      |     r5 = *(r3);
    0x00006828 mov r3, r2                                        |     r3 = r2;
    0x0000682a sub.w r2, r2, 0xab0                               |     r2 -= 0xab0;
    0x0000682e ldr r2, [r2]                                      |     r2 = *(r2);
    0x00006830 str r2, [sp, 0x70]                                |     var_70h = r2;
    0x00006832 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00006834 beq.w 0x6962                                      |         goto label_22;
                                                                 |     }
    0x00006838 ldr.w r1, [pc, 0x50c]                             |     
    0x0000683c sub.w sl, r2, 4                                   |     sl = r2 - 4;
    0x00006840 ldr.w r4, [pc, 0x508]                             |     
    0x00006844 subw r2, r3, 0xa88                                |     __asm ("subw r2, r3, 0xa88");
    0x00006848 str r6, [sp, 0x74]                                |     var_74h = r6;
    0x0000684a mov.w r8, 0                                       |     r8 = 0;
    0x0000684e add r1, pc                                        |     r1 = 0xd59a;
    0x00006850 ldr r6, [sp, 0x18]                                |     r6 = var_18h;
    0x00006852 str r1, [sp, 0x1c]                                |     sig = r1;
    0x00006854 add r4, pc                                        |     r4 = 0xd5a4;
    0x00006856 ldr.w r1, [pc, 0x4f8]                             |     
    0x0000685a str r2, [sp, 0x40]                                |     var_40h = r2;
    0x0000685c mov r2, sl                                        |     r2 = sl;
    0x0000685e strd r5, r4, [sp, 0x5c]                           |     __asm ("strd r5, r4, [sp, 0x5c]");
    0x00006862 mov sl, r8                                        |     sl = r8;
    0x00006864 mov r5, r7                                        |     r5 = r7;
    0x00006866 mov r8, r2                                        |     r8 = r2;
    0x00006868 mov r7, r3                                        |     r7 = r3;
    0x0000686a add r1, pc                                        |     r1 = 0xd5c0;
    0x0000686c str r1, [sp, 0x38]                                |     var_38h = r1;
                                                                 | label_18:
    0x0000686e ldr r3, [r8, 4]!                                  |     r3 = *((r8 += 4));
    0x00006872 movs r1, 0                                        |     r1 = 0;
    0x00006874 ldr r2, [sp, 0x40]                                |     r2 = var_40h;
    0x00006876 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x00006878 adds r3, 0xc                                      |     r3 += 0xc;
    0x0000687a str r1, [r2]                                      |     *(r2) = r1;
    0x0000687c mov r0, r3                                        |     r0 = r3;
    0x0000687e ldr r1, [sp, 0x60]                                |     r1 = var_60h;
    0x00006880 str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x00006882 blx 0x1d9c                                        |     r0 = ftell (r0);
    0x00006886 mov fp, r0                                        |     
    0x00006888 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000688a beq.w 0x7a84                                      |         goto label_106;
                                                                 |     }
    0x0000688e ldr.w r3, [pc, 0x4c4]                             |     
    0x00006892 strd sl, r8, [sp, 0x54]                           |     __asm ("strd sl, r8, [sp, 0x54]");
    0x00006896 mov r8, r5                                        |     r8 = r5;
    0x00006898 add r3, pc                                        |     r3 = 0xd5f2;
    0x0000689a str r3, [sp, 0x20]                                |     var_20h = r3;
    0x0000689c b 0x6932                                          |     
                                                                 |     while (r0 != 0) {
    0x0000689e ldrb r3, [r4]                                     |         r3 = *(r4);
    0x000068a0 cmp r3, 0x23                                      |         
    0x000068a2 it ne                                             |         
                                                                 |         if (r3 != 0x23) {
    0x000068a4 cmpne r3, 0                                       |             __asm ("cmpne r3, 0");
                                                                 |         }
                                                                 |         if (r3 != 0x23) {
    0x000068a6 beq 0x692c                                        |             
    0x000068a8 ldr r1, [sp, 0x1c]                                |             r1 = sig;
    0x000068aa mov r2, r6                                        |             r2 = r6;
    0x000068ac blx 0x1f14                                        |             r0 = fcn_00001f14 ();
    0x000068b0 mov r5, r0                                        |             r5 = r0;
    0x000068b2 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000068b4 beq 0x692c                                        |                 goto label_28;
                                                                 |             }
    0x000068b6 ldr r1, [sp, 0x38]                                |             r1 = var_38h;
    0x000068b8 blx 0x2058                                        |             r0 = fcn_00002058 ();
    0x000068bc cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000068be beq.w 0x6c90                                      |                 goto label_107;
                                                                 |             }
    0x000068c2 ldr r1, [sp, 0x20]                                |             r1 = var_20h;
    0x000068c4 mov r0, r5                                        |             r0 = r5;
    0x000068c6 blx 0x2058                                        |             r0 = fcn_00002058 ();
    0x000068ca mov sb, r0                                        |             sb = r0;
    0x000068cc cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000068ce beq.w 0x6da4                                      |                 goto label_108;
                                                                 |             }
    0x000068d2 ldr.w r1, [pc, 0x484]                             |             
    0x000068d6 mov r0, r5                                        |             r0 = r5;
    0x000068d8 add r1, pc                                        |             r1 = 0xd636;
    0x000068da blx 0x2058                                        |             r0 = fcn_00002058 ();
    0x000068de mov sl, r0                                        |             sl = r0;
    0x000068e0 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000068e2 beq.w 0x6e78                                      |                 goto label_109;
                                                                 |             }
    0x000068e6 ldr.w r1, [pc, 0x474]                             |             
    0x000068ea mov r0, r5                                        |             r0 = r5;
    0x000068ec add r1, pc                                        |             r1 = 0xd64e;
    0x000068ee blx 0x2058                                        |             r0 = fcn_00002058 ();
    0x000068f2 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000068f4 beq.w 0x6eec                                      |                 goto label_110;
                                                                 |             }
    0x000068f8 ldr.w r1, [pc, 0x464]                             |             
    0x000068fc mov r0, r5                                        |             r0 = r5;
    0x000068fe add r1, pc                                        |             r1 = 0xd662;
    0x00006900 blx 0x2058                                        |             r0 = fcn_00002058 ();
                                                                 |             if (r0 != 0) {
    0x00006904 cbz r0, 0x6918                                    |                 
    0x00006906 ldr.w r1, [pc, 0x45c]                             |                 
    0x0000690a mov r0, r5                                        |                 r0 = r5;
    0x0000690c add r1, pc                                        |                 r1 = 0xd676;
    0x0000690e blx 0x2058                                        |                 r0 = fcn_00002058 ();
    0x00006912 cmp r0, 0                                         |                 
                                                                 |                 if (r0 != 0) {
    0x00006914 bne.w 0x6c7c                                      |                     goto label_29;
                                                                 |                 }
    0x00006916 strh r2, [r6, 0xc]                                |                 *((r6 + 0xc)) = r2;
                                                                 |             }
    0x00006918 ldr r3, [sp, 0x40]                                |             r3 = var_40h;
    0x0000691a movs r0, 6                                        |             r0 = 6;
    0x0000691c ldr.w r1, [pc, 0x448]                             |             
    0x00006920 str r5, [sp]                                      |             *(sp) = r5;
    0x00006922 ldr r2, [sp, 0x3c]                                |             r2 = var_3ch;
    0x00006924 ldr r3, [r3]                                      |             r3 = *(r3);
    0x00006926 add r1, pc                                        |             r1 = 0xd692;
    0x00006928 bl 0x8a58                                         |             fcn_00008a58 (r0);
                                                                 |         }
                                                                 | label_28:
    0x0000692c mov r0, r4                                        |         r0 = r4;
    0x0000692e blx 0x1cb0                                        |         fcn_00001cb0 ();
    0x00006932 mov r1, r8                                        |         r1 = r8;
    0x00006934 mov r0, fp                                        |         r0 = fp;
    0x00006936 bl 0x99b8                                         |         r0 = fcn_000099b8 (r0, r1);
    0x0000693a mov r4, r0                                        |         r4 = r0;
    0x0000693c cmp r0, 0                                         |         
    0x0000693e bne 0x689e                                        |         
                                                                 |     }
    0x00006940 mov r0, fp                                        |     r0 = fp;
    0x00006942 mov r5, r8                                        |     r5 = r8;
    0x00006944 ldr.w sl, [sp, 0x54]                              |     sl = var_54h;
    0x00006948 ldr.w r8, [sp, 0x58]                              |     r8 = stream;
    0x0000694c blx 0x1bf4                                        |     fcn_00001bf4 ();
                                                                 | label_61:
    0x00006950 ldr r0, [sp, 0x44]                                |     r0 = var_44h;
    0x00006952 add.w sl, sl, 1                                   |     sl++;
    0x00006956 blx 0x1cb0                                        |     fcn_00001cb0 ();
    0x0000695a ldr r3, [sp, 0x5c]                                |     r3 = var_5ch;
    0x0000695c cmp sl, r3                                        |     
                                                                 |     if (sl != r3) {
    0x0000695e bne 0x686e                                        |         goto label_18;
                                                                 |     }
    0x00006960 ldr r6, [sp, 0x74]                                |     r6 = var_74h;
                                                                 | label_22:
    0x00006962 ldr r0, [sp, 0x70]                                |     r0 = var_70h;
    0x00006964 blx 0x1cb0                                        |     fcn_00001cb0 ();
    0x00006968 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0000696a ldr.w r3, [r3, 0x7e4]                             |     r3 = *((r3 + 0x7e4));
    0x0000696e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00006970 beq.w 0x75a2                                      |         goto label_111;
                                                                 |     }
                                                                 | label_47:
    0x00006974 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00006976 ldr r0, [sp, 0x48]                                |     r0 = var_48h;
    0x00006978 subw r4, r3, 0xaac                                |     __asm ("subw r4, r3, 0xaac");
    0x0000697c ldr r1, [r4]                                      |     r1 = *(r4);
    0x0000697e adds r1, 4                                        |     r1 += 4;
    0x00006980 bl 0x6088                                         |     r0 = void (*0x6088)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3, r4, r5, r6);
    0x00006984 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00006986 blt.w 0x755e                                      |         goto label_112;
                                                                 |     }
    0x0000698a ldr r3, [r4]                                      |     r3 = *(r4);
    0x0000698c add.w r3, r3, 0x1000                              |     r3 += 0x1000;
    0x00006990 ldr r4, [r3, 0x14]                                |     r4 = *((r3 + 0x14));
                                                                 |     if (r4 == 0) {
    0x00006992 cbz r4, 0x69a6                                    |         goto label_42;
                                                                 |     }
    0x00006994 ldr r5, [sp, 0x48]                                |     r5 = var_48h;
                                                                 |     do {
    0x00006996 add.w r1, r4, 8                                   |         r1 = r4 + 8;
    0x0000699a mov r0, r5                                        |         r0 = r5;
    0x0000699c bl 0x6088                                         |         void (*0x6088)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3, r4, r5, r6);
    0x000069a0 ldr r4, [r4]                                      |         r4 = *(r4);
    0x000069a2 cmp r4, 0                                         |         
    0x000069a4 bne 0x6996                                        |         
                                                                 |     } while (r4 != 0);
                                                                 | label_42:
    0x000069a6 ldr r4, [sp, 0x24]                                |     r4 = var_24h;
    0x000069a8 add r7, sp, 0xa8                                  |     r7 += var_a8h;
    0x000069aa ldr.w sl, [sp, 0x18]                              |     sl = var_18h;
    0x000069ae subw r5, r4, 0xaac                                |     __asm ("subw r5, r4, 0xaac");
    0x000069b2 subw r8, r4, 0xa88                                |     __asm ("subw r8, r4, 0xa88");
    0x000069b6 ldr r0, [r5, 0x1c]                                |     r0 = *((r5 + 0x1c));
    0x000069b8 mov r1, sl                                        |     r1 = sl;
    0x000069ba bl 0x9640                                         |     fcn_00009640 (r0, r1);
    0x000069be mov r4, sl                                        |     r4 = sl;
    0x000069c0 ldr.w sb, [sp, 0x4c]                              |     sb = var_4ch;
    0x000069c4 b 0x69dc                                          |     
                                                                 |     while (r0 != 0) {
    0x000069c6 ldr.w r1, [r8]                                    |         r1 = *(r8);
    0x000069ca sub.w r0, sb, 0x24                                |         r0 = sb - 0x24;
    0x000069cc movs r4, r4                                       |         
    0x000069ce ldr r3, [r5, 0xc]                                 |         r3 = *((r5 + 0xc));
    0x000069d0 strh r3, [r1, 0x38]                               |         *((r1 + 0x38)) = r3;
    0x000069d2 bl 0x9014                                         |         r0 = fcn_00009014 (r0, r1);
    0x000069d6 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x000069d8 blt.w 0x753c                                      |             goto label_113;
                                                                 |         }
    0x000069dc mov r2, r7                                        |         r2 = r7;
    0x000069de movs r1, 0                                        |         r1 = 0;
    0x000069e0 mov r0, r4                                        |         r0 = r4;
    0x000069e2 bl 0x9650                                         |         r0 = fcn_00009650 (r0, r1, r2, r3);
    0x000069e6 cmp r0, 0                                         |         
    0x000069e8 bne 0x69c6                                        |         
                                                                 |     }
    0x000069ea ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x000069ec mov r4, r0                                        |     r4 = r0;
    0x000069ee ldr r1, [pc, 0x37c]                               |     
    0x000069f0 subw r3, r3, 0xaac                                |     __asm ("subw r3, r3, 0xaac");
    0x000069f4 ldr r0, [r3]                                      |     r0 = *(r3);
    0x000069f6 add r1, pc                                        |     r1 = 0xd768;
    0x000069f8 adds r0, 4                                        |     r0 += 4;
    0x000069fa bl 0x5664                                         |     r0 = fcn_00005664 (r0, r1);
    0x000069fe mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 0) {
    0x00006a00 cbz r0, 0x6a54                                    |         goto label_114;
                                                                 |     }
    0x00006a02 add.w r8, sp, 0x1320                              |     r8 += arg_1320h;
    0x00006a06 add.w r8, r8, 0xc                                 |     r8 += 0xc;
    0x00006a0a mov r7, r8                                        |     r7 = r8;
                                                                 |     do {
                                                                 | label_19:
    0x00006a0c mov r2, r5                                        |         r2 = r5;
    0x00006a0e mov.w r1, 0x1000                                  |         r1 = 0x1000;
    0x00006a12 mov r0, r8                                        |         r0 = r8;
    0x00006a14 blx 0x1c00                                        |         fcn_00001c00 ();
    0x00006a16 ldrd r2, r8, [r4], 0                              |         __asm ("ldrd r2, r8, [r4], 0");
                                                                 |         if (r0 == 0) {
    0x00006a1a beq.w 0x7490                                      |             goto label_115;
                                                                 |         }
    0x00006a1e mov r0, r8                                        |         r0 = r8;
    0x00006a20 adds r4, 1                                        |         r4++;
    0x00006a22 blx 0x1d74                                        |         r0 = fcn_00001d74 ();
    0x00006a26 cmp r0, 0                                         |         
    0x00006a28 beq 0x6a0c                                        |         
                                                                 |     } while (r0 == 0);
    0x00006a2a add r0, r7                                        |     r0 += r7;
    0x00006a2c ldrb r3, [r0, -0x1]                               |     r3 = *((r0 - 0x1));
    0x00006a30 cmp r3, 0xa                                       |     
                                                                 |     if (r3 == 0xa) {
    0x00006a32 beq 0x6a0c                                        |         goto label_19;
                                                                 |     }
    0x00006a34 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00006a36 movs r0, 3                                        |     r0 = 3;
    0x00006a38 ldr r1, [pc, 0x334]                               |     
    0x00006a3a str r4, [sp]                                      |     *(sp) = r4;
    0x00006a3c subw r3, r3, 0xaac                                |     __asm ("subw r3, r3, 0xaac");
    0x00006a40 ldr r2, [r3]                                      |     r2 = *(r3);
    0x00006a42 add r1, pc                                        |     r1 = 0xd7b6;
    0x00006a44 ldr r3, [pc, 0x32c]                               |     
    0x00006a46 adds r2, 4                                        |     r2 += 4;
    0x00006a48 add r3, pc                                        |     r3 = 0xd7c0;
    0x00006a4a bl 0x8a58                                         |     fcn_00008a58 (r0);
                                                                 | label_41:
    0x00006a4e mov r0, r5                                        |     r0 = r5;
    0x00006a50 blx 0x1bf4                                        |     fcn_00001bf4 ();
                                                                 | label_114:
    0x00006a54 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00006a56 movs r0, 7                                        |     r0 = 7;
    0x00006a58 ldr r1, [pc, 0x31c]                               |     
    0x00006a5a subw r4, r3, 0xaac                                |     __asm ("subw r4, r3, 0xaac");
    0x00006a5e ldr r2, [r4, 0xc]                                 |     r2 = *((r4 + 0xc));
    0x00006a60 add r1, pc                                        |     r1 = 0xd7dc;
    0x00006a62 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006a66 ldrd r3, r2, [r4, 8]                              |     __asm ("ldrd r3, r2, [r4, 8]");
    0x00006a6a add.w fp, r3, r2, lsl 2                           |     
    0x00006a6e cmp r3, fp                                        |     
                                                                 |     if (r3 >= fp) {
    0x00006a70 bhs.w 0x6f92                                      |         goto label_116;
                                                                 |     }
    0x00006a74 ldr.w sl, [pc, 0x304]                             |     
    0x00006a78 mov r8, r3                                        |     r8 = r3;
    0x00006a7a ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00006a7c mov.w sb, 0                                       |     sb = 0;
    0x00006a80 str r6, [sp, 0x20]                                |     var_20h = r6;
    0x00006a82 add sl, pc                                        |     sl = 0xd802;
    0x00006a84 ldr r6, [sp, 0x48]                                |     r6 = var_48h;
    0x00006a86 sub.w r7, r3, 0xa20                               |     r7 = r3 - 0xa20;
    0x00006a8a str.w sl, [sp, 0x1c]                              |     __asm ("str.w sl, [sig]");
    0x00006a8e b 0x6acc                                          |     
                                                                 |     while (r0 < 0) {
    0x00006a90 adds r3, r0, 2                                    |         r3 = r0 + 2;
    0x00006a92 ldr r4, [r5, 4]                                   |         r4 = *((r5 + 4));
                                                                 |         if (r3 == r0) {
    0x00006a94 beq 0x6b1e                                        |             goto label_117;
                                                                 |         }
    0x00006a96 rsbs r0, r0, 0                                    |         r0 -= ;
    0x00006a98 blx 0x1b54                                        |         fcn_00001b54 ();
    0x00006a9c ldr r1, [sp, 0x1c]                                |         r1 = sig;
    0x00006a9e mov r3, r0                                        |         r3 = r0;
    0x00006aa0 mov r2, r4                                        |         r2 = r4;
    0x00006aa2 movs r0, 3                                        |         r0 = 3;
    0x00006aa4 bl 0x8a58                                         |         fcn_00008a58 (r0);
                                                                 | label_20:
    0x00006aa8 mov r1, r5                                        |         r1 = r5;
    0x00006aaa ldr r0, [r1], 0x10                                |         r0 = *(r1);
                                                                 |         r1 += 0x10;
    0x00006aae bl 0xe7b0                                         |         fcn_0000e7b0 (r0, r1, r2, r3);
    0x00006ab2 mov r1, r5                                        |         r1 = r5;
    0x00006ab4 ldr r0, [r1], 0x14                                |         r0 = *(r1);
                                                                 |         r1 += 0x14;
    0x00006ab8 bl 0xeca8                                         |         fcn_0000eca8 (r0, r1, r2);
    0x00006abc ldr r0, [r5]                                      |         r0 = *(r5);
    0x00006abe bl 0xd418                                         |         fcn_0000d418 (r0);
    0x00006ac2 cmp fp, r8                                        |         
    0x00006ac4 str.w sb, [r5]                                    |         __asm ("str.w sb, [r5]");
                                                                 |         if (fp < r8) {
    0x00006ac8 bls.w 0x6f90                                      |             goto label_118;
                                                                 |         }
    0x00006acc ldr r5, [r8], 4                                   |         r5 = *(r8);
                                                                 |         r8 += 4;
    0x00006ad0 ldr r1, [sp, 0x18]                                |         r1 = var_18h;
    0x00006ad2 str.w sb, [r7]                                    |         __asm ("str.w sb, [r7]");
    0x00006ad6 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00006ad8 bl 0xeb54                                         |         r0 = fcn_0000eb54 (r0, r1, r2, r3);
    0x00006adc cmp r0, 0                                         |         
    0x00006ade blt 0x6a90                                        |         
                                                                 |     }
    0x00006ae0 ldr.w sl, [r7]                                    |     sl = *(r7);
    0x00006ae4 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x00006ae8 beq.w 0x7536                                      |         goto label_119;
                                                                 |     }
    0x00006aec mov r4, sl                                        |     r4 = sl;
                                                                 |     do {
    0x00006aee mov r0, r4                                        |         r0 = r4;
    0x00006af0 bl 0xeb18                                         |         r0 = fcn_0000eb18 (r0);
    0x00006af4 mov sl, r0                                        |         sl = r0;
    0x00006af6 mov r0, r4                                        |         r0 = r4;
    0x00006af8 bl 0xeb24                                         |         fcn_0000eb24 (r0);
    0x00006afc movs r2, 0                                        |         r2 = 0;
    0x00006afe strd r0, r1, [sp]                                 |         __asm ("strd r0, r1, [sp]");
    0x00006b02 str r5, [sp, 8]                                   |         var_8h_2 = r5;
    0x00006b04 mov r0, r6                                        |         r0 = r6;
    0x00006b06 mov r1, sl                                        |         r1 = sl;
    0x00006b08 bl 0x575c                                         |         fcn_0000575c (r0, r1, r2, r3);
    0x00006b0c ldr r4, [r4]                                      |         r4 = *(r4);
    0x00006b0e ldr r0, [r7]                                      |         r0 = *(r7);
    0x00006b10 cmp r4, r0                                        |         
                                                                 |         if (r4 == r0) {
    0x00006b12 beq 0x6b18                                        |             goto label_43;
                                                                 |         }
    0x00006b14 cmp r4, 0                                         |         
    0x00006b16 bne 0x6aee                                        |         
                                                                 |     } while (r4 != 0);
                                                                 | label_43:
    0x00006b18 bl 0xeb38                                         |     fcn_0000eb38 (r0);
    0x00006b1c b 0x6aa8                                          |     goto label_20;
                                                                 | label_117:
    0x00006b1e ldr r1, [pc, 0x260]                               |     
    0x00006b20 mov r2, r4                                        |     r2 = r4;
    0x00006b22 movs r0, 7                                        |     r0 = 7;
    0x00006b24 add r1, pc                                        |     r1 = 0xd8aa;
    0x00006b26 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006b2a b 0x6aa8                                          |     goto label_20;
                                                                 | label_88:
    0x00006b2c blx 0x207c                                        |     fcn_0000207c ();
    0x00006b30 ldr r1, [pc, 0x250]                               |     
    0x00006b32 mov r2, r4                                        |     r2 = r4;
    0x00006b34 ldr r3, [r0]                                      |     r3 = *(r0);
    0x00006b36 movs r0, 3                                        |     r0 = 3;
    0x00006b38 add r1, pc                                        |     r1 = 0xd8c0;
    0x00006b3a rsbs r4, r3, 0                                    |     r4 = r3 - ;
    0x00006b3c bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006b40 mov r0, r5                                        |     r0 = r5;
    0x00006b42 blx 0x1e90                                        |     fcn_00001e90 ();
    0x00006b46 b 0x649e                                          |     goto label_21;
                                                                 | label_97:
    0x00006b48 ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x00006b4a movs r3, 0                                        |     r3 = 0;
    0x00006b4c subw r2, r1, 0xab4                                |     __asm ("subw r2, r1, 0xab4");
    0x00006b50 str r3, [r2]                                      |     *(r2) = r3;
    0x00006b52 sub.w r2, r1, 0xab0                               |     r2 = r1 - 0xab0;
    0x00006b56 str r3, [r2]                                      |     *(r2) = r3;
    0x00006b58 ldr r3, [sp, 0x2c]                                |     r3 = var_sp_2ch;
    0x00006b5a cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00006b5c beq.w 0x7554                                      |         goto label_120;
                                                                 |     }
    0x00006b60 ldr r3, [sp, 0x2c]                                |     r3 = var_sp_2ch;
                                                                 | label_44:
    0x00006b62 ldr r5, [r3]                                      |     r5 = *(r3);
    0x00006b64 str r5, [sp, 0x70]                                |     var_70h = r5;
    0x00006b66 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00006b68 beq.w 0x6962                                      |         goto label_22;
                                                                 |     }
    0x00006b6c ldr.w sl, [pc, 0x218]                             |     
    0x00006b70 add r7, sp, 0xa8                                  |     r7 += var_a8h;
    0x00006b72 ldr.w fp, [pc, 0x218]                             |     
    0x00006b76 mov r4, r7                                        |     r4 = r7;
    0x00006b78 ldr.w sb, [sp, 0x24]                              |     sb = var_24h;
    0x00006b7c mov r8, r3                                        |     r8 = r3;
    0x00006b7e add sl, pc                                        |     sl = 0xd90a;
    0x00006b80 ldr r7, [sp, 0x4c]                                |     r7 = var_4ch;
    0x00006b82 add fp, pc                                        |     fp = 0xd914;
    0x00006b84 str r6, [sp, 0x38]                                |     var_38h = r6;
    0x00006b86 str.w sl, [sp, 0x1c]                              |     __asm ("str.w sl, [sig]");
    0x00006b8a b 0x6ba6                                          |     goto label_121;
                                                                 | label_24:
    0x00006b8c mov r3, r0                                        |     r3 = r0;
    0x00006b8e mov r2, r5                                        |     r2 = r5;
    0x00006b90 sub.w r1, r7, 0x34                                |     r1 = r7 - 0x34;
    0x00006b94 sub.w r0, r7, 0x30                                |     r0 = r7 - 0x30;
    0x00006b98 bl 0x5884                                         |     fcn_00005884 (r0, r1, r2, r3, r4);
                                                                 | label_27:
    0x00006b9c ldr r5, [r8, 4]!                                  |     r5 = *((r8 += 4));
    0x00006ba0 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00006ba2 beq.w 0x681c                                      |         goto label_23;
                                                                 |     }
                                                                 | label_121:
    0x00006ba6 mov r1, r4                                        |     r1 = r4;
    0x00006ba8 mov r0, r5                                        |     r0 = r5;
    0x00006baa blx 0x1d20                                        |     r0 = fcn_00001d20 ();
    0x00006bae cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00006bb0 bne 0x6c60                                        |         goto label_122;
                                                                 |     }
    0x00006bb2 subw r2, sb, 0xa88                                |     __asm ("subw r2, sb, 0xa88");
    0x00006bb6 ldr r2, [r2, 0x10]                                |     r2 = *((r2 + 0x10));
    0x00006bb8 and r2, r2, 0xf000                                |     r2 &= 0xf000;
    0x00006bbc cmp.w r2, 0x4000                                  |     
                                                                 |     if (r2 != 0x4000) {
    0x00006bc0 bne 0x6b8c                                        |         goto label_24;
                                                                 |     }
    0x00006bc2 mov r0, r5                                        |     r0 = r5;
    0x00006bc4 blx 0x1b90                                        |     r0 = fcn_00001b90 ();
    0x00006bc8 mov r6, r0                                        |     r6 = r0;
    0x00006bca cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006bcc beq.w 0x7a74                                      |         goto label_123;
                                                                 |     }
    0x00006bd0 blx 0x1fac                                        |     r0 = strcspn (r0, r1);
    0x00006bd4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006bd6 beq 0x6c4c                                        |         goto label_124;
                                                                 |     }
    0x00006bd8 str r4, [sp, 0x20]                                |     var_20h = r4;
    0x00006bda mov r4, r0                                        |     r4 = r0;
    0x00006bdc b 0x6c18                                          |     goto label_125;
                                                                 | label_25:
    0x00006bde mov r0, r6                                        |     r0 = r6;
    0x00006be0 blx 0x1e30                                        |     fcn_00001e30 ();
    0x00006be4 mov r3, r4                                        |     r3 = r4;
    0x00006be6 ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00006be8 mov r1, sl                                        |     r1 = sl;
    0x00006bea blx 0x1f38                                        |     fcn_00001f38 ();
    0x00006bee sub.w r3, sb, 0xa20                               |     r3 = sb - 0xa20;
    0x00006bf2 ldr r3, [r3, 0x10]                                |     r3 = *((r3 + 0x10));
    0x00006bf4 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00006bf8 cmp.w r3, 0x4000                                  |     
    0x00006bfc mov r3, sl                                        |     r3 = sl;
                                                                 |     if (r3 == 0x4000) {
    0x00006bfe beq 0x6c6e                                        |         goto label_126;
                                                                 |     }
    0x00006c00 mov r2, r5                                        |     r2 = r5;
    0x00006c02 sub.w r1, r7, 0x34                                |     r1 = r7 - 0x34;
    0x00006c06 sub.w r0, r7, 0x30                                |     r0 = r7 - 0x30;
    0x00006c0a bl 0x5884                                         |     fcn_00005884 (r0, r1, r2, r3, r4);
                                                                 |     do {
                                                                 | label_26:
    0x00006c0e mov r0, r6                                        |         r0 = r6;
    0x00006c10 blx 0x1fac                                        |         r0 = strcspn (r0, r1);
    0x00006c14 mov r4, r0                                        |         r4 = r0;
                                                                 |         if (r0 == 0) {
    0x00006c16 cbz r0, 0x6c4a                                    |             goto label_127;
                                                                 |         }
                                                                 | label_125:
    0x00006c18 add.w sl, r4, 0x13                                |         sl = r4 + 0x13;
    0x00006c1c mov r0, sl                                        |         r0 = sl;
    0x00006c1e blx 0x1d74                                        |         fcn_00001d74 ();
    0x00006c22 ldrb r3, [r4, 0x13]                               |         r3 = *((r4 + 0x13));
    0x00006c24 cmp r3, 0x2e                                      |         
    0x00006c26 beq 0x6c0e                                        |         
                                                                 |     } while (r3 == 0x2e);
    0x00006c28 cmp r0, 5                                         |     
                                                                 |     if (r0 < 5) {
    0x00006c2a bls 0x6c3c                                        |         goto label_128;
                                                                 |     }
    0x00006c2c subs r0, 5                                        |     r0 -= 5;
    0x00006c2e mov r1, fp                                        |     r1 = fp;
    0x00006c30 add r0, sl                                        |     r0 += sl;
    0x00006c32 blx 0x2058                                        |     r0 = fcn_00002058 ();
    0x00006c36 mov r4, r0                                        |     r4 = r0;
    0x00006c38 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006c3a beq 0x6bde                                        |         goto label_25;
                                                                 |     }
                                                                 | label_128:
    0x00006c3c ldr r1, [sp, 0x1c]                                |     r1 = sig;
    0x00006c3e mov r3, sl                                        |     r3 = sl;
    0x00006c40 mov r2, r5                                        |     r2 = r5;
    0x00006c42 movs r0, 6                                        |     r0 = 6;
    0x00006c44 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006c48 b 0x6c0e                                          |     goto label_26;
                                                                 | label_127:
    0x00006c4a ldr r4, [sp, 0x20]                                |     r4 = var_20h;
                                                                 | label_124:
    0x00006c4c mov r0, r6                                        |     r0 = r6;
    0x00006c4e blx 0x1e90                                        |     fcn_00001e90 ();
    0x00006c52 ldr r1, [pc, 0x13c]                               |     
    0x00006c54 mov r2, r5                                        |     r2 = r5;
    0x00006c56 movs r0, 7                                        |     r0 = 7;
    0x00006c58 add r1, pc                                        |     r1 = 0xd9ee;
    0x00006c5a bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006c5e b 0x6b9c                                          |     goto label_27;
                                                                 | label_122:
    0x00006c60 ldr r1, [pc, 0x130]                               |     
    0x00006c62 mov r2, r5                                        |     r2 = r5;
    0x00006c64 movs r0, 7                                        |     r0 = 7;
    0x00006c66 add r1, pc                                        |     r1 = 0xd9fe;
    0x00006c68 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006c6c b 0x6b9c                                          |     goto label_27;
                                                                 | label_126:
    0x00006c6e ldr r1, [pc, 0x128]                               |     
    0x00006c70 mov r2, r5                                        |     r2 = r5;
    0x00006c72 movs r0, 3                                        |     r0 = 3;
    0x00006c74 add r1, pc                                        |     r1 = 0xda12;
    0x00006c76 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006c7a b 0x6c0e                                          |     goto label_26;
                                                                 | label_29:
    0x00006c7c ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00006c7e movs r0, 3                                        |     r0 = 3;
    0x00006c80 ldr r1, [pc, 0x118]                               |     
    0x00006c82 str r5, [sp]                                      |     *(sp) = r5;
    0x00006c84 ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x00006c86 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00006c88 add r1, pc                                        |     r1 = 0xda28;
    0x00006c8a bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006c8e b 0x692c                                          |     goto label_28;
                                                                 | label_107:
    0x00006c90 ldr r5, [pc, 0x10c]                               |     
    0x00006c92 ldr.w sb, [sp, 0x30]                              |     sb = var_30h;
    0x00006c96 add r5, pc                                        |     r5 = 0xda3a;
    0x00006c98 b 0x6ca0                                          |     
                                                                 |     while (r0 != 0) {
    0x00006c9a mov r0, sb                                        |         r0 = sb;
    0x00006c9c bl 0x59b8                                         |         fcn_000059b8 (r0, r1);
    0x00006ca0 mov r1, r5                                        |         r1 = r5;
    0x00006ca2 mov r2, r6                                        |         r2 = r6;
    0x00006ca4 movs r0, 0                                        |         r0 = 0;
    0x00006ca6 blx 0x1f14                                        |         r0 = fcn_00001f14 ();
    0x00006caa mov r1, r0                                        |         r1 = r0;
    0x00006cac cmp r0, 0                                         |         
    0x00006cae bne 0x6c9a                                        |         
                                                                 |     }
    0x00006cb0 b 0x692c                                          |     goto label_28;
                                                                 | label_108:
    0x00006da4 ldr.w sl, [sp, 0x1c]                              |     sl = sig;
    0x00006da8 mov r2, r6                                        |     r2 = r6;
    0x00006daa mov r1, sl                                        |     r1 = sl;
    0x00006dac blx 0x1f14                                        |     fcn_00001f14 ();
    0x00006db0 mov r1, sl                                        |     r1 = sl;
    0x00006db2 mov r2, r6                                        |     r2 = r6;
    0x00006db4 str r0, [sp, 0x50]                                |     var_50h = r0;
    0x00006db6 mov r0, sb                                        |     r0 = sb;
    0x00006db8 str.w sl, [sp, 0x1c]                              |     __asm ("str.w sl, [sig]");
    0x00006dbc blx 0x1f14                                        |     fcn_00001f14 ();
    0x00006dc0 ldr r1, [sp, 0x1c]                                |     r1 = sig;
    0x00006dc2 mov sl, r0                                        |     sl = r0;
    0x00006dc4 mov r2, r6                                        |     r2 = r6;
    0x00006dc6 mov r0, sb                                        |     r0 = sb;
    0x00006dc8 blx 0x1f14                                        |     fcn_00001f14 ();
    0x00006dcc ldr r3, [sp, 0x50]                                |     r3 = var_50h;
    0x00006dce mov sb, r0                                        |     sb = r0;
    0x00006dd0 cmp.w sl, 0                                       |     
    0x00006dd4 it ne                                             |     
                                                                 |     if (sl != 0) {
    0x00006dd6 cmpne r3, 0                                       |         __asm ("cmpne r3, 0");
                                                                 |     }
    0x00006dd8 ite eq                                            |     
                                                                 |     if (sl != 0) {
    0x00006dda moveq r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (sl == 0) {
    0x00006ddc movne r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x00006dde cmp r0, 0                                         |     
    0x00006de0 it eq                                             |     
                                                                 |     if (r0 != 0) {
    0x00006de2 orreq r3, r3, 1                                   |         r3 |= 1;
                                                                 |     }
    0x00006de6 str r3, [sp, 0x64]                                |     var_ch_2 = r3;
    0x00006de8 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00006dea bne.w 0x6c7c                                      |         goto label_29;
                                                                 |     }
    0x00006dee ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00006df0 mov r1, sl                                        |     r1 = sl;
    0x00006df2 bl 0x5568                                         |     fcn_00005568 (r0, r1);
    0x00006df6 ldr r3, [sp, 0x64]                                |     r3 = var_ch_2;
    0x00006df8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006dfa beq.w 0x6f4c                                      |         goto label_129;
                                                                 |     }
    0x00006dfe ldr r0, [sp, 0x50]                                |     r0 = var_50h;
    0x00006e00 str r3, [sp, 0x68]                                |     var_68h = r3;
    0x00006e02 blx 0x1d74                                        |     fcn_00001d74 ();
    0x00006e04 vext.16 d4, d24, d2, 3                            |     __asm ("vext.16 d4, d24, d2, 3");
    0x00006e08 mov r0, sb                                        |     r0 = sb;
    0x00006e0a blx 0x1d74                                        |     r0 = fcn_00001d74 ();
    0x00006e0e mov r2, r0                                        |     r2 = r0;
    0x00006e10 add r0, sl                                        |     r0 += sl;
    0x00006e12 adds r0, 0xa                                      |     r0 += 0xa;
    0x00006e14 str r2, [sp, 0x64]                                |     var_ch_2 = r2;
    0x00006e16 blx 0x1ec0                                        |     fcn_00001ec0 ();
    0x00006e1a ldrd r2, r3, [sp, 0x64]                           |     __asm ("ldrd r2, r3, [var_ch_2]");
    0x00006e1e mov r5, r0                                        |     r5 = r0;
    0x00006e20 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006e22 beq.w 0x7926                                      |         goto label_130;
                                                                 |     }
    0x00006e26 str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x00006e28 add.w r3, r0, 8                                   |     r3 = r0 + 8;
    0x00006e2c mov r1, sb                                        |     r1 = sb;
    0x00006e2e mov r0, r3                                        |     r0 = r3;
    0x00006e30 strd r3, r2, [sp, 0x64]                           |     __asm ("strd r3, r2, [sp, 0x64]");
    0x00006e34 blx 0x1d90                                        |     feof (r0);
    0x00006e38 ldr r2, [sp, 0x68]                                |     r2 = var_68h;
    0x00006e3a movs r0, 0x2f                                     |     r0 = 0x2f;
    0x00006e3c ldr r3, [sp, 0x64]                                |     r3 = var_ch_2;
    0x00006e3e ldr r1, [sp, 0x50]                                |     r1 = var_50h;
    0x00006e40 add.w sb, r2, 1                                   |     sb = r2 + 1;
    0x00006e44 add r2, r5                                        |     r2 += r5;
    0x00006e46 strb r0, [r2, 8]                                  |     *((r2 + 8)) = r0;
    0x00006e48 mov r2, sl                                        |     r2 = sl;
    0x00006e4a add.w r0, r3, sb                                  |     r0 = r3 + sb;
    0x00006e4e blx 0x1d90                                        |     feof (r0);
    0x00006e52 ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x00006e54 add.w r1, sl, sb                                  |     r1 = sl + sb;
    0x00006e58 adds r0, r5, r1                                   |     r0 = r5 + r1;
    0x00006e5a ldr r2, [sp, 0x64]                                |     r2 = var_ch_2;
    0x00006e5c strb r3, [r0, 8]                                  |     *((r0 + 8)) = r3;
    0x00006e5e movs r0, 7                                        |     r0 = 7;
    0x00006e60 str r1, [r5, 4]                                   |     *((r5 + 4)) = r1;
    0x00006e62 ldr.w r1, [pc, 0xc40]                             |     
    0x00006e66 add r1, pc                                        |     r1 = 0xe910;
    0x00006e68 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006e6a ldc2l p8, c15, [r6, 0x35c]!                       |     __asm ("ldc2l p8, c15, [r6, 0x35c]!");
    0x00006e6e adds r7, 0xe0                                     |     r7 += 0xe0;
    0x00006e70 str.w r5, [r7, 0x7e0]                             |     __asm ("str.w r5, [r7, 0x7e0]");
    0x00006e72 ldrsb r0, [r4, r7]                                |     r0 = *((r4 + r7));
    0x00006e74 str r3, [r5]                                      |     *(r5) = r3;
    0x00006e76 b 0x692c                                          |     goto label_28;
                                                                 | label_109:
    0x00006e78 ldr r1, [sp, 0x1c]                                |     r1 = sig;
    0x00006e7a mov r2, r6                                        |     r2 = r6;
    0x00006e7c blx 0x1f14                                        |     fcn_00001f14 ();
    0x00006e80 ldr r1, [sp, 0x1c]                                |     r1 = sig;
    0x00006e82 mov sb, r0                                        |     sb = r0;
    0x00006e84 mov r2, r6                                        |     r2 = r6;
    0x00006e86 mov r0, sl                                        |     r0 = sl;
    0x00006e88 blx 0x1f14                                        |     r0 = fcn_00001f14 ();
    0x00006e8c cmp r0, 0                                         |     
    0x00006e8e it ne                                             |     
                                                                 |     if (r0 != 0) {
    0x00006e90 cmpne sb, 0                                       |         __asm ("cmpne sb, 0");
                                                                 |     }
    0x00006e94 mov sl, r0                                        |     sl = r0;
                                                                 |     if (r0 == 0) {
    0x00006e96 beq.w 0x6c7c                                      |         goto label_29;
                                                                 |     }
    0x00006e9a ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00006e9c mov r1, sb                                        |     r1 = sb;
    0x00006e9e bl 0x5568                                         |     r0 = fcn_00005568 (r0, r1);
    0x00006ea2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006ea4 beq.w 0x742e                                      |         goto label_131;
                                                                 |     }
    0x00006ea8 mov r0, sl                                        |     r0 = sl;
    0x00006eaa blx 0x1d74                                        |     r0 = fcn_00001d74 ();
    0x00006eae mov sb, r0                                        |     sb = r0;
    0x00006eb0 adds r0, 9                                        |     r0 += 9;
    0x00006eb2 blx 0x1ec0                                        |     r0 = fcn_00001ec0 ();
    0x00006eb6 mov r5, r0                                        |     r5 = r0;
    0x00006eb8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006eba beq.w 0x7934                                      |         goto label_132;
                                                                 |     }
    0x00006ebe add.w r3, r0, 8                                   |     r3 = r0 + 8;
    0x00006ec2 mov r1, sl                                        |     r1 = sl;
    0x00006ec4 mov r0, r3                                        |     r0 = r3;
    0x00006ec6 add.w r2, sb, 1                                   |     r2 = sb + 1;
    0x00006eca blx 0x1d90                                        |     feof (r0);
    0x00006ece ldr.w r1, [pc, 0xbd8]                             |     
    0x00006ed2 mov r2, r0                                        |     r2 = r0;
    0x00006ed4 str.w sb, [r5, 4]                                 |     __asm ("str.w sb, [r5, 4]");
    0x00006ed8 movs r0, 7                                        |     r0 = 7;
    0x00006eda add r1, pc                                        |     r1 = 0xe988;
    0x00006edc bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006ee0 ldr.w r3, [r7, 0x7e8]                             |     r3 = *((r7 + 0x7e8));
    0x00006ee4 str.w r5, [r7, 0x7e8]                             |     __asm ("str.w r5, [r7, 0x7e8]");
    0x00006ee8 str r3, [r5]                                      |     *(r5) = r3;
    0x00006eea b 0x692c                                          |     goto label_28;
                                                                 | label_110:
    0x00006eec ldr.w sb, [pc, 0xbbc]                             |     
    0x00006ef0 ldr.w sl, [pc, 0xbbc]                             |     
    0x00006ef4 str r4, [sp, 0x50]                                |     var_50h = r4;
    0x00006ef6 add sb, pc                                        |     sb = 0xe9a6;
    0x00006ef8 str.w r8, [sp, 0x64]                              |     __asm ("str.w r8, [var_ch_2]");
    0x00006efc add sl, pc                                        |     sl = 0xe9b0;
    0x00006efe b 0x6f34                                          |     
                                                                 |     while (r0 != 0) {
    0x00006f00 blx 0x1d74                                        |         r0 = fcn_00001d74 ();
    0x00006f04 mov r8, r0                                        |         r8 = r0;
    0x00006f06 adds r0, 5                                        |         r0 += 5;
    0x00006f08 blx 0x1ec0                                        |         r0 = fcn_00001ec0 ();
    0x00006f0c mov r4, r0                                        |         r4 = r0;
    0x00006f0e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00006f10 beq.w 0x7a94                                      |             goto label_133;
                                                                 |         }
    0x00006f14 add.w r2, r8, 1                                   |         r2 = r8 + 1;
    0x00006f18 mov r1, r5                                        |         r1 = r5;
    0x00006f1a adds r0, 4                                        |         r0 += 4;
    0x00006f1c blx 0x1d90                                        |         feof (r0);
    0x00006f20 mov r2, r5                                        |         r2 = r5;
    0x00006f22 mov r1, sl                                        |         r1 = sl;
    0x00006f24 movs r0, 7                                        |         r0 = 7;
    0x00006f26 bl 0x8a58                                         |         fcn_00008a58 (r0);
    0x00006f2a ldr.w r2, [r7, 0x7ec]                             |         r2 = *((r7 + 0x7ec));
    0x00006f2e str.w r4, [r7, 0x7ec]                             |         __asm ("str.w r4, [r7, 0x7ec]");
    0x00006f32 str r2, [r4]                                      |         *(r4) = r2;
                                                                 | label_62:
    0x00006f34 mov r2, r6                                        |         r2 = r6;
    0x00006f36 mov r1, sb                                        |         r1 = sb;
    0x00006f38 movs r0, 0                                        |         r0 = 0;
    0x00006f3a blx 0x1f14                                        |         fcn_00001f14 ();
    0x00006f3c invalid                                           |         
    0x00006f40 cmp r0, 0                                         |         
    0x00006f42 bne 0x6f00                                        |         
                                                                 |     }
    0x00006f44 ldr r4, [sp, 0x50]                                |     r4 = var_50h;
    0x00006f46 ldr.w r8, [sp, 0x64]                              |     r8 = var_ch_2;
    0x00006f4a b 0x692c                                          |     goto label_28;
                                                                 | label_129:
    0x00006f4c ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00006f4e movs r0, 6                                        |     r0 = 6;
    0x00006f50 ldr.w r1, [pc, 0xb60]                             |     
    0x00006f54 str.w sl, [sp]                                    |     __asm ("str.w sl, [sp]");
    0x00006f56 adr r0, 0                                         |     r0 = 0;
    0x00006f58 ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x00006f5a ldr r3, [r3]                                      |     r3 = *(r3);
    0x00006f5c add r1, pc                                        |     r1 = 0xea14;
    0x00006f5e bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006f62 b 0x692c                                          |     goto label_28;
                                                                 | label_89:
    0x00006f64 ldr.w r1, [pc, 0xb50]                             |     
    0x00006f68 mov r2, r5                                        |     r2 = r5;
    0x00006f6a movs r0, 2                                        |     r0 = 2;
    0x00006f6c add r1, pc                                        |     r1 = 0xea28;
    0x00006f6e bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006f72 b.w 0x623c                                        |     goto label_10;
                                                                 | label_101:
    0x00006f76 ldr r3, [sp, 0x50]                                |     r3 = var_50h;
    0x00006f78 movs r0, 3                                        |     r0 = 3;
    0x00006f7a ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x00006f7c ldr.w r1, [pc, 0xb3c]                             |     
    0x00006f80 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00006f82 add r1, pc                                        |     r1 = 0xea42;
    0x00006f84 ldr.w r2, [r2, r3, lsl 2]                         |     offset_2 = r3 << 2;
                                                                 |     r2 = *((r2 + offset_2));
    0x00006f88 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006f8c b.w 0x623c                                        |     goto label_10;
                                                                 | label_118:
    0x00006f90 ldr r6, [sp, 0x20]                                |     r6 = var_20h;
                                                                 | label_116:
    0x00006f92 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00006f94 subw r4, r3, 0xaac                                |     __asm ("subw r4, r3, 0xaac");
    0x00006f98 ldr r0, [r4, 0x20]                                |     r0 = *((r4 + 0x20));
    0x00006f9a ldr r5, [r4, 0xc]                                 |     r5 = *((r4 + 0xc));
    0x00006f9c bl 0x963c                                         |     fcn_0000963c (r0);
    0x00006fa0 ldr.w r1, [pc, 0xb1c]                             |     
    0x00006fa4 mov r3, r0                                        |     r3 = r0;
    0x00006fa6 mov r2, r5                                        |     r2 = r5;
    0x00006fa8 movs r0, 7                                        |     r0 = 7;
    0x00006faa add r1, pc                                        |     r1 = 0xea6e;
    0x00006fac bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006fb0 ldr r0, [r4, 0x20]                                |     r0 = *((r4 + 0x20));
    0x00006fb2 ldr r5, [r4, 0xc]                                 |     r5 = *((r4 + 0xc));
    0x00006fb4 bl 0x963c                                         |     fcn_0000963c (r0);
    0x00006fb8 ldr.w r1, [pc, 0xb08]                             |     
    0x00006fbc mov r3, r0                                        |     r3 = r0;
    0x00006fbe mov r2, r5                                        |     r2 = r5;
    0x00006fc0 movs r0, 7                                        |     r0 = 7;
    0x00006fc2 add r1, pc                                        |     r1 = 0xea8a;
    0x00006fc4 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00006fc8 ldrd r7, r3, [r4, 8]                              |     __asm ("ldrd r7, r3, [r4, 8]");
    0x00006fcc add.w r8, r7, r3, lsl 2                           |     r8 = r7 + (r3 << 2);
    0x00006fd0 cmp r7, r8                                        |     
                                                                 |     if (r7 >= r8) {
    0x00006fd2 bhs.w 0x7102                                      |         goto label_134;
                                                                 |     }
    0x00006fd6 ldr.w r3, [pc, 0xaf0]                             |     
    0x00006fda mov sb, r7                                        |     sb = r7;
    0x00006fdc ldr.w r7, [pc, 0xaec]                             |     
    0x00006fe0 str r6, [sp, 0x50]                                |     var_50h = r6;
    0x00006fe2 add r3, pc                                        |     r3 = 0xeab0;
    0x00006fe4 str.w r8, [sp, 0x44]                              |     __asm ("str.w r8, [var_44h]");
    0x00006fe8 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x00006fea add r7, pc                                        |     r7 = 0xeaba;
    0x00006fec ldr.w r3, [pc, 0xae0]                             |     
    0x00006ff0 str r7, [sp, 0x4c]                                |     var_4ch = r7;
    0x00006ff2 add r3, pc                                        |     r3 = 0xeac6;
    0x00006ff4 str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x00006ff6 ldr.w r3, [pc, 0xadc]                             |     
    0x00006ffa add r3, pc                                        |     r3 = 0xead4;
    0x00006ffc str r3, [sp, 0x40]                                |     var_40h = r3;
                                                                 | label_30:
    0x00006ffe ldr r7, [sb], 4                                   |     r7 = *(sb);
                                                                 |     sb += 4;
    0x00007002 ldr r1, [r7, 0x14]                                |     r1 = *((r7 + 0x14));
    0x00007004 ldr r2, [r7, 4]                                   |     r2 = *((r7 + 4));
    0x00007006 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00007008 beq.w 0x7420                                      |         goto label_135;
                                                                 |     }
    0x0000700c ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0000700e movs r0, 7                                        |     r0 = 7;
    0x00007010 subw r1, r3, 0xaac                                |     __asm ("subw r1, r3, 0xaac");
    0x00007014 ldr r4, [r1]                                      |     r4 = *(r1);
    0x00007016 ldr r1, [sp, 0x4c]                                |     r1 = var_4ch;
    0x00007018 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x0000701c ldr r6, [r7, 0x14]                                |     r6 = *((r7 + 0x14));
    0x0000701e cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00007020 beq 0x70f8                                        |         goto label_40;
                                                                 |     }
    0x00007022 mov sl, r7                                        |     sl = r7;
    0x00007024 add.w r3, r4, 0x1000                              |     r3 = r4 + 0x1000;
    0x00007028 str r3, [sp, 0x1c]                                |     sig = r3;
    0x0000702a str.w sb, [sp, 0x38]                              |     __asm ("str.w sb, [var_38h]");
                                                                 |     do {
    0x0000702e mov r0, r6                                        |         r0 = r6;
    0x00007030 bl 0xec60                                         |         r0 = fcn_0000ec60 (r0);
    0x00007034 mov r5, r0                                        |         r5 = r0;
    0x00007036 mov r0, r6                                        |         r0 = r6;
    0x00007038 bl 0xec6c                                         |         r0 = fcn_0000ec6c (r0);
    0x0000703c mov sb, r0                                        |         sb = r0;
    0x0000703e mov r0, r6                                        |         r0 = r6;
    0x00007040 mov r7, r1                                        |         r7 = r1;
    0x00007042 bl 0xec80                                         |         fcn_0000ec80 (r0);
    0x00007046 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x00007048 mov r8, r0                                        |         r8 = r0;
    0x0000704a ldrb r2, [r5]                                     |         r2 = *(r5);
    0x0000704c subw r1, r3, 0xaac                                |         __asm ("subw r1, r3, 0xaac");
    0x00007050 ldr r3, [r1]                                      |         r3 = *(r1);
    0x00007052 cmp r2, 0x2e                                      |         
    0x00007054 it eq                                             |         
                                                                 |         if (r2 != 0x2e) {
    0x00007056 ldrbeq r2, [r5, 1]                                |             r2 = *((r5 + 1));
                                                                 |         }
    0x00007058 ldr r0, [r1, 0x20]                                |         r0 = *((r1 + 0x20));
    0x0000705a it eq                                             |         
                                                                 |         if (r2 != 0x2e) {
    0x0000705c addeq r1, r5, 1                                   |             r1 = r5 + 1;
                                                                 |         }
    0x0000705e add.w r3, r3, 0x1000                              |         r3 += 0x1000;
    0x00007062 it ne                                             |         
                                                                 |         if (r2 == 0x2e) {
    0x00007064 movne r1, r5                                      |             r1 = r5;
                                                                 |         }
    0x00007066 ldrb r3, [r3, 8]                                  |         r3 = *((r3 + 8));
    0x00007068 cmp r3, r2                                        |         
    0x0000706a it eq                                             |         
                                                                 |         if (r3 != r2) {
    0x0000706c addeq r1, 1                                       |             r1++;
                                                                 |         }
    0x0000706e bl 0x93dc                                         |         r0 = fcn_000093dc (r0, r1);
    0x00007072 mov r4, r0                                        |         r4 = r0;
    0x00007074 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00007076 beq.w 0x7398                                      |             goto label_136;
                                                                 |         }
    0x0000707a ldr r3, [sp, 0x1c]                                |         r3 = sig;
    0x0000707c add.w fp, r0, 0x10                                |         
    0x00007080 ldr.w r2, [sl, 4]                                 |         r2 = *((sl + 4));
    0x00007084 ldrb r3, [r3, 9]                                  |         r3 = *((r3 + 9));
                                                                 |         if (r3 != 0) {
    0x00007086 cbz r3, 0x70aa                                    |             
    0x00007088 ldrd r0, r1, [r0, 8]                              |             __asm ("ldrd r0, r1, [r0, 8]");
    0x0000708c cmp r7, r1                                        |             
    0x0000708e it eq                                             |             
                                                                 |             if (r7 == r1) {
    0x00007090 cmpeq sb, r0                                      |                 __asm ("cmpeq sb, r0");
                                                                 |             }
    0x00007092 ite ne                                            |             
                                                                 |             if (r7 == r1) {
    0x00007094 movne r3, 1                                       |                 r3 = 1;
                                                                 |             }
                                                                 |             if (r7 != r1) {
    0x00007096 moveq r3, 0                                       |                 r3 = 0;
                                                                 |             }
    0x00007098 cmp.w r8, 0x57                                    |             
    0x0000709c ite eq                                            |             
                                                                 |             if (r8 != 0x57) {
    0x0000709e moveq r3, 0                                       |                 r3 = 0;
                                                                 |             }
                                                                 |             if (r8 == 0x57) {
    0x000070a0 andne r3, r3, 1                                   |                 r3 &= 1;
                                                                 |             }
    0x000070a4 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x000070a6 bne.w 0x7376                                      |                 goto label_137;
                                                                 |             }
                                                                 |         }
                                                                 | label_36:
    0x000070aa ldr r3, [r4]                                      |         r3 = *(r4);
    0x000070ac cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000070ae beq.w 0x7372                                      |             goto label_138;
                                                                 |         }
    0x000070b2 ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
                                                                 | label_35:
    0x000070b4 ldr r1, [sp, 0x20]                                |         r1 = var_20h;
    0x000070b6 movs r0, 7                                        |         r0 = 7;
    0x000070b8 str r3, [sp]                                      |         *(sp) = r3;
    0x000070ba mov r3, fp                                        |         r3 = fp;
    0x000070bc bl 0x8a58                                         |         fcn_00008a58 (r0);
    0x000070c0 ldr r1, [r4]                                      |         r1 = *(r4);
                                                                 |         if (r1 != 0) {
    0x000070c2 cbz r1, 0x70e6                                    |             
    0x000070c4 add.w r0, sl, 0x18                                |             r0 = sl + 0x18;
    0x000070c8 bl 0x904c                                         |             r0 = fcn_0000904c (r0, r1, r2);
    0x000070cc cmp r0, 0                                         |             
                                                                 |             if (r0 < 0) {
    0x000070ce blt 0x70e6                                        |                 goto label_37;
                                                                 |             }
    0x000070d0 ldr r3, [r4]                                      |             r3 = *(r4);
    0x000070d2 mov r2, fp                                        |             r2 = fp;
    0x000070d4 ldr.w r1, [sl, 4]                                 |             r1 = *((sl + 4));
    0x000070d8 ldr r0, [sp, 0x3c]                                |             r0 = var_3ch;
    0x000070da ldrh r4, [r3, 0x3a]                               |             r4 = *((r3 + 0x3a));
    0x000070dc adds r4, 1                                        |             r4++;
    0x000070de strh r4, [r3, 0x3a]                               |             *((r3 + 0x3a)) = r4;
    0x000070e0 ldr r3, [r3, 4]                                   |             r3 = *((r3 + 4));
    0x000070e2 bl 0x56dc                                         |             fcn_000056dc ();
                                                                 |         }
                                                                 | label_37:
    0x000070e6 ldr r6, [r6]                                      |         r6 = *(r6);
    0x000070e8 ldr.w r3, [sl, 0x14]                              |         r3 = *((sl + 0x14));
    0x000070ec cmp r6, r3                                        |         
                                                                 |         if (r6 == r3) {
    0x000070ee beq 0x70f4                                        |             goto label_139;
                                                                 |         }
    0x000070f0 cmp r6, 0                                         |         
    0x000070f2 bne 0x702e                                        |         
                                                                 |     } while (r6 != 0);
                                                                 | label_139:
    0x000070f4 ldr.w sb, [sp, 0x38]                              |     sb = var_38h;
                                                                 | label_40:
    0x000070f8 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x000070fa cmp r3, sb                                        |     
                                                                 |     if (r3 > sb) {
    0x000070fc bhi.w 0x6ffe                                      |         goto label_30;
                                                                 |     }
    0x00007100 ldr r6, [sp, 0x50]                                |     r6 = var_50h;
                                                                 | label_134:
    0x00007102 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00007104 subw r7, r3, 0xaac                                |     __asm ("subw r7, r3, 0xaac");
    0x00007108 ldr r0, [r7, 0x20]                                |     r0 = *((r7 + 0x20));
    0x0000710a ldr r4, [r7, 0xc]                                 |     r4 = *((r7 + 0xc));
    0x0000710c bl 0x963c                                         |     fcn_0000963c (r0);
    0x00007110 ldr.w r1, [pc, 0x9c4]                             |     
    0x00007114 mov r3, r0                                        |     r3 = r0;
    0x00007116 mov r2, r4                                        |     r2 = r4;
    0x00007118 movs r0, 7                                        |     r0 = 7;
    0x0000711a add r1, pc                                        |     r1 = 0xebf6;
    0x0000711c bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007120 ldr r4, [r7, 0xc]                                 |     r4 = *((r7 + 0xc));
    0x00007122 uxth.w sb, r4                                     |     sb = (int16_t) r4;
    0x00007126 lsl.w r8, sb, 1                                   |     r8 = sb << 1;
    0x0000712a add.w r0, r8, sb                                  |     r0 = r8 + sb;
    0x0000712e lsls r0, r0, 1                                    |     r0 <<= 1;
    0x00007130 blx 0x1ec0                                        |     r0 = fcn_00001ec0 ();
    0x00007134 mov r5, r0                                        |     r5 = r0;
    0x00007136 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00007138 beq.w 0x6672                                      |         goto label_31;
                                                                 |     }
    0x0000713c ldr.w r1, [pc, 0x99c]                             |     
    0x00007140 add r8, r0                                        |     r8 += r0;
    0x00007142 mov r2, sb                                        |     r2 = sb;
    0x00007144 movs r0, 7                                        |     r0 = 7;
    0x00007146 add r1, pc                                        |     r1 = 0xec26;
    0x00007148 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x0000714c ldr.w sl, [r7, 0xc]                               |     sl = *((r7 + 0xc));
    0x00007150 movw r3, 0xfffe                                   |     r3 = 0xfffe;
    0x00007154 cmp sl, r3                                        |     
                                                                 |     if (sl > r3) {
    0x00007156 bhi.w 0x79a2                                      |         goto label_140;
                                                                 |     }
    0x0000715a uxth r4, r4                                       |     r4 = (int16_t) r4;
    0x0000715c ldr.w lr, [r7, 8]                                 |     
    0x00007160 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00007162 beq 0x71ec                                        |         goto label_141;
                                                                 |     }
    0x00007164 movs r0, 0                                        |     r0 = 0;
    0x00007166 sub.w r1, lr, 4                                   |     r1 = lr - 4;
    0x0000716a subs r2, r5, 2                                    |     r2 = r5 - 2;
    0x0000716c mov ip, r0                                        |     
                                                                 |     do {
    0x0000716e ldr r3, [r1, 4]!                                  |         r3 = *((r1 += 4));
    0x00007172 ldrh r3, [r3, 0x3a]                               |         r3 = *((r3 + 0x3a));
    0x00007174 strh r3, [r2, 2]!                                 |         *((r2 += 2)) = r3;
                                                                 |         if (r3 == 0) {
    0x00007178 cbnz r3, 0x7182                                   |             
    0x0000717a strh.w ip, [r8, r0, lsl 1]                        |             offset_3 = r0 << 1;
                                                                 |             *((r8 + offset_3)) = ip;
    0x0000717e adds r0, 1                                        |             r0++;
    0x00007180 uxth r0, r0                                       |             r0 = (int16_t) r0;
                                                                 |         }
    0x00007182 add.w ip, ip, 1                                   |         
    0x00007186 uxth.w ip, ip                                     |         ip = (int16_t) ip;
    0x0000718a cmp r4, ip                                        |         
    0x0000718c bne 0x716e                                        |         
                                                                 |     } while (r4 != ip);
    0x0000718e movs r7, 0                                        |     r7 = 0;
    0x00007190 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00007192 beq.w 0x7640                                      |         goto label_142;
                                                                 |     }
                                                                 | label_32:
    0x00007196 subs r0, 1                                        |     r0--;
    0x00007198 add.w r1, r7, sb                                  |     r1 = r7 + sb;
    0x0000719c uxth r0, r0                                       |     r0 = (int16_t) r0;
    0x0000719e adds r2, r7, 1                                    |     r2 = r7 + 1;
    0x000071a0 ldrh.w r3, [r8, r0, lsl 1]                        |     offset_4 = r0 << 1;
                                                                 |     r3 = *((r8 + offset_4));
    0x000071a4 strh.w r3, [r8, r1, lsl 1]                        |     offset_5 = r1 << 1;
                                                                 |     *((r8 + offset_5)) = r3;
    0x000071a8 ldr.w r3, [lr, r3, lsl 2]                         |     offset_6 = r3 << 2;
                                                                 |     r3 = *((lr + offset_6));
    0x000071ac ldrd r1, r4, [r3, 0x18]                           |     __asm ("ldrd r1, r4, [r3, 0x18]");
    0x000071b0 str r7, [r3, 0x34]                                |     *((r3 + 0x34)) = r7;
    0x000071b2 uxth r7, r2                                       |     r7 = (int16_t) r2;
    0x000071b4 add.w r4, r1, r4, lsl 2                           |     r4 = r1 + (r4 << 2);
    0x000071b8 cmp r1, r4                                        |     
                                                                 |     if (r1 >= r4) {
    0x000071ba bhs 0x71e2                                        |         goto label_143;
                                                                 |     }
                                                                 |     do {
    0x000071bc ldr r3, [r1], 4                                   |         r3 = *(r1);
                                                                 |         r1 += 4;
    0x000071c0 ldrh r2, [r3, 0x38]                               |         r2 = *((r3 + 0x38));
    0x000071c2 ldrh.w r3, [r5, r2, lsl 1]                        |         offset_7 = r2 << 1;
                                                                 |         r3 = *((r5 + offset_7));
    0x000071c6 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000071c8 beq.w 0x7902                                      |             goto label_144;
                                                                 |         }
    0x000071cc subs r3, 1                                        |         r3--;
    0x000071ce uxth r3, r3                                       |         r3 = (int16_t) r3;
    0x000071d0 strh.w r3, [r5, r2, lsl 1]                        |         offset_8 = r2 << 1;
                                                                 |         *((r5 + offset_8)) = r3;
                                                                 |         if (r3 == 0) {
    0x000071d4 cbnz r3, 0x71de                                   |             
    0x000071d6 strh.w r2, [r8, r0, lsl 1]                        |             offset_9 = r0 << 1;
                                                                 |             *((r8 + offset_9)) = r2;
    0x000071da adds r0, 1                                        |             r0++;
    0x000071dc uxth r0, r0                                       |             r0 = (int16_t) r0;
                                                                 |         }
    0x000071de cmp r4, r1                                        |         
    0x000071e0 bhi 0x71bc                                        |         
                                                                 |     } while (r4 > r1);
                                                                 | label_143:
    0x000071e2 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000071e4 bne 0x7196                                        |         goto label_32;
                                                                 |     }
    0x000071e6 cmp ip, r7                                        |     
                                                                 |     if (ip > r7) {
    0x000071e8 bhi.w 0x7640                                      |         goto label_142;
                                                                 |     }
                                                                 | label_141:
    0x000071ec add.w r7, lr, sl, lsl 2                           |     r7 = lr + (sl << 2);
    0x000071f0 cmp lr, r7                                        |     
                                                                 |     if (lr >= r7) {
    0x000071f2 bhs 0x7212                                        |         goto label_145;
                                                                 |     }
    0x000071f4 ldr.w r8, [pc, 0x8e8]                             |     r8 = *(0x00007ae0);
    0x000071f8 mov r4, lr                                        |     r4 = lr;
    0x000071fa add r8, pc                                        |     r8 += pc;
                                                                 |     do {
    0x000071fc ldr r0, [r4], 4                                   |         r0 = *(r4);
                                                                 |         r4 += 4;
    0x00007200 ldr r3, [r0, 0x1c]                                |         r3 = *((r0 + 0x1c));
    0x00007202 cmp r3, 1                                         |         
                                                                 |         if (r3 >= 1) {
    0x00007204 bls 0x720e                                        |             
    0x00007206 adds r0, 0x18                                     |             r0 += 0x18;
    0x00007208 mov r1, r8                                        |             r1 = r8;
    0x0000720a bl 0x9088                                         |             fcn_00009088 (r0, r1);
                                                                 |         }
    0x0000720e cmp r7, r4                                        |         
    0x00007210 bhi 0x71fc                                        |         
                                                                 |     } while (r7 > r4);
                                                                 | label_145:
    0x00007212 ldr.w r1, [pc, 0x8d0]                             |     
    0x00007216 mov r2, sb                                        |     r2 = sb;
    0x00007218 movs r0, 7                                        |     r0 = 7;
    0x0000721a add r1, pc                                        |     r1 = 0xed04;
    0x0000721c bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007220 mov r0, r5                                        |     r0 = r5;
    0x00007222 blx 0x1cb0                                        |     fcn_00001cb0 ();
    0x00007226 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00007228 movs r1, 0                                        |     r1 = 0;
    0x0000722a ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x0000722c subw r3, r3, 0xaac                                |     __asm ("subw r3, r3, 0xaac");
    0x00007230 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00007232 adds r3, 4                                        |     r3 += 4;
    0x00007234 str r3, [sp, 0x1c]                                |     sig = r3;
    0x00007236 blx 0x1d08                                        |     fcn_00001d08 ();
    0x0000723a ldr r3, [sp, 0x34]                                |     r3 = nmemb;
    0x0000723c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000723e beq.w 0x75b6                                      |         goto label_146;
                                                                 |     }
                                                                 | label_49:
    0x00007242 ldr.w r3, [pc, 0x8a4]                             |     
    0x00007246 add.w sb, sp, 0x1320                              |     sb += arg_1320h;
    0x0000724a ldr.w r4, [pc, 0x8a0]                             |     
    0x0000724e add.w sb, sb, 0x10                                |     sb += 0x10;
    0x00007250 lsrs r0, r2, 4                                    |     r0 = r2 >> 4;
    0x00007252 mov.w sl, 0                                       |     sl = 0;
    0x00007256 add r3, pc                                        |     r3 = 0xed44;
    0x00007258 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x0000725a add r4, pc                                        |     r4 = 0xed4c;
    0x0000725c ldr.w r3, [pc, 0x890]                             |     
    0x00007260 add r3, pc                                        |     r3 = 0xed54;
    0x00007262 str r4, [r3]                                      |     *(r3) = r4;
    0x00007264 add.w r3, sp, 0x1320                              |     r3 += arg_1320h;
    0x00007266 strh r1, [r3, r6]                                 |     *((r3 + r6)) = r1;
    0x00007268 adds r3, 0xc                                      |     r3 += 0xc;
    0x0000726a str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0000726c b 0x7294                                          |     
                                                                 |     while (r3 != 0) {
    0x0000726e ldr r3, [sp, 0x20]                                |         r3 = var_20h;
    0x00007270 ldr r1, [sp, 0x34]                                |         r1 = nmemb;
    0x00007272 ldr r0, [sp, 0x48]                                |         r0 = var_48h;
    0x00007274 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00007276 ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x00007278 blx r3                                            |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
                                                                 | label_45:
    0x0000727a ldr.w r3, [pc, 0x878]                             |         
    0x0000727e add r3, pc                                        |         r3 = 0xed78;
    0x00007280 ldr r4, [r3]                                      |         r4 = *(0xed78);
                                                                 | label_33:
    0x00007282 ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x00007284 adds r4, 8                                        |         r4 += 8;
    0x00007286 ldr.w r2, [pc, 0x870]                             |         
    0x0000728a add r2, pc                                        |         r2 = 0xed88;
    0x0000728c str r4, [r2]                                      |         *(r2) = r4;
    0x0000728e cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00007290 beq.w 0x75b2                                      |             goto label_147;
                                                                 |         }
    0x00007294 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x00007296 movs r2, 0xfb                                     |         r2 = 0xfb;
    0x00007298 movs r1, 0                                        |         r1 = 0;
    0x0000729a mov r0, sb                                        |         r0 = sb;
    0x0000729c str.w sl, [r3]                                    |         __asm ("str.w sl, [r3]");
    0x000072a0 blx 0x1c64                                        |         uname ();
    0x000072a4 ldr r3, [sp, 0x34]                                |         r3 = nmemb;
    0x000072a6 cmp r3, 0                                         |         
    0x000072a8 bne 0x726e                                        |         
                                                                 |     }
    0x000072aa ldr r4, [r4]                                      |     r4 = *(r4);
    0x000072ac sub.w r8, sb, 4                                   |     r8 = sb - 4;
    0x000072b0 blx 0x1f68                                        |     fcn_00001f68 ();
    0x000072b4 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x000072b6 strd r4, r0, [sp, 4]                              |     __asm ("strd r4, r0, [sp, 4]");
    0x000072ba mov r0, r8                                        |     r0 = r8;
    0x000072bc sub.w r3, r3, 0xa20                               |     r3 -= 0xa20;
    0x000072c0 ldr r2, [r3]                                      |     r2 = *(r3);
    0x000072c2 str r2, [sp, 0x10]                                |     var_10h = r2;
    0x000072c4 movs r2, 1                                        |     r2 = 1;
    0x000072c6 ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x000072c8 str r3, [sp, 0xc]                                 |     var_ch_3 = r3;
    0x000072ca ldr.w r3, [pc, 0x830]                             |     
    0x000072ce add r3, pc                                        |     r3 = 0xedd0;
    0x000072d0 str r3, [sp]                                      |     *(sp) = r3;
    0x000072d2 movs r3, 0xff                                     |     r3 = 0xff;
    0x000072d4 mov r1, r3                                        |     r1 = r3;
    0x000072d6 blx 0x1e24                                        |     fcn_00001e24 ();
    0x000072da mov.w r3, 0x1a4                                   |     r3 = 0x1a4;
    0x000072de movs r2, 0xc1                                     |     r2 = 0xc1;
    0x000072e0 mov r1, r8                                        |     r1 = r8;
    0x000072e2 mov r0, r6                                        |     r0 = r6;
    0x000072e4 blx 0x1cfc                                        |     r0 = fcn_00001cfc ();
    0x000072e8 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x000072ea blt.w 0x7576                                      |         goto label_148;
                                                                 |     }
    0x000072ee ldr.w r1, [pc, 0x810]                             |     
    0x000072f2 add r1, pc                                        |     r1 = 0xedf8;
    0x000072f4 blx 0x1e3c                                        |     r0 = fcn_00001e3c ();
    0x000072f8 mov r4, r0                                        |     r4 = r0;
    0x000072fa cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000072fc beq.w 0x7a42                                      |         goto label_149;
                                                                 |     }
    0x00007300 ldr.w r7, [pc, 0x800]                             |     
    0x00007304 mov r1, r0                                        |     r1 = r0;
    0x00007306 ldr r0, [sp, 0x48]                                |     r0 = var_48h;
    0x00007308 add r7, pc                                        |     r7 = 0xee10;
    0x0000730a ldr r3, [r7]                                      |     
    0x0000730c ldr r3, [r3, 4]                                   |     r3 = *(0xee14);
    0x0000730e blx r3                                            |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x00007310 mov fp, r0                                        |     
    0x00007312 mov r0, r4                                        |     r0 = r4;
    0x00007314 blx 0x2000                                        |     syscall ();
    0x00007316 cdp p6, 7, c4, c4, c5, 0                          |     __asm ("cdp p6, 7, c4, c4, c5, 0");
    0x0000731a mov r0, r4                                        |     r0 = r4;
    0x0000731c blx 0x1bf4                                        |     fcn_00001bf4 ();
    0x00007320 cmp.w fp, 0                                       |     
    0x00007324 orr.w r5, r5, r0                                  |     r5 |= r0;
    0x00007326 lsls r0, r0, 0x14                                 |     r0 <<= 0x14;
                                                                 |     if (r0 < r0) {
    0x00007328 blt.w 0x7604                                      |         goto label_150;
                                                                 |     }
    0x0000732c ldr r4, [r7]                                      |     r4 = *(r7);
    0x0000732e mov r2, r6                                        |     r2 = r6;
    0x00007330 mov r1, r8                                        |     r1 = r8;
    0x00007332 mov r0, r6                                        |     r0 = r6;
    0x00007334 ldr r3, [r4]                                      |     r3 = *(r4);
    0x00007336 blx 0x1c94                                        |     r0 = strtoull (r0, r1, r2);
    0x0000733a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000733c bne.w 0x75e4                                      |         goto label_151;
                                                                 |     }
    0x00007340 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00007342 beq 0x7282                                        |         goto label_33;
                                                                 |     }
    0x00007344 ldr r4, [r4]                                      |     r4 = *(r4);
    0x00007346 movs r0, 0x1c                                     |     r0 = 0x1c;
    0x00007348 blx 0x1b54                                        |     fcn_00001b54 ();
    0x0000734c ldr.w r1, [pc, 0x7b8]                             |     
    0x00007350 mov r3, r0                                        |     r3 = r0;
    0x00007352 mov r2, r4                                        |     r2 = r4;
    0x00007354 mvn r4, 0x1b                                      |     r4 = ~0x1b;
    0x00007358 movs r0, 3                                        |     r0 = 3;
    0x0000735a add r1, pc                                        |     r1 = 0xee66;
    0x0000735c bl 0x8a58                                         |     fcn_00008a58 (r0);
                                                                 | label_50:
    0x00007360 lsrs r4, r4, 0x1f                                 |     r4 >>= 0x1f;
                                                                 | label_48:
    0x00007362 adds r3, r6, 1                                    |     r3 = r6 + 1;
                                                                 |     if (r3 == r6) {
    0x00007364 beq.w 0x66b6                                      |         goto label_34;
                                                                 |     }
    0x00007366 add r1, sp, 0x29c                                 |     r1 = sp + 0x29c;
    0x00007368 mov r0, r6                                        |     r0 = r6;
    0x0000736a blx 0x1e60                                        |     fcn_00001e60 ();
    0x0000736c ldcl p7, c15, [sl, -0x3fc]!                       |     __asm ("ldcl p7, c15, [sl, -0x3fc]!");
    0x0000736e b.w 0x66b6                                        |     goto label_34;
                                                                 |     if (r2 == 0) {
    0x00007370 cbnz r2, 0x739c                                   |         
                                                                 | label_138:
    0x00007372 ldr r3, [sp, 0x40]                                |         r3 = var_40h;
    0x00007374 b 0x70b4                                          |         goto label_35;
                                                                 | label_137:
    0x00007376 stm.w sp, {r0, r1, r2}                            |         *(sp) = r0;
                                                                 |         *((sp + 4)) = r1;
                                                                 |         *((sp + 8)) = r2;
    0x0000737a mov r2, fp                                        |         r2 = fp;
    0x0000737c ldr.w r1, [pc, 0x78c]                             |         
    0x00007380 movs r0, 7                                        |         r0 = 7;
    0x00007382 strd sb, r7, [sp, 0x10]                           |         __asm ("strd sb, r7, [sp, 0x10]");
    0x00007386 add r1, pc                                        |         r1 = 0xee96;
    0x00007388 bl 0x8a58                                         |         fcn_00008a58 (r0);
    0x0000738c ldr r3, [sp, 0x1c]                                |         r3 = sig;
    0x0000738e ldrb r3, [r3, 0xa]                                |         r3 = *((r3 + 0xa));
                                                                 |         if (r3 != 0) {
    0x00007390 cbnz r3, 0x73d0                                   |             goto label_152;
                                                                 |         }
                                                                 | label_38:
    0x00007392 ldr.w r2, [sl, 4]                                 |         r2 = *((sl + 4));
    0x00007396 b 0x70aa                                          |         goto label_36;
                                                                 | label_136:
    0x00007398 ldr.w r1, [pc, 0x774]                             |         
                                                                 |     }
    0x0000739c mov r3, r8                                        |     r3 = r8;
    0x0000739e ldr.w r2, [sl, 4]                                 |     r2 = *((sl + 4));
    0x000073a2 movs r0, 7                                        |     r0 = 7;
    0x000073a4 str r5, [sp]                                      |     *(sp) = r5;
    0x000073a6 add r1, pc                                        |     r1 = 0xeeba;
    0x000073a8 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000073ac ldr r3, [sp, 0x1c]                                |     r3 = sig;
    0x000073ae ldrb r3, [r3, 0xa]                                |     r3 = *((r3 + 0xa));
    0x000073b0 cmp r3, 0                                         |     
    0x000073b2 it ne                                             |     
                                                                 |     if (r3 == 0) {
    0x000073b4 cmpne r8, 0x57                                    |         __asm ("cmpne r8, 0x57");
                                                                 |         goto label_153;
                                                                 |     }
                                                                 |     if (r3 == 0) {
                                                                 | label_153:
    0x000073b8 beq.w 0x70e6                                      |         goto label_37;
                                                                 |     }
    0x000073bc ldr.w r1, [pc, 0x754]                             |     
    0x000073c0 mov r3, r5                                        |     r3 = r5;
    0x000073c2 ldr.w r2, [sl, 4]                                 |     r2 = *((sl + 4));
    0x000073c6 movs r0, 4                                        |     r0 = 4;
    0x000073c8 add r1, pc                                        |     r1 = 0xeee0;
    0x000073ca bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000073ce b 0x70e6                                          |     goto label_37;
                                                                 | label_152:
    0x000073d0 ldr.w r1, [pc, 0x744]                             |     
    0x000073d4 mov r3, r5                                        |     r3 = r5;
    0x000073d6 ldr.w r2, [sl, 4]                                 |     r2 = *((sl + 4));
    0x000073da movs r0, 4                                        |     r0 = 4;
    0x000073dc add r1, pc                                        |     r1 = 0xeef8;
    0x000073de bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000073e2 b 0x7392                                          |     goto label_38;
                                                                 | label_91:
    0x000073e4 blx 0x207c                                        |     r0 = fcn_0000207c ();
    0x000073e8 ldr r5, [r0]                                      |     r5 = *(r0);
    0x000073ea rsbs r5, r5, 0                                    |     r5 -= ;
                                                                 | label_46:
    0x000073ec ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x000073ee subw r3, r3, 0xaac                                |     __asm ("subw r3, r3, 0xaac");
    0x000073f2 ldr r0, [r3, 0x18]                                |     r0 = *((r3 + 0x18));
    0x000073f4 bl 0x90d4                                         |     fcn_000090d4 (r0);
    0x000073f8 b.w 0x67fa                                        |     goto label_39;
                                                                 | label_102:
    0x000073fc ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x000073fe ldrb.w r3, [r2, 0x7de]                            |     r3 = *((r2 + 0x7de));
    0x00007402 addw r4, r2, 0x7d4                                |     __asm ("addw r4, r2, 0x7d4");
    0x00007406 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00007408 beq.w 0x65fe                                      |         goto label_15;
                                                                 |     }
    0x0000740c ldr.w r1, [pc, 0x70c]                             |     
    0x00007410 movs r0, 4                                        |     r0 = 4;
    0x00007412 add r1, pc                                        |     r1 = 0xef32;
    0x00007414 bl 0x8a58                                         |     r0 = fcn_00008a58 (r0);
    0x00007416 smlad fp, r0, pc, sb                              |     __asm ("smlad fp, r0, pc, sb");
    0x0000741a strb r3, [r4, 0xa]                                |     *((r4 + 0xa)) = r3;
    0x0000741c b.w 0x65fe                                        |     goto label_15;
                                                                 | label_135:
    0x00007420 ldr.w r1, [pc, 0x6fc]                             |     
    0x00007424 movs r0, 7                                        |     r0 = 7;
    0x00007426 add r1, pc                                        |     r1 = 0xef4a;
    0x00007428 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x0000742c b 0x70f8                                          |     goto label_40;
                                                                 | label_131:
    0x0000742e ldr.w r1, [pc, 0x6f4]                             |     
    0x00007432 subw r3, r7, 0xa88                                |     __asm ("subw r3, r7, 0xa88");
    0x00007436 str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x0000743a movs r0, 6                                        |     r0 = 6;
    0x0000743c ldr r3, [r3]                                      |     r3 = *(r3);
    0x0000743e ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x00007440 add r1, pc                                        |     r1 = 0xef6a;
    0x00007442 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007446 b.w 0x692c                                        |     goto label_28;
                                                                 | label_83:
    0x0000744a blx 0x207c                                        |     r0 = fcn_0000207c ();
    0x0000744e ldr r0, [r0]                                      |     r0 = *(r0);
    0x00007450 blx 0x1b54                                        |     fcn_00001b54 ();
    0x00007454 ldr.w r1, [pc, 0x6d0]                             |     
    0x00007458 mov r2, r0                                        |     r2 = r0;
    0x0000745a movs r0, 2                                        |     r0 = 2;
    0x0000745c add r1, pc                                        |     r1 = 0xef88;
    0x0000745e bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007462 b.w 0x623c                                        |     goto label_10;
                                                                 | label_98:
    0x00007466 rsbs r0, r0, 0                                    |     r0 -= ;
    0x00007468 blx 0x1b54                                        |     fcn_00001b54 ();
    0x0000746a sbcs.w r8, r4, pc, lsr 31                         |     __asm ("sbcs.w r8, r4, pc, lsr 31");
    0x0000746e asrs r4, r7, 0x1a                                 |     r4 = r7 >> 0x1a;
    0x00007470 mov r3, r0                                        |     r3 = r0;
    0x00007472 mov r2, r5                                        |     r2 = r5;
    0x00007474 movs r0, 2                                        |     r0 = 2;
    0x00007476 add r1, pc                                        |     r1 += pc;
    0x00007478 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x0000747c b.w 0x6672                                        |     goto label_31;
                                                                 | label_80:
    0x00007480 ldr.w r1, [pc, 0x6ac]                             |     
    0x00007484 movs r0, 2                                        |     r0 = 2;
    0x00007486 add r1, pc                                        |     r1 = 0xefba;
    0x00007488 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x0000748c b.w 0x623c                                        |     goto label_10;
                                                                 | label_115:
    0x00007490 mov r2, r0                                        |     r2 = r0;
    0x00007492 mov r1, r0                                        |     r1 = r0;
    0x00007494 add.w r7, sp, 0x1320                              |     r7 += arg_1320h;
    0x00007498 mov r0, r5                                        |     r0 = r5;
    0x0000749a blx 0x1d14                                        |     fcn_00001d14 ();
    0x0000749e rsbs r4, r4, 0                                    |     r4 -= ;
    0x000074a0 ldr.w sl, [sp, 0x24]                              |     sl = var_24h;
    0x000074a4 adds r7, 0xc                                      |     r7 += 0xc;
    0x000074a6 b 0x74ca                                          |     
                                                                 |     while (r0 != 0) {
    0x000074a8 mov r0, r8                                        |         r0 = r8;
    0x000074aa blx 0x1d74                                        |         r0 = fcn_00001d74 ();
                                                                 |         if (r0 != 0) {
    0x000074ae cbz r0, 0x74c8                                    |             
    0x000074b0 subw r2, sl, 0xaac                                |             __asm ("subw r2, sl, 0xaac");
    0x000074b4 adds r3, r7, r0                                   |             r3 = r7 + r0;
    0x000074b6 ldr r0, [r2, 0x18]                                |             r0 = *((r2 + 0x18));
    0x000074b8 movs r2, 0                                        |             r2 = 0;
    0x000074ba mov r1, r8                                        |             r1 = r8;
    0x000074bc strb r2, [r3, -0x1]                               |             *((r3 - 0x1)) = r2;
    0x000074c0 bl 0x93dc                                         |             r0 = fcn_000093dc (r0, r1);
                                                                 |             if (r0 == 0) {
    0x000074c4 cbz r0, 0x74c8                                    |                 goto label_154;
                                                                 |             }
    0x000074c6 str r4, [r0, 0x30]                                |             *((r0 + 0x30)) = r4;
                                                                 |         }
                                                                 | label_154:
    0x000074c8 adds r4, 1                                        |         r4++;
    0x000074ca mov r2, r5                                        |         r2 = r5;
    0x000074cc mov.w r1, 0x1000                                  |         r1 = 0x1000;
    0x000074d0 mov r0, r8                                        |         r0 = r8;
    0x000074d2 blx 0x1c00                                        |         r0 = fcn_00001c00 ();
    0x000074d6 cmp r0, 0                                         |         
    0x000074d8 bne 0x74a8                                        |         
                                                                 |     }
    0x000074da ldr r3, [sp, 0x4c]                                |     r3 = var_4ch;
    0x000074dc mov sb, r0                                        |     sb = r0;
    0x000074de ldr.w r1, [pc, 0x654]                             |     r1 = *(0x00007b34);
    0x000074e2 sub.w r0, r3, 0x24                                |     r0 = r3 - 0x24;
    0x000074e6 add r1, pc                                        |     r1 += pc;
    0x000074e8 bl 0x9088                                         |     fcn_00009088 (r0, r1);
    0x000074ec ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x000074ee subw r3, r3, 0xaac                                |     __asm ("subw r3, r3, 0xaac");
    0x000074f2 ldr r1, [r3, 0xc]                                 |     r1 = *((r3 + 0xc));
    0x000074f4 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000074f6 beq.w 0x6a4e                                      |         goto label_41;
                                                                 |     }
    0x000074fa ldr r3, [r3, 8]                                   |     r3 = *((r3 + 8));
    0x000074fc mov r0, sb                                        |     r0 = sb;
    0x000074fe subs r3, 4                                        |     r3 -= 4;
                                                                 |     do {
    0x00007500 ldr r2, [r3, 4]!                                  |         r2 = *((r3 += 4));
    0x00007504 strh r0, [r2, 0x38]                               |         *((r2 + 0x38)) = r0;
    0x00007506 adds r0, 1                                        |         r0++;
    0x00007508 cmp r0, r1                                        |         
    0x0000750a bne 0x7500                                        |         
                                                                 |     } while (r0 != r1);
    0x0000750c b.w 0x6a4e                                        |     goto label_41;
                                                                 | label_99:
    0x00007510 rsbs r0, r0, 0                                    |     r0 -= ;
    0x00007512 blx 0x1b54                                        |     fcn_00001b54 ();
    0x00007516 ldr.w r1, [pc, 0x620]                             |     
    0x0000751a mov r3, r0                                        |     r3 = r0;
    0x0000751c mov r2, r5                                        |     r2 = r5;
    0x0000751e movs r0, 2                                        |     r0 = 2;
    0x00007520 add r1, pc                                        |     r1 = 0xf05e;
    0x00007522 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007526 ldr r0, [r7]                                      |     r0 = *(r7);
    0x00007528 bl 0xd418                                         |     fcn_0000d418 (r0);
    0x0000752c b.w 0x6672                                        |     goto label_31;
                                                                 | label_100:
    0x00007530 ldr r6, [sp, 0x1c]                                |     r6 = sig;
    0x00007532 b.w 0x69a6                                        |     goto label_42;
                                                                 | label_119:
    0x00007536 mov r0, sl                                        |     r0 = sl;
    0x00007538 b.w 0x6b18                                        |     goto label_43;
                                                                 | label_113:
    0x0000753c rsbs r0, r0, 0                                    |     r0 -= ;
    0x0000753e blx 0x1b54                                        |     fcn_00001b54 ();
    0x00007542 ldr.w r1, [pc, 0x5f8]                             |     
    0x00007546 mov r2, r0                                        |     r2 = r0;
    0x00007548 movs r0, 2                                        |     r0 = 2;
    0x0000754a add r1, pc                                        |     r1 = 0xf08c;
    0x0000754c bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007550 b.w 0x6672                                        |     goto label_31;
                                                                 | label_120:
    0x00007554 ldr.w r3, [pc, 0x5e8]                             |     
    0x00007558 add r3, pc                                        |     r3 = 0xf09c;
    0x0000755a b.w 0x6b62                                        |     goto label_44;
                                                                 | label_112:
    0x0000755e rsbs r0, r0, 0                                    |     r0 -= ;
    0x00007560 blx 0x1b54                                        |     fcn_00001b54 ();
    0x00007564 ldr.w r1, [pc, 0x5dc]                             |     
    0x00007568 mov r2, r0                                        |     r2 = r0;
    0x0000756a movs r0, 2                                        |     r0 = 2;
    0x0000756c add r1, pc                                        |     r1 = 0xf0b4;
    0x0000756e bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007572 b.w 0x6672                                        |     goto label_31;
                                                                 | label_148:
    0x00007576 movs r2, 0xc1                                     |     r2 = 0xc1;
    0x00007578 mov.w r1, 0x1a4                                   |     r1 = 0x1a4;
    0x0000757c strd r2, r1, [sp]                                 |     __asm ("strd r2, r1, [sp]");
    0x00007580 mov r3, r8                                        |     r3 = r8;
    0x00007582 ldr.w r1, [pc, 0x5c4]                             |     
    0x00007586 movs r0, 3                                        |     r0 = 3;
    0x00007588 ldr r2, [sp, 0x1c]                                |     r2 = sig;
    0x0000758a add r1, pc                                        |     r1 = 0xf0d8;
    0x0000758c bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007590 b 0x727a                                          |     goto label_45;
                                                                 | label_92:
    0x00007592 blx 0x207c                                        |     r0 = fcn_0000207c ();
    0x00007596 ldr r3, [r0]                                      |     r3 = *(r0);
    0x00007598 ldr r0, [r5, 0x1c]                                |     r0 = *((r5 + 0x1c));
    0x0000759a rsbs r5, r3, 0                                    |     r5 = r3 - ;
    0x0000759c bl 0x90d4                                         |     fcn_000090d4 (r0);
    0x000075a0 b 0x73ec                                          |     goto label_46;
                                                                 | label_111:
    0x000075a2 ldr.w r1, [pc, 0x5a8]                             |     
    0x000075a6 ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x000075a8 add r1, pc                                        |     r1 = 0xf0fa;
    0x000075aa bl 0x59b8                                         |     fcn_000059b8 (r0, r1);
    0x000075ae b.w 0x6974                                        |     goto label_47;
                                                                 | label_147:
    0x000075b2 mov r4, r3                                        |     r4 = r3;
    0x000075b4 b 0x7362                                          |     goto label_48;
                                                                 | label_146:
    0x000075b6 ldr r1, [sp, 0x34]                                |     r1 = nmemb;
    0x000075b8 ldr r0, [sp, 0x1c]                                |     r0 = sig;
    0x000075ba blx 0x1df0                                        |     r0 = raise (r0);
    0x000075be subs r6, r0, 0                                    |     r6 = r0 - 0;
                                                                 |     if (r6 >= r0) {
    0x000075c0 bge.w 0x7242                                      |         goto label_49;
                                                                 |     }
    0x000075c4 blx 0x207c                                        |     fcn_0000207c ();
    0x000075c8 ldr.w r1, [pc, 0x584]                             |     
    0x000075cc ldr r4, [r0]                                      |     r4 = *(r0);
    0x000075ce movs r0, 2                                        |     r0 = 2;
    0x000075d0 ldr r2, [sp, 0x1c]                                |     r2 = sig;
    0x000075d2 add r1, pc                                        |     r1 = 0xf126;
    0x000075d4 cmp r4, 0                                         |     
    0x000075d6 ite le                                            |     
                                                                 |     if (r4 > 0) {
    0x000075d8 movle r4, 0                                       |         r4 = 0;
                                                                 |     }
                                                                 |     if (r4 <= 0) {
    0x000075da movgt r4, 1                                       |         r4 = 1;
                                                                 |     }
    0x000075dc bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000075e0 b.w 0x66b6                                        |     goto label_34;
                                                                 | label_151:
    0x000075e4 blx 0x207c                                        |     fcn_0000207c ();
    0x000075e8 ldr r3, [r4]                                      |     r3 = *(r4);
    0x000075ea ldr r2, [sp, 0x1c]                                |     r2 = sig;
    0x000075ec ldr.w r1, [pc, 0x564]                             |     
    0x000075f0 ldr r4, [r0]                                      |     r4 = *(r0);
    0x000075f2 movs r0, 2                                        |     r0 = 2;
    0x000075f4 str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x000075f6 mov r3, r8                                        |     r3 = r8;
    0x000075f8 add r1, pc                                        |     r1 = 0xf150;
    0x000075fa str r2, [sp]                                      |     *(sp) = r2;
    0x000075fc rsbs r4, r4, 0                                    |     r4 -= ;
    0x000075fe bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007602 b 0x7360                                          |     goto label_50;
                                                                 | label_150:
    0x00007604 ldr r2, [sp, 0x34]                                |     r2 = nmemb;
    0x00007606 mov r1, r8                                        |     r1 = r8;
    0x00007608 mov r0, r6                                        |     r0 = r6;
    0x0000760a mov r4, fp                                        |     r4 = fp;
    0x0000760c blx 0x1fc4                                        |     r0 = fread (r0, r1, r2, r3);
    0x00007610 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00007612 bne.w 0x7916                                      |         goto label_155;
                                                                 |     }
                                                                 | label_57:
    0x00007616 ldr.w r3, [pc, 0x540]                             |     
    0x0000761a rsbs r0, r4, 0                                    |     r0 = r4 - ;
    0x0000761c add r3, pc                                        |     
    0x0000761e ldr r3, [r3]                                      |     r3 = *(0xf17a);
    0x00007620 ldr r4, [r3]                                      |     r4 = *(0xf17a);
    0x00007622 blx 0x1b54                                        |     fcn_00001b54 ();
    0x00007626 ldr.w r1, [pc, 0x534]                             |     
    0x0000762a mov r3, r0                                        |     r3 = r0;
    0x0000762c mov r2, r4                                        |     r2 = r4;
    0x0000762e movs r0, 3                                        |     r0 = 3;
    0x00007630 add r1, pc                                        |     r1 = 0xf192;
    0x00007632 bl 0x8a58                                         |     r0 = fcn_00008a58 (r0);
    0x00007636 blx 0x207c                                        |     r0 = fcn_0000207c ();
    0x0000763a ldr r4, [r0]                                      |     r4 = *(r0);
    0x0000763c rsbs r4, r4, 0                                    |     r4 -= ;
    0x0000763e b 0x7360                                          |     goto label_50;
                                                                 | label_142:
    0x00007640 cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x00007644 beq.w 0x7a24                                      |         goto label_156;
                                                                 |     }
    0x00007648 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0000764a movs r4, 0                                        |     r4 = 0;
    0x0000764c mov r6, r5                                        |     r6 = r5;
    0x0000764e mov sb, r4                                        |     sb = r4;
    0x00007650 str r4, [sp, 0x1c]                                |     sig = r4;
    0x00007652 subw r7, r3, 0xaac                                |     __asm ("subw r7, r3, 0xaac");
                                                                 |     do {
    0x00007656 ldrh r3, [r6], 2                                  |         r3 = *(r6);
                                                                 |         r6 += 2;
                                                                 |         if (r3 != 0) {
    0x0000765a cbz r3, 0x7672                                    |             
    0x0000765c ldr r3, [r7, 8]                                   |             r3 = *((r7 + 8));
    0x0000765e ldr r0, [sp, 0x1c]                                |             r0 = sig;
    0x00007660 ldr r1, [r3, r4]                                  |             r1 = *((r3 + r4));
    0x00007662 bl 0xa9bc                                         |             r0 = fcn_0000a9bc (r0, r1);
    0x00007666 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x00007668 beq.w 0x78f0                                      |                 goto label_157;
                                                                 |             }
    0x0000766c add.w sb, sb, 1                                   |             sb++;
    0x00007670 str r0, [sp, 0x1c]                                |             sig = r0;
                                                                 |         }
    0x00007672 cmp r8, r6                                        |         
    0x00007674 add.w r4, r4, 4                                   |         r4 += 4;
    0x00007678 bne 0x7656                                        |         
                                                                 |     } while (r8 != r6);
                                                                 | label_60:
    0x0000767a lsl.w r0, sb, 2                                   |     r0 = sb << 2;
    0x0000767e blx 0x1ec0                                        |     fcn_00001ec0 ();
    0x00007682 str r0, [sp, 0x20]                                |     var_20h = r0;
    0x00007684 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00007686 beq.w 0x79c4                                      |         goto label_158;
                                                                 |     }
    0x0000768a movs r1, 0                                        |     r1 = 0;
    0x0000768c movs r0, 0x10                                     |     r0 = 0x10;
    0x0000768e bl 0x9094                                         |     fcn_00009094 (r0, r1);
    0x00007692 str r0, [sp, 0x34]                                |     nmemb = r0;
    0x00007694 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00007696 beq.w 0x7a18                                      |         goto label_159;
                                                                 |     }
    0x0000769a ldr.w r7, [pc, 0x4c4]                             |     
    0x0000769e mov r8, r5                                        |     r8 = r5;
    0x000076a0 mov sl, sb                                        |     sl = sb;
    0x000076a2 add r7, pc                                        |     r7 = 0xf208;
                                                                 | label_51:
    0x000076a4 ldr r3, [sp, 0x1c]                                |     r3 = sig;
    0x000076a6 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000076a8 beq.w 0x78d2                                      |         goto label_160;
                                                                 |     }
    0x000076ac ldr r3, [sp, 0x1c]                                |     r3 = sig;
    0x000076ae mov r0, r3                                        |     r0 = r3;
    0x000076b0 ldr r4, [r3, 8]                                   |     r4 = *((r3 + 8));
    0x000076b2 bl 0xaa60                                         |     fcn_0000aa60 (r0);
    0x000076b6 str r0, [sp, 0x1c]                                |     sig = r0;
    0x000076b8 movs r0, 8                                        |     r0 = 8;
    0x000076ba blx 0x1ec0                                        |     r0 = fcn_00001ec0 ();
    0x000076be mov r2, r0                                        |     r2 = r0;
    0x000076c0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000076c2 beq.w 0x7a0a                                      |         goto label_161;
                                                                 |     }
    0x000076c6 str r4, [r0, 4]                                   |     *((r0 + 4)) = r4;
    0x000076c8 movs r0, 0                                        |     r0 = 0;
    0x000076ca mov r1, r2                                        |     r1 = r2;
    0x000076cc str r0, [r2]                                      |     *(r2) = r0;
    0x000076ce str r2, [sp, 0x38]                                |     var_38h = r2;
    0x000076d0 bl 0xa9bc                                         |     fcn_0000a9bc (r0, r1);
    0x000076d4 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x000076d6 mov r4, r0                                        |     r4 = r0;
    0x000076d8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000076da beq.w 0x79fc                                      |         goto label_162;
                                                                 |     }
    0x000076de ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x000076e0 mov r6, r2                                        |     r6 = r2;
    0x000076e2 strd r8, r4, [sp, 0x38]                           |     __asm ("strd r8, r4, [sp, 0x38]");
    0x000076e6 movs r0, 1                                        |     r0 = 1;
    0x000076e8 mov r4, r2                                        |     r4 = r2;
    0x000076ea str r7, [sp, 0x40]                                |     var_40h = r7;
    0x000076ec str r2, [r3]                                      |     *(r3) = r2;
                                                                 | label_52:
    0x000076ee ldr r1, [r6, 4]                                   |     r1 = *((r6 + 4));
    0x000076f0 subs r5, r0, 1                                    |     r5 = r0 - 1;
    0x000076f2 ldrb.w r3, [r1, 0x3c]                             |     r3 = *((r1 + 0x3c));
                                                                 |     if (r3 != 0) {
    0x000076f6 cbz r3, 0x76fe                                    |         
    0x000076f8 ldr r3, [r4, 4]                                   |         r3 = *((r4 + 4));
    0x000076fa cmp r1, r3                                        |         
                                                                 |         if (r1 == r3) {
    0x000076fc beq 0x77d0                                        |             goto label_163;
                                                                 |         }
                                                                 |     }
    0x000076fe mov.w r3, 1                                       |     r3 = 1;
    0x00007702 strb.w r3, [r1, 0x3c]                             |     *((r1 + 0x3c)) = r3;
    0x00007706 ldr r3, [r1, 0x1c]                                |     r3 = *((r1 + 0x1c));
    0x00007708 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000770a beq 0x77b0                                        |         goto label_164;
                                                                 |     }
    0x0000770c ldr r7, [r1, 0x18]                                |     r7 = *((r1 + 0x18));
    0x0000770e add.w fp, r7, r3, lsl 2                           |     
    0x00007712 cmp r7, fp                                        |     
                                                                 |     if (r7 >= fp) {
    0x00007714 bhs 0x77b8                                        |         goto label_54;
                                                                 |     }
    0x00007716 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00007718 add.w r0, r0, 0x40000000                          |     r0 += 0x40000000;
    0x0000771c subs r0, 2                                        |     r0 -= 2;
    0x0000771e ldr.w sb, [sp, 0x3c]                              |     sb = var_3ch;
    0x00007722 str r4, [sp, 0x44]                                |     var_44h = r4;
    0x00007724 add.w r8, r3, r0, lsl 2                           |     r8 = r3 + (r0 << 2);
    0x00007728 b 0x7730                                          |     
                                                                 |     while (r0 != 0) {
    0x0000772a cmp fp, r7                                        |         
                                                                 |         if (fp < r7) {
    0x0000772c bls 0x77ca                                        |             goto label_165;
                                                                 |         }
    0x0000772e mov sb, r0                                        |         sb = r0;
    0x00007730 movs r0, 8                                        |         r0 = 8;
    0x00007732 ldr r4, [r7], 4                                   |         r4 = *(r7);
                                                                 |         r7 += 4;
    0x00007736 blx 0x1ec0                                        |         r0 = fcn_00001ec0 ();
    0x0000773a mov r1, r0                                        |         r1 = r0;
    0x0000773c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0000773e beq.w 0x79e4                                      |             goto label_166;
                                                                 |         }
    0x00007742 cmp r5, sl                                        |         
    0x00007744 strd r6, r4, [r0]                                 |         __asm ("strd r6, r4, [r0]");
                                                                 |         if (r5 >= sl) {
    0x00007748 bhs.w 0x79d0                                      |             goto label_167;
                                                                 |         }
    0x0000774c str r0, [r8, 4]!                                  |         *((r8 += 4)) = r0;
    0x00007750 mov r0, sb                                        |         r0 = sb;
    0x00007752 adds r5, 1                                        |         r5++;
    0x00007754 bl 0xa9bc                                         |         r0 = fcn_0000a9bc (r0, r1);
    0x00007758 cmp r0, 0                                         |         
    0x0000775a bne 0x772a                                        |         
                                                                 |     }
    0x0000775c ldr r7, [sp, 0x40]                                |     r7 = var_40h;
    0x0000775e mov r4, sb                                        |     r4 = sb;
    0x00007760 mvn fp, 0xb                                       |     
    0x00007764 movs r0, 3                                        |     r0 = 3;
    0x00007766 ldr.w r8, [sp, 0x38]                              |     r8 = var_38h;
    0x0000776a mov r1, r7                                        |     r1 = r7;
    0x0000776c bl 0x8a58                                         |     fcn_00008a58 (r0);
                                                                 |     do {
                                                                 | label_53:
    0x00007770 ldr r5, [r4, 8]                                   |         r5 = *((r4 + 8));
    0x00007772 mov r0, r4                                        |         r0 = r4;
    0x00007774 bl 0xaa60                                         |         r0 = fcn_0000aa60 (r0);
    0x00007778 mov r4, r0                                        |         r4 = r0;
    0x0000777a mov r0, r5                                        |         r0 = r5;
    0x0000777c blx 0x1cb0                                        |         fcn_00001cb0 ();
    0x00007780 cmp r4, 0                                         |         
    0x00007782 bne 0x7770                                        |         
                                                                 |     } while (r4 != 0);
    0x00007784 cmp.w fp, 0                                       |     
                                                                 |     if (fp >= 0) {
    0x00007788 bge 0x76a4                                        |         goto label_51;
                                                                 |     }
    0x0000778a mov r5, r8                                        |     r5 = r8;
                                                                 | label_59:
    0x0000778c ldr r0, [sp, 0x34]                                |     r0 = nmemb;
    0x0000778e bl 0x90d4                                         |     fcn_000090d4 (r0);
                                                                 | label_56:
    0x00007792 ldr r3, [sp, 0x1c]                                |     r3 = sig;
    0x00007794 ldr r0, [sp, 0x1c]                                |     r0 = sig;
                                                                 |     if (r3 == 0) {
    0x00007796 cbz r3, 0x77a0                                    |         goto label_55;
                                                                 |     }
                                                                 |     do {
    0x00007798 bl 0xaa60                                         |         r0 = fcn_0000aa60 (r0);
    0x0000779c cmp r0, 0                                         |         
    0x0000779e bne 0x7798                                        |         
                                                                 |     } while (r0 != 0);
                                                                 | label_55:
    0x000077a0 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x000077a2 blx 0x1cb0                                        |     fcn_00001cb0 ();
    0x000077a6 mov r0, r5                                        |     r0 = r5;
    0x000077a8 blx 0x1cb0                                        |     fcn_00001cb0 ();
    0x000077ac b.w 0x6672                                        |     goto label_31;
                                                                 | label_164:
    0x000077b0 ldr r0, [sp, 0x1c]                                |     r0 = sig;
    0x000077b2 bl 0xaac4                                         |     fcn_0000aac4 (r0, r1);
    0x000077b6 str r0, [sp, 0x1c]                                |     sig = r0;
                                                                 | label_54:
    0x000077b8 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x000077ba beq.w 0x79ba                                      |         goto label_168;
                                                                 |     }
                                                                 |     do {
    0x000077be ldr r2, [sp, 0x20]                                |         r2 = var_20h;
    0x000077c0 subs r3, r5, 1                                    |         r3 = r5 - 1;
    0x000077c2 mov r0, r5                                        |         r0 = r5;
    0x000077c4 ldr.w r6, [r2, r3, lsl 2]                         |         offset_10 = r3 << 2;
                                                                 |         r6 = *((r2 + offset_10));
    0x000077c8 b 0x76ee                                          |         goto label_52;
                                                                 | label_165:
    0x000077ca ldr r4, [sp, 0x44]                                |         r4 = var_44h;
    0x000077cc str r0, [sp, 0x3c]                                |         var_3ch = r0;
    0x000077ce b 0x77be                                          |         
                                                                 |     } while (1);
                                                                 | label_163:
    0x000077d0 ldr r3, [pc, 0x390]                               |     
    0x000077d2 add.w fp, sp, 0x1b20                              |     
    0x000077d6 add.w fp, fp, 0x10                                |     
    0x000077da subw r2, fp, 0x804                                |     __asm ("subw r2, fp, 0x804");
    0x000077de add r3, pc                                        |     r3 = 0xf346;
    0x000077e0 ldm.w r3, {r0, r1}                                |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
    0x000077e4 add.w r3, sp, 0x1320                              |     r3 += arg_1320h;
    0x000077e8 adds r3, 0x10                                     |     r3 += 0x10;
    0x000077ea str r0, [r2]                                      |     *(r2) = r0;
    0x000077ec strb r1, [r3]                                     |     *(r3) = r1;
    0x000077ee movs r1, 3                                        |     r1 = 3;
    0x000077f0 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x000077f2 bl 0x8fdc                                         |     fcn_00008fdc (r0, r1);
    0x000077f6 ldr r7, [r6]                                      |     r7 = *(r6);
                                                                 |     if (r7 == 0) {
    0x000077f8 cbz r7, 0x7836                                    |         goto label_169;
                                                                 |     }
    0x000077fa mov.w sb, 0                                       |     sb = 0;
    0x000077fe mov r8, sb                                        |     r8 = sb;
    0x00007800 b 0x780a                                          |     
                                                                 |     while (r0 == 0) {
    0x00007802 ldr r7, [r7]                                      |         r7 = *(r7);
    0x00007804 add.w sb, sb, 1                                   |         sb++;
                                                                 |         if (r7 == 0) {
    0x00007808 cbz r7, 0x783a                                    |             goto label_170;
                                                                 |         }
    0x0000780a ldr r3, [r7, 4]                                   |         r3 = *((r7 + 4));
    0x0000780c mov r1, r7                                        |         r1 = r7;
    0x0000780e ldr r0, [sp, 0x18]                                |         r0 = var_18h;
    0x00007810 ldr r3, [r3, 0x2c]                                |         r3 = *((r3 + 0x2c));
    0x00007812 subs r3, 1                                        |         r3--;
    0x00007814 add r8, r3                                        |         r8 += r3;
    0x00007816 bl 0x9014                                         |         fcn_00009014 (r0, r1);
    0x0000781a ldr r1, [r7, 4]                                   |         r1 = *((r7 + 4));
    0x0000781c movs r2, 0                                        |         r2 = 0;
    0x0000781e ldr r0, [sp, 0x34]                                |         r0 = nmemb;
    0x00007820 adds r1, 0x44                                     |         r1 += 0x44;
    0x00007822 bl 0x9144                                         |         r0 = fcn_00009144 (r0, r1, r2);
    0x00007826 cmp r0, 0                                         |         
    0x00007828 beq 0x7802                                        |         
                                                                 |     }
    0x0000782a ldr.w r8, [sp, 0x38]                              |     r8 = var_38h;
    0x0000782e mov fp, r0                                        |     
    0x00007830 ldrd r4, r7, [sp, 0x3c]                           |     __asm ("ldrd r4, r7, [var_3ch]");
    0x00007834 b 0x7770                                          |     goto label_53;
                                                                 | label_169:
    0x00007836 mov sb, r7                                        |     sb = r7;
    0x00007838 mov r8, r7                                        |     r8 = r7;
                                                                 | label_170:
    0x0000783a ldr r3, [r6, 4]                                   |     r3 = *((r6 + 4));
    0x0000783c ldr r0, [r3, 0x2c]                                |     r0 = *((r3 + 0x2c));
    0x0000783e add r0, r8                                        |     r0 += r8;
    0x00007840 add.w r0, r0, sb, lsl 2                           |     r0 += (sb << 2);
    0x00007844 blx 0x1ec0                                        |     fcn_00001ec0 ();
    0x00007848 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0000784a mov r8, r0                                        |     r8 = r0;
    0x0000784c sub.w sb, r3, 0xa20                               |     sb = r3 - 0xa20;
    0x00007850 ldr.w r3, [sb, 4]                                 |     r3 = *((sb + 4));
    0x00007854 subs r3, 1                                        |     r3--;
                                                                 |     if (r3 < 1) {
    0x00007856 bmi.w 0x79b6                                      |         goto label_171;
                                                                 |     }
    0x0000785a str r5, [sp, 0x44]                                |     var_44h = r5;
    0x0000785c subw fp, fp, 0x804                                |     __asm ("subw fp, fp, 0x804");
    0x00007860 movs r7, 0                                        |     r7 = 0;
    0x00007862 mov r5, r3                                        |     r5 = r3;
    0x00007864 str r4, [sp, 0x4c]                                |     var_4ch = r4;
                                                                 |     do {
    0x00007866 ldr.w r2, [sb]                                    |         r2 = *(sb);
    0x0000786a add.w r0, r8, r7                                  |         r0 = r8 + r7;
    0x0000786e ldr.w r4, [r2, r5, lsl 2]                         |         offset_11 = r5 << 2;
                                                                 |         r4 = *((r2 + offset_11));
    0x00007872 subs r5, 1                                        |         r5--;
    0x00007874 ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x00007876 ldr r2, [r1, 0x2c]                                |         r2 = *((r1 + 0x2c));
    0x00007878 adds r1, 0x44                                     |         r1 += 0x44;
    0x0000787a subs r2, 1                                        |         r2--;
    0x0000787c str r2, [sp, 0x50]                                |         var_50h = r2;
    0x0000787e blx 0x1d90                                        |         feof (r0);
    0x00007882 ldr r2, [sp, 0x50]                                |         r2 = var_50h;
    0x00007884 ldr.w r0, [fp]                                    |         r0 = *(fp);
    0x00007888 add r2, r7                                        |         r2 += r7;
    0x0000788a ldrb.w r7, [fp, 4]                                |         r7 = *(arg_4h);
    0x0000788e add.w r1, r8, r2                                  |         r1 = r8 + r2;
    0x00007892 str.w r0, [r8, r2]                                |         __asm ("str.w r0, [r8, r2]");
    0x00007896 ldr r0, [sp, 0x1c]                                |         r0 = sig;
    0x00007898 strb r7, [r1, 4]                                  |         *((r1 + 4)) = r7;
    0x0000789a adds r7, r2, 4                                    |         r7 = r2 + 4;
    0x0000789c ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x0000789e bl 0xaac4                                         |         fcn_0000aac4 (r0, r1);
    0x000078a2 str r0, [sp, 0x1c]                                |         sig = r0;
    0x000078a4 adds r0, r5, 1                                    |         r0 = r5 + 1;
    0x000078a6 bne 0x7866                                        |         
                                                                 |     } while (r0 != r5);
    0x000078a8 ldr r5, [sp, 0x44]                                |     r5 = var_44h;
    0x000078aa ldr r4, [sp, 0x4c]                                |     r4 = var_4ch;
                                                                 | label_58:
    0x000078ac ldr r1, [r6, 4]                                   |     r1 = *((r6 + 4));
    0x000078ae add.w r0, r8, r7                                  |     r0 = r8 + r7;
    0x000078b2 adds r1, 0x44                                     |     r1 += 0x44;
    0x000078b4 blx 0x1de4                                        |     vfprintf_chk ();
    0x000078b8 ldr r1, [pc, 0x2ac]                               |     
    0x000078ba mov r2, r8                                        |     r2 = r8;
    0x000078bc movs r0, 3                                        |     r0 = 3;
    0x000078be add r1, pc                                        |     r1 = 0xf42a;
    0x000078c0 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000078c4 mov r0, r8                                        |     r0 = r8;
    0x000078c6 blx 0x1cb0                                        |     fcn_00001cb0 ();
    0x000078ca ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x000078cc bl 0x9070                                         |     fcn_00009070 (r0);
    0x000078d0 b 0x77b8                                          |     goto label_54;
                                                                 | label_160:
    0x000078d2 ldr r4, [sp, 0x34]                                |     r4 = nmemb;
    0x000078d4 mov r5, r8                                        |     r5 = r8;
    0x000078d6 mov r0, r4                                        |     r0 = r4;
    0x000078d8 bl 0x963c                                         |     fcn_0000963c (r0);
    0x000078dc ldr r1, [pc, 0x28c]                               |     
    0x000078de mov r2, r0                                        |     r2 = r0;
    0x000078e0 movs r0, 3                                        |     r0 = 3;
    0x000078e2 add r1, pc                                        |     r1 = 0xf452;
    0x000078e4 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000078e8 mov r0, r4                                        |     r0 = r4;
    0x000078ea bl 0x90d4                                         |     fcn_000090d4 (r0);
    0x000078ee b 0x77a0                                          |     goto label_55;
                                                                 | label_157:
    0x000078f0 ldr r1, [pc, 0x27c]                               |     
    0x000078f2 str r0, [sp, 0x20]                                |     var_20h = r0;
    0x000078f4 movs r0, 3                                        |     r0 = 3;
    0x000078f6 add r1, pc                                        |     r1 = 0xf46a;
    0x000078f8 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000078fc b 0x7792                                          |     goto label_56;
                                                                 | label_78:
    0x000078fe blx 0x1ed8                                        |     fcn_00001ed8 ();
                                                                 | label_144:
    0x00007902 ldr r3, [pc, 0x270]                               |     
    0x00007904 movw r2, 0x7bf                                    |     r2 = 0x7bf;
    0x00007908 ldr r1, [pc, 0x26c]                               |     
    0x0000790a ldr r0, [pc, 0x270]                               |     
    0x0000790c add r3, pc                                        |     r3 = 0xf486;
    0x0000790e add r1, pc                                        |     r1 = 0xf48a;
    0x00007910 add r0, pc                                        |     r0 = 0xf492;
    0x00007912 blx 0x1c88                                        |     renameat ();
                                                                 | label_155:
    0x00007916 ldr r1, [pc, 0x268]                               |     
    0x00007918 mov r3, r8                                        |     r3 = r8;
    0x0000791a ldr r2, [sp, 0x1c]                                |     r2 = sig;
    0x0000791c movs r0, 3                                        |     r0 = 3;
    0x0000791e add r1, pc                                        |     r1 = 0xf4a4;
    0x00007920 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007924 b 0x7616                                          |     goto label_57;
                                                                 | label_130:
    0x00007926 ldr r1, [pc, 0x25c]                               |     
    0x00007928 movs r0, 3                                        |     r0 = 3;
    0x0000792a add r1, pc                                        |     r1 = 0xf4b4;
    0x0000792c bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007930 b.w 0x692c                                        |     goto label_28;
                                                                 | label_132:
    0x00007934 ldr r1, [pc, 0x250]                               |     
    0x00007936 movs r0, 3                                        |     r0 = 3;
    0x00007938 add r1, pc                                        |     r1 = 0xf4c4;
    0x0000793a bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x0000793e b.w 0x692c                                        |     goto label_28;
                                                                 | label_94:
    0x00007942 blx 0x207c                                        |     fcn_0000207c ();
    0x00007946 ldr r1, [pc, 0x244]                               |     
    0x00007948 ldr r4, [r0]                                      |     r4 = *(r0);
    0x0000794a movs r0, 7                                        |     r0 = 7;
    0x0000794c ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x0000794e add r1, pc                                        |     r1 = 0xf4e0;
    0x00007950 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007954 cmp r4, 0                                         |     
                                                                 |     if (r4 <= 0) {
    0x00007956 ble.w 0x65fe                                      |         goto label_15;
                                                                 |     }
    0x0000795a mov r0, r4                                        |     r0 = r4;
    0x0000795c blx 0x1b54                                        |     fcn_00001b54 ();
    0x00007960 ldr r1, [pc, 0x22c]                               |     
    0x00007962 mov r3, r0                                        |     r3 = r0;
    0x00007964 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x00007966 movs r0, 2                                        |     r0 = 2;
    0x00007968 add r1, pc                                        |     r1 = 0xf4fc;
    0x0000796a bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x0000796e b.w 0x623c                                        |     goto label_10;
                                                                 | label_103:
    0x00007972 blx 0x207c                                        |     fcn_0000207c ();
    0x00007976 ldr r1, [pc, 0x21c]                               |     
    0x00007978 ldr r4, [r0]                                      |     r4 = *(r0);
    0x0000797a movs r0, 7                                        |     r0 = 7;
    0x0000797c ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x0000797e add r1, pc                                        |     r1 = 0xf518;
    0x00007980 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007984 cmp r4, 0                                         |     
                                                                 |     if (r4 <= 0) {
    0x00007986 ble.w 0x65fe                                      |         goto label_15;
                                                                 |     }
    0x0000798a mov r0, r4                                        |     r0 = r4;
    0x0000798c blx 0x1b54                                        |     fcn_00001b54 ();
    0x00007990 ldr r1, [pc, 0x204]                               |     
    0x00007992 mov r3, r0                                        |     r3 = r0;
    0x00007994 ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x00007996 movs r0, 2                                        |     r0 = 2;
    0x00007998 add r1, pc                                        |     r1 = 0xf534;
    0x0000799a bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x0000799e b.w 0x623c                                        |     goto label_10;
                                                                 | label_140:
    0x000079a2 ldr r3, [pc, 0x1f8]                               |     
    0x000079a4 movw r2, 0x7a2                                    |     r2 = 0x7a2;
    0x000079a8 ldr r1, [pc, 0x1f4]                               |     
    0x000079aa ldr r0, [pc, 0x1f8]                               |     
    0x000079ac add r3, pc                                        |     r3 = 0xf54e;
    0x000079ae add r1, pc                                        |     r1 = 0xf552;
    0x000079b0 add r0, pc                                        |     r0 = 0xf55a;
    0x000079b2 blx 0x1c88                                        |     renameat ();
                                                                 | label_171:
    0x000079b6 movs r7, 0                                        |     r7 = 0;
    0x000079b8 b 0x78ac                                          |     goto label_58;
                                                                 | label_168:
    0x000079ba ldrd r8, r4, [sp, 0x38]                           |     __asm ("ldrd r8, r4, [var_38h]");
    0x000079be mov fp, r5                                        |     
    0x000079c0 ldr r7, [sp, 0x40]                                |     r7 = var_40h;
    0x000079c2 b 0x7770                                          |     goto label_53;
                                                                 | label_158:
    0x000079c4 ldr r1, [pc, 0x1e0]                               |     
    0x000079c6 movs r0, 3                                        |     r0 = 3;
    0x000079c8 add r1, pc                                        |     r1 = 0xf574;
    0x000079ca bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000079ce b 0x7792                                          |     goto label_56;
                                                                 | label_167:
    0x000079d0 ldr r3, [pc, 0x1d8]                               |     
    0x000079d2 movw r2, 0x73b                                    |     r2 = 0x73b;
    0x000079d6 ldr r1, [pc, 0x1d8]                               |     
    0x000079d8 ldr r0, [pc, 0x1d8]                               |     
    0x000079da add r3, pc                                        |     r3 = 0xf58a;
    0x000079dc add r1, pc                                        |     r1 = 0xf592;
    0x000079de add r0, pc                                        |     r0 = 0xf596;
    0x000079e0 blx 0x1c88                                        |     renameat ();
                                                                 | label_166:
    0x000079e4 ldr r1, [pc, 0x1d0]                               |     
    0x000079e6 movs r0, 3                                        |     r0 = 3;
    0x000079e8 ldr.w r8, [sp, 0x38]                              |     r8 = var_38h;
    0x000079ec mov r4, sb                                        |     r4 = sb;
    0x000079ee ldr r7, [sp, 0x40]                                |     r7 = var_40h;
    0x000079f0 mvn fp, 0xb                                       |     
    0x000079f4 add r1, pc                                        |     r1 = 0xf5b0;
    0x000079f6 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x000079fa b 0x7770                                          |     goto label_53;
                                                                 | label_162:
    0x000079fc ldr r1, [pc, 0x1bc]                               |     
    0x000079fe movs r0, 3                                        |     r0 = 3;
    0x00007a00 mov r5, r8                                        |     r5 = r8;
    0x00007a02 add r1, pc                                        |     r1 = 0xf5c2;
    0x00007a04 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007a08 b 0x778c                                          |     goto label_59;
                                                                 | label_161:
    0x00007a0a ldr r1, [pc, 0x1b4]                               |     
    0x00007a0c movs r0, 3                                        |     r0 = 3;
    0x00007a0e mov r5, r8                                        |     r5 = r8;
    0x00007a10 add r1, pc                                        |     r1 = 0xf5d6;
    0x00007a12 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007a16 b 0x778c                                          |     goto label_59;
                                                                 | label_159:
    0x00007a18 ldr r1, [pc, 0x1a8]                               |     
    0x00007a1a movs r0, 3                                        |     r0 = 3;
    0x00007a1c add r1, pc                                        |     r1 = 0xf5e4;
    0x00007a1e bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007a22 b 0x7792                                          |     goto label_56;
                                                                 | label_156:
    0x00007a24 str.w sb, [sp, 0x1c]                              |     __asm ("str.w sb, [sig]");
    0x00007a28 b 0x767a                                          |     goto label_60;
                                                                 | label_81:
    0x00007a2a ldr r3, [pc, 0x19c]                               |     
    0x00007a2c movs r2, 0x15                                     |     r2 = 0x15;
    0x00007a2e ldr r0, [pc, 0x19c]                               |     
    0x00007a30 movs r1, 1                                        |     r1 = 1;
    0x00007a32 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00007a36 add r0, pc                                        |     r0 = 0xf608;
    0x00007a38 ldr r3, [r3]                                      |     r3 = *(0x7bca);
    0x00007a3a blx 0x1e78                                        |     fcn_00001e78 ();
    0x00007a3e b.w 0x623c                                        |     goto label_10;
                                                                 | label_149:
    0x00007a42 ldr r1, [pc, 0x18c]                               |     
    0x00007a44 mov r2, r5                                        |     r2 = r5;
    0x00007a46 ldr r3, [sp, 0x1c]                                |     r3 = sig;
    0x00007a48 movs r0, 3                                        |     r0 = 3;
    0x00007a4a str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x00007a4e add r1, pc                                        |     r1 = 0xf624;
    0x00007a50 bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007a54 mov r0, r5                                        |     r0 = r5;
    0x00007a56 blx 0x1e60                                        |     fcn_00001e60 ();
    0x00007a5a b 0x727a                                          |     goto label_45;
                                                                 | label_87:
    0x00007a5c blx 0x207c                                        |     fcn_0000207c ();
    0x00007a60 ldr r1, [pc, 0x170]                               |     
    0x00007a62 mov r2, r4                                        |     r2 = r4;
    0x00007a64 ldr r3, [r0]                                      |     r3 = *(r0);
    0x00007a66 movs r0, 3                                        |     r0 = 3;
    0x00007a68 add r1, pc                                        |     r1 = 0xf640;
    0x00007a6a rsbs r4, r3, 0                                    |     r4 = r3 - ;
    0x00007a6c bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007a70 b.w 0x649e                                        |     goto label_21;
                                                                 | label_123:
    0x00007a74 ldr r1, [pc, 0x160]                               |     
    0x00007a76 mov r2, r5                                        |     r2 = r5;
    0x00007a78 movs r0, 3                                        |     r0 = 3;
    0x00007a7a add r1, pc                                        |     r1 = 0xf656;
    0x00007a7c bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007a80 b.w 0x6b9c                                        |     goto label_27;
                                                                 | label_106:
    0x00007a84 ldr r1, [pc, 0x154]                               |     
    0x00007a86 movs r0, 3                                        |     r0 = 3;
    0x00007a88 ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x00007a8a add r1, pc                                        |     r1 = 0xf66a;
    0x00007a8c bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007a90 b.w 0x6950                                        |     goto label_61;
                                                                 | label_133:
    0x00007a94 ldr r1, [pc, 0x148]                               |     
    0x00007a96 movs r0, 3                                        |     r0 = 3;
    0x00007a98 add r1, pc                                        |     r1 = 0xf67c;
    0x00007a9a bl 0x8a58                                         |     fcn_00008a58 (r0);
    0x00007a9e b.w 0x6f34                                        |     goto label_62;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/kmod @ 0x8b58 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00008b58 ()                  | void fcn_00008b58 () {
    0x00008b58 ldr r3, [pc, 0x4c]            |     
    0x00008b5a movs r0, 1                    |     r0 = 1;
    0x00008b5c ldr r2, [pc, 0x4c]            |     r2 = *(0x8bac);
    0x00008b5e push {r4, r5, r6, lr}         |     
    0x00008b60 movs r4, 0                    |     r4 = 0;
    0x00008b62 add r3, pc                    |     
    0x00008b64 ldr r1, [pc, 0x48]            |     
    0x00008b66 adds r4, 1                    |     r4++;
    0x00008b68 ldr r3, [r3, r2]              |     r3 = *(0x1170e);
    0x00008b6a add r1, pc                    |     r1 = 0x1171e;
    0x00008b6c ldr r6, [pc, 0x44]            |     
    0x00008b6e ldr r5, [pc, 0x48]            |     
    0x00008b70 ldr r2, [r3]                  |     r2 = *(0x1170e);
    0x00008b72 blx 0x1c1c                    |     system (r0)
    0x00008b76 ldr r3, [pc, 0x44]            |     
    0x00008b78 add r6, pc                    |     r6 = 0x11730;
    0x00008b7a add r5, pc                    |     r5 = 0x11738;
    0x00008b7c mov r1, r6                    |     r1 = r6;
    0x00008b7e movs r0, 1                    |     r0 = 1;
    0x00008b80 add r3, pc                    |     r3 = 0x11742;
    0x00008b82 cbz r3, 0x8b8c                |     
                                             |     while (r3 != 0) {
    0x00008b84 ldr r2, [r5]                  |         r2 = *(r5);
    0x00008b86 ldr r2, [r2]                  |         r2 = *(r2);
    0x00008b88 blx 0x1c1c                    |         system (r0)
    0x00008b8c cmp r4, 3                     |         
                                             |         if (r4 == 3) {
    0x00008b8e beq 0x8ba4                    |             goto label_1;
                                             |         }
                                             | label_0:
    0x00008b90 ldr r3, [r5, 4]!              |         r3 = *((r5 += 4));
    0x00008b94 adds r4, 1                    |         r4++;
    0x00008b96 mov r1, r6                    |         r1 = r6;
    0x00008b98 movs r0, 1                    |         r0 = 1;
    0x00008b9a ldr r3, [r3, 8]               |         r3 = *((r3 + 8));
    0x00008b9c cmp r3, 0                     |         
    0x00008b9e bne 0x8b84                    |         
                                             |     }
    0x00008ba0 cmp r4, 3                     |     
                                             |     if (r4 != 3) {
    0x00008ba2 bne 0x8b90                    |         goto label_0;
                                             |     }
                                             | label_1:
    0x00008ba4 pop {r4, r5, r6, pc}          |     
                                             | }

[*] Function system used 17 times kmod