[*] Binary protection state of kmod

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


[*] Function sprintf tear down of kmod

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/kmod @ 0x5a5c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00005a5c ()                                      | void fcn_00005a5c (int16_t arg_12h, int16_t arg_13h, int16_t arg_14h, int16_t arg_15h, int16_t arg_108h, int16_t arg_10ch, int16_t arg_1a0h, int16_t arg_320h, int16_t arg_b20h, void * ptr, int16_t arg_1320h, char * * endptr, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h_3;
                                                                 |     int32_t var_0h_4;
                                                                 |     int8_t var_8h_3;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h_2;
                                                                 |     char * var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     FILE * stream;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_54h;
                                                                 |     int16_t var_58h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_60h;
                                                                 |     int16_t var_64h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_70h;
                                                                 |     int16_t var_a0h;
                                                                 |     int16_t var_84h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00005a5c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00005a60 sub sp, 0x8c                                      |     
    0x00005a62 str r2, [sp]                                      |     *(sp) = r2;
    0x00005a64 mov sl, r3                                        |     sl = r3;
    0x00005a66 mov r4, r0                                        |     r4 = r0;
    0x00005a68 mov r0, r1                                        |     r0 = r1;
    0x00005a6a ldr r2, [pc, 0x1b4]                               |     
    0x00005a6c mov r5, r1                                        |     r5 = r1;
    0x00005a6e ldr r3, [pc, 0x1b4]                               |     r3 = *(0x5c26);
    0x00005a70 movs r7, 0                                        |     r7 = 0;
    0x00005a72 str r4, [sp, 8]                                   |     var_8h = r4;
    0x00005a74 add r2, pc                                        |     r2 = 0xb69a;
    0x00005a76 ldr.w r8, [pc, 0x1b0]                             |     
    0x00005a7a ldr r3, [r2, r3]                                  |     
    0x00005a7c ldr.w sb, [pc, 0x1ac]                             |     
    0x00005a80 add r8, pc                                        |     r8 = 0xb6ae;
    0x00005a82 ldr r3, [r3]                                      |     r3 = *(0xb69a);
    0x00005a84 str r3, [sp, 0x84]                                |     var_84h = r3;
    0x00005a86 mov.w r3, 0                                       |     r3 = 0;
    0x00005a8a blx 0x1d40                                        |     renameat ();
    0x00005a8e ldr r3, [pc, 0x1a0]                               |     
    0x00005a90 add sb, pc                                        |     sb = 0xb6c0;
    0x00005a92 str r0, [sp, 4]                                   |     var_4h = r0;
    0x00005a94 add r3, pc                                        |     r3 = 0xb6ca;
    0x00005a96 str r3, [sp, 0x14]                                |     var_14h = r3;
                                                                 |     do {
                                                                 | label_0:
    0x00005a98 mov r0, r5                                        |         r0 = r5;
    0x00005a9a blx 0x1cf4                                        |         r0 = fcn_00001cf4 ();
    0x00005a9e mov fp, r0                                        |         
    0x00005aa0 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00005aa2 beq 0x5b84                                        |             goto label_61;
                                                                 |         }
                                                                 | label_1:
    0x00005aa4 ldrb.w r2, [fp, 0x13]                             |         r2 = *(arg_13h);
    0x00005aa8 add.w r4, fp, 0x13                                |         r4 += arg_13h;
    0x00005aac cmp r2, 0x2e                                      |         
                                                                 |         if (r2 == 0x2e) {
    0x00005aae beq 0x5ba0                                        |             goto label_62;
                                                                 |         }
                                                                 | label_2:
    0x00005ab0 mov r1, r8                                        |         r1 = r8;
    0x00005ab2 mov r0, r4                                        |         r0 = r4;
    0x00005ab4 blx 0x1924                                        |         r0 = fcn_00001924 ();
    0x00005ab8 cmp r0, 0                                         |         
    0x00005aba beq 0x5a98                                        |         
                                                                 |     } while (r0 == 0);
    0x00005abc mov r1, sb                                        |     r1 = sb;
    0x00005abe mov r0, r4                                        |     r0 = r4;
    0x00005ac0 blx 0x1924                                        |     r0 = fcn_00001924 ();
    0x00005ac4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00005ac6 beq 0x5a98                                        |         goto label_0;
                                                                 |     }
    0x00005ac8 mov r0, r4                                        |     r0 = r4;
    0x00005aca blx 0x1bb0                                        |     fcn_00001bb0 ();
    0x00005ace ldr r3, [sp]                                      |     r3 = *(sp);
    0x00005ad0 mov r6, r0                                        |     r6 = r0;
    0x00005ad2 mov r0, sl                                        |     r0 = sl;
    0x00005ad4 adds r3, r6, r3                                   |     r3 = r6 + r3;
    0x00005ad6 adds r1, r3, 2                                    |     r1 = r3 + 2;
    0x00005ad8 str r3, [sp, 0x10]                                |     var_58h = r3;
    0x00005ada bl 0x925c                                         |     r0 = fcn_0000925c (r0, r1);
    0x00005ade cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00005ae0 blt 0x5bca                                        |         goto label_63;
                                                                 |     }
    0x00005ae2 ldr.w r3, [sl]                                    |     r3 = *(sl);
    0x00005ae6 adds r2, r6, 1                                    |     r2 = r6 + 1;
    0x00005ae8 ldr r0, [sp]                                      |     r0 = *(sp);
    0x00005aea mov r1, r4                                        |     r1 = r4;
    0x00005aec str r3, [sp, 0xc]                                 |     var_54h = r3;
    0x00005aee adds r0, r3, r0                                   |     r0 = r3 + r0;
    0x00005af0 blx 0x19c8                                        |     mmap64 ();
    0x00005af4 ldrb.w r3, [fp, 0x12]                             |     r3 = *(arg_12h);
    0x00005af8 cmp r3, 8                                         |     
                                                                 |     if (r3 == 8) {
    0x00005afa beq 0x5bba                                        |         goto label_64;
                                                                 |     }
    0x00005afc cmp r3, 4                                         |     
                                                                 |     if (r3 != 4) {
    0x00005afe beq 0x5b22                                        |         
    0x00005b00 ldr r0, [sp, 4]                                   |         r0 = var_4h;
    0x00005b02 movs r3, 0                                        |         r3 = 0;
    0x00005b04 add r2, sp, 0x18                                  |         r2 += var_60h;
    0x00005b06 mov r1, r4                                        |         r1 = r4;
    0x00005b08 blx 0x1adc                                        |         r0 = asprintf_chk ()
    0x00005b0c cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00005b0e blt 0x5bf8                                        |             goto label_65;
                                                                 |         }
    0x00005b10 ldr r3, [sp, 0x28]                                |         r3 = var_70h;
    0x00005b12 and r3, r3, 0xf000                                |         r3 &= 0xf000;
    0x00005b16 cmp.w r3, 0x8000                                  |         
                                                                 |         if (r3 == 0x8000) {
    0x00005b1a beq 0x5bba                                        |             goto label_64;
                                                                 |         }
    0x00005b1c cmp.w r3, 0x4000                                  |         
                                                                 |         if (r3 != 0x4000) {
    0x00005b20 bne 0x5bda                                        |             goto label_66;
                                                                 |         }
                                                                 |     }
    0x00005b22 ldr r0, [sp, 4]                                   |     r0 = var_4h;
    0x00005b24 movs r2, 0                                        |     r2 = 0;
    0x00005b26 mov r1, r4                                        |     r1 = r4;
    0x00005b28 blx 0x1bd8                                        |     r0 = sprintf_chk ()
    0x00005b2c subs r6, r0, 0                                    |     r6 = r0 - 0;
                                                                 |     if (r6 < r0) {
    0x00005b2e blt 0x5be8                                        |         goto label_67;
                                                                 |     }
    0x00005b30 blx 0x1d00                                        |     r0 = fcn_00001d00 ();
    0x00005b34 mov r4, r0                                        |     r4 = r0;
    0x00005b36 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00005b38 beq 0x5c08                                        |         goto label_68;
                                                                 |     }
    0x00005b3a ldr r1, [sp, 0x10]                                |     r1 = var_58h;
    0x00005b3c movs r3, 0x2f                                     |     r3 = 0x2f;
    0x00005b3e ldr r0, [sp, 0xc]                                 |     r0 = var_54h;
    0x00005b40 adds r2, r1, 1                                    |     r2 = r1 + 1;
    0x00005b42 strb r3, [r0, r1]                                 |     *((r0 + r1)) = r3;
    0x00005b44 movs r3, 0                                        |     r3 = 0;
    0x00005b46 strb r3, [r0, r2]                                 |     *((r0 + r2)) = r3;
    0x00005b48 mov r1, r4                                        |     r1 = r4;
    0x00005b4a ldr r0, [sp, 8]                                   |     r0 = var_8h;
    0x00005b4c mov r3, sl                                        |     r3 = sl;
    0x00005b4e bl 0x5a5c                                         |     r0 = fcn_00005a5c (r0, r1, r2, r3, r4, r5, r6);
    0x00005b52 mov r7, r0                                        |     r7 = r0;
    0x00005b54 mov r0, r4                                        |     r0 = r4;
    0x00005b56 blx 0x1dc8                                        |     fcn_00001dc8 ();
                                                                 | label_3:
    0x00005b5a cmp r7, 0                                         |     
                                                                 |     if (r7 >= 0) {
    0x00005b5c bge 0x5a98                                        |         goto label_0;
                                                                 |     }
    0x00005b5e ldrd r4, r3, [sp, 0xc]                            |     __asm ("ldrd r4, r3, [var_54h]");
    0x00005b62 rsbs r0, r7, 0                                    |     r0 = r7 - ;
    0x00005b64 movs r7, 0                                        |     r7 = 0;
    0x00005b66 strb r7, [r4, r3]                                 |     *((r4 + r3)) = r7;
                                                                 | label_4:
    0x00005b68 blx 0x1b18                                        |     system (r0);
    0x00005b6c ldr r1, [sp, 0x14]                                |     r1 = var_14h;
    0x00005b6e mov r3, r0                                        |     r3 = r0;
    0x00005b70 mov r2, r4                                        |     r2 = r4;
    0x00005b72 movs r0, 3                                        |     r0 = 3;
    0x00005b74 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00005b78 mov r0, r5                                        |     r0 = r5;
    0x00005b7a blx 0x1cf4                                        |     r0 = fcn_00001cf4 ();
    0x00005b7e mov fp, r0                                        |     
    0x00005b80 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00005b82 bne 0x5aa4                                        |         goto label_1;
                                                                 |     }
                                                                 | label_61:
    0x00005b84 ldr r2, [pc, 0xac]                                |     
    0x00005b86 ldr r3, [pc, 0x9c]                                |     r3 = *(0x5c26);
    0x00005b88 add r2, pc                                        |     r2 = 0xb7c0;
    0x00005b8a ldr r3, [r2, r3]                                  |     r3 = *(0xb7c0);
    0x00005b8c ldr r2, [r3]                                      |     r2 = *(0xb7c0);
    0x00005b8e ldr r3, [sp, 0x84]                                |     r3 = var_84h;
    0x00005b90 eors r2, r3                                       |     r2 ^= r3;
    0x00005b92 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00005b96 bne 0x5c1c                                        |         goto label_69;
                                                                 |     }
    0x00005b98 mov r0, r7                                        |     r0 = r7;
    0x00005b9a add sp, 0x8c                                      |     
    0x00005b9c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_62:
    0x00005ba0 ldrb.w r2, [fp, 0x14]                             |     r2 = *(arg_14h);
    0x00005ba4 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00005ba6 beq.w 0x5a98                                      |         goto label_0;
                                                                 |     }
    0x00005baa cmp r2, 0x2e                                      |     
                                                                 |     if (r2 != 0x2e) {
    0x00005bac bne 0x5ab0                                        |         goto label_2;
                                                                 |     }
    0x00005bae ldrb.w r2, [fp, 0x15]                             |     r2 = *(arg_15h);
    0x00005bb2 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x00005bb4 bne.w 0x5ab0                                      |         goto label_2;
                                                                 |     }
    0x00005bb8 b 0x5a98                                          |     goto label_0;
                                                                 | label_64:
    0x00005bba ldr r3, [sp, 0xc]                                 |     r3 = var_54h;
    0x00005bbc mov r2, r6                                        |     r2 = r6;
    0x00005bbe ldr r1, [sp]                                      |     r1 = *(sp);
    0x00005bc0 ldr r0, [sp, 8]                                   |     r0 = var_8h;
    0x00005bc2 bl 0x5624                                         |     r0 = fcn_00005624 (r0, r1, r2, r3, r4);
    0x00005bc6 mov r7, r0                                        |     r7 = r0;
                                                                 |     do {
    0x00005bc8 b 0x5b5a                                          |         goto label_3;
                                                                 | label_63:
    0x00005bca ldr r1, [pc, 0x6c]                                |         
    0x00005bcc movs r0, 3                                        |         r0 = 3;
    0x00005bce mvn r7, 0xb                                       |         r7 = ~0xb;
    0x00005bd2 add r1, pc                                        |         r1 = 0xb810;
    0x00005bd4 bl 0x85e4                                         |         fcn_000085e4 (r0);
    0x00005bd8 b 0x5a98                                          |         goto label_0;
                                                                 | label_66:
    0x00005bda ldr r1, [pc, 0x60]                                |         
    0x00005bdc movs r0, 3                                        |         r0 = 3;
    0x00005bde ldr r2, [sp, 0xc]                                 |         r2 = var_54h;
    0x00005be0 add r1, pc                                        |         r1 = 0xb822;
    0x00005be2 bl 0x85e4                                         |         fcn_000085e4 (r0);
    0x00005be6 b 0x5a98                                          |         goto label_0;
                                                                 | label_67:
    0x00005be8 ldr r1, [pc, 0x54]                                |         
    0x00005bea mov r3, r4                                        |         r3 = r4;
    0x00005bec ldr r2, [sp, 4]                                   |         r2 = var_4h;
    0x00005bee movs r0, 3                                        |         r0 = 3;
    0x00005bf0 add r1, pc                                        |         r1 = 0xb834;
    0x00005bf2 bl 0x85e4                                         |         fcn_000085e4 (r0);
    0x00005bf6 b 0x5a98                                          |         goto label_0;
                                                                 | label_65:
    0x00005bf8 ldr r1, [pc, 0x48]                                |         
    0x00005bfa mov r3, r4                                        |         r3 = r4;
    0x00005bfc ldr r2, [sp, 4]                                   |         r2 = var_4h;
    0x00005bfe movs r0, 3                                        |         r0 = 3;
    0x00005c00 add r1, pc                                        |         r1 = 0xb848;
    0x00005c02 bl 0x85e4                                         |         fcn_000085e4 (r0);
    0x00005c04 stc2l p7, c14, [pc], 0x11c                        |         __asm ("stc2l p7, c14, [pc], 0x11c");
                                                                 | label_68:
    0x00005c08 ldr r1, [pc, 0x3c]                                |         
    0x00005c0a mov r2, r6                                        |         r2 = r6;
    0x00005c0c movs r0, 3                                        |         r0 = 3;
    0x00005c0e add r1, pc                                        |         r1 = 0xb85a;
    0x00005c10 bl 0x85e4                                         |         fcn_000085e4 (r0);
    0x00005c14 mov r0, r6                                        |         r0 = r6;
    0x00005c16 blx 0x1dbc                                        |         fcn_00001dbc ();
    0x00005c1a b 0x5a98                                          |         goto label_0;
                                                                 | label_69:
    0x00005c1c blx 0x1a1c                                        |         stat64 ();
                                                                 | label_5:
    0x00005c20 lsls r4, r4, 0xe                                  |         r4 <<= 0xe;
    0x00005c22 movs r2, r0                                       |         r2 = r0;
    0x00005c24 lsls r4, r7, 6                                    |         r4 = r7 << 6;
    0x00005c26 movs r0, r0                                       |         
                                                                 |         if (r0 <= r0) {
    0x00005c28 blo 0x5cb4                                        |             goto label_70;
                                                                 |         }
    0x00005c2a movs r0, r0                                       |         
                                                                 |         if (r0 <= r0) {
    0x00005c2c blo 0x5ca8                                        |             goto label_71;
                                                                 |         }
    0x00005c2e movs r0, r0                                       |         
                                                                 |         if (r0 >= r0) {
    0x00005c30 bmi 0x5c34                                        |             
    0x00005c32 movs r0, r0                                       |             
                                                                 |         }
    0x00005c34 lsls r0, r2, 0xa                                  |         r0 = r2 << 0xa;
    0x00005c36 movs r2, r0                                       |         r2 = r0;
    0x00005c38 bvc 0x5bc8                                        |         __asm ("bvc 0x5bc8");
                                                                 |     } while (1);
    0x00005c3a movs r0, r0                                       |     
                                                                 |     if (r0 >= r0) {
    0x00005c3c bhs 0x5b68                                        |         goto label_4;
                                                                 |     }
    0x00005c3e movs r0, r0                                       |     
                                                                 |     if (r0 >= r0) {
    0x00005c40 bhs 0x5cac                                        |         goto label_72;
                                                                 |     }
    0x00005c42 movs r0, r0                                       |     
                                                                 |     if (r0 != r0) {
    0x00005c44 bne 0x5c20                                        |         goto label_5;
                                                                 |     }
    0x00005c46 movs r0, r0                                       |     
                                                                 |     if (r0 < r0) {
    0x00005c48 bhs 0x5cb8                                        |         
    0x00005c4a movs r0, r0                                       |         
    0x00005c4c push.w {r4, r5, r6, r7, r8, sb, lr}               |         
    0x00005c50 mov r5, r1                                        |         r5 = r1;
    0x00005c52 ldr r1, [pc, 0xb0]                                |         
    0x00005c54 sub sp, 0x114                                     |         
    0x00005c56 mov r4, sp                                        |         r4 = sp;
    0x00005c58 mov.w r2, 0x100                                   |         r2 = 0x100;
    0x00005c5c ldr r3, [pc, 0xa8]                                |         r3 = *(0x5d08);
    0x00005c5e mov r8, r0                                        |         r8 = r0;
    0x00005c60 add r1, pc                                        |         r1 = 0xb96a;
    0x00005c62 mov.w sb, 0                                       |         sb = 0;
    0x00005c66 mov r0, r5                                        |         r0 = r5;
    0x00005c68 ldr r3, [r1, r3]                                  |         
    0x00005c6a ldr r3, [r3]                                      |         r3 = *(0xb96a);
    0x00005c6c str r3, [sp, 0x10c]                               |         var_24h = r3;
    0x00005c6e mov.w r3, 0                                       |         r3 = 0;
    0x00005c72 add r3, sp, 0xc                                   |         r3 += var_ch_2;
    0x00005c74 strd r3, r2, [r4]                                 |         __asm ("strd r3, r2, [r4]");
    0x00005c78 strb.w sb, [r4, 8]                                |         var_8h_3 = sb;
    0x00005c7c blx 0x1ab8                                        |         r0 = fnmatch ();
                                                                 |         if (r0 == 0) {
    0x00005c80 cbz r0, 0x5cea                                    |             goto label_73;
                                                                 |         }
    0x00005c82 mov r6, r0                                        |         r6 = r0;
    0x00005c84 mov r0, r5                                        |         r0 = r5;
    0x00005c86 blx 0x1bb0                                        |         r0 = fcn_00001bb0 ();
    0x00005c8a mov r7, r0                                        |         r7 = r0;
    0x00005c8c mov r0, r4                                        |         r0 = r4;
    0x00005c8e adds r1, r7, 2                                    |         r1 = r7 + 2;
    0x00005c90 bl 0x925c                                         |         r0 = fcn_0000925c (r0, r1);
    0x00005c94 cmp r0, 0                                         |         
    0x00005c96 it lt                                             |         
                                                                 |         if (r0 >= 0) {
    0x00005c98 mvnlt r5, 0xb                                     |             r5 = ~0xb;
                                                                 |         }
                                                                 |         if (r0 < 0) {
    0x00005c9c blt 0x5cc2                                        |             goto label_74;
                                                                 |         }
    0x00005c9e ldr r3, [r4]                                      |         r3 = *(r4);
    0x00005ca0 mov r1, r5                                        |         r1 = r5;
    0x00005ca2 mov r2, r7                                        |         r2 = r7;
    0x00005ca4 mov r0, r3                                        |         r0 = r3;
    0x00005ca6 blx 0x19c8                                        |         mmap64 ();
                                                                 | label_71:
    0x00005ca8 mrc p12, 4, r1, c0, c10, 3                        |         __asm ("mrc p12, 4, r1, c0, c10, 3");
                                                                 | label_72:
    0x00005cac mov r3, r0                                        |         r3 = r0;
    0x00005cae movs r1, 0x2f                                     |         r1 = 0x2f;
    0x00005cb0 mov r0, r8                                        |         r0 = r8;
    0x00005cb2 strb r1, [r3, r7]                                 |         *((r3 + r7)) = r1;
                                                                 | label_70:
    0x00005cb4 mov r1, r6                                        |         r1 = r6;
    0x00005cb6 invalid                                           |         
                                                                 |     }
    0x00005cb8 str r0, [sp, 8]                                   |     var_8h = r0;
    0x00005cba mov r3, r4                                        |     r3 = r4;
    0x00005cbc bl 0x5a5c                                         |     r0 = fcn_00005a5c (r0, r1, r2, r3, r4, r5, r6);
    0x00005cc0 mov r5, r0                                        |     r5 = r0;
                                                                 | label_74:
    0x00005cc2 mov r0, r6                                        |     r0 = r6;
    0x00005cc4 blx 0x1dc8                                        |     fcn_00001dc8 ();
                                                                 |     do {
                                                                 | label_6:
    0x00005cc8 mov r0, r4                                        |         r0 = r4;
    0x00005cca bl 0x92a0                                         |         fcn_000092a0 (r0);
    0x00005cce ldr r2, [pc, 0x3c]                                |         
    0x00005cd0 ldr r3, [pc, 0x34]                                |         r3 = *(0x5d08);
    0x00005cd2 add r2, pc                                        |         r2 = 0xb9e4;
    0x00005cd4 ldr r3, [r2, r3]                                  |         r3 = *(0xb9e4);
    0x00005cd6 ldr r2, [r3]                                      |         r2 = *(0xb9e4);
    0x00005cd8 ldr r3, [sp, 0x10c]                               |         r3 = *(arg_10ch);
    0x00005cda eors r2, r3                                       |         r2 ^= r3;
    0x00005cdc mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00005ce0 bne 0x5d00                                        |             goto label_75;
                                                                 |         }
    0x00005ce2 mov r0, r5                                        |         r0 = r5;
    0x00005ce4 add sp, 0x114                                     |         
    0x00005ce6 pop.w {r4, r5, r6, r7, r8, sb, pc}                |         
                                                                 | label_73:
    0x00005cea blx 0x1be4                                        |         isoc99_sscanf ();
    0x00005cee ldr r1, [pc, 0x20]                                |         
    0x00005cf0 mov r2, r5                                        |         r2 = r5;
    0x00005cf2 ldr r3, [r0]                                      |         r3 = *(r0);
    0x00005cf4 movs r0, 3                                        |         r0 = 3;
    0x00005cf6 add r1, pc                                        |         r1 = 0xba0c;
    0x00005cf8 rsbs r5, r3, 0                                    |         r5 = r3 - ;
    0x00005cfa bl 0x85e4                                         |         fcn_000085e4 (r0);
    0x00005cfe b 0x5cc8                                          |         
                                                                 |     } while (1);
                                                                 | label_75:
    0x00005d00 blx 0x1a1c                                        |     stat64 ();
    0x00005d04 lsls r0, r7, 6                                    |     r0 = r7 << 6;
    0x00005d06 movs r2, r0                                       |     r2 = r0;
    0x00005d08 lsls r4, r7, 6                                    |     r4 = r7 << 6;
    0x00005d0a movs r0, r0                                       |     
    0x00005d0c lsls r6, r0, 5                                    |     r6 = r0 << 5;
    0x00005d0e movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 <= r0) {
    0x00005d10 blo 0x5cc8                                        |         goto label_6;
                                                                 |     }
    0x00005d12 movs r0, r0                                       |     
    0x00005d14 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00005d16 ldr r7, [pc, 0x3c0]                               |     r7 = *(0x60da);
    0x00005d18 movs r6, 0                                        |     r6 = 0;
    0x00005d1a vpush {d8}                                        |     __asm ("vpush {d8}");
    0x00005d1e sub.w sp, sp, 0x3b00                              |     
    0x00005d22 sub sp, 0x24                                      |     
    0x00005d24 mov r4, r1                                        |     r4 = r1;
    0x00005d26 add r3, sp, 0x320                                 |     r3 += arg_320h;
    0x00005d28 ldr.w r2, [pc, 0xb68]                             |     r2 = *(0x00006894);
    0x00005d2c str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00005d2e add r3, sp, 0x70                                  |     r3 += var_70h;
    0x00005d30 str r6, [r3]                                      |     *(r3) = r6;
    0x00005d32 add.w r7, sp, 0xb20                               |     r7 += arg_b20h;
    0x00005d36 ldr.w r3, [pc, 0xb60]                             |     
    0x00005d3a add r2, pc                                        |     r2 += pc;
    0x00005d3c str r7, [sp, 0x20]                                |     stream = r7;
    0x00005d3e add.w r1, sp, 0x3b00                              |     r1 += endptr;
    0x00005d42 adds r1, 0x1c                                     |     r1 += 0x1c;
    0x00005d44 mov r5, r0                                        |     r5 = r0;
    0x00005d46 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00005d48 mov fp, r6                                        |     
    0x00005d4a ldr.w r2, [pc, 0xb50]                             |     r2 = *(0x0000689c);
    0x00005d4e mov r7, fp                                        |     r7 = fp;
    0x00005d50 ldr.w sb, [pc, 0xb4c]                             |     sb = *(0x000068a0);
    0x00005d54 ldr r3, [r3]                                      |     r3 = *(0x689a);
    0x00005d56 str r3, [r1]                                      |     *(r1) = r3;
    0x00005d58 mov.w r3, 0                                       |     r3 = 0;
    0x00005d5c ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00005d5e add r2, pc                                        |     r2 += pc;
    0x00005d60 mov r1, r6                                        |     r1 = r6;
    0x00005d62 str r2, [sp, 0x1c]                                |     var_1ch = r2;
    0x00005d64 movw r2, 0x1018                                   |     r2 = 0x1018;
    0x00005d68 sub.w r0, r3, 0x28                                |     r0 = r3 - 0x28;
    0x00005d6c add r3, sp, 0xa0                                  |     r3 += var_a0h;
    0x00005d6e str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00005d70 add sb, pc                                        |     sb += pc;
    0x00005d72 str r0, [sp, 0x34]                                |     var_34h = r0;
    0x00005d74 blx 0x1c2c                                        |     strtoull (r0, r1, r2);
    0x00005d78 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00005d7a mov r1, r6                                        |     r1 = r6;
    0x00005d7c ldr.w r8, [pc, 0xb24]                             |     
    0x00005d80 movs r2, 0x24                                     |     r2 = 0x24;
    0x00005d82 str r6, [sp, 0x24]                                |     var_24h = r6;
    0x00005d84 sub.w r0, r3, 0x24                                |     r0 = r3 - 0x24;
    0x00005d88 add r3, sp, 0x108                                 |     r3 += arg_108h;
    0x00005d8a str r6, [sp, 0x38]                                |     var_38h = r6;
    0x00005d8c add r8, pc                                        |     r8 = 0xc634;
    0x00005d8e str r6, [sp, 0x40]                                |     var_40h = r6;
    0x00005d90 str r6, [sp, 0x30]                                |     var_30h = r6;
    0x00005d92 strd r6, r6, [sp, 0x44]                           |     __asm ("strd r6, r6, [sp, 0x44]");
    0x00005d96 str r6, [sp, 0x3c]                                |     var_3ch = r6;
    0x00005d98 mov r6, r3                                        |     r6 = r3;
    0x00005d9a str r0, [sp, 0x4c]                                |     var_4h = r0;
    0x00005d9c str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00005d9e blx 0x1c2c                                        |     strtoull (r0, r1, r2);
                                                                 |     do {
                                                                 | label_7:
    0x00005da2 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x00005da4 mov r2, r8                                        |         r2 = r8;
    0x00005da6 mov r1, r4                                        |         r1 = r4;
    0x00005da8 mov r0, r5                                        |         r0 = r5;
    0x00005daa str r3, [sp]                                      |         *(sp) = r3;
    0x00005dac mov r3, sb                                        |         r3 = sb;
    0x00005dae str r7, [r6]                                      |         *(r6) = r7;
    0x00005db0 blx 0x1b74                                        |         r0 = fcn_00001b74 ();
    0x00005db4 adds r2, r0, 1                                    |         r2 = r0 + 1;
                                                                 |         if (r2 == r0) {
    0x00005db6 beq.w 0x5fba                                      |             goto label_76;
                                                                 |         }
    0x00005dba sub.w r3, r0, 0x3f                                |         r3 = r0 - 0x3f;
    0x00005dbe cmp r3, 0x38                                      |         
                                                                 |         if (r3 <= 0x38) {
    0x00005dc0 bhi 0x5e38                                        |             
                                                                 |             /* switch table (58 cases) at 0x5dc6 */
    0x00005dc2 tbh [pc, r3, lsl 1]                               |             __asm ("tbh [pc, r3, lsl 1]");
                                                                 |         }
    0x00005e38 ldr.w r1, [pc, 0xa6c]                             |         
    0x00005e3c mov r2, r0                                        |         r2 = r0;
    0x00005e3e movs r0, 3                                        |         r0 = 3;
    0x00005e40 add r1, pc                                        |         r1 = 0xc6ec;
    0x00005e42 bl 0x85e4                                         |         fcn_000085e4 (r0);
                                                                 | label_11:
    0x00005e46 ldr r0, [sp, 0x34]                                |         r0 = var_34h;
    0x00005e48 movs r4, 1                                        |         r4 = 1;
    0x00005e4a bl 0x46d8                                         |         fcn_000046d8 (r0);
                                                                 | label_8:
    0x00005e4e mov r0, fp                                        |         r0 = fp;
    0x00005e50 blx 0x19a0                                        |         fcn_000019a0 ();
    0x00005e54 ldr r0, [sp, 0x24]                                |         r0 = var_24h;
    0x00005e56 blx 0x19a0                                        |         fcn_000019a0 ();
    0x00005e5a ldr.w r2, [pc, 0xa50]                             |         r2 = *(0x000068ac);
    0x00005e5e add.w r1, sp, 0x3b00                              |         r1 += endptr;
    0x00005e62 ldr.w r3, [pc, 0xa34]                             |         r3 = *(0x689a);
    0x00005e66 adds r1, 0x1c                                     |         r1 += 0x1c;
    0x00005e68 add r2, pc                                        |         r2 += pc;
    0x00005e6a ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x00005e6c ldr r2, [r3]                                      |         r2 = *(0x689a);
    0x00005e6e ldr r3, [r1]                                      |         r3 = *(r1);
    0x00005e70 eors r2, r3                                       |         r2 ^= r3;
    0x00005e72 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00005e76 bne.w 0x7456                                      |             goto label_77;
                                                                 |         }
    0x00005e7a mov r0, r4                                        |         r0 = r4;
    0x00005e7c add.w sp, sp, 0x3b00                              |         
    0x00005e80 add sp, 0x24                                      |         
    0x00005e82 vpop {d8}                                         |         __asm ("vpop {d8}");
    0x00005e86 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00005e8a ldr r3, [r6]                                      |         r3 = *(r6);
    0x00005e8c cmp r3, 0                                         |         
                                                                 |         if (r3 <= 0) {
    0x00005e8e ble.w 0x5faa                                      |             goto label_78;
                                                                 |         }
    0x00005e92 ldr.w r2, [pc, 0xa1c]                             |         r2 = *(0x000068b0);
    0x00005e96 lsls r3, r3, 4                                    |         r3 <<= 4;
    0x00005e98 ldr.w r1, [pc, 0xa18]                             |         
    0x00005e9c movs r0, 4                                        |         r0 = 4;
    0x00005e9e add r2, pc                                        |         r2 += pc;
    0x00005ea0 ldr r2, [r2, r3]                                  |         r2 = *((r2 + r3));
    0x00005ea2 add r1, pc                                        |         r1 = 0xc75a;
    0x00005ea4 bl 0x85e4                                         |         fcn_000085e4 (r0);
    0x00005ea8 b 0x5da2                                          |         
                                                                 |     } while (1);
    0x00005eaa ldr.w r3, [pc, 0xa0c]                             |     
    0x00005eae ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00005eb0 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00005eb2 ldr r3, [r3]                                      |     r3 = *(0x68ba);
    0x00005eb4 str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x00005eb6 b 0x5da2                                          |     goto label_7;
    0x00005eb8 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00005eba movs r0, 1                                        |     r0 = 1;
    0x00005ebc ldr.w r3, [pc, 0x9fc]                             |     r3 = *(0x68bc);
    0x00005ec0 ldr.w r1, [pc, 0x9fc]                             |     
    0x00005ec4 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00005ec6 add r1, pc                                        |     r1 = 0xc78a;
    0x00005ec8 ldr r2, [r3]                                      |     r2 = *(0x68bc);
    0x00005eca blx 0x1c54                                        |     fcn_00001c54 ();
                                                                 |     do {
    0x00005ece movs r4, 0                                        |         r4 = 0;
    0x00005ed0 b 0x5e4e                                          |         goto label_8;
    0x00005ed2 ldr r2, [sp, 0x20]                                |         r2 = stream;
    0x00005ed4 movs r3, 1                                        |         r3 = 1;
    0x00005ed6 strb.w r3, [r2, 0x7e2]                            |         *((r2 + 0x7e2)) = r3;
    0x00005eda b 0x5da2                                          |         goto label_7;
    0x00005edc ldr r2, [sp, 0x20]                                |         r2 = stream;
    0x00005ede movs r3, 1                                        |         r3 = 1;
    0x00005ee0 strb.w r3, [r2, 0x7e3]                            |         *((r2 + 0x7e3)) = r3;
    0x00005ee4 b 0x5da2                                          |         goto label_7;
    0x00005ee6 ldr.w r2, [pc, 0x9dc]                             |         r2 = *(0x000068c4);
    0x00005eea add r2, pc                                        |         r2 += pc;
    0x00005eec ldr r3, [r2]                                      |         r3 = *(r2);
    0x00005eee adds r3, 1                                        |         r3++;
    0x00005ef0 str r3, [r2]                                      |         *(r2) = r3;
    0x00005ef2 b 0x5da2                                          |         goto label_7;
    0x00005ef4 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
                                                                 |         if (r3 != 0) {
    0x00005ef6 cbz r3, 0x5efe                                    |             
    0x00005ef8 mov r0, r3                                        |             r0 = r3;
    0x00005efa blx 0x19a0                                        |             fcn_000019a0 ();
                                                                 |         }
    0x00005efe ldr r2, [sp, 0x1c]                                |         r2 = var_1ch;
    0x00005f00 ldr.w r3, [pc, 0x9c4]                             |         r3 = *(0x68c8);
    0x00005f04 ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x00005f06 ldr r0, [r3]                                      |         r0 = *(0x68c8);
    0x00005f08 bl 0x960c                                         |         fcn_0000960c (r0);
    0x00005f0c str r0, [sp, 0x24]                                |         var_24h = r0;
    0x00005f0e b 0x5da2                                          |         goto label_7;
    0x00005f10 ldr.w r0, [pc, 0x9b8]                             |         
    0x00005f14 add r0, pc                                        |         r0 = 0xc7e4;
    0x00005f16 blx 0x1b00                                        |         malloc (r0);
    0x00005f1a ldr.w r0, [pc, 0x9b4]                             |         
    0x00005f1e add r0, pc                                        |         r0 = 0xc7f4;
    0x00005f20 blx 0x1b00                                        |         malloc (r0);
    0x00005f24 b 0x5ece                                          |         
                                                                 |     } while (1);
    0x00005f26 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00005f28 ldr.w r3, [pc, 0x99c]                             |     
    0x00005f2c ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00005f2e ldr r3, [r3]                                      |     r3 = *(0x68c8);
    0x00005f30 ldrb r2, [r3, 1]                                  |     r2 = *((r3 + 1));
    0x00005f32 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x00005f34 bne.w 0x70a6                                      |         goto label_79;
                                                                 |     }
    0x00005f38 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00005f3a ldr r2, [sp, 0x20]                                |     r2 = stream;
    0x00005f3c strb.w r3, [r2, 0x7e0]                            |     *((r2 + 0x7e0)) = r3;
    0x00005f40 b 0x5da2                                          |     goto label_7;
    0x00005f42 ldr.w r3, [pc, 0x984]                             |     
    0x00005f46 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00005f48 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00005f4a ldr r3, [r3]                                      |     r3 = *(0x68ca);
    0x00005f4c str r3, [sp, 0x40]                                |     var_40h = r3;
    0x00005f4e b 0x5da2                                          |     goto label_7;
    0x00005f50 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00005f52 ldr.w r3, [pc, 0x974]                             |     
    0x00005f56 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00005f58 ldr r2, [sp, 0x20]                                |     r2 = stream;
    0x00005f5a ldr r3, [r3]                                      |     r3 = *(0x68ca);
    0x00005f5c str r3, [sp, 0x38]                                |     var_38h = r3;
    0x00005f5e movs r3, 1                                        |     r3 = 1;
    0x00005f60 strb.w r3, [r2, 0x7e1]                            |     *((r2 + 0x7e1)) = r3;
    0x00005f62 adds r7, 0xe1                                     |     r7 += 0xe1;
    0x00005f64 b 0x5da2                                          |     goto label_7;
    0x00005f66 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x00005f68 mov r0, fp                                        |     r0 = fp;
    0x00005f6a add.w sl, r3, 2                                   |     sl = r3 + 2;
    0x00005f6e lsl.w sl, sl, 2                                   |     sl <<= 2;
    0x00005f72 mov r1, sl                                        |     r1 = sl;
    0x00005f74 blx 0x1a34                                        |     r0 = regexec ();
    0x00005f78 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00005f7a beq.w 0x75ea                                      |         goto label_80;
                                                                 |     }
    0x00005f7e ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x00005f80 add sl, r0                                        |     sl += r0;
    0x00005f82 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00005f84 mov fp, r0                                        |     
    0x00005f86 adds r3, 1                                        |     r3++;
    0x00005f88 str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00005f8a ldr.w r3, [pc, 0x93c]                             |     
    0x00005f8e ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00005f90 movs r2, 0                                        |     r2 = 0;
    0x00005f92 str r2, [sl, -0x4]                                |     *((sl - 0x4)) = r2;
    0x00005f96 ldr r3, [r3]                                      |     r3 = *(0x68ca);
    0x00005f98 str r3, [sl, -0x8]                                |     *((sl - 0x8)) = r3;
    0x00005f9c b 0x5da2                                          |     goto label_7;
    0x00005f9e movs r3, 1                                        |     r3 = 1;
    0x00005fa0 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x00005fa2 b 0x5da2                                          |     goto label_7;
    0x00005fa4 movs r3, 1                                        |     r3 = 1;
    0x00005fa6 str r3, [sp, 0x48]                                |     var_0h = r3;
    0x00005fa8 b 0x5da2                                          |     goto label_7;
                                                                 | label_78:
    0x00005faa ldr.w r1, [pc, 0x928]                             |     
    0x00005fae mov r2, r0                                        |     r2 = r0;
    0x00005fb0 movs r0, 4                                        |     r0 = 4;
    0x00005fb2 add r1, pc                                        |     r1 = 0xc88c;
    0x00005fb4 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00005fb8 b 0x5da2                                          |     goto label_7;
                                                                 | label_76:
    0x00005fba ldr.w r3, [pc, 0x91c]                             |     
    0x00005fbe mov sl, r0                                        |     sl = r0;
    0x00005fc0 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00005fc2 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00005fc4 str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00005fc6 ldr r3, [r3]                                      |     r3 = *(0x68da);
    0x00005fc8 cmp r3, r5                                        |     
                                                                 |     if (r3 < r5) {
    0x00005fca blt.w 0x62a4                                      |         goto label_81;
                                                                 |     }
    0x00005fce add r6, sp, 0x1a0                                 |     r6 += arg_1a0h;
    0x00005fd0 sub.w r0, r6, 0x30                                |     r0 = r6 - 0x30;
    0x00005fd4 blx 0x1a04                                        |     r0 = strdup (r0);
    0x00005fd8 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00005fda blt.w 0x6ff0                                      |         goto label_82;
                                                                 |     }
    0x00005fde ldr r2, [sp, 0x20]                                |     r2 = stream;
    0x00005fe0 add.w r3, r6, 0x52                                |     r3 = r6 + 0x52;
    0x00005fe4 subw r2, r2, 0x828                                |     __asm ("subw r2, r2, 0x828");
    0x00005fe8 str r3, [r2]                                      |     *(r2) = r3;
                                                                 | label_12:
    0x00005fea ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x00005fec cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00005fee beq.w 0x62e8                                      |         goto label_83;
                                                                 |     }
    0x00005ff2 ldr r2, [sp, 0x24]                                |     r2 = var_24h;
                                                                 | label_14:
    0x00005ff4 strd r2, r3, [sp, 4]                              |     __asm ("strd r2, r3, [sp, 4]");
    0x00005ff8 ldr.w r3, [pc, 0x8e0]                             |     
    0x00005ffc ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00005ffe add r3, pc                                        |     r3 = 0xc8de;
    0x00006000 sub.w r6, r2, 0x24                                |     r6 = r2 - 0x24;
    0x00006004 str r3, [sp]                                      |     *(sp) = r3;
    0x00006006 mov.w r3, 0x1000                                  |     r3 = 0x1000;
    0x0000600a movs r2, 1                                        |     r2 = 1;
    0x0000600c mov r1, r3                                        |     r1 = r3;
    0x0000600e mov r0, r6                                        |     r0 = r6;
    0x00006010 blx 0x1dd4                                        |     fcn_00001dd4 ();
    0x00006014 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00006016 ldr r2, [sp, 0x44]                                |     r2 = var_44h;
    0x00006018 str.w r0, [r3, 0x7dc]                             |     __asm ("str.w r0, [r3, 0x7dc]");
    0x0000601c ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x0000601e ldr r3, [r3]                                      |     r3 = *(r3);
    0x00006020 cmp r3, r5                                        |     
    0x00006022 it eq                                             |     
                                                                 |     if (r3 != r5) {
    0x00006024 moveq r2, 1                                       |         r2 = 1;
                                                                 |     }
    0x00006026 ldr r3, [sp, 0x48]                                |     r3 = var_0h;
    0x00006028 str r2, [sp, 0x44]                                |     var_44h = r2;
    0x0000602a cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000602c beq.w 0x62d2                                      |         goto label_84;
                                                                 |     }
    0x00006030 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00006032 ldr.w r3, [pc, 0x884]                             |     
    0x00006036 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00006038 ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x0000603a ldr r3, [r3]                                      |     r3 = *(0x68ba);
    0x0000603c cmp r3, r2                                        |     
                                                                 |     if (r3 == r2) {
    0x0000603e beq.w 0x62d8                                      |         goto label_85;
                                                                 |     }
    0x00006042 mov r0, r6                                        |     r0 = r6;
    0x00006044 blx 0x1ab8                                        |     r0 = fnmatch ();
    0x00006048 mov r7, r0                                        |     r7 = r0;
    0x0000604a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000604c beq.w 0x700c                                      |         goto label_86;
                                                                 |     }
    0x00006050 blx 0x1d40                                        |     renameat ();
    0x00006054 ldr.w r1, [pc, 0x888]                             |     
    0x00006058 movs r3, 0                                        |     r3 = 0;
    0x0000605a ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x0000605c add r1, pc                                        |     r1 = 0xc940;
    0x0000605e blx 0x1adc                                        |     r0 = asprintf_chk ()
    0x00006062 mov r8, r0                                        |     r8 = r0;
    0x00006064 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00006066 bne.w 0x6aea                                      |         goto label_87;
                                                                 |     }
    0x0000606a mov r0, r6                                        |     r0 = r6;
    0x0000606c blx 0x1bb0                                        |     fcn_00001bb0 ();
    0x00006070 mov r1, r6                                        |     r1 = r6;
    0x00006072 add.w r6, sp, 0x1300                              |     r6 += ptr;
    0x00006076 adds r6, 0x1c                                     |     r6 += 0x1c;
    0x00006078 mov sb, r0                                        |     sb = r0;
    0x0000607a mov r2, r0                                        |     r2 = r0;
    0x0000607c mov.w r3, 0x1000                                  |     r3 = 0x1000;
    0x00006080 mov r0, r6                                        |     r0 = r6;
    0x00006082 blx 0x1a4c                                        |     fwrite (r0, r1, r2, r3);
    0x00006086 ldr r1, [sp, 0x20]                                |     r1 = stream;
    0x00006088 mov r3, r6                                        |     r3 = r6;
    0x0000608a add.w r2, sb, 1                                   |     r2 = sb + 1;
    0x0000608e movs r6, 0x2f                                     |     r6 = 0x2f;
    0x00006090 strb.w r6, [r3, sb]                               |     *((r3 + sb)) = r6;
    0x00006094 mov r0, r7                                        |     r0 = r7;
    0x00006096 subw r1, r1, 0xa18                                |     __asm ("subw r1, r1, 0xa18");
    0x0000609a strb.w r8, [r3, r2]                               |     *((r3 + r2)) = r8;
    0x0000609e ldr r1, [r1, 0x50]                                |     r1 = *((r1 + 0x50));
    0x000060a0 bl 0x4754                                         |     r0 = fcn_00004754 (r0, r1, r2, r3);
    0x000060a4 mov r6, r0                                        |     r6 = r0;
    0x000060a6 mov r0, r7                                        |     r0 = r7;
    0x000060a8 blx 0x1dc8                                        |     fcn_00001dc8 ();
                                                                 | label_30:
    0x000060ac cmp r6, 1                                         |     
                                                                 |     if (r6 == 1) {
    0x000060ae beq.w 0x62d8                                      |         goto label_85;
                                                                 |     }
                                                                 | label_13:
    0x000060b2 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x000060b4 sub.w r7, r3, 0x24                                |     r7 = r3 - 0x24;
    0x000060b8 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000060ba mov r0, r7                                        |     r0 = r7;
    0x000060bc sub.w r1, r3, 0x30                                |     r1 = r3 - 0x30;
    0x000060c0 bl 0x9b18                                         |     r0 = fcn_00009b18 (r0, r1, r2, r3, r4);
    0x000060c4 mov r6, r0                                        |     r6 = r0;
    0x000060c6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000060c8 beq.w 0x6ad8                                      |         goto label_88;
                                                                 |     }
    0x000060cc ldr.w r3, [pc, 0x814]                             |     r3 = *(0x000068e4);
    0x000060d0 add r3, pc                                        |     r3 += pc;
    0x000060d2 ldr r1, [r3]                                      |     r1 = *(r3);
    0x000060d4 bl 0x86bc                                         |     fcn_000086bc (r0, r1);
    0x000060d8 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x000060da movs r1, 0x80                                     |     r1 = 0x80;
    0x000060dc subw r7, r3, 0xaa4                                |     __asm ("subw r7, r3, 0xaa4");
    0x000060e0 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x000060e2 strd r3, r6, [r7]                                 |     __asm ("strd r3, r6, [r7]");
    0x000060e6 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000060e8 sub.w r0, r3, 0x1c                                |     r0 = r3 - 0x1c;
    0x000060ec bl 0x8b68                                         |     fcn_00008b68 (r0, r1);
    0x000060f0 movs r1, 0                                        |     r1 = 0;
    0x000060f2 mov.w r0, 0x200                                   |     r0 = 0x200;
    0x000060f6 bl 0x8c14                                         |     fcn_00008c14 (r0, r1);
    0x000060fa str r0, [r7, 0x18]                                |     *((r7 + 0x18)) = r0;
    0x000060fc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000060fe beq.w 0x6414                                      |         goto label_89;
                                                                 |     }
    0x00006102 movs r1, 0                                        |     r1 = 0;
    0x00006104 mov.w r0, 0x200                                   |     r0 = 0x200;
    0x00006108 bl 0x8c14                                         |     fcn_00008c14 (r0, r1);
    0x0000610c str r0, [r7, 0x1c]                                |     *((r7 + 0x1c)) = r0;
    0x0000610e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006110 beq.w 0x6f8e                                      |         goto label_90;
                                                                 |     }
    0x00006114 ldr.w r1, [pc, 0x7d0]                             |     r1 = *(0x000068e8);
    0x00006118 mov.w r0, 0x800                                   |     r0 = 0x800;
    0x0000611c add r1, pc                                        |     r1 += pc;
    0x0000611e bl 0x8c14                                         |     fcn_00008c14 (r0, r1);
    0x00006122 str r0, [r7, 0x20]                                |     *((r7 + 0x20)) = r0;
    0x00006124 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006126 beq.w 0x7144                                      |         goto label_91;
                                                                 |     }
                                                                 | label_18:
    0x0000612a ldr r3, [sp, 0x38]                                |     r3 = var_38h;
    0x0000612c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000612e beq.w 0x62f0                                      |         goto label_92;
                                                                 |     }
    0x00006132 ldr.w r1, [pc, 0x7b8]                             |     
    0x00006136 mov r0, r3                                        |     r0 = r3;
    0x00006138 add r1, pc                                        |     r1 = 0xca2a;
    0x0000613a blx 0x1d4c                                        |     r0 = fstat64 ();
    0x0000613e mov r8, r0                                        |     r8 = r0;
    0x00006140 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006142 beq.w 0x756a                                      |         goto label_93;
                                                                 |     }
    0x00006146 ldr.w r1, [pc, 0x7a8]                             |     
    0x0000614a movs r0, 7                                        |     r0 = 7;
    0x0000614c ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x0000614e add.w r6, sp, 0x1300                              |     r6 += ptr;
    0x00006152 ldr.w sb, [pc, 0x7a0]                             |     
    0x00006156 adds r6, 0x1c                                     |     r6 += 0x1c;
    0x00006158 add r1, pc                                        |     r1 = 0xca4e;
    0x0000615a bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000615e ldr.w r3, [pc, 0x798]                             |     
    0x00006162 add sb, pc                                        |     sb = 0xca5c;
    0x00006164 str.w sl, [sp, 0x40]                              |     __asm ("str.w sl, [var_40h]");
    0x00006168 add r3, pc                                        |     r3 = 0xca66;
    0x0000616a str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x0000616c ldr.w r3, [pc, 0x78c]                             |     
    0x00006170 add r3, pc                                        |     r3 = 0xca70;
    0x00006172 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x00006174 movs r3, 0                                        |     r3 = 0;
    0x00006176 str r3, [sp, 0x1c]                                |     var_1ch = r3;
                                                                 |     do {
                                                                 | label_9:
    0x00006178 mov r2, r8                                        |         r2 = r8;
    0x0000617a mov.w r1, 0x2800                                  |         r1 = 0x2800;
    0x0000617e mov r0, r6                                        |         r0 = r6;
    0x00006180 blx 0x19ac                                        |         r0 = fcn_000019ac ();
    0x00006184 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00006186 beq 0x6206                                        |             goto label_94;
                                                                 |         }
                                                                 | label_10:
    0x00006188 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0000618a mov r1, sb                                        |         r1 = sb;
    0x0000618c mov r0, r6                                        |         r0 = r6;
    0x0000618e adds r3, 1                                        |         r3++;
    0x00006190 str r3, [sp, 0x1c]                                |         var_1ch = r3;
    0x00006192 blx 0x1cac                                        |         fcn_00001cac ();
    0x00006196 mov r1, sb                                        |         r1 = sb;
    0x00006198 mov r7, r0                                        |         r7 = r0;
    0x0000619a movs r0, 0                                        |         r0 = 0;
    0x0000619c blx 0x1cac                                        |         fcn_00001cac ();
    0x000061a0 mov r1, sb                                        |         r1 = sb;
    0x000061a2 mov sl, r0                                        |         sl = r0;
    0x000061a4 movs r0, 0                                        |         r0 = 0;
    0x000061a6 blx 0x1cac                                        |         fcn_00001cac ();
    0x000061aa cmp.w sl, 0                                       |         
    0x000061ae it ne                                             |         
                                                                 |         if (sl != 0) {
    0x000061b0 cmpne r7, 0                                       |             __asm ("cmpne r7, 0");
                                                                 |         }
    0x000061b2 ite eq                                            |         
                                                                 |         if (sl != 0) {
    0x000061b4 moveq r3, 1                                       |             r3 = 1;
                                                                 |         }
                                                                 |         if (sl == 0) {
    0x000061b6 movne r3, 0                                       |             r3 = 0;
                                                                 |         }
    0x000061b8 cmp r0, 0                                         |         
    0x000061ba it eq                                             |         
                                                                 |         if (r0 != 0) {
    0x000061bc orreq r3, r3, 1                                   |             r3 |= 1;
                                                                 |         }
    0x000061c0 cmp r3, 0                                         |         
    0x000061c2 bne 0x6178                                        |         
                                                                 |     } while (r3 != 0);
    0x000061c4 ldr r1, [sp, 0x2c]                                |     r1 = var_2ch;
    0x000061c6 blx 0x1924                                        |     r0 = fcn_00001924 ();
    0x000061ca cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000061cc bne 0x6178                                        |         goto label_9;
                                                                 |     }
    0x000061ce movs r2, 0x10                                     |     r2 = 0x10;
    0x000061d0 ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x000061d2 mov r0, r7                                        |     r0 = r7;
    0x000061d4 blx 0x1c44                                        |     write (r0, r1, r2);
    0x000061d8 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x000061da subw r3, r3, 0xa18                                |     __asm ("subw r3, r3, 0xa18");
    0x000061de ldr r3, [r3]                                      |     r3 = *(r3);
    0x000061e0 ldrb r2, [r3]                                     |     r2 = *(r3);
    0x000061e2 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x000061e4 bne.w 0x6404                                      |         goto label_95;
                                                                 |     }
    0x000061e8 strd r0, r1, [sp]                                 |     __asm ("strd r0, r1, [sp]");
    0x000061ec mov r1, sl                                        |     r1 = sl;
    0x000061ee ldr r0, [sp, 0x4c]                                |     r0 = var_4h;
    0x000061f0 str r2, [sp, 8]                                   |     var_8h_2 = r2;
    0x000061f2 bl 0x5330                                         |     fcn_00005330 (r0, r1, r2, r3);
    0x000061f6 mov r2, r8                                        |     r2 = r8;
    0x000061f8 mov.w r1, 0x2800                                  |     r1 = 0x2800;
    0x000061fc mov r0, r6                                        |     r0 = r6;
    0x000061fe blx 0x19ac                                        |     r0 = fcn_000019ac ();
    0x00006202 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00006204 bne 0x6188                                        |         goto label_10;
                                                                 |     }
                                                                 | label_94:
    0x00006206 ldr r0, [sp, 0x4c]                                |     r0 = var_4h;
    0x00006208 ldr.w sl, [sp, 0x40]                              |     sl = var_40h;
    0x0000620c bl 0x53c0                                         |     fcn_000053c0 (r0);
    0x00006210 ldr.w r1, [pc, 0x6ec]                             |     
    0x00006212 asrs r4, r5, 0x1b                                 |     r4 = r5 >> 0x1b;
    0x00006214 movs r0, 7                                        |     r0 = 7;
    0x00006216 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x00006218 add r1, pc                                        |     r1 = 0xcb1c;
    0x0000621a bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000621e mov r0, r8                                        |     r0 = r8;
    0x00006220 blx 0x1c84                                        |     fcn_00001c84 ();
                                                                 | label_16:
    0x00006224 ldr r3, [sp, 0x48]                                |     r3 = var_0h;
    0x00006226 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00006228 bne.w 0x6724                                      |         goto label_96;
                                                                 |     }
    0x0000622c ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x0000622e ldr r6, [r3]                                      |     r6 = *(r3);
    0x00006230 cmp r5, r6                                        |     
                                                                 |     if (r5 <= r6) {
    0x00006232 ble.w 0x65b2                                      |         goto label_43;
                                                                 |     }
    0x00006236 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00006238 add.w r4, r4, r6, lsl 2                           |     r4 += (r6 << 2);
    0x0000623c str.w sl, [sp, 0x2c]                              |     __asm ("str.w sl, [var_2ch]");
    0x00006240 str.w fp, [sp, 0x1c]                              |     __asm ("str.w fp, [var_1ch]");
    0x00006244 ldr.w sl, [sp, 0x18]                              |     sl = var_18h;
    0x00006248 subw sb, r3, 0xaa4                                |     __asm ("subw sb, r3, 0xaa4");
    0x0000624c ldr.w fp, [sp, 0x4c]                              |     fp = var_4h;
    0x00006250 subw r8, r3, 0xa18                                |     __asm ("subw r8, r3, 0xa18");
    0x00006252 cmp r0, 0x18                                      |     
    0x00006254 b 0x6280                                          |     
                                                                 |     while (r3 == 0x2f) {
    0x00006256 ldr.w r0, [sb, 4]                                 |         r0 = *((sb + 4));
    0x0000625a mov r2, sl                                        |         r2 = sl;
    0x0000625c mov r1, r7                                        |         r1 = r7;
    0x0000625e bl 0xc8c4                                         |         r0 = fcn_0000c8c4 (r0, r1, r2);
    0x00006260 smlawb r8, r1, r0, r2                             |         __asm ("smlawb r8, r1, r0, r2");
                                                                 |         if (r0 < 0x18) {
    0x00006264 blt.w 0x70b6                                      |             goto label_97;
                                                                 |         }
    0x00006268 ldr.w r1, [r8]                                    |         r1 = *(r8);
    0x0000626c mov r0, fp                                        |         r0 = fp;
    0x0000626e bl 0x4a80                                         |         fcn_00004a80 (r0, r1, r2, r3);
    0x00006270 invalid                                           |         
    0x00006272 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00006274 blt.w 0x70d4                                      |             goto label_98;
                                                                 |         }
    0x00006278 adds r6, 1                                        |         r6++;
    0x0000627a cmp r5, r6                                        |         
                                                                 |         if (r5 == r6) {
    0x0000627c beq.w 0x70fa                                      |             goto label_99;
                                                                 |         }
    0x00006280 ldr r7, [r4], 4                                   |         r7 = *(r4);
                                                                 |         r4 += 4;
    0x00006284 ldrb r3, [r7]                                     |         r3 = *(r7);
    0x00006286 cmp r3, 0x2f                                      |         
    0x00006288 beq 0x6256                                        |         
                                                                 |     }
    0x0000628a ldr.w r1, [pc, 0x678]                             |     
    0x0000628e mov r2, r7                                        |     r2 = r7;
    0x00006290 movs r0, 2                                        |     r0 = 2;
    0x00006292 ldr.w fp, [sp, 0x1c]                              |     fp = var_1ch;
    0x00006296 add r1, pc                                        |     r1 = 0xcba0;
    0x00006298 bl 0x85e4                                         |     fcn_000085e4 (r0);
                                                                 | label_32:
    0x0000629c ldr r0, [sp, 0x4c]                                |     r0 = var_4h;
    0x0000629e bl 0x49d8                                         |     fcn_000049d8 (r0);
    0x000062a2 b 0x5e46                                          |     goto label_11;
                                                                 | label_81:
    0x000062a4 ldr.w r1, [pc, 0x660]                             |     
    0x000062a8 ldr.w r0, [r4, r3, lsl 2]                         |     offset_0 = r3 << 2;
                                                                 |     r0 = *((r4 + offset_0));
    0x000062ac ldr r2, [sp, 0x28]                                |     r2 = var_28h;
    0x000062ae ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x000062b0 add r1, pc                                        |     r1 = 0xcbbc;
    0x000062b2 blx 0x1bfc                                        |     r0 = mkdir ();
    0x000062b6 cmp r0, 2                                         |     
                                                                 |     if (r0 != 2) {
    0x000062b8 bne.w 0x6b0a                                      |         goto label_100;
                                                                 |     }
    0x000062bc ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x000062be ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x000062c0 ldr r2, [r0]                                      |     r2 = *(r0);
    0x000062c2 subw r1, r3, 0x828                                |     __asm ("subw r1, r3, 0x828");
    0x000062c6 ldr.w r3, [r4, r2, lsl 2]                         |     offset_1 = r2 << 2;
                                                                 |     r3 = *((r4 + offset_1));
    0x000062ca adds r2, 1                                        |     r2++;
    0x000062cc str r2, [r0]                                      |     *(r0) = r2;
    0x000062ce str r3, [r1]                                      |     *(r1) = r3;
    0x000062d0 b 0x5fea                                          |     goto label_12;
                                                                 | label_84:
    0x000062d2 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x000062d4 str r3, [sp, 0x48]                                |     var_0h = r3;
    0x000062d6 b 0x60b2                                          |     goto label_13;
                                                                 | label_85:
    0x000062d8 movs r4, 0                                        |     r4 = 0;
                                                                 | label_35:
    0x000062da ldr r0, [sp, 0x4c]                                |     r0 = var_4h;
    0x000062dc bl 0x49d8                                         |     fcn_000049d8 (r0);
    0x000062e0 ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x000062e2 bl 0x46d8                                         |     fcn_000046d8 (r0);
    0x000062e6 b 0x5e4e                                          |     goto label_8;
                                                                 | label_83:
    0x000062e8 ldr.w r2, [pc, 0x620]                             |     
    0x000062ec add r2, pc                                        |     r2 = 0xcbfc;
    0x000062ee b 0x5ff4                                          |     goto label_14;
                                                                 | label_92:
    0x000062f0 ldr r6, [sp, 0x40]                                |     r6 = var_40h;
    0x000062f2 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x000062f4 beq.w 0x6fa6                                      |         goto label_101;
                                                                 |     }
    0x000062f8 ldr.w r2, [pc, 0x614]                             |     
    0x000062fc add.w r3, sp, 0x1300                              |     r3 += ptr;
    0x000062fe strh r0, [r3, r6]                                 |     *((r3 + r6)) = r0;
    0x00006300 adds r3, 0x10                                     |     r3 += 0x10;
    0x00006302 add r2, pc                                        |     r2 = 0xcc16;
    0x00006304 ldm r2, {r0, r1, r2}                              |     r0 = *(r2);
                                                                 |     r1 = *((r2 + 4));
                                                                 |     r2 = *((r2 + 8));
    0x00006306 stm r3!, {r0, r1}                                 |     *(r3!) = r0;
                                                                 |     *((r3! + 4)) = r1;
    0x00006308 mov r0, r6                                        |     r0 = r6;
    0x0000630a ldr.w r1, [pc, 0x608]                             |     
    0x0000630e strh r2, [r3], 2                                  |     *(r3) = r2;
                                                                 |     r3 += 2;
    0x00006312 lsrs r2, r2, 0x10                                 |     r2 >>= 0x10;
    0x00006314 add r1, pc                                        |     r1 = 0xcc2e;
    0x00006316 strb r2, [r3]                                     |     *(r3) = r2;
    0x00006318 blx 0x1d4c                                        |     r0 = fstat64 ();
    0x0000631c mov r8, r0                                        |     r8 = r0;
    0x0000631e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006320 beq.w 0x752c                                      |         goto label_102;
                                                                 |     }
    0x00006324 ldr.w r1, [pc, 0x5f0]                             |     
    0x00006328 movs r0, 7                                        |     r0 = 7;
    0x0000632a ldr r2, [sp, 0x40]                                |     r2 = var_40h;
    0x0000632c add.w r6, sp, 0x1300                              |     r6 += ptr;
    0x0000632e ldrsb r0, [r3, r2]                                |     r0 = *((r3 + r2));
    0x00006330 ldr r7, [sp, 0x38]                                |     r7 = var_38h;
    0x00006332 adds r6, 0x1c                                     |     r6 += 0x1c;
    0x00006334 add r1, pc                                        |     r1 = 0xcc50;
    0x00006336 vmov.i32 d8, 0                                    |     __asm ("vmov.i32 d8, 0");
    0x0000633a bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000633e ldr.w r3, [pc, 0x5dc]                             |     
    0x00006342 add r3, pc                                        |     r3 = 0xcc64;
    0x00006344 str r3, [sp, 0x38]                                |     var_38h = r3;
    0x00006346 add.w r3, sp, 0x1320                              |     r3 += arg_1320h;
    0x0000634a str r3, [sp, 0x2c]                                |     var_2ch = r3;
                                                                 |     do {
                                                                 | label_17:
    0x0000634c mov r2, r8                                        |         r2 = r8;
    0x0000634e mov.w r1, 0x2800                                  |         r1 = 0x2800;
    0x00006352 mov r0, r6                                        |         r0 = r6;
    0x00006354 blx 0x19ac                                        |         r0 = fcn_000019ac ();
    0x00006358 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0000635a beq 0x63d8                                        |             goto label_103;
                                                                 |         }
                                                                 | label_15:
    0x0000635c movs r1, 0x20                                     |         r1 = 0x20;
    0x0000635e mov r0, r6                                        |         r0 = r6;
    0x00006360 adds r7, 1                                        |         r7++;
    0x00006362 blx 0x1bbc                                        |         r0 = fcn_00001bbc ();
    0x00006366 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00006368 beq 0x63f4                                        |             goto label_104;
                                                                 |         }
    0x0000636a adds r0, 1                                        |         r0++;
    0x0000636c movs r1, 0x20                                     |         r1 = 0x20;
    0x0000636e blx 0x1bbc                                        |         r0 = fcn_00001bbc ();
    0x00006372 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00006374 beq 0x63f4                                        |             goto label_104;
                                                                 |         }
    0x00006376 ldr r3, [sp, 0x20]                                |         r3 = stream;
    0x00006378 ldrb r2, [r0, 1]                                  |         r2 = *((r0 + 1));
    0x0000637a subw r3, r3, 0xaa4                                |         __asm ("subw r3, r3, 0xaa4");
    0x0000637e ldr r3, [r3]                                      |         r3 = *(r3);
    0x00006380 add.w r3, r3, 0x1000                              |         r3 += 0x1000;
    0x00006384 ldrb r3, [r3, 8]                                  |         r3 = *((r3 + 8));
    0x00006386 cmp r2, r3                                        |         
    0x00006388 ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x0000638a ite ne                                            |         
                                                                 |         if (r2 == r3) {
    0x0000638c addne sb, r0, 1                                   |             sb = r0 + 1;
                                                                 |         }
                                                                 |         if (r2 == r3) {
    0x00006390 add.w sb, r0, 2                                   |             sb = r0 + 2;
                                                                 |         }
    0x00006394 movs r2, 0xa                                      |         r2 = 0xa;
    0x00006396 mov r0, sb                                        |         r0 = sb;
    0x00006398 sub.w r1, r3, 0x10                                |         r1 = r3 - 0x10;
    0x0000639c blx 0x1da4                                        |         fcn_00001da4 ();
    0x000063a0 str r0, [sp, 0x1c]                                |         var_1ch = r0;
    0x000063a2 cmp r0, 0                                         |         
    0x000063a4 bne 0x634c                                        |         
                                                                 |     } while (r0 != 0);
    0x000063a6 movs r1, 0xa                                      |     r1 = 0xa;
    0x000063a8 mov r0, sb                                        |     r0 = sb;
    0x000063aa blx 0x1bbc                                        |     r0 = fcn_00001bbc ();
                                                                 |     if (r0 != 0) {
    0x000063ae cbz r0, 0x63b4                                    |         
    0x000063b0 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x000063b2 strb r3, [r0]                                     |         *(r0) = r3;
                                                                 |     }
    0x000063b4 movs r3, 0                                        |     r3 = 0;
    0x000063b6 ldr r0, [sp, 0x4c]                                |     r0 = var_4h;
    0x000063b8 add.w r1, sb, 0xa                                 |     r1 = sb + 0xa;
    0x000063bc movs r2, 1                                        |     r2 = 1;
    0x000063be vstr d8, [sp]                                     |     __asm ("vstr d8, [sp]");
    0x000063c2 str r3, [sp, 8]                                   |     var_8h_2 = r3;
    0x000063c4 bl 0x5330                                         |     fcn_00005330 (r0, r1, r2, r3);
    0x000063c8 mov r2, r8                                        |     r2 = r8;
    0x000063ca mov.w r1, 0x2800                                  |     r1 = 0x2800;
    0x000063ce mov r0, r6                                        |     r0 = r6;
    0x000063d0 blx 0x19ac                                        |     r0 = fcn_000019ac ();
    0x000063d4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000063d6 bne 0x635c                                        |         goto label_15;
                                                                 |     }
                                                                 | label_103:
    0x000063d8 ldr r0, [sp, 0x4c]                                |     r0 = var_4h;
    0x000063da bl 0x53c0                                         |     fcn_000053c0 (r0);
    0x000063de ldr.w r1, [pc, 0x540]                             |     
    0x000063e2 movs r0, 7                                        |     r0 = 7;
    0x000063e4 ldr r2, [sp, 0x40]                                |     r2 = var_40h;
    0x000063e6 add r1, pc                                        |     r1 = 0xcd0c;
    0x000063e8 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x000063ec mov r0, r8                                        |     r0 = r8;
    0x000063ee blx 0x1c84                                        |     fcn_00001c84 ();
    0x000063f2 b 0x6224                                          |     goto label_16;
                                                                 | label_104:
    0x000063f4 ldr r2, [sp, 0x40]                                |     r2 = var_40h;
    0x000063f6 mov r3, r7                                        |     r3 = r7;
    0x000063f8 ldr r1, [sp, 0x38]                                |     r1 = var_38h;
    0x000063fa movs r0, 3                                        |     r0 = 3;
    0x000063fc str r6, [sp]                                      |     *(sp) = r6;
    0x000063fe bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006402 b 0x634c                                          |     goto label_17;
                                                                 | label_95:
    0x00006404 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00006406 movs r0, 3                                        |     r0 = 3;
    0x00006408 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x0000640a ldr r1, [sp, 0x44]                                |     r1 = var_44h;
    0x0000640c str r7, [sp]                                      |     *(sp) = r7;
    0x0000640e bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006412 b 0x6178                                          |     goto label_9;
                                                                 | label_89:
    0x00006414 blx 0x1be4                                        |     r0 = isoc99_sscanf ();
    0x00006418 ldr r7, [r0]                                      |     r7 = *(r0);
    0x0000641a rsbs r7, r7, 0                                    |     r7 -= ;
                                                                 | label_40:
    0x0000641c cmp r7, 0                                         |     
                                                                 |     if (r7 >= 0) {
    0x0000641e bge.w 0x612a                                      |         goto label_18;
                                                                 |     }
    0x00006422 rsbs r0, r7, 0                                    |     r0 = r7 - ;
    0x00006424 blx 0x1b18                                        |     system (r0);
    0x00006426 sbcs.w r8, r8, pc, lsr 31                         |     __asm ("sbcs.w r8, r8, pc, lsr 31");
    0x0000642a asrs r0, r7, 0x13                                 |     r0 = r7 >> 0x13;
    0x0000642c mov r2, r0                                        |     r2 = r0;
    0x0000642e movs r0, 2                                        |     r0 = 2;
    0x00006430 add r1, pc                                        |     r1 += pc;
    0x00006432 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006434 ldr.w r4, [r7, 0x630]                             |     r4 = *((r7 + 0x630));
    0x00006438 bl 0xa164                                         |     fcn_0000a164 (r0);
    0x0000643c b 0x5e46                                          |     goto label_11;
                                                                 | label_23:
    0x0000643e ldr r2, [sp, 0x20]                                |     r2 = stream;
    0x00006440 ldr.w sl, [sp, 0x38]                              |     sl = var_38h;
    0x00006444 ldr.w fp, [sp, 0x40]                              |     fp = var_40h;
    0x00006448 subw r3, r2, 0xaac                                |     __asm ("subw r3, r2, 0xaac");
    0x0000644c ldr r1, [r3]                                      |     r1 = *(r3);
    0x0000644e subw r3, r2, 0xaa8                                |     __asm ("subw r3, r2, 0xaa8");
    0x00006452 ldr.w sb, [r3]                                    |     sb = *(r3);
    0x00006456 str r1, [sp, 0x54]                                |     var_54h = r1;
    0x00006458 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0000645a beq.w 0x656e                                      |         goto label_22;
                                                                 |     }
    0x0000645e ldr.w r3, [pc, 0x4c8]                             |     
    0x00006462 ldr.w r6, [pc, 0x4c8]                             |     
    0x00006466 strd sl, fp, [sp, 0x64]                           |     __asm ("strd sl, fp, [var_0h_2x64]");
    0x0000646a add r3, pc                                        |     r3 = 0xcd98;
    0x0000646c ldr.w fp, [sp, 0x34]                              |     fp = var_34h;
    0x0000646e add sp, 0xd0                                      |     
    0x00006470 str r3, [sp, 0x58]                                |     var_58h = r3;
    0x00006472 add r6, pc                                        |     r6 = 0xcda4;
    0x00006474 ldr.w r3, [pc, 0x4b8]                             |     
    0x00006478 ldr r7, [sp, 0x28]                                |     r7 = var_28h;
    0x0000647a ldr r5, [sp, 0x18]                                |     r5 = var_18h;
    0x0000647c add r3, pc                                        |     
    0x0000647e str.w sb, [sp, 0x6c]                              |     __asm ("str.w sb, [var_6ch]");
    0x00006482 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00006484 ldr.w r3, [pc, 0x4ac]                             |     r3 = fcn.0000d5fc;
    0x00006488 add r3, pc                                        |     r3 = "built-in";
    0x0000648a str r3, [sp, 0x30]                                |     var_30h = r3;
    0x0000648c sub.w r3, sb, 4                                   |     r3 = sb - 4;
    0x0000648e lsls r4, r0, 0xc                                  |     r4 = r0 << 0xc;
    0x00006490 mov sb, r6                                        |     sb = r6;
    0x00006492 str r3, [sp, 0x40]                                |     var_40h = r3;
    0x00006494 movs r3, 0                                        |     r3 = 0;
    0x00006496 str r3, [sp, 0x38]                                |     var_38h = r3;
                                                                 | label_19:
    0x00006498 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x0000649a mov r8, r5                                        |     r8 = r5;
    0x0000649c ldr r1, [sp, 0x58]                                |     r1 = var_58h;
    0x0000649e ldr r2, [r3, 4]!                                  |     r2 = *((r3 += 4));
    0x000064a2 strd r3, r2, [sp, 0x40]                           |     __asm ("strd r3, r2, [sp, 0x40]");
    0x000064a6 movs r3, 0                                        |     r3 = 0;
    0x000064a8 str r3, [r7]                                      |     *(r7) = r3;
    0x000064aa add.w r3, r2, 0xc                                 |     r3 = r2 + 0xc;
    0x000064ac lsls r4, r1, 0xc                                  |     r4 = r1 << 0xc;
    0x000064ae mov r0, r3                                        |     r0 = r3;
    0x000064b0 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x000064b2 blx 0x1d4c                                        |     r0 = fstat64 ();
    0x000064b6 mov r6, r0                                        |     r6 = r0;
    0x000064b8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000064ba bne 0x653e                                        |         goto label_105;
                                                                 |     }
    0x000064bc b.w 0x7602                                        |     goto label_106;
                                                                 |     do {
    0x000064c0 ldrb r3, [r4]                                     |         r3 = *(r4);
    0x000064c2 cmp r3, 0x23                                      |         
    0x000064c4 it ne                                             |         
                                                                 |         if (r3 != 0x23) {
    0x000064c6 cmpne r3, 0                                       |             __asm ("cmpne r3, 0");
                                                                 |         }
                                                                 |         if (r3 != 0x23) {
    0x000064c8 beq 0x6538                                        |             
    0x000064ca mov r2, r8                                        |             r2 = r8;
    0x000064cc mov r1, sb                                        |             r1 = sb;
    0x000064ce blx 0x1aac                                        |             r0 = opendir ();
    0x000064d2 mov r5, r0                                        |             r5 = r0;
                                                                 |             if (r0 == 0) {
    0x000064d4 cbz r0, 0x6538                                    |                 goto label_28;
                                                                 |             }
    0x000064d6 ldr r1, [sp, 0x1c]                                |             r1 = var_1ch;
    0x000064d8 blx 0x1924                                        |             r0 = fcn_00001924 ();
    0x000064dc cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000064de beq.w 0x6876                                      |                 goto label_107;
                                                                 |             }
    0x000064e2 ldr r1, [sp, 0x30]                                |             r1 = var_30h;
    0x000064e4 mov r0, r5                                        |             r0 = r5;
    0x000064e6 blx 0x1924                                        |             r0 = fcn_00001924 ();
    0x000064ea mov sl, r0                                        |             sl = r0;
    0x000064ec cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000064ee beq.w 0x697c                                      |                 goto label_108;
                                                                 |             }
    0x000064f2 ldr.w r1, [pc, 0x444]                             |             
    0x000064f6 mov r0, r5                                        |             r0 = r5;
    0x000064f8 add r1, pc                                        |             r1 = 0xce36;
    0x000064fa blx 0x1924                                        |             r0 = fcn_00001924 ();
    0x000064fe mov sl, r0                                        |             sl = r0;
    0x00006500 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x00006502 beq.w 0x6a46                                      |                 goto label_109;
                                                                 |             }
    0x00006506 ldr.w r1, [pc, 0x434]                             |             
    0x0000650a mov r0, r5                                        |             r0 = r5;
    0x0000650c add r1, pc                                        |             r1 = 0xce4e;
    0x0000650e blx 0x1924                                        |             r0 = fcn_00001924 ();
                                                                 |             if (r0 != 0) {
    0x00006512 cbz r0, 0x6526                                    |                 
    0x00006514 ldr.w r1, [pc, 0x428]                             |                 
    0x00006518 mov r0, r5                                        |                 r0 = r5;
    0x0000651a add r1, pc                                        |                 r1 = 0xce5e;
    0x0000651c blx 0x1924                                        |                 r0 = fcn_00001924 ();
    0x00006520 cmp r0, 0                                         |                 
                                                                 |                 if (r0 != 0) {
    0x00006522 bne.w 0x6864                                      |                     goto label_29;
                                                                 |                 }
                                                                 |             }
    0x00006526 ldr.w r1, [pc, 0x41c]                             |             
    0x0000652a movs r0, 6                                        |             r0 = 6;
    0x0000652c str r5, [sp]                                      |             *(sp) = r5;
    0x0000652e ldr r3, [r7]                                      |             r3 = *(r7);
    0x00006530 ldr r2, [sp, 0x2c]                                |             r2 = var_2ch;
    0x00006532 add r1, pc                                        |             r1 = 0xce7c;
    0x00006534 bl 0x85e4                                         |             fcn_000085e4 (r0);
                                                                 |         }
                                                                 | label_28:
    0x00006538 mov r0, r4                                        |         r0 = r4;
    0x0000653a blx 0x19a0                                        |         fcn_000019a0 ();
                                                                 | label_105:
    0x0000653e mov r1, r7                                        |         r1 = r7;
    0x00006540 mov r0, r6                                        |         r0 = r6;
    0x00006542 bl 0x9550                                         |         r0 = fcn_00009550 (r0, r1);
    0x00006546 mov r4, r0                                        |         r4 = r0;
    0x00006548 cmp r0, 0                                         |         
    0x0000654a bne 0x64c0                                        |         
                                                                 |     } while (r0 != 0);
    0x0000654c mov r0, r6                                        |     r0 = r6;
    0x0000654e mov r5, r8                                        |     r5 = r8;
    0x00006550 blx 0x1c84                                        |     fcn_00001c84 ();
                                                                 | label_59:
    0x00006554 ldr r0, [sp, 0x44]                                |     r0 = var_44h;
    0x00006556 blx 0x19a0                                        |     fcn_000019a0 ();
    0x0000655a ldr r3, [sp, 0x38]                                |     r3 = var_38h;
    0x0000655c ldr r2, [sp, 0x54]                                |     r2 = var_54h;
    0x0000655e adds r3, 1                                        |     r3++;
    0x00006560 cmp r2, r3                                        |     
    0x00006562 str r3, [sp, 0x38]                                |     var_38h = r3;
                                                                 |     if (r2 != r3) {
    0x00006564 bne 0x6498                                        |         goto label_19;
                                                                 |     }
    0x00006566 ldrd sl, fp, [sp, 0x64]                           |     __asm ("ldrd sl, fp, [var_64h]");
    0x0000656a ldr.w sb, [sp, 0x6c]                              |     sb = var_6ch;
    0x0000656c str r0, [sp, 0x1b0]                               |     *((sp + 0x1b0)) = r0;
                                                                 | label_22:
    0x0000656e mov r0, sb                                        |     r0 = sb;
    0x00006570 blx 0x19a0                                        |     fcn_000019a0 ();
    0x00006572 ands.w fp, r6, r8, lsl 4                          |     
    0x00006574 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00006576 ldr.w r3, [r3, 0x7e8]                             |     r3 = *((r3 + 0x7e8));
    0x00006578 adds r7, 0xe8                                     |     r7 += 0xe8;
    0x0000657a cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000657c beq.w 0x7154                                      |         goto label_110;
                                                                 |     }
                                                                 | label_47:
    0x00006580 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00006582 ldr r5, [sp, 0x4c]                                |     r5 = var_4h;
    0x00006584 subw r4, r3, 0xaa4                                |     __asm ("subw r4, r3, 0xaa4");
    0x00006588 ldr r1, [r4]                                      |     r1 = *(r4);
    0x0000658a mov r0, r5                                        |     r0 = r5;
    0x0000658c adds r1, 4                                        |     r1 += 4;
    0x0000658e bl 0x5c4c                                         |     r0 = void (*0x5c4c)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3, r4, r5, r6);
    0x00006592 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00006594 blt.w 0x7164                                      |         goto label_111;
                                                                 |     }
    0x00006598 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0000659a add.w r3, r3, 0x1000                              |     r3 += 0x1000;
    0x0000659e ldr r4, [r3, 0x14]                                |     r4 = *((r3 + 0x14));
                                                                 |     if (r4 == 0) {
    0x000065a0 cbz r4, 0x65b2                                    |         goto label_43;
                                                                 |     }
                                                                 |     do {
    0x000065a2 add.w r1, r4, 8                                   |         r1 = r4 + 8;
    0x000065a6 mov r0, r5                                        |         r0 = r5;
    0x000065a8 bl 0x5c4c                                         |         void (*0x5c4c)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3, r4, r5, r6);
    0x000065ac ldr r4, [r4]                                      |         r4 = *(r4);
    0x000065ae cmp r4, 0                                         |         
    0x000065b0 bne 0x65a2                                        |         
                                                                 |     } while (r4 != 0);
                                                                 | label_43:
    0x000065b2 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x000065b4 ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x000065b6 subw r5, r3, 0xaa4                                |     __asm ("subw r5, r3, 0xaa4");
    0x000065ba ldr r0, [r5, 0x1c]                                |     r0 = *((r5 + 0x1c));
    0x000065bc mov r1, r7                                        |     r1 = r7;
    0x000065be bl 0x91d8                                         |     fcn_000091d8 (r0, r1);
    0x000065c2 ldr r4, [sp, 0x28]                                |     r4 = var_28h;
    0x000065c4 sub.w r6, r4, 0x1c                                |     r6 = r4 - 0x1c;
    0x000065c8 b 0x65dc                                          |     
                                                                 |     while (r0 != 0) {
    0x000065ca ldr r1, [r4]                                      |         r1 = *(r4);
    0x000065cc mov r0, r6                                        |         r0 = r6;
    0x000065ce ldr r3, [r5, 0xc]                                 |         r3 = *((r5 + 0xc));
    0x000065d0 strh r3, [r1, 0x38]                               |         *((r1 + 0x38)) = r3;
    0x000065d2 bl 0x8b98                                         |         r0 = fcn_00008b98 (r0, r1);
    0x000065d6 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x000065d8 blt.w 0x7106                                      |             goto label_112;
                                                                 |         }
    0x000065dc mov r2, r4                                        |         r2 = r4;
    0x000065de movs r1, 0                                        |         r1 = 0;
    0x000065e0 mov r0, r7                                        |         r0 = r7;
    0x000065e2 bl 0x91e8                                         |         r0 = fcn_000091e8 (r0, r1, r2, r3);
    0x000065e6 cmp r0, 0                                         |         
    0x000065e8 bne 0x65ca                                        |         
                                                                 |     }
    0x000065ea ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x000065ec mov r4, r0                                        |     r4 = r0;
    0x000065ee ldr r1, [pc, 0x358]                               |     
    0x000065f0 subw r3, r3, 0xaa4                                |     __asm ("subw r3, r3, 0xaa4");
    0x000065f4 ldr r0, [r3]                                      |     r0 = *(r3);
    0x000065f6 add r1, pc                                        |     r1 = 0xcf44;
    0x000065f8 adds r0, 4                                        |     r0 += 4;
    0x000065fa bl 0x5238                                         |     r0 = fcn_00005238 (r0, r1);
    0x000065fe mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 0) {
    0x00006600 cbz r0, 0x6652                                    |         goto label_113;
                                                                 |     }
    0x00006602 add.w r6, sp, 0x1300                              |     r6 += ptr;
    0x00006606 adds r6, 0x1c                                     |     r6 += 0x1c;
    0x00006608 mov r7, r6                                        |     r7 = r6;
                                                                 |     do {
                                                                 | label_20:
    0x0000660a mov r2, r5                                        |         r2 = r5;
    0x0000660c mov.w r1, 0x1000                                  |         r1 = 0x1000;
    0x00006610 mov r0, r6                                        |         r0 = r6;
    0x00006612 blx 0x19ac                                        |         r0 = fcn_000019ac ();
    0x00006616 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00006618 beq.w 0x7026                                      |             goto label_114;
                                                                 |         }
    0x0000661c mov r0, r6                                        |         r0 = r6;
    0x0000661e adds r4, 1                                        |         r4++;
    0x00006620 blx 0x1bb0                                        |         r0 = fcn_00001bb0 ();
    0x00006624 cmp r0, 0                                         |         
    0x00006626 beq 0x660a                                        |         
                                                                 |     } while (r0 == 0);
    0x00006628 add r0, r7                                        |     r0 += r7;
    0x0000662a ldrb r3, [r0, -0x1]                               |     r3 = *((r0 - 0x1));
    0x0000662e cmp r3, 0xa                                       |     
                                                                 |     if (r3 == 0xa) {
    0x00006630 beq 0x660a                                        |         goto label_20;
                                                                 |     }
    0x00006632 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00006634 movs r0, 3                                        |     r0 = 3;
    0x00006636 ldr r1, [pc, 0x314]                               |     
    0x00006638 str r4, [sp]                                      |     *(sp) = r4;
    0x0000663a subw r3, r3, 0xaa4                                |     __asm ("subw r3, r3, 0xaa4");
    0x0000663e ldr r2, [r3]                                      |     r2 = *(r3);
    0x00006640 add r1, pc                                        |     r1 = 0xcf92;
    0x00006642 ldr r3, [pc, 0x30c]                               |     
    0x00006644 adds r2, 4                                        |     r2 += 4;
    0x00006646 add r3, pc                                        |     r3 = 0xcf9c;
    0x00006648 bl 0x85e4                                         |     fcn_000085e4 (r0);
                                                                 | label_42:
    0x0000664c mov r0, r5                                        |     r0 = r5;
    0x0000664e blx 0x1c84                                        |     fcn_00001c84 ();
                                                                 | label_113:
    0x00006652 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00006654 movs r0, 7                                        |     r0 = 7;
    0x00006656 ldr r1, [pc, 0x2fc]                               |     
    0x00006658 subw r4, r3, 0xaa4                                |     __asm ("subw r4, r3, 0xaa4");
    0x0000665c ldr r2, [r4, 0xc]                                 |     r2 = *((r4 + 0xc));
    0x0000665e add r1, pc                                        |     r1 = 0xcfb8;
    0x00006660 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006664 ldrd r6, r2, [r4, 8]                              |     __asm ("ldrd r6, r2, [r4, 8]");
    0x00006668 add.w r8, r6, r2, lsl 2                           |     r8 = r6 + (r2 << 2);
    0x0000666c cmp r6, r8                                        |     
                                                                 |     if (r6 >= r8) {
    0x0000666e bhs.w 0x6b26                                      |         goto label_115;
                                                                 |     }
    0x00006672 ldr r3, [pc, 0x2e4]                               |     
    0x00006674 ldr r2, [sp, 0x20]                                |     r2 = stream;
    0x00006676 strd sl, fp, [sp, 0x28]                           |     __asm ("strd sl, fp, [var_0h_2x28]");
    0x0000667a add r3, pc                                        |     r3 = 0xcfd8;
    0x0000667c ldr r7, [sp, 0x4c]                                |     r7 = var_4h;
    0x0000667e ldr.w sb, [sp, 0x18]                              |     sb = var_18h;
    0x00006682 subw r5, r2, 0xa18                                |     __asm ("subw r5, r2, 0xa18");
    0x00006686 mov sl, r3                                        |     sl = r3;
    0x00006688 str r6, [sp, 0x1c]                                |     var_1ch = r6;
    0x0000668a b 0x66ca                                          |     
                                                                 |     while (r0 < 0) {
    0x0000668c adds r3, r0, 2                                    |         r3 = r0 + 2;
    0x0000668e ldr r6, [r4, 4]                                   |         r6 = *((r4 + 4));
                                                                 |         if (r3 == r0) {
    0x00006690 beq 0x6716                                        |             goto label_116;
                                                                 |         }
    0x00006692 rsbs r0, r0, 0                                    |         r0 -= ;
    0x00006694 blx 0x1b18                                        |         system (r0);
    0x00006698 mov r2, r6                                        |         r2 = r6;
    0x0000669a mov r3, r0                                        |         r3 = r0;
    0x0000669c mov r1, sl                                        |         r1 = sl;
    0x0000669e movs r0, 3                                        |         r0 = 3;
    0x000066a0 bl 0x85e4                                         |         fcn_000085e4 (r0);
                                                                 | label_21:
    0x000066a4 mov r1, r4                                        |         r1 = r4;
    0x000066a6 ldr r0, [r1], 0x10                                |         r0 = *(r1);
                                                                 |         r1 += 0x10;
    0x000066aa bl 0xdfec                                         |         fcn_0000dfec (r0, r1);
    0x000066ae mov r1, r4                                        |         r1 = r4;
    0x000066b0 ldr r0, [r1], 0x14                                |         r0 = *(r1);
                                                                 |         r1 += 0x14;
    0x000066b4 bl 0xe4cc                                         |         fcn_0000e4cc (r0, r1);
    0x000066b8 ldr r0, [r4]                                      |         r0 = *(r4);
    0x000066ba bl 0xcd5c                                         |         fcn_0000cd5c (r0);
    0x000066be movs r3, 0                                        |         r3 = 0;
    0x000066c0 str r3, [r4]                                      |         *(r4) = r3;
    0x000066c2 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x000066c4 cmp r8, r3                                        |         
                                                                 |         if (r8 < r3) {
    0x000066c6 bls.w 0x6b22                                      |             goto label_117;
                                                                 |         }
    0x000066ca ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x000066cc mov r1, sb                                        |         r1 = sb;
    0x000066ce ldr r4, [r3], 4                                   |         r4 = *(r3);
                                                                 |         r3 += 4;
    0x000066d2 str r3, [sp, 0x1c]                                |         var_1ch = r3;
    0x000066d4 movs r3, 0                                        |         r3 = 0;
    0x000066d6 ldr r0, [r4]                                      |         r0 = *(r4);
    0x000066d8 str r3, [r5]                                      |         *(r5) = r3;
    0x000066da bl 0xe378                                         |         r0 = fcn_0000e378 (r0, r1);
    0x000066de cmp r0, 0                                         |         
    0x000066e0 blt 0x668c                                        |         
                                                                 |     }
    0x000066e2 ldr r6, [r5]                                      |     r6 = *(r5);
                                                                 |     if (r6 == 0) {
                                                                 |         do {
    0x000066e4 cbz r6, 0x6712                                    |             goto label_118;
                                                                 |         }
    0x000066e6 mov r0, r6                                        |         r0 = r6;
    0x000066e8 bl 0xe33c                                         |         r0 = fcn_0000e33c (r0);
    0x000066ec mov fp, r0                                        |         
    0x000066ee mov r0, r6                                        |         r0 = r6;
    0x000066f0 bl 0xe348                                         |         fcn_0000e348 (r0);
    0x000066f4 movs r2, 0                                        |         r2 = 0;
    0x000066f6 strd r0, r1, [sp]                                 |         __asm ("strd r0, r1, [sp]");
    0x000066fa str r4, [sp, 8]                                   |         var_8h_2 = r4;
    0x000066fc mov r0, r7                                        |         r0 = r7;
    0x000066fe mov r1, fp                                        |         r1 = fp;
    0x00006700 bl 0x5330                                         |         fcn_00005330 (r0, r1, r2, r3);
    0x00006704 ldr r6, [r6]                                      |         r6 = *(r6);
    0x00006706 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00006708 cmp r6, r0                                        |         
    0x0000670a bne 0x66e4                                        |         
                                                                 |     } while (r6 != r0);
                                                                 |     do {
    0x0000670c bl 0xe35c                                         |         fcn_0000e35c (r0);
    0x00006710 b 0x66a4                                          |         goto label_21;
                                                                 | label_118:
    0x00006712 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00006714 b 0x670c                                          |         
                                                                 |     } while (1);
                                                                 | label_116:
    0x00006716 ldr r1, [pc, 0x244]                               |     
    0x00006718 mov r2, r6                                        |     r2 = r6;
    0x0000671a movs r0, 7                                        |     r0 = 7;
    0x0000671c add r1, pc                                        |     r1 = 0xd07e;
    0x0000671e bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006722 b 0x66a4                                          |     goto label_21;
                                                                 | label_96:
    0x00006724 ldr r1, [sp, 0x20]                                |     r1 = stream;
    0x00006726 movs r3, 0                                        |     r3 = 0;
    0x00006728 subw r2, r1, 0xaac                                |     __asm ("subw r2, r1, 0xaac");
    0x0000672c str r3, [r2]                                      |     *(r2) = r3;
    0x0000672e subw r2, r1, 0xaa8                                |     __asm ("subw r2, r1, 0xaa8");
    0x00006732 str r3, [r2]                                      |     *(r2) = r3;
    0x00006734 mov r3, fp                                        |     r3 = fp;
    0x00006736 cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x0000673a beq.w 0x711e                                      |         goto label_119;
                                                                 |     }
    0x0000673c strh r0, [r6, 0x26]                               |     *((r6 + 0x26)) = r0;
                                                                 | label_44:
    0x0000673e ldr.w sb, [r3]                                    |     sb = *(r3);
    0x00006742 cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x00006746 beq.w 0x656e                                      |         goto label_22;
                                                                 |     }
    0x0000674a ldr r2, [pc, 0x214]                               |     
    0x0000674c mov r5, sb                                        |     r5 = sb;
    0x0000674e ldr r7, [pc, 0x214]                               |     
    0x00006750 ldr r6, [pc, 0x214]                               |     
    0x00006752 add r2, pc                                        |     r2 = 0xd0b8;
    0x00006754 str.w sl, [sp, 0x38]                              |     __asm ("str.w sl, [var_38h]");
    0x00006758 str r2, [sp, 0x30]                                |     var_30h = r2;
    0x0000675a add r7, pc                                        |     r7 = 0xd0c4;
    0x0000675c ldr r2, [pc, 0x20c]                               |     
    0x0000675e add r6, pc                                        |     r6 = 0xd0ca;
    0x00006760 ldr.w sb, [sp, 0x28]                              |     sb = var_28h;
    0x00006764 mov sl, r3                                        |     sl = r3;
    0x00006766 str.w fp, [sp, 0x40]                              |     __asm ("str.w fp, [var_40h]");
    0x0000676a add r2, pc                                        |     r2 = 0xd0da;
    0x0000676c str r2, [sp, 0x2c]                                |     var_2ch = r2;
    0x0000676e b 0x678a                                          |     goto label_120;
                                                                 | label_24:
    0x00006770 mov r3, r0                                        |     r3 = r0;
    0x00006772 mov r2, r5                                        |     r2 = r5;
    0x00006774 sub.w r1, sb, 0x2c                                |     r1 = sb - 0x2c;
    0x00006778 sub.w r0, sb, 0x28                                |     r0 = sb - 0x28;
    0x0000677c bl 0x5458                                         |     fcn_00005458 (r0, r1, r2, r3, r4);
                                                                 | label_27:
    0x00006780 ldr r5, [sl, 4]!                                  |     r5 = *((sl += 4));
    0x00006784 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00006786 beq.w 0x643e                                      |         goto label_23;
                                                                 |     }
                                                                 | label_120:
    0x0000678a mov r1, sb                                        |     r1 = sb;
    0x0000678c mov r0, r5                                        |     r0 = r5;
    0x0000678e blx 0x1a28                                        |     r0 = realloc (r0, r1);
    0x00006792 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00006794 bne 0x684c                                        |         goto label_121;
                                                                 |     }
    0x00006796 ldr.w r2, [sb, 0x10]                              |     r2 = *((sb + 0x10));
    0x0000679a and r2, r2, 0xf000                                |     r2 &= 0xf000;
    0x0000679e cmp.w r2, 0x4000                                  |     
                                                                 |     if (r2 != 0x4000) {
    0x000067a2 bne 0x6770                                        |         goto label_24;
                                                                 |     }
    0x000067a4 mov r0, r5                                        |     r0 = r5;
    0x000067a6 blx 0x1ab8                                        |     r0 = fnmatch ();
    0x000067aa mov r8, r0                                        |     r8 = r0;
    0x000067ac cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000067ae beq.w 0x7516                                      |         goto label_122;
                                                                 |     }
    0x000067b2 blx 0x1cf4                                        |     r0 = fcn_00001cf4 ();
    0x000067b6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000067b8 beq 0x683a                                        |         goto label_123;
                                                                 |     }
    0x000067ba str.w sl, [sp, 0x1c]                              |     __asm ("str.w sl, [var_1ch]");
    0x000067be mov sl, r0                                        |     sl = r0;
    0x000067c0 ldr.w fp, [sp, 0x18]                              |     fp = var_18h;
    0x000067c4 b 0x6802                                          |     goto label_124;
                                                                 | label_25:
    0x000067c6 mov r0, r8                                        |     r0 = r8;
    0x000067c8 blx 0x1d40                                        |     renameat ();
    0x000067cc mov r3, sl                                        |     r3 = sl;
    0x000067ce mov r2, fp                                        |     r2 = fp;
    0x000067d0 mov r1, r4                                        |     r1 = r4;
    0x000067d2 blx 0x1adc                                        |     asprintf_chk ()
    0x000067d6 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x000067d8 mov r2, r5                                        |     r2 = r5;
    0x000067da subw r3, r3, 0xa18                                |     __asm ("subw r3, r3, 0xa18");
    0x000067de ldr r3, [r3, 0x10]                                |     r3 = *((r3 + 0x10));
    0x000067e0 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x000067e4 cmp.w r3, 0x4000                                  |     
    0x000067e8 mov r3, r4                                        |     r3 = r4;
                                                                 |     if (r3 == 0x4000) {
    0x000067ea beq 0x685a                                        |         goto label_125;
                                                                 |     }
    0x000067ec sub.w r1, sb, 0x2c                                |     r1 = sb - 0x2c;
    0x000067f0 sub.w r0, sb, 0x28                                |     r0 = sb - 0x28;
    0x000067f4 bl 0x5458                                         |     fcn_00005458 (r0, r1, r2, r3, r4);
                                                                 |     do {
                                                                 | label_26:
    0x000067f8 mov r0, r8                                        |         r0 = r8;
    0x000067fa blx 0x1cf4                                        |         r0 = fcn_00001cf4 ();
    0x000067fe mov sl, r0                                        |         sl = r0;
                                                                 |         if (r0 == 0) {
    0x00006800 cbz r0, 0x6836                                    |             goto label_126;
                                                                 |         }
                                                                 | label_124:
    0x00006802 add.w r4, sl, 0x13                                |         r4 = sl + 0x13;
    0x00006806 mov r0, r4                                        |         r0 = r4;
    0x00006808 blx 0x1bb0                                        |         fcn_00001bb0 ();
    0x0000680c ldrb.w r3, [sl, 0x13]                             |         r3 = *((sl + 0x13));
    0x00006810 cmp r3, 0x2e                                      |         
    0x00006812 beq 0x67f8                                        |         
                                                                 |     } while (r3 == 0x2e);
    0x00006814 cmp r0, 5                                         |     
                                                                 |     if (r0 < 5) {
    0x00006816 bls 0x6828                                        |         goto label_127;
                                                                 |     }
    0x00006818 subs r0, 5                                        |     r0 -= 5;
    0x0000681a mov r1, r6                                        |     r1 = r6;
    0x0000681c add r0, r4                                        |     r0 += r4;
    0x0000681e blx 0x1924                                        |     r0 = fcn_00001924 ();
    0x00006822 mov sl, r0                                        |     sl = r0;
    0x00006824 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006826 beq 0x67c6                                        |         goto label_25;
                                                                 |     }
                                                                 | label_127:
    0x00006828 mov r3, r4                                        |     r3 = r4;
    0x0000682a mov r2, r5                                        |     r2 = r5;
    0x0000682c mov r1, r7                                        |     r1 = r7;
    0x0000682e movs r0, 6                                        |     r0 = 6;
    0x00006830 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006834 b 0x67f8                                          |     goto label_26;
                                                                 | label_126:
    0x00006836 ldr.w sl, [sp, 0x1c]                              |     sl = var_1ch;
                                                                 | label_123:
    0x0000683a mov r0, r8                                        |     r0 = r8;
    0x0000683c blx 0x1dc8                                        |     fcn_00001dc8 ();
    0x00006840 ldr r1, [sp, 0x2c]                                |     r1 = var_2ch;
    0x00006842 mov r2, r5                                        |     r2 = r5;
    0x00006844 movs r0, 7                                        |     r0 = 7;
    0x00006846 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000684a b 0x6780                                          |     goto label_27;
                                                                 | label_121:
    0x0000684c ldr r1, [pc, 0x120]                               |     
    0x0000684e mov r2, r5                                        |     r2 = r5;
    0x00006850 movs r0, 7                                        |     r0 = 7;
    0x00006852 add r1, pc                                        |     r1 = 0xd1c6;
    0x00006854 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006856 mcr2 p7, 6, lr, c6, c2, 4                         |     __asm ("mcr2 p7, 6, lr, c6, c2, 4");
                                                                 | label_125:
    0x0000685a ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x0000685c movs r0, 3                                        |     r0 = 3;
    0x0000685e bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006862 b 0x67f8                                          |     goto label_26;
                                                                 | label_29:
    0x00006864 ldr r1, [pc, 0x10c]                               |     
    0x00006866 movs r0, 3                                        |     r0 = 3;
    0x00006868 str r5, [sp]                                      |     *(sp) = r5;
    0x0000686a ldr r3, [r7]                                      |     r3 = *(r7);
    0x0000686c ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x0000686e add r1, pc                                        |     r1 = 0xd1e6;
    0x00006870 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006874 b 0x6538                                          |     goto label_28;
                                                                 | label_107:
    0x00006876 ldr r5, [pc, 0x100]                               |     
    0x00006878 add r5, pc                                        |     r5 = 0xd1f6;
    0x0000687a b 0x6882                                          |     
                                                                 |     while (r0 != 0) {
    0x0000687c mov r0, fp                                        |         r0 = fp;
    0x0000687e bl 0x5590                                         |         fcn_00005590 (r0, r1);
    0x00006882 mov r1, r5                                        |         r1 = r5;
    0x00006884 mov r2, r8                                        |         r2 = r8;
    0x00006886 movs r0, 0                                        |         r0 = 0;
    0x00006888 blx 0x1aac                                        |         r0 = opendir ();
    0x0000688c mov r1, r0                                        |         r1 = r0;
    0x0000688e cmp r0, 0                                         |         
    0x00006890 bne 0x687c                                        |         
                                                                 |     }
    0x00006892 b 0x6538                                          |     goto label_28;
                                                                 | label_108:
    0x0000697c mov r2, r8                                        |     r2 = r8;
    0x0000697e mov r1, sb                                        |     r1 = sb;
    0x00006980 blx 0x1aac                                        |     opendir ();
    0x00006984 mov r2, r8                                        |     r2 = r8;
    0x00006986 mov r1, sb                                        |     r1 = sb;
    0x00006988 str r0, [sp, 0x48]                                |     var_0h = r0;
    0x0000698a mov r0, sl                                        |     r0 = sl;
    0x0000698c blx 0x1aac                                        |     opendir ();
    0x00006990 mov r2, r8                                        |     r2 = r8;
    0x00006992 str r0, [sp, 0x50]                                |     var_8h = r0;
    0x00006994 mov r1, sb                                        |     r1 = sb;
    0x00006996 mov r0, sl                                        |     r0 = sl;
    0x00006998 blx 0x1aac                                        |     opendir ();
    0x0000699c ldr r2, [sp, 0x48]                                |     r2 = var_0h;
    0x0000699e mov sl, r0                                        |     sl = r0;
    0x000069a0 ldr r3, [sp, 0x50]                                |     r3 = var_8h;
    0x000069a2 cmp r3, 0                                         |     
    0x000069a4 it ne                                             |     
                                                                 |     if (r3 != 0) {
    0x000069a6 cmpne r2, 0                                       |         __asm ("cmpne r2, 0");
                                                                 |     }
    0x000069a8 ite eq                                            |     
                                                                 |     if (r3 != 0) {
    0x000069aa moveq r2, 1                                       |         r2 = 1;
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x000069ac movne r2, 0                                       |         r2 = 0;
                                                                 |     }
    0x000069ae cmp r0, 0                                         |     
    0x000069b0 it eq                                             |     
                                                                 |     if (r0 != 0) {
    0x000069b2 orreq r2, r2, 1                                   |         r2 |= 1;
                                                                 |     }
    0x000069b6 str r2, [sp, 0x50]                                |     var_8h = r2;
    0x000069b8 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x000069ba bne.w 0x6864                                      |         goto label_29;
                                                                 |     }
    0x000069be mov r1, r3                                        |     r1 = r3;
    0x000069c0 mov r0, fp                                        |     r0 = fp;
    0x000069c2 str r3, [sp, 0x5c]                                |     var_14h = r3;
    0x000069c4 bl 0x51c0                                         |     fcn_000051c0 (r0, r1);
    0x000069c8 ldr r3, [sp, 0x5c]                                |     r3 = var_14h;
    0x000069ca cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000069cc beq 0x6ac4                                        |         goto label_128;
                                                                 |     }
    0x000069ce ldr r0, [sp, 0x48]                                |     r0 = var_0h;
    0x000069d0 blx 0x1bb0                                        |     r0 = fcn_00001bb0 ();
    0x000069d4 mov r5, r0                                        |     r5 = r0;
    0x000069d6 str r0, [sp, 0x5c]                                |     var_14h = r0;
    0x000069d8 mov r0, sl                                        |     r0 = sl;
    0x000069da blx 0x1bb0                                        |     r0 = fcn_00001bb0 ();
    0x000069de mov r2, r0                                        |     r2 = r0;
    0x000069e0 adds r0, r5, r0                                   |     r0 = r5 + r0;
    0x000069e2 adds r0, 0xa                                      |     r0 += 0xa;
    0x000069e4 str r2, [sp, 0x60]                                |     var_60h = r2;
    0x000069e6 blx 0x1b0c                                        |     strerror (r0);
    0x000069ea ldr r2, [sp, 0x60]                                |     r2 = var_60h;
    0x000069ec mov r5, r0                                        |     r5 = r0;
    0x000069ee cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000069f0 beq.w 0x7612                                      |         goto label_129;
                                                                 |     }
    0x000069f2 strh r7, [r1, 0x30]                               |     *((r1 + 0x30)) = r7;
    0x000069f4 mov r1, sl                                        |     r1 = sl;
    0x000069f6 add.w sl, r0, 8                                   |     sl = r0 + 8;
    0x000069fa mov r0, sl                                        |     r0 = sl;
    0x000069fc str r2, [sp, 0x60]                                |     var_60h = r2;
    0x000069fe blx 0x19c8                                        |     mmap64 ();
    0x00006a02 ldr r2, [sp, 0x60]                                |     r2 = var_60h;
    0x00006a04 movs r0, 0x2f                                     |     r0 = 0x2f;
    0x00006a06 ldr r1, [sp, 0x48]                                |     r1 = var_0h;
    0x00006a08 adds r3, r2, 1                                    |     r3 = r2 + 1;
    0x00006a0a add r2, r5                                        |     r2 += r5;
    0x00006a0c strb r0, [r2, 8]                                  |     *((r2 + 8)) = r0;
    0x00006a0e add.w r0, sl, r3                                  |     r0 = sl + r3;
    0x00006a12 ldr r2, [sp, 0x5c]                                |     r2 = var_14h;
    0x00006a14 str r3, [sp, 0x48]                                |     var_0h = r3;
    0x00006a16 blx 0x19c8                                        |     mmap64 ();
    0x00006a1a ldr r3, [sp, 0x48]                                |     r3 = var_0h;
    0x00006a1c ldr r2, [sp, 0x5c]                                |     r2 = var_14h;
    0x00006a1e ldr r0, [sp, 0x50]                                |     r0 = var_8h;
    0x00006a20 add r2, r3                                        |     r2 += r3;
    0x00006a22 mov r3, r2                                        |     r3 = r2;
    0x00006a24 mov r2, sl                                        |     r2 = sl;
    0x00006a26 adds r1, r5, r3                                   |     r1 = r5 + r3;
    0x00006a28 strb r0, [r1, 8]                                  |     *((r1 + 8)) = r0;
    0x00006a2a movs r0, 7                                        |     r0 = 7;
    0x00006a2c ldr.w r1, [pc, 0xc20]                             |     
    0x00006a30 str r3, [r5, 4]                                   |     *((r5 + 4)) = r3;
    0x00006a32 add r1, pc                                        |     r1 = 0xe086;
    0x00006a34 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006a38 ldr r2, [sp, 0x20]                                |     r2 = stream;
    0x00006a3a ldr.w r3, [r2, 0x7e4]                             |     r3 = *((r2 + 0x7e4));
    0x00006a3e str.w r5, [r2, 0x7e4]                             |     __asm ("str.w r5, [r2, 0x7e4]");
    0x00006a42 str r3, [r5]                                      |     *(r5) = r3;
    0x00006a44 b 0x6538                                          |     goto label_28;
                                                                 | label_109:
    0x00006a46 mov r2, r8                                        |     r2 = r8;
    0x00006a48 mov r1, sb                                        |     r1 = sb;
    0x00006a4a blx 0x1aac                                        |     r0 = opendir ();
    0x00006a4e mov r3, r0                                        |     r3 = r0;
    0x00006a50 mov r2, r8                                        |     r2 = r8;
    0x00006a52 mov r0, sl                                        |     r0 = sl;
    0x00006a54 mov r1, sb                                        |     r1 = sb;
    0x00006a56 mov sl, r3                                        |     sl = r3;
    0x00006a58 blx 0x1aac                                        |     r0 = opendir ();
    0x00006a5c cmp r0, 0                                         |     
    0x00006a5e it ne                                             |     
                                                                 |     if (r0 != 0) {
    0x00006a60 cmpne sl, 0                                       |         __asm ("cmpne sl, 0");
                                                                 |     }
    0x00006a64 str r0, [sp, 0x48]                                |     var_0h = r0;
                                                                 |     if (r0 == 0) {
    0x00006a66 beq.w 0x6864                                      |         goto label_29;
                                                                 |     }
    0x00006a6a mov r1, sl                                        |     r1 = sl;
    0x00006a6c mov r0, fp                                        |     r0 = fp;
    0x00006a6e bl 0x51c0                                         |     fcn_000051c0 (r0, r1);
    0x00006a72 ldr r3, [sp, 0x48]                                |     r3 = var_0h;
    0x00006a74 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006a76 beq.w 0x6fd8                                      |         goto label_130;
                                                                 |     }
    0x00006a7a mov r0, r3                                        |     r0 = r3;
    0x00006a7c str r3, [sp, 0x48]                                |     var_0h = r3;
    0x00006a7e blx 0x1bb0                                        |     r0 = fcn_00001bb0 ();
    0x00006a82 mov sl, r0                                        |     sl = r0;
    0x00006a84 adds r0, 9                                        |     r0 += 9;
    0x00006a86 blx 0x1b0c                                        |     strerror (r0);
    0x00006a8a ldr r3, [sp, 0x48]                                |     r3 = var_0h;
    0x00006a8c mov r5, r0                                        |     r5 = r0;
    0x00006a8e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006a90 beq.w 0x755c                                      |         goto label_131;
                                                                 |     }
    0x00006a94 mov r1, r3                                        |     r1 = r3;
    0x00006a96 add.w r3, r0, 8                                   |     r3 = r0 + 8;
    0x00006a9a mov r0, r3                                        |     r0 = r3;
    0x00006a9c add.w r2, sl, 1                                   |     r2 = sl + 1;
    0x00006aa0 blx 0x19c8                                        |     mmap64 ();
    0x00006aa4 ldr.w r1, [pc, 0xbac]                             |     
    0x00006aa8 mov r2, r0                                        |     r2 = r0;
    0x00006aaa str.w sl, [r5, 4]                                 |     __asm ("str.w sl, [r5, 4]");
    0x00006aae movs r0, 7                                        |     r0 = 7;
    0x00006ab0 add r1, pc                                        |     r1 = 0xe108;
    0x00006ab2 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006ab6 ldr r2, [sp, 0x20]                                |     r2 = stream;
    0x00006ab8 ldr.w r3, [r2, 0x7ec]                             |     r3 = *((r2 + 0x7ec));
    0x00006abc str.w r5, [r2, 0x7ec]                             |     __asm ("str.w r5, [r2, 0x7ec]");
    0x00006ac0 str r3, [r5]                                      |     *(r5) = r3;
    0x00006ac2 b 0x6538                                          |     goto label_28;
                                                                 | label_128:
    0x00006ac4 ldr.w r1, [pc, 0xb90]                             |     
    0x00006ac8 movs r0, 6                                        |     r0 = 6;
    0x00006aca str r3, [sp]                                      |     *(sp) = r3;
    0x00006acc ldr r3, [r7]                                      |     r3 = *(r7);
    0x00006ace ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00006ad0 add r1, pc                                        |     r1 = 0xe12c;
    0x00006ad2 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006ad6 b 0x6538                                          |     goto label_28;
                                                                 | label_88:
    0x00006ad8 ldr.w r1, [pc, 0xb80]                             |     
    0x00006adc mov r2, r7                                        |     r2 = r7;
    0x00006ade movs r0, 2                                        |     r0 = 2;
    0x00006ae0 add r1, pc                                        |     r1 = 0xe140;
    0x00006ae2 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006ae6 b.w 0x5e46                                        |     goto label_11;
                                                                 | label_87:
    0x00006aea blx 0x1be4                                        |     isoc99_sscanf ();
    0x00006aee ldr.w r1, [pc, 0xb70]                             |     
    0x00006af2 mov r2, r6                                        |     r2 = r6;
    0x00006af4 ldr r3, [r0]                                      |     r3 = *(r0);
    0x00006af6 movs r0, 3                                        |     r0 = 3;
    0x00006af8 add r1, pc                                        |     r1 = 0xe15e;
    0x00006afa rsbs r6, r3, 0                                    |     r6 = r3 - ;
    0x00006afc bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006b00 mov r0, r7                                        |     r0 = r7;
    0x00006b02 blx 0x1dc8                                        |     fcn_00001dc8 ();
    0x00006b06 b.w 0x60ac                                        |     goto label_30;
                                                                 | label_100:
    0x00006b0a ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x00006b0c movs r0, 3                                        |     r0 = 3;
    0x00006b0e ldr.w r1, [pc, 0xb54]                             |     
    0x00006b12 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00006b14 add r1, pc                                        |     r1 = 0xe17e;
    0x00006b16 ldr.w r2, [r4, r3, lsl 2]                         |     offset_2 = r3 << 2;
                                                                 |     r2 = *((r4 + offset_2));
    0x00006b1a bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006b1e b.w 0x5e46                                        |     goto label_11;
                                                                 |     if (r2 == 0) {
    0x00006b20 cbnz r2, 0x6b48                                   |         
                                                                 | label_117:
    0x00006b22 ldrd sl, fp, [sp, 0x28]                           |         __asm ("ldrd sl, fp, [var_28h]");
                                                                 | label_115:
    0x00006b26 ldr r3, [sp, 0x20]                                |         r3 = stream;
    0x00006b28 subw r4, r3, 0xaa4                                |         __asm ("subw r4, r3, 0xaa4");
    0x00006b2c ldr r0, [r4, 0x20]                                |         r0 = *((r4 + 0x20));
    0x00006b2e ldr r5, [r4, 0xc]                                 |         r5 = *((r4 + 0xc));
    0x00006b30 bl 0x91d4                                         |         fcn_000091d4 (r0);
    0x00006b34 ldr.w r1, [pc, 0xb30]                             |         
    0x00006b38 mov r3, r0                                        |         r3 = r0;
    0x00006b3a mov r2, r5                                        |         r2 = r5;
    0x00006b3c movs r0, 7                                        |         r0 = 7;
    0x00006b3e add r1, pc                                        |         r1 = 0xe1aa;
    0x00006b40 bl 0x85e4                                         |         fcn_000085e4 (r0);
    0x00006b44 ldr r0, [r4, 0x20]                                |         r0 = *((r4 + 0x20));
    0x00006b46 ldr r5, [r4, 0xc]                                 |         r5 = *((r4 + 0xc));
                                                                 |     }
    0x00006b48 bl 0x91d4                                         |     fcn_000091d4 (r0);
    0x00006b4c ldr.w r1, [pc, 0xb1c]                             |     
    0x00006b50 mov r3, r0                                        |     r3 = r0;
    0x00006b52 mov r2, r5                                        |     r2 = r5;
    0x00006b54 movs r0, 7                                        |     r0 = 7;
    0x00006b56 add r1, pc                                        |     r1 = 0xe1c6;
    0x00006b58 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006b5c ldrd r3, r2, [r4, 8]                              |     __asm ("ldrd r3, r2, [r4, 8]");
    0x00006b60 add.w r2, r3, r2, lsl 2                           |     r2 = r3 + (r2 << 2);
    0x00006b64 cmp r3, r2                                        |     
    0x00006b66 str r2, [sp, 0x44]                                |     var_44h = r2;
                                                                 |     if (r3 >= r2) {
    0x00006b68 bhs.w 0x6c94                                      |         goto label_132;
                                                                 |     }
    0x00006b6c str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00006b6e ldr.w r3, [pc, 0xb00]                             |     
    0x00006b72 ldr.w r2, [pc, 0xb00]                             |     
    0x00006b76 strd sl, fp, [sp, 0x50]                           |     __asm ("strd sl, fp, [var_0h_2x50]");
    0x00006b7a add r3, pc                                        |     r3 = 0xe1f0;
    0x00006b7c str r3, [sp, 0x48]                                |     var_0h = r3;
    0x00006b7e add r2, pc                                        |     r2 = 0xe1f8;
    0x00006b80 ldr.w r3, [pc, 0xaf4]                             |     
    0x00006b84 str r2, [sp, 0x30]                                |     var_30h = r2;
    0x00006b86 ldr.w r2, [pc, 0xaf4]                             |     
    0x00006b8a add r3, pc                                        |     r3 = 0xe206;
    0x00006b8c mov sb, r3                                        |     sb = r3;
    0x00006b8e add r2, pc                                        |     r2 = 0xe210;
    0x00006b90 str r2, [sp, 0x38]                                |     var_38h = r2;
                                                                 | label_31:
    0x00006b92 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00006b94 ldr r8, [r3], 4                                   |     r8 = *(r3);
                                                                 |     r3 += 4;
    0x00006b98 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00006b9a ldr.w r3, [r8, 0x14]                              |     r3 = *((r8 + 0x14));
    0x00006b9e ldr.w r2, [r8, 4]                                 |     r2 = *((r8 + 4));
    0x00006ba2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00006ba4 beq.w 0x6fca                                      |         goto label_133;
                                                                 |     }
    0x00006ba8 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00006baa movs r0, 7                                        |     r0 = 7;
    0x00006bac ldr r1, [sp, 0x48]                                |     r1 = var_0h;
    0x00006bae subw r3, r3, 0xaa4                                |     __asm ("subw r3, r3, 0xaa4");
    0x00006bb2 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00006bb4 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00006bb6 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006bba ldr.w r5, [r8, 0x14]                              |     r5 = *((r8 + 0x14));
                                                                 |     do {
    0x00006bbe cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x00006bc0 beq 0x6c88                                        |             goto label_41;
                                                                 |         }
    0x00006bc2 mov r0, r5                                        |         r0 = r5;
    0x00006bc4 bl 0xe484                                         |         r0 = fcn_0000e484 (r0);
    0x00006bc8 mov r6, r0                                        |         r6 = r0;
    0x00006bca mov r0, r5                                        |         r0 = r5;
    0x00006bcc bl 0xe490                                         |         r0 = fcn_0000e490 (r0);
    0x00006bd0 mov sl, r0                                        |         sl = r0;
    0x00006bd2 mov r0, r5                                        |         r0 = r5;
    0x00006bd4 str r1, [sp, 0x1c]                                |         var_1ch = r1;
    0x00006bd6 bl 0xe4a4                                         |         fcn_0000e4a4 (r0);
    0x00006bda ldr r3, [sp, 0x20]                                |         r3 = stream;
    0x00006bdc mov r7, r0                                        |         r7 = r0;
    0x00006bde ldrb r2, [r6]                                     |         r2 = *(r6);
    0x00006be0 subw r1, r3, 0xaa4                                |         __asm ("subw r1, r3, 0xaa4");
    0x00006be4 ldr r3, [r1]                                      |         r3 = *(r1);
    0x00006be6 cmp r2, 0x2e                                      |         
    0x00006be8 it eq                                             |         
                                                                 |         if (r2 != 0x2e) {
    0x00006bea ldrbeq r2, [r6, 1]                                |             r2 = *((r6 + 1));
                                                                 |         }
    0x00006bec ldr r0, [r1, 0x20]                                |         r0 = *((r1 + 0x20));
    0x00006bee it eq                                             |         
                                                                 |         if (r2 != 0x2e) {
    0x00006bf0 addeq r1, r6, 1                                   |             r1 = r6 + 1;
                                                                 |         }
    0x00006bf2 add.w r3, r3, 0x1000                              |         r3 += 0x1000;
    0x00006bf6 it ne                                             |         
                                                                 |         if (r2 == 0x2e) {
    0x00006bf8 movne r1, r6                                      |             r1 = r6;
                                                                 |         }
    0x00006bfa ldrb r3, [r3, 8]                                  |         r3 = *((r3 + 8));
    0x00006bfc cmp r3, r2                                        |         
    0x00006bfe it eq                                             |         
                                                                 |         if (r3 != r2) {
    0x00006c00 addeq r1, 1                                       |             r1++;
                                                                 |         }
    0x00006c02 bl 0x8f6c                                         |         r0 = fcn_00008f6c (r0, r1);
    0x00006c06 mov r4, r0                                        |         r4 = r0;
    0x00006c08 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00006c0a beq.w 0x6f40                                      |             goto label_134;
                                                                 |         }
    0x00006c0e ldr r3, [sp, 0x28]                                |         r3 = var_28h;
    0x00006c10 add.w fp, r0, 0x10                                |         
    0x00006c14 ldr.w r2, [r8, 4]                                 |         r2 = *((r8 + 4));
    0x00006c16 movs r0, 4                                        |         r0 = 4;
    0x00006c18 add.w r3, r3, 0x1000                              |         r3 += 0x1000;
    0x00006c1c ldrb r1, [r3, 9]                                  |         r1 = *((r3 + 9));
                                                                 |         if (r1 != 0) {
    0x00006c1e cbz r1, 0x6c42                                    |             
    0x00006c20 ldr r1, [sp, 0x1c]                                |             r1 = var_1ch;
    0x00006c22 ldrd ip, r0, [r0, 8]                              |             __asm ("ldrd ip, r0, [r0, 8]");
    0x00006c26 cmp r1, r0                                        |             
    0x00006c28 it eq                                             |             
                                                                 |             if (r1 == r0) {
    0x00006c2a cmpeq sl, ip                                      |                 __asm ("cmpeq sl, ip");
                                                                 |             }
    0x00006c2c ite ne                                            |             
                                                                 |             if (r1 == r0) {
    0x00006c2e movne r1, 1                                       |                 r1 = 1;
                                                                 |             }
                                                                 |             if (r1 != r0) {
    0x00006c30 moveq r1, 0                                       |                 r1 = 0;
                                                                 |             }
    0x00006c32 cmp r7, 0x57                                      |             
    0x00006c34 ite eq                                            |             
                                                                 |             if (r7 != 0x57) {
    0x00006c36 moveq r1, 0                                       |                 r1 = 0;
                                                                 |             }
                                                                 |             if (r7 == 0x57) {
    0x00006c38 andne r1, r1, 1                                   |                 r1 &= 1;
                                                                 |             }
    0x00006c3c cmp r1, 0                                         |             
                                                                 |             if (r1 != 0) {
    0x00006c3e bne.w 0x6f16                                      |                 goto label_135;
                                                                 |             }
                                                                 |         }
                                                                 | label_37:
    0x00006c42 ldr r3, [r4]                                      |         r3 = *(r4);
    0x00006c44 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00006c46 beq.w 0x6f12                                      |             goto label_136;
                                                                 |         }
    0x00006c4a ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
                                                                 | label_36:
    0x00006c4c mov r1, sb                                        |         r1 = sb;
    0x00006c4e str r3, [sp]                                      |         *(sp) = r3;
    0x00006c50 movs r0, 7                                        |         r0 = 7;
    0x00006c52 mov r3, fp                                        |         r3 = fp;
    0x00006c54 bl 0x85e4                                         |         fcn_000085e4 (r0);
    0x00006c58 ldr r1, [r4]                                      |         r1 = *(r4);
                                                                 |         if (r1 != 0) {
    0x00006c5a cbz r1, 0x6c7e                                    |             
    0x00006c5c add.w r0, r8, 0x18                                |             r0 = r8 + 0x18;
    0x00006c60 bl 0x8bd0                                         |             fcn_00008bd0 (r0, r1, r2);
    0x00006c62 vtbl.8 d2, {d6}, d0                               |             __asm ("vtbl.8 d2, {d6}, d0");
                                                                 |             if (r1 < 0) {
    0x00006c66 blt 0x6c7e                                        |                 goto label_38;
                                                                 |             }
    0x00006c68 ldr r3, [r4]                                      |             r3 = *(r4);
    0x00006c6a mov r2, fp                                        |             r2 = fp;
    0x00006c6c ldr.w r1, [r8, 4]                                 |             r1 = *((r8 + 4));
    0x00006c70 ldr r0, [sp, 0x30]                                |             r0 = var_30h;
    0x00006c72 ldrh r4, [r3, 0x3a]                               |             r4 = *((r3 + 0x3a));
    0x00006c74 adds r4, 1                                        |             r4++;
    0x00006c76 strh r4, [r3, 0x3a]                               |             *((r3 + 0x3a)) = r4;
    0x00006c78 ldr r3, [r3, 4]                                   |             r3 = *((r3 + 4));
    0x00006c7a bl 0x52b0                                         |             fcn_000052b0 ();
                                                                 |         }
                                                                 | label_38:
    0x00006c7e ldr r5, [r5]                                      |         r5 = *(r5);
    0x00006c80 ldr.w r3, [r8, 0x14]                              |         r3 = *((r8 + 0x14));
    0x00006c84 cmp r5, r3                                        |         
    0x00006c86 bne 0x6bbe                                        |         
                                                                 |     } while (r5 != r3);
                                                                 | label_41:
    0x00006c88 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00006c8a ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00006c8c cmp r3, r2                                        |     
                                                                 |     if (r3 > r2) {
    0x00006c8e bhi 0x6b92                                        |         goto label_31;
                                                                 |     }
    0x00006c90 ldrd sl, fp, [sp, 0x50]                           |     __asm ("ldrd sl, fp, [var_8h]");
                                                                 | label_132:
    0x00006c94 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00006c96 subw r4, r3, 0xaa4                                |     __asm ("subw r4, r3, 0xaa4");
    0x00006c9a ldr r0, [r4, 0x20]                                |     r0 = *((r4 + 0x20));
    0x00006c9c ldr r5, [r4, 0xc]                                 |     r5 = *((r4 + 0xc));
    0x00006c9e bl 0x91d4                                         |     fcn_000091d4 (r0);
    0x00006ca2 ldr.w r1, [pc, 0x9dc]                             |     
    0x00006ca6 mov r3, r0                                        |     r3 = r0;
    0x00006ca8 mov r2, r5                                        |     r2 = r5;
    0x00006caa movs r0, 7                                        |     r0 = 7;
    0x00006cac add r1, pc                                        |     r1 = 0xe332;
    0x00006cae bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006cb0 ldc2 p8, c6, [sb], {0xe6}                         |     __asm ("ldc2 p8, c6, [sb], {0xe6}");
    0x00006cb4 uxth r3, r6                                       |     r3 = (int16_t) r6;
    0x00006cb6 lsls r5, r3, 1                                    |     r5 = r3 << 1;
    0x00006cb8 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00006cba adds r0, r5, r3                                   |     r0 = r5 + r3;
    0x00006cbc lsls r0, r0, 1                                    |     r0 <<= 1;
    0x00006cbe blx 0x1b0c                                        |     r0 = strerror (r0);
    0x00006cc2 mov r8, r0                                        |     r8 = r0;
    0x00006cc4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006cc6 beq.w 0x629c                                      |         goto label_32;
                                                                 |     }
    0x00006cca ldr.w r1, [pc, 0x9b8]                             |     
    0x00006cce add r5, r0                                        |     r5 += r0;
    0x00006cd0 ldr r2, [sp, 0x28]                                |     r2 = var_28h;
    0x00006cd2 movs r0, 7                                        |     r0 = 7;
    0x00006cd4 add r1, pc                                        |     r1 = 0xe35e;
    0x00006cd6 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006cda ldr.w lr, [r4, 0xc]                               |     
    0x00006cde movw r3, 0xfffe                                   |     r3 = 0xfffe;
    0x00006ce2 cmp lr, r3                                        |     
                                                                 |     if (lr > r3) {
    0x00006ce4 bhi.w 0x75d6                                      |         goto label_137;
                                                                 |     }
    0x00006ce8 uxth r6, r6                                       |     r6 = (int16_t) r6;
    0x00006cea ldr.w ip, [r4, 8]                                 |     ip = *((r4 + 8));
    0x00006cee cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00006cf0 beq 0x6d7c                                        |         goto label_138;
                                                                 |     }
    0x00006cf2 movs r0, 0                                        |     r0 = 0;
    0x00006cf4 sub.w r1, ip, 4                                   |     r1 = ip - 4;
    0x00006cf8 sub.w r2, r8, 2                                   |     r2 = r8 - 2;
    0x00006cfc mov r7, r0                                        |     r7 = r0;
                                                                 |     do {
    0x00006cfe ldr r3, [r1, 4]!                                  |         r3 = *((r1 += 4));
    0x00006d02 ldrh r3, [r3, 0x3a]                               |         r3 = *((r3 + 0x3a));
    0x00006d04 strh r3, [r2, 2]!                                 |         *((r2 += 2)) = r3;
                                                                 |         if (r3 == 0) {
    0x00006d08 cbnz r3, 0x6d12                                   |             
    0x00006d0a strh.w r7, [r5, r0, lsl 1]                        |             offset_3 = r0 << 1;
                                                                 |             *((r5 + offset_3)) = r7;
    0x00006d0e adds r0, 1                                        |             r0++;
    0x00006d10 uxth r0, r0                                       |             r0 = (int16_t) r0;
                                                                 |         }
    0x00006d12 adds r7, 1                                        |         r7++;
    0x00006d14 uxth r7, r7                                       |         r7 = (int16_t) r7;
    0x00006d16 cmp r6, r7                                        |         
    0x00006d18 bne 0x6cfe                                        |         
                                                                 |     } while (r6 != r7);
    0x00006d1a ldr.w sb, [sp, 0x28]                              |     sb = var_28h;
    0x00006d1e movs r6, 0                                        |     r6 = 0;
    0x00006d20 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006d22 beq.w 0x7184                                      |         goto label_139;
                                                                 |     }
                                                                 | label_33:
    0x00006d26 subs r0, 1                                        |     r0--;
    0x00006d28 add.w r1, r6, sb                                  |     r1 = r6 + sb;
    0x00006d2c uxth r0, r0                                       |     r0 = (int16_t) r0;
    0x00006d2e adds r2, r6, 1                                    |     r2 = r6 + 1;
    0x00006d30 ldrh.w r3, [r5, r0, lsl 1]                        |     offset_4 = r0 << 1;
                                                                 |     r3 = *((r5 + offset_4));
    0x00006d34 strh.w r3, [r5, r1, lsl 1]                        |     offset_5 = r1 << 1;
                                                                 |     *((r5 + offset_5)) = r3;
    0x00006d38 ldr.w r3, [ip, r3, lsl 2]                         |     offset_6 = r3 << 2;
                                                                 |     r3 = *((ip + offset_6));
    0x00006d3c ldrd r1, r4, [r3, 0x18]                           |     __asm ("ldrd r1, r4, [r3, 0x18]");
    0x00006d40 str r6, [r3, 0x34]                                |     *((r3 + 0x34)) = r6;
    0x00006d42 uxth r6, r2                                       |     r6 = (int16_t) r2;
    0x00006d44 add.w r4, r1, r4, lsl 2                           |     r4 = r1 + (r4 << 2);
    0x00006d48 cmp r1, r4                                        |     
                                                                 |     if (r1 >= r4) {
    0x00006d4a bhs 0x6d72                                        |         goto label_140;
                                                                 |     }
                                                                 |     do {
    0x00006d4c ldr r3, [r1], 4                                   |         r3 = *(r1);
                                                                 |         r1 += 4;
    0x00006d50 ldrh r2, [r3, 0x38]                               |         r2 = *((r3 + 0x38));
    0x00006d52 ldrh.w r3, [r8, r2, lsl 1]                        |         offset_7 = r2 << 1;
                                                                 |         r3 = *((r8 + offset_7));
    0x00006d56 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00006d58 beq.w 0x7442                                      |             goto label_141;
                                                                 |         }
    0x00006d5c subs r3, 1                                        |         r3--;
    0x00006d5e uxth r3, r3                                       |         r3 = (int16_t) r3;
    0x00006d60 strh.w r3, [r8, r2, lsl 1]                        |         offset_8 = r2 << 1;
                                                                 |         *((r8 + offset_8)) = r3;
                                                                 |         if (r3 == 0) {
    0x00006d64 cbnz r3, 0x6d6e                                   |             
    0x00006d66 strh.w r2, [r5, r0, lsl 1]                        |             offset_9 = r0 << 1;
                                                                 |             *((r5 + offset_9)) = r2;
    0x00006d6a adds r0, 1                                        |             r0++;
    0x00006d6c uxth r0, r0                                       |             r0 = (int16_t) r0;
                                                                 |         }
    0x00006d6e cmp r4, r1                                        |         
    0x00006d70 bhi 0x6d4c                                        |         
                                                                 |     } while (r4 > r1);
                                                                 | label_140:
    0x00006d72 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00006d74 bne 0x6d26                                        |         goto label_33;
                                                                 |     }
    0x00006d76 cmp r7, r6                                        |     
                                                                 |     if (r7 > r6) {
    0x00006d78 bhi.w 0x7184                                      |         goto label_139;
                                                                 |     }
                                                                 | label_138:
    0x00006d7c add.w r5, ip, lr, lsl 2                           |     r5 = ip + (lr << 2);
    0x00006d80 cmp ip, r5                                        |     
                                                                 |     if (ip >= r5) {
    0x00006d82 bhs 0x6da2                                        |         goto label_142;
                                                                 |     }
    0x00006d84 ldr.w r6, [pc, 0x900]                             |     r6 = *(0x00007688);
    0x00006d88 mov r4, ip                                        |     r4 = ip;
    0x00006d8a add r6, pc                                        |     r6 += pc;
                                                                 |     do {
    0x00006d8c ldr r0, [r4], 4                                   |         r0 = *(r4);
                                                                 |         r4 += 4;
    0x00006d90 ldr r3, [r0, 0x1c]                                |         r3 = *((r0 + 0x1c));
    0x00006d92 cmp r3, 1                                         |         
                                                                 |         if (r3 >= 1) {
    0x00006d94 bls 0x6d9e                                        |             
    0x00006d96 adds r0, 0x18                                     |             r0 += 0x18;
    0x00006d98 mov r1, r6                                        |             r1 = r6;
    0x00006d9a bl 0x8c08                                         |             fcn_00008c08 (r0, r1);
                                                                 |         }
    0x00006d9e cmp r5, r4                                        |         
    0x00006da0 bhi 0x6d8c                                        |         
                                                                 |     } while (r5 > r4);
                                                                 | label_142:
    0x00006da2 ldr.w r1, [pc, 0x8e8]                             |     
    0x00006da6 movs r0, 7                                        |     r0 = 7;
    0x00006da8 ldr r2, [sp, 0x28]                                |     r2 = var_28h;
    0x00006daa add r1, pc                                        |     r1 = 0xe43c;
    0x00006dac bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006db0 mov r0, r8                                        |     r0 = r8;
    0x00006db2 blx 0x19a0                                        |     fcn_000019a0 ();
    0x00006db6 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00006db8 movs r1, 0                                        |     r1 = 0;
    0x00006dba ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x00006dbc subw r3, r3, 0xaa4                                |     __asm ("subw r3, r3, 0xaa4");
    0x00006dc0 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00006dc2 adds r3, 4                                        |     r3 += 4;
    0x00006dc4 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00006dc6 blx 0x1a88                                        |     fread (r0, r1, r2, r3);
    0x00006dca ldr r3, [sp, 0x3c]                                |     r3 = var_3ch;
    0x00006dcc cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00006dce beq.w 0x73e8                                      |         goto label_143;
                                                                 |     }
                                                                 | label_53:
    0x00006dd2 ldr.w r4, [pc, 0x8bc]                             |     r4 = *(0x00007690);
    0x00006dd6 add.w r8, sp, 0x1300                              |     r8 += ptr;
    0x00006dda ldr.w r3, [pc, 0x8b8]                             |     r3 = *(0x00007694);
    0x00006dde add.w r8, r8, 0x1c                                |     r8 += 0x1c;
    0x00006de2 ldr.w sb, [pc, 0x8b4]                             |     sb = *(0x00007698);
    0x00006de6 add r4, pc                                        |     r4 += pc;
    0x00006de8 str.w fp, [sp, 0x28]                              |     __asm ("str.w fp, [var_28h]");
    0x00006dec add r3, pc                                        |     r3 += pc;
    0x00006dee ldr r7, [sp, 0x3c]                                |     r7 = var_3ch;
    0x00006df0 add sb, pc                                        |     sb += pc;
    0x00006df2 str r4, [r3]                                      |     *(r3) = r4;
    0x00006df4 add.w r3, sp, 0x1320                              |     r3 += arg_1320h;
    0x00006df8 str.w sb, [sp, 0x2c]                              |     __asm ("str.w sb, [var_2ch]");
    0x00006dfc ldr.w fp, [sp, 0x4c]                              |     fp = var_4h;
    0x00006e00 mov sb, r3                                        |     sb = r3;
    0x00006e02 str.w r8, [sp, 0x18]                              |     __asm ("str.w r8, [var_18h]");
    0x00006e06 b 0x6e2e                                          |     
                                                                 |     while (r7 != 0) {
    0x00006e08 ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x00006e0a mov r1, r7                                        |         r1 = r7;
    0x00006e0c mov r0, fp                                        |         r0 = fp;
    0x00006e0e ldr r3, [r3]                                      |         r3 = *(r3);
    0x00006e10 ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x00006e12 blx r3                                            |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
                                                                 | label_45:
    0x00006e14 ldr.w r3, [pc, 0x884]                             |         r3 = *(0x0000769c);
    0x00006e18 add r3, pc                                        |         r3 += pc;
    0x00006e1a ldr r4, [r3]                                      |         r4 = *(r3);
                                                                 | label_34:
    0x00006e1c ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x00006e1e adds r4, 8                                        |         r4 += 8;
    0x00006e20 ldr.w r2, [pc, 0x87c]                             |         r2 = *(0x000076a0);
    0x00006e24 add r2, pc                                        |         r2 += pc;
    0x00006e26 str r4, [r2]                                      |         *(r2) = r4;
    0x00006e28 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00006e2a beq.w 0x717c                                      |             goto label_144;
                                                                 |         }
    0x00006e2e ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x00006e30 movs r2, 0                                        |         r2 = 0;
    0x00006e32 movs r1, 0                                        |         r1 = 0;
    0x00006e34 mov r0, sb                                        |         r0 = sb;
    0x00006e36 str r2, [r3]                                      |         *(r3) = r2;
    0x00006e38 movs r2, 0xfb                                     |         r2 = 0xfb;
    0x00006e3a blx 0x1c2c                                        |         strtoull (r0, r1, r2);
    0x00006e3e cmp r7, 0                                         |         
    0x00006e40 bne 0x6e08                                        |         
                                                                 |     }
    0x00006e42 ldr r4, [r4]                                      |     r4 = *(r4);
    0x00006e44 sub.w r6, sb, 4                                   |     r6 = sb - 4;
    0x00006e48 blx 0x1b8c                                        |     fcn_00001b8c ();
    0x00006e4c ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00006e4e strd r4, r0, [sp, 4]                              |     __asm ("strd r4, r0, [sp, 4]");
    0x00006e52 mov r0, r6                                        |     r0 = r6;
    0x00006e54 subw r3, r3, 0xa18                                |     __asm ("subw r3, r3, 0xa18");
    0x00006e58 ldr r2, [r3]                                      |     r2 = *(r3);
    0x00006e5a str r2, [sp, 0x10]                                |     var_10h = r2;
    0x00006e5c movs r2, 1                                        |     r2 = 1;
    0x00006e5e ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x00006e60 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00006e62 ldr.w r3, [pc, 0x840]                             |     
    0x00006e66 add r3, pc                                        |     r3 = 0xe510;
    0x00006e68 str r3, [sp]                                      |     *(sp) = r3;
    0x00006e6a movs r3, 0xff                                     |     r3 = 0xff;
    0x00006e6c mov r1, r3                                        |     r1 = r3;
    0x00006e6e blx 0x1dd4                                        |     fcn_00001dd4 ();
    0x00006e70 invalid                                           |     
    0x00006e72 mov.w r3, 0x1a4                                   |     r3 = 0x1a4;
    0x00006e76 movs r2, 0xc1                                     |     r2 = 0xc1;
    0x00006e78 mov r1, r6                                        |     r1 = r6;
    0x00006e7a mov r0, sl                                        |     r0 = sl;
    0x00006e7c blx 0x1bd8                                        |     r0 = sprintf_chk ()
    0x00006e80 subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 < r0) {
    0x00006e82 blt.w 0x7128                                      |         goto label_145;
                                                                 |     }
    0x00006e86 ldr.w r1, [pc, 0x820]                             |     
    0x00006e8a add r1, pc                                        |     r1 = 0xe538;
    0x00006e8c blx 0x18cc                                        |     r0 = fdopen ();
    0x00006e90 mov r5, r0                                        |     r5 = r0;
    0x00006e92 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00006e94 beq.w 0x74fe                                      |         goto label_146;
                                                                 |     }
    0x00006e98 ldr.w r4, [pc, 0x810]                             |     r4 = *(0x000076ac);
    0x00006e9c mov r1, r0                                        |     r1 = r0;
    0x00006e9e mov r0, fp                                        |     r0 = fp;
    0x00006ea0 add r4, pc                                        |     r4 += pc;
    0x00006ea2 ldr r3, [r4]                                      |     r3 = *(r4);
    0x00006ea4 ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x00006ea6 blx r3                                            |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x00006ea8 mov r8, r0                                        |     r8 = r0;
    0x00006eaa mov r0, r5                                        |     r0 = r5;
    0x00006eac blx 0x19b8                                        |     r0 = fcn_000019b8 ();
    0x00006eb0 mov r2, r0                                        |     r2 = r0;
    0x00006eb2 mov r0, r5                                        |     r0 = r5;
    0x00006eb4 mov r5, r2                                        |     r5 = r2;
    0x00006eb6 blx 0x1c84                                        |     fcn_00001c84 ();
    0x00006eba cmp.w r8, 0                                       |     
    0x00006ebe orr.w r5, r5, r0                                  |     r5 |= r0;
                                                                 |     if (r8 < 0) {
    0x00006ec2 blt.w 0x73ac                                      |         goto label_147;
                                                                 |     }
    0x00006ec6 ldr r4, [r4]                                      |     r4 = *(r4);
    0x00006ec8 mov r2, sl                                        |     r2 = sl;
    0x00006eca mov r1, r6                                        |     r1 = r6;
    0x00006ecc mov r0, sl                                        |     r0 = sl;
    0x00006ece ldr r3, [r4]                                      |     r3 = *(r4);
    0x00006ed0 blx 0x1d68                                        |     r0 = fcn_00001d68 ();
    0x00006ed4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00006ed6 bne.w 0x738a                                      |         goto label_148;
                                                                 |     }
    0x00006eda cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00006edc beq 0x6e1c                                        |         goto label_34;
                                                                 |     }
    0x00006ede ldr r4, [r4]                                      |     r4 = *(r4);
    0x00006ee0 movs r0, 0x1c                                     |     r0 = 0x1c;
    0x00006ee2 ldr.w fp, [sp, 0x28]                              |     fp = var_28h;
    0x00006ee6 blx 0x1b18                                        |     system (r0);
    0x00006eea ldr.w r1, [pc, 0x7c4]                             |     
    0x00006eee mov r2, r4                                        |     r2 = r4;
    0x00006ef0 mvn r4, 0x1b                                      |     r4 = ~0x1b;
    0x00006ef4 mov r3, r0                                        |     r3 = r0;
    0x00006ef6 movs r0, 3                                        |     r0 = 3;
    0x00006ef8 add r1, pc                                        |     r1 = 0xe5ae;
    0x00006efa bl 0x85e4                                         |     fcn_000085e4 (r0);
                                                                 | label_52:
    0x00006efe lsrs r4, r4, 0x1f                                 |     r4 >>= 0x1f;
                                                                 | label_48:
    0x00006f00 cmp.w sl, -1                                      |     
                                                                 |     if (sl == -1) {
    0x00006f04 beq.w 0x62da                                      |         goto label_35;
                                                                 |     }
    0x00006f08 mov r0, sl                                        |     r0 = sl;
    0x00006f0a blx 0x1dbc                                        |     fcn_00001dbc ();
    0x00006f0e b.w 0x62da                                        |     goto label_35;
                                                                 | label_136:
    0x00006f12 ldr r3, [sp, 0x38]                                |     r3 = var_38h;
    0x00006f14 b 0x6c4c                                          |     goto label_36;
                                                                 | label_135:
    0x00006f16 str r3, [sp, 0x40]                                |     var_40h = r3;
    0x00006f18 ldr.w r1, [pc, 0x798]                             |     
    0x00006f1c ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00006f1e str r2, [sp, 8]                                   |     var_8h_2 = r2;
    0x00006f20 mov r2, fp                                        |     r2 = fp;
    0x00006f22 strd ip, r0, [sp]                                 |     __asm ("strd ip, r0, [sp]");
    0x00006f26 add r1, pc                                        |     r1 = 0xe5de;
    0x00006f28 str r3, [sp, 0x14]                                |     var_14h_2 = r3;
    0x00006f2a movs r0, 7                                        |     r0 = 7;
    0x00006f2c str.w sl, [sp, 0x10]                              |     __asm ("str.w sl, [var_10h]");
    0x00006f30 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006f34 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00006f36 ldrb r3, [r3, 0xa]                                |     r3 = *((r3 + 0xa));
                                                                 |     if (r3 != 0) {
    0x00006f38 cbnz r3, 0x6f7a                                   |         goto label_149;
                                                                 |     }
                                                                 | label_39:
    0x00006f3a ldr.w r2, [r8, 4]                                 |     r2 = *((r8 + 4));
    0x00006f3e b 0x6c42                                          |     goto label_37;
                                                                 | label_134:
    0x00006f40 ldr.w r1, [pc, 0x774]                             |     
    0x00006f44 mov r3, r7                                        |     r3 = r7;
    0x00006f46 ldr.w r2, [r8, 4]                                 |     r2 = *((r8 + 4));
    0x00006f4a movs r0, 7                                        |     r0 = 7;
    0x00006f4c str r6, [sp]                                      |     *(sp) = r6;
    0x00006f4e add r1, pc                                        |     r1 = 0xe60a;
    0x00006f50 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006f54 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00006f56 add.w r3, r3, 0x1000                              |     r3 += 0x1000;
    0x00006f5a ldrb r3, [r3, 0xa]                                |     r3 = *((r3 + 0xa));
    0x00006f5c cmp r3, 0                                         |     
    0x00006f5e it ne                                             |     
                                                                 |     if (r3 == 0) {
    0x00006f60 cmpne r7, 0x57                                    |         __asm ("cmpne r7, 0x57");
                                                                 |         goto label_150;
                                                                 |     }
                                                                 |     if (r3 == 0) {
                                                                 | label_150:
    0x00006f62 beq.w 0x6c7e                                      |         goto label_38;
                                                                 |     }
    0x00006f66 ldr.w r1, [pc, 0x754]                             |     
    0x00006f6a mov r3, r6                                        |     r3 = r6;
    0x00006f6c ldr.w r2, [r8, 4]                                 |     r2 = *((r8 + 4));
    0x00006f70 movs r0, 4                                        |     r0 = 4;
    0x00006f72 add r1, pc                                        |     r1 = 0xe634;
    0x00006f74 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006f78 b 0x6c7e                                          |     goto label_38;
                                                                 | label_149:
    0x00006f7a ldr.w r1, [pc, 0x744]                             |     
    0x00006f7e mov r3, r6                                        |     r3 = r6;
    0x00006f80 ldr.w r2, [r8, 4]                                 |     r2 = *((r8 + 4));
    0x00006f84 movs r0, 4                                        |     r0 = 4;
    0x00006f86 add r1, pc                                        |     r1 = 0xe64c;
    0x00006f88 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006f8c b 0x6f3a                                          |     goto label_39;
                                                                 | label_90:
    0x00006f8e blx 0x1be4                                        |     r0 = isoc99_sscanf ();
    0x00006f92 ldr r7, [r0]                                      |     r7 = *(r0);
    0x00006f94 rsbs r7, r7, 0                                    |     r7 -= ;
                                                                 | label_46:
    0x00006f96 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00006f98 subw r3, r3, 0xaa4                                |     __asm ("subw r3, r3, 0xaa4");
    0x00006f9c ldr r0, [r3, 0x18]                                |     r0 = *((r3 + 0x18));
    0x00006f9e bl 0x8c50                                         |     fcn_00008c50 (r0);
    0x00006fa2 b.w 0x641c                                        |     goto label_40;
                                                                 | label_101:
    0x00006fa6 ldr r2, [sp, 0x20]                                |     r2 = stream;
    0x00006fa8 ldrb.w r3, [r2, 0x7e2]                            |     r3 = *((r2 + 0x7e2));
    0x00006fac add.w r6, r2, 0x7d8                               |     r6 = r2 + 0x7d8;
    0x00006fb0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00006fb2 beq.w 0x6224                                      |         goto label_16;
                                                                 |     }
    0x00006fb6 ldr.w r1, [pc, 0x70c]                             |     
    0x00006fba movs r0, 4                                        |     r0 = 4;
    0x00006fbc add r1, pc                                        |     r1 = 0xe686;
    0x00006fbe bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006fc2 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00006fc4 strb r3, [r6, 0xa]                                |     *((r6 + 0xa)) = r3;
    0x00006fc6 b.w 0x6224                                        |     goto label_16;
                                                                 | label_133:
    0x00006fca ldr.w r1, [pc, 0x6fc]                             |     
    0x00006fce movs r0, 7                                        |     r0 = 7;
    0x00006fd0 add r1, pc                                        |     r1 = 0xe69e;
    0x00006fd2 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006fd6 b 0x6c88                                          |     goto label_41;
                                                                 | label_130:
    0x00006fd8 ldr.w r1, [pc, 0x6f0]                             |     
    0x00006fdc movs r0, 6                                        |     r0 = 6;
    0x00006fde str.w sl, [sp]                                    |     __asm ("str.w sl, [sp]");
    0x00006fe2 ldr r3, [r7]                                      |     r3 = *(r7);
    0x00006fe4 ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00006fe6 add r1, pc                                        |     r1 = 0xe6b6;
    0x00006fe8 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00006fec b.w 0x6538                                        |     goto label_28;
                                                                 | label_82:
    0x00006ff0 blx 0x1be4                                        |     r0 = isoc99_sscanf ();
    0x00006ff4 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00006ff6 blx 0x1b18                                        |     system (r0);
    0x00006ffa ldr.w r1, [pc, 0x6d4]                             |     
    0x00006ffe mov r2, r0                                        |     r2 = r0;
    0x00007000 movs r0, 2                                        |     r0 = 2;
    0x00007002 add r1, pc                                        |     r1 = 0xe6d8;
    0x00007004 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00007008 b.w 0x5e46                                        |     goto label_11;
                                                                 | label_86:
    0x0000700c blx 0x1be4                                        |     isoc99_sscanf ();
    0x00007010 ldr.w r1, [pc, 0x6c0]                             |     
    0x00007014 mov r2, r6                                        |     r2 = r6;
    0x00007016 ldr r3, [r0]                                      |     r3 = *(r0);
    0x00007018 movs r0, 3                                        |     r0 = 3;
    0x0000701a add r1, pc                                        |     r1 = 0xe6f2;
    0x0000701c rsbs r6, r3, 0                                    |     r6 = r3 - ;
    0x0000701e bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00007022 b.w 0x60ac                                        |     goto label_30;
                                                                 | label_114:
    0x00007026 mov r2, r0                                        |     r2 = r0;
    0x00007028 mov r1, r0                                        |     r1 = r0;
    0x0000702a add.w r7, sp, 0x1300                              |     r7 += ptr;
    0x0000702e mov r0, r5                                        |     r0 = r5;
    0x00007030 blx 0x1d80                                        |     fcn_00001d80 ();
    0x00007034 rsbs r4, r4, 0                                    |     r4 -= ;
    0x00007036 ldr.w sb, [sp, 0x20]                              |     sb = stream;
    0x0000703a adds r7, 0x1c                                     |     r7 += 0x1c;
    0x0000703c b 0x7060                                          |     
                                                                 |     while (r0 != 0) {
    0x0000703e mov r0, r6                                        |         r0 = r6;
    0x00007040 blx 0x1bb0                                        |         r0 = fcn_00001bb0 ();
                                                                 |         if (r0 != 0) {
    0x00007044 cbz r0, 0x705e                                    |             
    0x00007046 subw r2, sb, 0xaa4                                |             __asm ("subw r2, sb, 0xaa4");
    0x0000704a adds r3, r7, r0                                   |             r3 = r7 + r0;
    0x0000704c ldr r0, [r2, 0x18]                                |             r0 = *((r2 + 0x18));
    0x0000704e movs r2, 0                                        |             r2 = 0;
    0x00007050 mov r1, r6                                        |             r1 = r6;
    0x00007052 strb r2, [r3, -0x1]                               |             *((r3 - 0x1)) = r2;
    0x00007056 bl 0x8f6c                                         |             r0 = fcn_00008f6c (r0, r1);
                                                                 |             if (r0 == 0) {
    0x0000705a cbz r0, 0x705e                                    |                 goto label_151;
                                                                 |             }
    0x0000705c str r4, [r0, 0x30]                                |             *((r0 + 0x30)) = r4;
                                                                 |         }
                                                                 | label_151:
    0x0000705e adds r4, 1                                        |         r4++;
    0x00007060 mov r2, r5                                        |         r2 = r5;
    0x00007062 mov.w r1, 0x1000                                  |         r1 = 0x1000;
    0x00007066 mov r0, r6                                        |         r0 = r6;
    0x00007068 blx 0x19ac                                        |         r0 = fcn_000019ac ();
    0x0000706c cmp r0, 0                                         |         
    0x0000706e bne 0x703e                                        |         
                                                                 |     }
    0x00007070 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00007072 mov r8, r0                                        |     r8 = r0;
    0x00007074 ldr.w r1, [pc, 0x660]                             |     r1 = *(0x000076d8);
    0x00007078 sub.w r0, r3, 0x1c                                |     r0 = r3 - 0x1c;
    0x0000707c add r1, pc                                        |     r1 += pc;
    0x0000707e bl 0x8c08                                         |     fcn_00008c08 (r0, r1);
    0x00007082 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00007084 subw r3, r3, 0xaa4                                |     __asm ("subw r3, r3, 0xaa4");
    0x00007088 ldr r1, [r3, 0xc]                                 |     r1 = *((r3 + 0xc));
    0x0000708a cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0000708c beq.w 0x664c                                      |         goto label_42;
                                                                 |     }
    0x00007090 ldr r3, [r3, 8]                                   |     r3 = *((r3 + 8));
    0x00007092 mov r0, r8                                        |     r0 = r8;
    0x00007094 subs r3, 4                                        |     r3 -= 4;
                                                                 |     do {
    0x00007096 ldr r2, [r3, 4]!                                  |         r2 = *((r3 += 4));
    0x0000709a strh r0, [r2, 0x38]                               |         *((r2 + 0x38)) = r0;
    0x0000709c adds r0, 1                                        |         r0++;
    0x0000709e cmp r0, r1                                        |         
    0x000070a0 bne 0x7096                                        |         
                                                                 |     } while (r0 != r1);
    0x000070a2 b.w 0x664c                                        |     goto label_42;
                                                                 | label_79:
    0x000070a6 ldr.w r1, [pc, 0x634]                             |     
    0x000070aa movs r0, 2                                        |     r0 = 2;
    0x000070ac add r1, pc                                        |     r1 = 0xe78e;
    0x000070ae bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x000070b2 b.w 0x5e46                                        |     goto label_11;
                                                                 | label_97:
    0x000070b6 rsbs r0, r0, 0                                    |     r0 -= ;
    0x000070b8 ldr.w fp, [sp, 0x1c]                              |     fp = var_1ch;
    0x000070bc blx 0x1b18                                        |     system (r0);
    0x000070c0 ldr.w r1, [pc, 0x61c]                             |     
    0x000070c4 mov r3, r0                                        |     r3 = r0;
    0x000070c6 mov r2, r7                                        |     r2 = r7;
    0x000070c8 movs r0, 2                                        |     r0 = 2;
    0x000070ca add r1, pc                                        |     r1 = 0xe7ae;
    0x000070cc bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x000070d0 b.w 0x629c                                        |     goto label_32;
                                                                 | label_98:
    0x000070d4 rsbs r0, r0, 0                                    |     r0 -= ;
    0x000070d6 ldr.w fp, [sp, 0x1c]                              |     fp = var_1ch;
    0x000070da blx 0x1b18                                        |     system (r0);
    0x000070de ldr.w r1, [pc, 0x604]                             |     
    0x000070e2 mov r3, r0                                        |     r3 = r0;
    0x000070e4 mov r2, r7                                        |     r2 = r7;
    0x000070e6 movs r0, 2                                        |     r0 = 2;
    0x000070e8 add r1, pc                                        |     r1 = 0xe7d2;
    0x000070ea bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x000070ee ldr.w r0, [r8]                                    |     r0 = *(r8);
    0x000070f2 bl 0xcd5c                                         |     fcn_0000cd5c (r0);
    0x000070f6 b.w 0x629c                                        |     goto label_32;
                                                                 | label_99:
    0x000070fa ldr.w sl, [sp, 0x2c]                              |     sl = var_2ch;
    0x000070fe ldr.w fp, [sp, 0x1c]                              |     fp = var_1ch;
    0x00007102 b.w 0x65b2                                        |     goto label_43;
                                                                 | label_112:
    0x00007106 rsbs r0, r0, 0                                    |     r0 -= ;
    0x00007108 blx 0x1b18                                        |     system (r0);
    0x0000710c ldr.w r1, [pc, 0x5d8]                             |     
    0x00007110 mov r2, r0                                        |     r2 = r0;
    0x00007112 movs r0, 2                                        |     r0 = 2;
    0x00007114 add r1, pc                                        |     r1 = 0xe800;
    0x00007116 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000711a b.w 0x629c                                        |     goto label_32;
                                                                 | label_119:
    0x0000711e ldr.w r3, [pc, 0x5cc]                             |     r3 = *(0x000076ec);
    0x00007122 add r3, pc                                        |     r3 += pc;
    0x00007124 b.w 0x673e                                        |     goto label_44;
                                                                 | label_145:
    0x00007128 movs r2, 0xc1                                     |     r2 = 0xc1;
    0x0000712a mov.w r1, 0x1a4                                   |     r1 = 0x1a4;
    0x0000712e strd r2, r1, [sp]                                 |     __asm ("strd r2, r1, [sp]");
    0x00007132 mov r3, r6                                        |     r3 = r6;
    0x00007134 ldr.w r1, [pc, 0x5b8]                             |     
    0x00007138 movs r0, 3                                        |     r0 = 3;
    0x0000713a ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x0000713c add r1, pc                                        |     r1 = 0xe830;
    0x0000713e bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00007142 b 0x6e14                                          |     goto label_45;
                                                                 | label_91:
    0x00007144 blx 0x1be4                                        |     r0 = isoc99_sscanf ();
    0x00007148 ldr r3, [r0]                                      |     r3 = *(r0);
    0x0000714a ldr r0, [r7, 0x1c]                                |     r0 = *((r7 + 0x1c));
    0x0000714c rsbs r7, r3, 0                                    |     r7 = r3 - ;
    0x0000714e bl 0x8c50                                         |     fcn_00008c50 (r0);
    0x00007152 b 0x6f96                                          |     goto label_46;
                                                                 | label_110:
    0x00007154 ldr.w r1, [pc, 0x59c]                             |     
    0x00007158 ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x0000715a add r1, pc                                        |     r1 = 0xe852;
    0x0000715c bl 0x5590                                         |     fcn_00005590 (r0, r1);
    0x00007160 b.w 0x6580                                        |     goto label_47;
                                                                 | label_111:
    0x00007164 rsbs r0, r0, 0                                    |     r0 -= ;
    0x00007166 blx 0x1b18                                        |     system (r0);
    0x0000716a ldr.w r1, [pc, 0x58c]                             |     
    0x0000716e mov r2, r0                                        |     r2 = r0;
    0x00007170 movs r0, 2                                        |     r0 = 2;
    0x00007172 add r1, pc                                        |     r1 = 0xe870;
    0x00007174 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00007178 b.w 0x629c                                        |     goto label_32;
                                                                 | label_144:
    0x0000717c ldr.w fp, [sp, 0x28]                              |     fp = var_28h;
    0x00007180 mov r4, r3                                        |     r4 = r3;
    0x00007182 b 0x6f00                                          |     goto label_48;
                                                                 | label_139:
    0x00007184 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00007186 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00007188 beq.w 0x764c                                      |         goto label_152;
                                                                 |     }
    0x0000718c ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x0000718e movs r4, 0                                        |     r4 = 0;
    0x00007190 mov r6, r8                                        |     r6 = r8;
    0x00007192 mov sb, r4                                        |     sb = r4;
    0x00007194 mov sl, r4                                        |     sl = r4;
    0x00007196 subw r7, r3, 0xaa4                                |     __asm ("subw r7, r3, 0xaa4");
                                                                 |     do {
    0x0000719a ldrh r3, [r6], 2                                  |         r3 = *(r6);
                                                                 |         r6 += 2;
                                                                 |         if (r3 != 0) {
    0x0000719e cbz r3, 0x71b6                                    |             
    0x000071a0 ldr r3, [r7, 8]                                   |             r3 = *((r7 + 8));
    0x000071a2 mov r0, sb                                        |             r0 = sb;
    0x000071a4 ldr r1, [r3, r4]                                  |             r1 = *((r3 + r4));
    0x000071a6 bl 0xa350                                         |             r0 = fcn_0000a350 (r0, r1);
    0x000071aa cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000071ac beq.w 0x7430                                      |                 goto label_153;
                                                                 |             }
    0x000071b0 add.w sl, sl, 1                                   |             sl++;
    0x000071b4 mov sb, r0                                        |             sb = r0;
                                                                 |         }
    0x000071b6 cmp r5, r6                                        |         
    0x000071b8 add.w r4, r4, 4                                   |         r4 += 4;
    0x000071bc bne 0x719a                                        |         
                                                                 |     } while (r5 != r6);
    0x000071be str.w sb, [sp, 0x1c]                              |     __asm ("str.w sb, [var_1ch]");
    0x000071c2 str.w sl, [sp, 0x28]                              |     __asm ("str.w sl, [var_28h]");
                                                                 | label_60:
    0x000071c6 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000071c8 lsls r0, r3, 2                                    |     r0 = r3 << 2;
    0x000071ca blx 0x1b0c                                        |     strerror (r0);
    0x000071ce str r0, [sp, 0x2c]                                |     var_2ch = r0;
    0x000071d0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000071d2 beq.w 0x7634                                      |         goto label_154;
                                                                 |     }
    0x000071d6 movs r1, 0                                        |     r1 = 0;
    0x000071d8 movs r0, 0x10                                     |     r0 = 0x10;
    0x000071da bl 0x8c14                                         |     fcn_00008c14 (r0, r1);
    0x000071de str r0, [sp, 0x3c]                                |     var_3ch = r0;
    0x000071e0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000071e2 beq.w 0x7640                                      |         goto label_155;
                                                                 |     }
    0x000071e6 ldr.w r3, [pc, 0x514]                             |     
    0x000071ea ldr.w sl, [sp, 0x28]                              |     sl = var_28h;
    0x000071ee str.w fp, [sp, 0x30]                              |     __asm ("str.w fp, [var_30h]");
    0x000071f2 add r3, pc                                        |     r3 = 0xe8f4;
    0x000071f4 str.w r8, [sp, 0x38]                              |     __asm ("str.w r8, [var_38h]");
    0x000071f8 str r3, [sp, 0x48]                                |     var_0h = r3;
    0x000071fa ldr.w r3, [pc, 0x504]                             |     
    0x000071fe add r3, pc                                        |     r3 = 0xe904;
    0x00007200 str r3, [sp, 0x50]                                |     var_8h = r3;
    0x00007202 add.w r3, sp, 0x1300                              |     r3 += ptr;
    0x00007206 adds r3, 0x1c                                     |     r3 += 0x1c;
    0x00007208 str r3, [sp, 0x44]                                |     var_44h = r3;
                                                                 | label_49:
    0x0000720a ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x0000720c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000720e beq.w 0x7416                                      |         goto label_156;
                                                                 |     }
    0x00007212 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00007214 mov r0, r3                                        |     r0 = r3;
    0x00007216 ldr r4, [r3, 8]                                   |     r4 = *((r3 + 8));
    0x00007218 bl 0xa3ec                                         |     fcn_0000a3ec (r0);
    0x0000721c str r0, [sp, 0x1c]                                |     var_1ch = r0;
    0x0000721e movs r0, 8                                        |     r0 = 8;
    0x00007220 blx 0x1b0c                                        |     strerror (r0);
    0x00007224 str r0, [sp, 0x40]                                |     var_40h = r0;
    0x00007226 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00007228 beq.w 0x75c2                                      |         goto label_157;
                                                                 |     }
    0x0000722c ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x0000722e movs r5, 0                                        |     r5 = 0;
    0x00007230 mov r0, r5                                        |     r0 = r5;
    0x00007232 str r4, [r3, 4]                                   |     *((r3 + 4)) = r4;
    0x00007234 mov r1, r3                                        |     r1 = r3;
    0x00007236 str r5, [r3]                                      |     *(r3) = r5;
    0x00007238 bl 0xa350                                         |     r0 = fcn_0000a350 (r0, r1);
    0x0000723c mov r4, r0                                        |     r4 = r0;
    0x0000723e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00007240 beq.w 0x75ae                                      |         goto label_158;
                                                                 |     }
    0x00007244 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00007246 ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00007248 str r5, [sp, 0x28]                                |     var_28h = r5;
    0x0000724a movs r5, 1                                        |     r5 = 1;
    0x0000724c mov r8, r3                                        |     r8 = r3;
    0x0000724e str r3, [r2]                                      |     *(r2) = r3;
                                                                 | label_51:
    0x00007250 ldr.w r1, [r8, 4]                                 |     r1 = *((r8 + 4));
    0x00007254 ldrb.w r3, [r1, 0x3c]                             |     r3 = *((r1 + 0x3c));
                                                                 |     if (r3 != 0) {
    0x00007258 cbz r3, 0x7262                                    |         
    0x0000725a ldr r3, [sp, 0x40]                                |         r3 = var_40h;
    0x0000725c ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x0000725e cmp r1, r3                                        |         
                                                                 |         if (r1 == r3) {
    0x00007260 beq 0x7326                                        |             goto label_159;
                                                                 |         }
                                                                 |     }
    0x00007262 ldr r3, [r1, 0x1c]                                |     r3 = *((r1 + 0x1c));
    0x00007264 movs r2, 1                                        |     r2 = 1;
    0x00007266 strb.w r2, [r1, 0x3c]                             |     *((r1 + 0x3c)) = r2;
    0x0000726a cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000726c beq 0x730c                                        |         goto label_160;
                                                                 |     }
    0x0000726e ldr r6, [r1, 0x18]                                |     r6 = *((r1 + 0x18));
    0x00007270 add.w sb, r6, r3, lsl 2                           |     sb = r6 + (r3 << 2);
    0x00007274 cmp r6, sb                                        |     
                                                                 |     if (r6 >= sb) {
    0x00007276 bhs.w 0x75aa                                      |         goto label_161;
                                                                 |     }
    0x0000727a add.w r7, r5, 0x40000000                          |     r7 = r5 + 0x40000000;
    0x0000727e ldrd r5, r3, [sp, 0x28]                           |     __asm ("ldrd r5, r3, [var_28h]");
    0x00007282 subs r7, 2                                        |     r7 -= 2;
    0x00007284 add.w r7, r3, r7, lsl 2                           |     r7 = r3 + (r7 << 2);
    0x00007288 b 0x7290                                          |     
                                                                 |     while (r0 != 0) {
    0x0000728a cmp sb, r6                                        |         
    0x0000728c mov r4, r0                                        |         r4 = r0;
                                                                 |         if (sb < r6) {
    0x0000728e bls 0x7316                                        |             goto label_56;
                                                                 |         }
    0x00007290 movs r0, 8                                        |         r0 = 8;
    0x00007292 ldr fp, [r6], 4                                   |         fp = *(r6);
                                                                 |         r6 += 4;
    0x00007296 blx 0x1b0c                                        |         r0 = strerror (r0);
    0x0000729a mov r1, r0                                        |         r1 = r0;
    0x0000729c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0000729e beq.w 0x759a                                      |             goto label_162;
                                                                 |         }
    0x000072a2 cmp sl, r5                                        |         
    0x000072a4 strd r8, fp, [r0]                                 |         __asm ("strd r8, fp, [r0]");
                                                                 |         if (sl < r5) {
    0x000072a8 bls.w 0x7620                                      |             goto label_163;
                                                                 |         }
    0x000072ac str r0, [r7, 4]!                                  |         *((r7 += 4)) = r0;
    0x000072b0 mov r0, r4                                        |         r0 = r4;
    0x000072b2 adds r5, 1                                        |         r5++;
    0x000072b4 bl 0xa350                                         |         r0 = fcn_0000a350 (r0, r1);
    0x000072b8 cmp r0, 0                                         |         
    0x000072ba bne 0x728a                                        |         
                                                                 |     }
    0x000072bc mvn r5, 0xb                                       |     r5 = ~0xb;
    0x000072c0 ldr r1, [sp, 0x50]                                |     r1 = var_8h;
    0x000072c2 movs r0, 3                                        |     r0 = 3;
    0x000072c4 bl 0x85e4                                         |     fcn_000085e4 (r0);
                                                                 |     do {
                                                                 | label_50:
    0x000072c8 ldr r6, [r4, 8]                                   |         r6 = *((r4 + 8));
    0x000072ca mov r0, r4                                        |         r0 = r4;
    0x000072cc bl 0xa3ec                                         |         r0 = fcn_0000a3ec (r0);
    0x000072d0 mov r4, r0                                        |         r4 = r0;
    0x000072d2 mov r0, r6                                        |         r0 = r6;
    0x000072d4 blx 0x19a0                                        |         fcn_000019a0 ();
    0x000072d8 cmp r4, 0                                         |         
    0x000072da bne 0x72c8                                        |         
                                                                 |     } while (r4 != 0);
    0x000072dc cmp r5, 0                                         |     
                                                                 |     if (r5 >= 0) {
    0x000072de bge 0x720a                                        |         goto label_49;
                                                                 |     }
    0x000072e0 ldr.w fp, [sp, 0x30]                              |     fp = var_30h;
    0x000072e4 ldr.w r8, [sp, 0x38]                              |     r8 = var_38h;
                                                                 | label_54:
    0x000072e8 ldr r0, [sp, 0x3c]                                |     r0 = var_3ch;
    0x000072ea bl 0x8c50                                         |     fcn_00008c50 (r0);
                                                                 | label_55:
    0x000072ee ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x000072f0 ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
                                                                 |     if (r3 == 0) {
    0x000072f2 cbz r3, 0x72fc                                    |         goto label_164;
                                                                 |     }
                                                                 |     do {
    0x000072f4 bl 0xa3ec                                         |         r0 = fcn_0000a3ec (r0);
    0x000072f8 cmp r0, 0                                         |         
    0x000072fa bne 0x72f4                                        |         
                                                                 |     } while (r0 != 0);
                                                                 | label_164:
    0x000072fc ldr r0, [sp, 0x2c]                                |     r0 = var_2ch;
    0x000072fe blx 0x19a0                                        |     fcn_000019a0 ();
    0x00007302 mov r0, r8                                        |     r0 = r8;
    0x00007304 blx 0x19a0                                        |     fcn_000019a0 ();
    0x00007308 b.w 0x629c                                        |     goto label_32;
                                                                 | label_160:
    0x0000730c ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x0000730e bl 0xa454                                         |     fcn_0000a454 (r0, r1);
    0x00007312 ldr r5, [sp, 0x28]                                |     r5 = var_28h;
    0x00007314 str r0, [sp, 0x1c]                                |     var_1ch = r0;
                                                                 | label_56:
    0x00007316 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00007318 beq 0x72c8                                        |         goto label_50;
                                                                 |     }
    0x0000731a ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x0000731c subs r3, r5, 1                                    |     r3 = r5 - 1;
    0x0000731e str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00007320 ldr.w r8, [r2, r3, lsl 2]                         |     offset_10 = r3 << 2;
                                                                 |     r8 = *((r2 + offset_10));
    0x00007324 b 0x7250                                          |     goto label_51;
                                                                 | label_159:
    0x00007326 ldr r3, [sp, 0x48]                                |     r3 = var_0h;
    0x00007328 ldm.w r3, {r0, r1}                                |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
    0x0000732c add.w r3, sp, 0x1320                              |     r3 += arg_1320h;
    0x0000732e strh r1, [r3, r6]                                 |     *((r3 + r6)) = r1;
    0x00007330 strb r1, [r3]                                     |     *(r3) = r1;
    0x00007332 movs r1, 3                                        |     r1 = 3;
    0x00007334 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00007336 str r0, [r3]                                      |     *(r3) = r0;
    0x00007338 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x0000733a bl 0x8b68                                         |     fcn_00008b68 (r0, r1);
    0x0000733e ldr.w r6, [r8]                                    |     r6 = *(r8);
    0x00007342 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00007344 beq.w 0x7526                                      |         goto label_165;
                                                                 |     }
    0x00007348 mov.w sb, 0                                       |     sb = 0;
    0x0000734c mov r3, r8                                        |     r3 = r8;
    0x0000734e mov r7, sb                                        |     r7 = sb;
    0x00007350 mov r8, r4                                        |     r8 = r4;
    0x00007352 ldr.w fp, [sp, 0x3c]                              |     fp = var_3ch;
    0x00007356 mov r4, sb                                        |     r4 = sb;
    0x00007358 mov sb, r3                                        |     sb = r3;
    0x0000735a b 0x7364                                          |     
                                                                 |     while (r0 == 0) {
    0x0000735c ldr r6, [r6]                                      |         r6 = *(r6);
    0x0000735e adds r4, 1                                        |         r4++;
    0x00007360 cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x00007362 beq 0x745a                                        |             goto label_166;
                                                                 |         }
    0x00007364 ldr r2, [r6, 4]                                   |         r2 = *((r6 + 4));
    0x00007366 mov r1, r6                                        |         r1 = r6;
    0x00007368 ldr r0, [sp, 0x18]                                |         r0 = var_18h;
    0x0000736a ldr r2, [r2, 0x2c]                                |         r2 = *((r2 + 0x2c));
    0x0000736c subs r2, 1                                        |         r2--;
    0x0000736e add r7, r2                                        |         r7 += r2;
    0x00007370 bl 0x8b98                                         |         fcn_00008b98 (r0, r1);
    0x00007372 invalid                                           |         
    0x00007374 ldr r1, [r6, 4]                                   |         r1 = *((r6 + 4));
    0x00007376 movs r2, 0                                        |         r2 = 0;
    0x00007378 mov r0, fp                                        |         r0 = fp;
    0x0000737a adds r1, 0x44                                     |         r1 += 0x44;
    0x0000737c bl 0x8cc0                                         |         r0 = fcn_00008cc0 (r0, r1, r2);
    0x00007380 mov r5, r0                                        |         r5 = r0;
    0x00007382 cmp r0, 0                                         |         
    0x00007384 beq 0x735c                                        |         
                                                                 |     }
    0x00007386 mov r4, r8                                        |     r4 = r8;
    0x00007388 b 0x72c8                                          |     goto label_50;
                                                                 | label_148:
    0x0000738a blx 0x1be4                                        |     isoc99_sscanf ();
    0x0000738e ldr r3, [r4]                                      |     r3 = *(r4);
    0x00007390 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00007392 ldr r1, [pc, 0x370]                               |     
    0x00007394 ldr r4, [r0]                                      |     r4 = *(r0);
    0x00007396 movs r0, 2                                        |     r0 = 2;
    0x00007398 str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x0000739a mov r3, r6                                        |     r3 = r6;
    0x0000739c add r1, pc                                        |     r1 = 0xeaa6;
    0x0000739e str r2, [sp]                                      |     *(sp) = r2;
    0x000073a0 ldr.w fp, [sp, 0x28]                              |     fp = var_28h;
    0x000073a4 rsbs r4, r4, 0                                    |     r4 -= ;
    0x000073a6 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x000073aa b 0x6efe                                          |     goto label_52;
                                                                 | label_147:
    0x000073ac ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x000073ae mov r1, r6                                        |     r1 = r6;
    0x000073b0 mov r0, sl                                        |     r0 = sl;
    0x000073b2 ldr.w fp, [sp, 0x28]                              |     fp = var_28h;
    0x000073b6 mov r4, r8                                        |     r4 = r8;
    0x000073b8 blx 0x1984                                        |     r0 = fcn_00001984 ();
    0x000073bc cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000073be bne.w 0x74ee                                      |         goto label_167;
                                                                 |     }
                                                                 | label_57:
    0x000073c2 ldr r3, [pc, 0x344]                               |     
    0x000073c4 rsbs r0, r4, 0                                    |     r0 = r4 - ;
    0x000073c6 add r3, pc                                        |     
    0x000073c8 ldr r3, [r3]                                      |     r3 = *(0xead4);
    0x000073ca ldr r4, [r3]                                      |     r4 = *(0xead4);
    0x000073cc blx 0x1b18                                        |     system (r0);
    0x000073d0 ldr r1, [pc, 0x338]                               |     
    0x000073d2 mov r3, r0                                        |     r3 = r0;
    0x000073d4 mov r2, r4                                        |     r2 = r4;
    0x000073d6 movs r0, 3                                        |     r0 = 3;
    0x000073d8 add r1, pc                                        |     r1 = 0xeae8;
    0x000073da bl 0x85e4                                         |     r0 = fcn_000085e4 (r0);
    0x000073de blx 0x1be4                                        |     r0 = isoc99_sscanf ();
    0x000073e2 ldr r4, [r0]                                      |     r4 = *(r0);
    0x000073e4 rsbs r4, r4, 0                                    |     r4 -= ;
    0x000073e6 b 0x6efe                                          |     goto label_52;
                                                                 | label_143:
    0x000073e8 ldr r1, [sp, 0x3c]                                |     r1 = var_3ch;
    0x000073ea ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x000073ec blx 0x1ad0                                        |     r0 = fstatat64 ();
    0x000073f0 subs.w sl, r0, 0                                  |     sl = r0 - 0;
                                                                 |     if (sl >= r0) {
    0x000073f4 bge.w 0x6dd2                                      |         goto label_53;
                                                                 |     }
    0x000073f8 blx 0x1be4                                        |     isoc99_sscanf ();
    0x000073fc ldr r1, [pc, 0x310]                               |     
    0x000073fe ldr r4, [r0]                                      |     r4 = *(r0);
    0x00007400 movs r0, 2                                        |     r0 = 2;
    0x00007402 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00007404 add r1, pc                                        |     r1 = 0xeb18;
    0x00007406 cmp r4, 0                                         |     
    0x00007408 ite le                                            |     
                                                                 |     if (r4 > 0) {
    0x0000740a movle r4, 0                                       |         r4 = 0;
                                                                 |     }
                                                                 |     if (r4 <= 0) {
    0x0000740c movgt r4, 1                                       |         r4 = 1;
                                                                 |     }
    0x0000740e bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00007412 b.w 0x62da                                        |     goto label_35;
                                                                 | label_156:
    0x00007416 ldrd r8, r0, [sp, 0x38]                           |     __asm ("ldrd r8, r0, [var_38h]");
    0x0000741a ldr.w fp, [sp, 0x30]                              |     fp = var_30h;
    0x0000741e bl 0x91d4                                         |     fcn_000091d4 (r0);
    0x00007422 ldr r1, [pc, 0x2f0]                               |     
    0x00007424 mov r2, r0                                        |     r2 = r0;
    0x00007426 movs r0, 3                                        |     r0 = 3;
    0x00007428 add r1, pc                                        |     r1 = 0xeb42;
    0x0000742a bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000742e b 0x72e8                                          |     goto label_54;
                                                                 | label_153:
    0x00007430 ldr r1, [pc, 0x2e4]                               |     
    0x00007432 str r0, [sp, 0x2c]                                |     var_2ch = r0;
    0x00007434 movs r0, 3                                        |     r0 = 3;
    0x00007436 str.w sb, [sp, 0x1c]                              |     __asm ("str.w sb, [var_1ch]");
    0x0000743a add r1, pc                                        |     r1 = 0xeb56;
    0x0000743c bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00007440 b 0x72ee                                          |     goto label_55;
                                                                 | label_141:
    0x00007442 ldr r3, [pc, 0x2d8]                               |     
    0x00007444 movw r2, 0x785                                    |     r2 = 0x785;
    0x00007448 ldr r1, [pc, 0x2d4]                               |     
    0x0000744a ldr r0, [pc, 0x2d8]                               |     
    0x0000744c add r3, pc                                        |     r3 = 0xeb6e;
    0x0000744e add r1, pc                                        |     r1 = 0xeb72;
    0x00007450 add r0, pc                                        |     r0 = 0xeb7a;
    0x00007452 blx 0x1de0                                        |     fcn_00001de0 ();
                                                                 | label_77:
    0x00007456 blx 0x1a1c                                        |     stat64 ();
                                                                 | label_166:
    0x0000745a mov r3, sb                                        |     r3 = sb;
    0x0000745c mov sb, r4                                        |     sb = r4;
    0x0000745e mov r4, r8                                        |     r4 = r8;
    0x00007460 mov r8, r3                                        |     r8 = r3;
                                                                 | label_58:
    0x00007462 ldr.w r3, [r8, 4]                                 |     r3 = *((r8 + 4));
    0x00007466 movs r5, 0                                        |     r5 = 0;
    0x00007468 ldr r0, [r3, 0x2c]                                |     r0 = *((r3 + 0x2c));
    0x0000746a add r0, r7                                        |     r0 += r7;
    0x0000746c add.w r0, r0, sb, lsl 2                           |     r0 += (sb << 2);
    0x0000746e lsls r1, r1, 2                                    |     r1 <<= 2;
    0x00007470 blx 0x1b0c                                        |     strerror (r0);
    0x00007474 ldr r3, [sp, 0x20]                                |     r3 = stream;
    0x00007476 mov r6, r0                                        |     r6 = r0;
    0x00007478 subw sb, r3, 0xa18                                |     __asm ("subw sb, r3, 0xa18");
    0x0000747c ldr.w r7, [sb, 4]                                 |     r7 = *((sb + 4));
    0x00007480 subs r7, 1                                        |     r7--;
                                                                 |     if (r7 < 1) {
    0x00007482 bmi 0x74c6                                        |         goto label_168;
                                                                 |     }
    0x00007484 mov fp, r8                                        |     
    0x00007486 mov r8, r4                                        |     r8 = r4;
                                                                 |     do {
    0x00007488 ldr.w r2, [sb]                                    |         r2 = *(sb);
    0x0000748c adds r0, r6, r5                                   |         r0 = r6 + r5;
    0x0000748e ldr.w r4, [r2, r7, lsl 2]                         |         offset_11 = r7 << 2;
                                                                 |         r4 = *((r2 + offset_11));
    0x00007492 subs r7, 1                                        |         r7--;
    0x00007494 ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x00007496 ldr r2, [r1, 0x2c]                                |         r2 = *((r1 + 0x2c));
    0x00007498 adds r1, 0x44                                     |         r1 += 0x44;
    0x0000749a subs r2, 1                                        |         r2--;
    0x0000749c str r2, [sp, 0x54]                                |         var_54h = r2;
    0x0000749e blx 0x19c8                                        |         mmap64 ();
    0x000074a2 ldr r3, [sp, 0x44]                                |         r3 = var_44h;
    0x000074a4 ldr r2, [sp, 0x54]                                |         r2 = var_54h;
    0x000074a6 ldr r0, [r3]                                      |         r0 = *(r3);
    0x000074a8 add r2, r5                                        |         r2 += r5;
    0x000074aa ldrb r5, [r3, 4]                                  |         r5 = *((r3 + 4));
    0x000074ac adds r1, r6, r2                                   |         r1 = r6 + r2;
    0x000074ae str r0, [r6, r2]                                  |         *((r6 + r2)) = r0;
    0x000074b0 strb r5, [r1, 4]                                  |         *((r1 + 4)) = r5;
    0x000074b2 adds r5, r2, 4                                    |         r5 = r2 + 4;
    0x000074b4 ldr r0, [sp, 0x1c]                                |         r0 = var_1ch;
    0x000074b6 ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x000074b8 bl 0xa454                                         |         fcn_0000a454 (r0, r1);
    0x000074bc str r0, [sp, 0x1c]                                |         var_1ch = r0;
    0x000074be adds r0, r7, 1                                    |         r0 = r7 + 1;
    0x000074c0 bne 0x7488                                        |         
                                                                 |     } while (r0 != r7);
    0x000074c2 mov r4, r8                                        |     r4 = r8;
    0x000074c4 mov r8, fp                                        |     r8 = fp;
                                                                 | label_168:
    0x000074c6 ldr.w r1, [r8, 4]                                 |     r1 = *((r8 + 4));
    0x000074ca adds r0, r6, r5                                   |     r0 = r6 + r5;
    0x000074cc ldr r5, [sp, 0x28]                                |     r5 = var_28h;
    0x000074ce adds r1, 0x44                                     |     r1 += 0x44;
    0x000074d0 blx 0x1a7c                                        |     gettimeofday ();
    0x000074d4 ldr r1, [pc, 0x250]                               |     
    0x000074d6 mov r2, r6                                        |     r2 = r6;
    0x000074d8 movs r0, 3                                        |     r0 = 3;
    0x000074da add r1, pc                                        |     r1 = 0xec06;
    0x000074dc bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x000074e0 mov r0, r6                                        |     r0 = r6;
    0x000074e2 blx 0x19a0                                        |     fcn_000019a0 ();
    0x000074e6 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x000074e8 bl 0x8bf4                                         |     fcn_00008bf4 (r0);
    0x000074ec b 0x7316                                          |     goto label_56;
                                                                 | label_167:
    0x000074ee ldr r1, [pc, 0x23c]                               |     
    0x000074f0 mov r3, r6                                        |     r3 = r6;
    0x000074f2 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x000074f4 movs r0, 3                                        |     r0 = 3;
    0x000074f6 add r1, pc                                        |     r1 = 0xec28;
    0x000074f8 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x000074fc b 0x73c2                                          |     goto label_57;
                                                                 | label_146:
    0x000074fe ldr r1, [pc, 0x230]                               |     
    0x00007500 mov r2, r4                                        |     r2 = r4;
    0x00007502 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00007504 movs r0, 3                                        |     r0 = 3;
    0x00007506 str r6, [sp]                                      |     *(sp) = r6;
    0x00007508 add r1, pc                                        |     r1 = 0xec3e;
    0x0000750a bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000750e mov r0, r4                                        |     r0 = r4;
    0x00007510 blx 0x1dbc                                        |     fcn_00001dbc ();
    0x00007514 b 0x6e14                                          |     goto label_45;
                                                                 | label_122:
    0x00007516 ldr r1, [pc, 0x21c]                               |     
    0x00007518 mov r2, r5                                        |     r2 = r5;
    0x0000751a movs r0, 3                                        |     r0 = 3;
    0x0000751c add r1, pc                                        |     r1 = 0xec56;
    0x0000751e bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00007522 b.w 0x6780                                        |     goto label_27;
                                                                 | label_165:
    0x00007526 mov sb, r6                                        |     sb = r6;
    0x00007528 mov r7, r6                                        |     r7 = r6;
    0x0000752a b 0x7462                                          |     goto label_58;
                                                                 | label_102:
    0x0000752c blx 0x1be4                                        |     isoc99_sscanf ();
    0x00007530 ldr r1, [pc, 0x204]                               |     
    0x00007532 ldr r6, [r0]                                      |     r6 = *(r0);
    0x00007534 movs r0, 7                                        |     r0 = 7;
    0x00007536 ldr r2, [sp, 0x40]                                |     r2 = var_40h;
    0x00007538 add r1, pc                                        |     r1 = 0xec74;
    0x0000753a bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000753e cmp r6, 0                                         |     
                                                                 |     if (r6 <= 0) {
    0x00007540 ble.w 0x6224                                      |         goto label_16;
                                                                 |     }
    0x00007544 mov r0, r6                                        |     r0 = r6;
    0x00007546 blx 0x1b18                                        |     system (r0);
    0x0000754a ldr r1, [pc, 0x1f0]                               |     
    0x0000754c mov r3, r0                                        |     r3 = r0;
    0x0000754e ldr r2, [sp, 0x40]                                |     r2 = var_40h;
    0x00007550 movs r0, 2                                        |     r0 = 2;
    0x00007552 add r1, pc                                        |     r1 = 0xec94;
    0x00007554 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00007558 b.w 0x5e46                                        |     goto label_11;
                                                                 | label_131:
    0x0000755c ldr r1, [pc, 0x1e0]                               |     
    0x0000755e movs r0, 3                                        |     r0 = 3;
    0x00007560 add r1, pc                                        |     r1 = 0xeca4;
    0x00007562 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00007566 b.w 0x6538                                        |     goto label_28;
                                                                 | label_93:
    0x0000756a blx 0x1be4                                        |     isoc99_sscanf ();
    0x0000756e ldr r1, [pc, 0x1d4]                               |     
    0x00007570 ldr r6, [r0]                                      |     r6 = *(r0);
    0x00007572 movs r0, 7                                        |     r0 = 7;
    0x00007574 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x00007576 add r1, pc                                        |     r1 = 0xecc0;
    0x00007578 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000757c cmp r6, 0                                         |     
                                                                 |     if (r6 <= 0) {
    0x0000757e ble.w 0x6224                                      |         goto label_16;
                                                                 |     }
    0x00007582 mov r0, r6                                        |     r0 = r6;
    0x00007584 blx 0x1b18                                        |     system (r0);
    0x00007588 ldr r1, [pc, 0x1bc]                               |     
    0x0000758a mov r3, r0                                        |     r3 = r0;
    0x0000758c ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x0000758e movs r0, 2                                        |     r0 = 2;
    0x00007590 add r1, pc                                        |     r1 = 0xecdc;
    0x00007592 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x00007596 b.w 0x5e46                                        |     goto label_11;
                                                                 | label_162:
    0x0000759a ldr r1, [pc, 0x1b0]                               |     
    0x0000759c movs r0, 3                                        |     r0 = 3;
    0x0000759e mvn r5, 0xb                                       |     r5 = ~0xb;
    0x000075a2 add r1, pc                                        |     r1 = 0xecf4;
    0x000075a4 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x000075a8 b 0x72c8                                          |     goto label_50;
                                                                 | label_161:
    0x000075aa ldr r5, [sp, 0x28]                                |     r5 = var_28h;
    0x000075ac b 0x7316                                          |     goto label_56;
                                                                 | label_158:
    0x000075ae ldr r1, [pc, 0x1a0]                               |     
    0x000075b0 movs r0, 3                                        |     r0 = 3;
    0x000075b2 ldr.w fp, [sp, 0x30]                              |     fp = var_30h;
    0x000075b6 ldr.w r8, [sp, 0x38]                              |     r8 = var_38h;
    0x000075ba add r1, pc                                        |     r1 = 0xed10;
    0x000075bc bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x000075c0 b 0x72e8                                          |     goto label_54;
                                                                 | label_157:
    0x000075c2 ldr r1, [pc, 0x190]                               |     
    0x000075c4 movs r0, 3                                        |     r0 = 3;
    0x000075c6 ldr.w fp, [sp, 0x30]                              |     fp = var_30h;
    0x000075ca ldr.w r8, [sp, 0x38]                              |     r8 = var_38h;
    0x000075ce add r1, pc                                        |     r1 = 0xed28;
    0x000075d0 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x000075d4 b 0x72e8                                          |     goto label_54;
                                                                 | label_137:
    0x000075d6 ldr r3, [pc, 0x180]                               |     
    0x000075d8 mov.w r2, 0x768                                   |     r2 = 0x768;
    0x000075dc ldr r1, [pc, 0x17c]                               |     
    0x000075de ldr r0, [pc, 0x180]                               |     
    0x000075e0 add r3, pc                                        |     r3 = 0xed3e;
    0x000075e2 add r1, pc                                        |     r1 = 0xed42;
    0x000075e4 add r0, pc                                        |     r0 = 0xed4a;
    0x000075e6 blx 0x1de0                                        |     fcn_00001de0 ();
                                                                 | label_80:
    0x000075ea ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x000075ec movs r1, 1                                        |     r1 = 1;
    0x000075ee ldr r3, [pc, 0x174]                               |     
    0x000075f0 ldr r0, [pc, 0x174]                               |     
    0x000075f2 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000075f4 movs r2, 0x15                                     |     r2 = 0x15;
    0x000075f6 add r0, pc                                        |     r0 = 0xed62;
    0x000075f8 ldr r3, [r3]                                      |     r3 = *(0x7766);
    0x000075fa blx 0x1a58                                        |     lseek64 ();
    0x000075fe b.w 0x5e46                                        |     goto label_11;
                                                                 | label_106:
    0x00007602 ldr r1, [pc, 0x168]                               |     
    0x00007604 movs r0, 3                                        |     r0 = 3;
    0x00007606 ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00007608 add r1, pc                                        |     r1 = 0xed7a;
    0x0000760a bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000760e b.w 0x6554                                        |     goto label_59;
                                                                 | label_129:
    0x00007612 ldr r1, [pc, 0x15c]                               |     
    0x00007614 movs r0, 3                                        |     r0 = 3;
    0x00007616 add r1, pc                                        |     r1 = 0xed8c;
    0x00007618 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000761c b.w 0x6538                                        |     goto label_28;
                                                                 | label_163:
    0x00007620 ldr r3, [pc, 0x150]                               |     
    0x00007622 movw r2, 0x701                                    |     r2 = 0x701;
    0x00007626 ldr r1, [pc, 0x150]                               |     
    0x00007628 ldr r0, [pc, 0x150]                               |     
    0x0000762a add r3, pc                                        |     r3 = 0xeda2;
    0x0000762c add r1, pc                                        |     r1 = 0xedaa;
    0x0000762e add r0, pc                                        |     r0 = 0xedae;
    0x00007630 blx 0x1de0                                        |     fcn_00001de0 ();
                                                                 | label_154:
    0x00007634 ldr r1, [pc, 0x148]                               |     
    0x00007636 movs r0, 3                                        |     r0 = 3;
    0x00007638 add r1, pc                                        |     r1 = 0xedbc;
    0x0000763a bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000763e b 0x72ee                                          |     goto label_55;
                                                                 | label_155:
    0x00007640 ldr r1, [pc, 0x140]                               |     
    0x00007642 movs r0, 3                                        |     r0 = 3;
    0x00007644 add r1, pc                                        |     r1 = 0xedcc;
    0x00007646 bl 0x85e4                                         |     fcn_000085e4 (r0);
    0x0000764a b 0x72ee                                          |     goto label_55;
                                                                 | label_152:
    0x0000764c str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0000764e b 0x71c6                                          |     goto label_60;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/kmod @ 0xa8a8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0000a8a8 ()                                          | void fcn_0000a8a8 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                     |     int16_t var_bp_c8h;
                                                                     |     int16_t var_bp_60h;
                                                                     |     int16_t var_4h;
                                                                     |     int32_t var_0h_2;
                                                                     |     int32_t var_0h_3;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_10h;
                                                                     |     int32_t var_10h_2;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_30h;
                                                                     |     int16_t var_34h;
                                                                     |     int16_t var_38h;
                                                                     |     int16_t var_3ch;
                                                                     |     int16_t var_40h;
                                                                     |     int16_t var_44h;
                                                                     |     int16_t var_48h;
                                                                     |     int16_t errnum;
                                                                     |     int16_t var_50h;
                                                                     |     int16_t var_54h;
                                                                     |     int16_t var_5ch;
                                                                     |     size_t size;
                                                                     |     int16_t var_c8h;
                                                                     |     int16_t var_138h;
                                                                     |     int16_t var_1120h;
                                                                     |     int32_t var_0h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
    0x0000a8a8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0000a8ac mov sb, r2                                            |     sb = r2;
    0x0000a8ae ldr.w r2, [pc, 0xa04]                                 |     r2 = *(0x0000b2b4);
    0x0000a8b2 sub.w sp, sp, 0x1120                                  |     
    0x0000a8b6 sub sp, 0x1c                                          |     
    0x0000a8b8 movs r7, 0                                            |     r7 = 0;
    0x0000a8ba ldr.w r3, [pc, 0x9fc]                                 |     
    0x0000a8be add.w fp, sp, 0x138                                   |     
    0x0000a8c2 add r2, pc                                            |     r2 += pc;
    0x0000a8c4 strd r0, r1, [sp, 0x2c]                               |     __asm ("strd r0, r1, [var_30h]");
    0x0000a8c8 add.w r1, sp, 0x1120                                  |     r1 += var_1120h;
    0x0000a8cc add.w r8, sp, 0x5c                                    |     r8 += var_5ch;
    0x0000a8d0 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0000a8d2 adds r1, 0x14                                         |     r1 += 0x14;
    0x0000a8d4 ldr r3, [r3]                                          |     r3 = *(0xb2ba);
    0x0000a8d6 str r3, [r1]                                          |     *(r1) = r3;
    0x0000a8d8 mov.w r3, 0                                           |     r3 = 0;
    0x0000a8dc str r7, [fp, -0xdc]                                   |     var_5ch = r7;
    0x0000a8e0 bl 0x9af8                                             |     fcn_00009af8 (r0);
    0x0000a8e4 ldr.w r2, [pc, 0x9d4]                                 |     
    0x0000a8e8 mov r1, r0                                            |     r1 = r0;
    0x0000a8ea mov r0, r8                                            |     r0 = r8;
    0x0000a8ec add r2, pc                                            |     r2 = 0x15bac;
    0x0000a8ee bl 0xa610                                             |     fcn_0000a610 (r0, r1, r2);
    0x0000a8f2 ldr.w r5, [sb]                                        |     r5 = *(sb);
    0x0000a8f6 cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0000a8f8 beq.w 0xb290                                          |         goto label_18;
                                                                     |     }
    0x0000a8fc ldr.w r3, [pc, 0x9c0]                                 |     
    0x0000a900 add.w sl, sp, 0x60                                    |     sl += size;
    0x0000a904 str r7, [sp, 0x18]                                    |     var_18h = r7;
    0x0000a906 add r3, pc                                            |     r3 = 0x15bca;
    0x0000a908 str r3, [sp, 0x28]                                    |     var_28h = r3;
    0x0000a90a ldr.w r3, [pc, 0x9b8]                                 |     
    0x0000a90e add r3, pc                                            |     r3 = 0x15bd8;
    0x0000a910 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0000a912 b 0xa928                                              |     
                                                                     |     while (r0 != 0) {
    0x0000a914 blx 0x1be4                                            |         r0 = isoc99_sscanf ();
    0x0000a918 ldr r3, [r0]                                          |         r3 = *(r0);
    0x0000a91a cmp r3, 0                                             |         
                                                                     |         if (r3 <= 0) {
    0x0000a91c ble.w 0xabfa                                          |             goto label_19;
                                                                     |         }
                                                                     | label_3:
    0x0000a920 ldr r5, [sb, 4]!                                      |         r5 = *((sb += 4));
    0x0000a924 cmp r5, 0                                             |         
                                                                     |         if (r5 == 0) {
    0x0000a926 beq 0xa99a                                            |             goto label_20;
                                                                     |         }
                                                                     | label_0:
    0x0000a928 mov r1, sl                                            |         r1 = sl;
    0x0000a92a mov r0, r5                                            |         r0 = r5;
    0x0000a92c blx 0x1a28                                            |         r0 = realloc (r0, r1);
    0x0000a930 mov r4, r0                                            |         r4 = r0;
    0x0000a932 cmp r0, 0                                             |         
    0x0000a934 bne 0xa914                                            |         
                                                                     |     }
    0x0000a936 mov r0, sl                                            |     r0 = sl;
    0x0000a938 bl 0x97d0                                             |     fcn_000097d0 (r0);
    0x0000a93c ldr r3, [fp, -0xc8]                                   |     r3 = var_bp_c8h;
    0x0000a940 strd r0, r1, [sp, 0x10]                               |     __asm ("strd r0, r1, [var_10h]");
    0x0000a944 and r3, r3, 0xf000                                    |     r3 &= 0xf000;
    0x0000a948 cmp.w r3, 0x4000                                      |     
                                                                     |     if (r3 == 0x4000) {
    0x0000a94c beq.w 0xab66                                          |         goto label_21;
                                                                     |     }
    0x0000a950 mov r2, r4                                            |     r2 = r4;
    0x0000a952 mov r1, r5                                            |     r1 = r5;
    0x0000a954 mov r0, r8                                            |     r0 = r8;
    0x0000a956 bl 0xa610                                             |     fcn_0000a610 (r0, r1, r2);
                                                                     | label_4:
    0x0000a95a mov r0, r5                                            |     r0 = r5;
    0x0000a95c blx 0x1bb0                                            |     r0 = fcn_00001bb0 ();
    0x0000a960 mov r2, r0                                            |     r2 = r0;
    0x0000a962 adds r0, 9                                            |     r0 += 9;
    0x0000a964 adds r6, r2, 1                                        |     r6 = r2 + 1;
    0x0000a966 blx 0x1b0c                                            |     r0 = strerror (r0);
    0x0000a96a mov r4, r0                                            |     r4 = r0;
    0x0000a96c cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000a96e beq.w 0xb296                                          |         goto label_22;
                                                                     |     }
    0x0000a972 mov r1, r5                                            |     r1 = r5;
    0x0000a974 mov r2, r6                                            |     r2 = r6;
    0x0000a976 ldrd r5, r6, [sp, 0x10]                               |     __asm ("ldrd r5, r6, [var_10h]");
    0x0000a97a strd r5, r6, [r0], 8                                  |     __asm ("strd r5, r6, [r0], 8");
    0x0000a97e blx 0x19c8                                            |     mmap64 ();
    0x0000a982 ldr r0, [sp, 0x18]                                    |     r0 = var_18h;
    0x0000a984 mov r1, r4                                            |     r1 = r4;
    0x0000a986 bl 0xa350                                             |     r0 = fcn_0000a350 (r0, r1);
    0x0000a98a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000a98c beq.w 0xaf92                                          |         goto label_23;
                                                                     |     }
    0x0000a990 ldr r5, [sb, 4]!                                      |     r5 = *((sb += 4));
    0x0000a994 str r0, [sp, 0x18]                                    |     var_18h = r0;
    0x0000a996 cmp r5, 0                                             |     
                                                                     |     if (r5 != 0) {
    0x0000a998 bne 0xa928                                            |         goto label_0;
                                                                     |     }
                                                                     | label_20:
    0x0000a99a ldr r7, [sp, 0x18]                                    |     r7 = var_18h;
                                                                     | label_16:
    0x0000a99c movs r1, 0x20                                         |     r1 = 0x20;
    0x0000a99e movs r0, 1                                            |     r0 = 1;
    0x0000a9a0 blx 0x18d8                                            |     calloc (r0, r1);
    0x0000a9a4 ldr r2, [sp, 0x30]                                    |     r2 = var_30h;
    0x0000a9a6 str r0, [sp, 0x24]                                    |     var_24h = r0;
    0x0000a9a8 str r0, [r2]                                          |     *(r2) = r0;
    0x0000a9aa ldr r2, [fp, -0xdc]                                   |     r2 = var_5ch;
    0x0000a9ae str r2, [sp, 0x10]                                    |     var_10h = r2;
    0x0000a9b0 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000a9b2 beq.w 0xaf9a                                          |         goto label_17;
                                                                     |     }
    0x0000a9b6 ldr r1, [sp, 0x2c]                                    |     r1 = var_2ch;
    0x0000a9b8 str r7, [r0, 0x1c]                                    |     *((r0 + 0x1c)) = r7;
    0x0000a9ba str r1, [r0]                                          |     *(r0) = r1;
    0x0000a9bc cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0000a9be beq.w 0xacf0                                          |         goto label_24;
                                                                     |     }
    0x0000a9c2 ldr.w r3, [pc, 0x904]                                 |     
    0x0000a9c6 str.w fp, [sp, 0x1c]                                  |     __asm ("str.w fp, [var_1ch]");
    0x0000a9ca add r3, pc                                            |     r3 = 0x15c98;
    0x0000a9cc str r3, [sp, 0x38]                                    |     var_38h = r3;
    0x0000a9ce ldr.w r3, [pc, 0x8fc]                                 |     
    0x0000a9d2 add r3, pc                                            |     r3 = 0x15ca4;
    0x0000a9d4 str r3, [sp, 0x3c]                                    |     var_3ch = r3;
    0x0000a9d6 b 0xa9f2                                              |     
                                                                     |     while (r4 < r0) {
                                                                     | label_5:
    0x0000a9d8 ldr r0, [sp, 0x18]                                    |         r0 = var_18h;
    0x0000a9da blx 0x19a0                                            |         fcn_000019a0 ();
    0x0000a9de ldr r0, [sp, 0x10]                                    |         r0 = var_10h;
    0x0000a9e0 bl 0xa3ec                                             |         fcn_0000a3ec (r0);
    0x0000a9e4 ldr r2, [sp, 0x1c]                                    |         r2 = var_1ch;
    0x0000a9e6 str r0, [sp, 0x10]                                    |         var_10h = r0;
    0x0000a9e8 str r0, [r2, -0xdc]                                   |         *((r2 - 0xdc)) = r0;
    0x0000a9ec cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0000a9ee beq.w 0xacee                                          |             goto label_25;
                                                                     |         }
    0x0000a9f2 ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0000a9f4 ldr r2, [r3, 8]                                       |         r2 = *((r3 + 8));
    0x0000a9f6 ldrb r3, [r2, 4]                                      |         r3 = *((r2 + 4));
    0x0000a9f8 ldr r0, [r2]                                          |         r0 = *(r2);
    0x0000a9fa str r2, [sp, 0x18]                                    |         var_18h = r2;
    0x0000a9fc cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x0000a9fe beq.w 0xac0c                                          |             goto label_26;
                                                                     |         }
                                                                     | label_6:
    0x0000aa02 mov.w r1, 0x80000                                     |         r1 = 0x80000;
    0x0000aa06 blx 0x1ad0                                            |         r0 = fstatat64 ();
    0x0000aa0a subs r4, r0, 0                                        |         r4 = r0 - 0;
    0x0000aa0c blt 0xa9d8                                            |         
                                                                     |     }
    0x0000aa0e ldr r2, [sp, 0x1c]                                    |     r2 = var_1ch;
    0x0000aa10 movs r3, 0                                            |     r3 = 0;
    0x0000aa12 ldr.w r1, [pc, 0x8bc]                                 |     
    0x0000aa16 str r3, [r2, -0xd8]                                   |     *((r2 - 0xd8)) = r3;
    0x0000aa1a add r1, pc                                            |     r1 = 0x15cf0;
    0x0000aa1c blx 0x18cc                                            |     r0 = fdopen ();
    0x0000aa20 mov sb, r0                                            |     sb = r0;
    0x0000aa22 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000aa24 beq.w 0xb29a                                          |         goto label_27;
                                                                     |     }
    0x0000aa28 ldr.w r3, [pc, 0x8a8]                                 |     
    0x0000aa2c add.w sl, sp, 0x60                                    |     sl += size;
    0x0000aa30 ldr.w fp, [pc, 0x8a4]                                 |     
    0x0000aa34 add r3, pc                                            |     r3 = 0x15d0c;
    0x0000aa36 add fp, pc                                            |     fp = 0x15d12;
    0x0000aa38 str r3, [sp, 0x20]                                    |     var_20h = r3;
    0x0000aa3a b 0xaaa6                                              |     goto label_28;
                                                                     | label_2:
    0x0000aa3c ldr.w r1, [pc, 0x89c]                                 |     
    0x0000aa40 mov r0, r6                                            |     r0 = r6;
    0x0000aa42 add r1, pc                                            |     r1 = 0x15d22;
    0x0000aa44 blx 0x1924                                            |     r0 = fcn_00001924 ();
    0x0000aa48 mov r5, r0                                            |     r5 = r0;
    0x0000aa4a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000aa4c beq.w 0xac3c                                          |         goto label_29;
                                                                     |     }
    0x0000aa50 ldr.w r1, [pc, 0x88c]                                 |     
    0x0000aa54 mov r0, r6                                            |     r0 = r6;
    0x0000aa56 add r1, pc                                            |     r1 = 0x15d3a;
    0x0000aa58 blx 0x1924                                            |     r0 = fcn_00001924 ();
    0x0000aa5c mov r5, r0                                            |     r5 = r0;
    0x0000aa5e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000aa60 beq.w 0xac72                                          |         goto label_30;
                                                                     |     }
    0x0000aa64 ldr.w r1, [pc, 0x87c]                                 |     
    0x0000aa68 mov r0, r6                                            |     r0 = r6;
    0x0000aa6a add r1, pc                                            |     r1 = 0x15d52;
    0x0000aa6c blx 0x1924                                            |     r0 = fcn_00001924 ();
    0x0000aa70 mov r5, r0                                            |     r5 = r0;
    0x0000aa72 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000aa74 beq.w 0xacae                                          |         goto label_31;
                                                                     |     }
    0x0000aa78 ldr.w r1, [pc, 0x86c]                                 |     
    0x0000aa7c mov r0, r6                                            |     r0 = r6;
    0x0000aa7e add r1, pc                                            |     r1 = 0x15d6a;
    0x0000aa80 blx 0x1924                                            |     r0 = fcn_00001924 ();
    0x0000aa84 mov r5, r0                                            |     r5 = r0;
    0x0000aa86 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000aa88 beq.w 0xaf54                                          |         goto label_32;
                                                                     |     }
    0x0000aa8c ldr.w r1, [pc, 0x85c]                                 |     
    0x0000aa90 mov r0, r6                                            |     r0 = r6;
    0x0000aa92 add r1, pc                                            |     r1 = 0x15d82;
    0x0000aa94 blx 0x1924                                            |     r0 = fcn_00001924 ();
    0x0000aa98 mov r5, r0                                            |     r5 = r0;
    0x0000aa9a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000aa9c beq.w 0xafd0                                          |         goto label_33;
                                                                     |     }
                                                                     |     do {
                                                                     | label_1:
    0x0000aaa0 mov r0, r4                                            |         r0 = r4;
    0x0000aaa2 blx 0x19a0                                            |         fcn_000019a0 ();
                                                                     | label_28:
    0x0000aaa6 mov r1, sl                                            |         r1 = sl;
    0x0000aaa8 mov r0, sb                                            |         r0 = sb;
    0x0000aaaa bl 0x9550                                             |         r0 = fcn_00009550 (r0, r1);
    0x0000aaae mov r4, r0                                            |         r4 = r0;
    0x0000aab0 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0000aab2 beq.w 0xac04                                          |             goto label_34;
                                                                     |         }
    0x0000aab6 ldrb r3, [r4]                                         |         r3 = *(r4);
    0x0000aab8 cmp r3, 0x23                                          |         
    0x0000aaba it ne                                                 |         
                                                                     |         if (r3 != 0x23) {
    0x0000aabc cmpne r3, 0                                           |             __asm ("cmpne r3, 0");
                                                                     |         }
    0x0000aabe beq 0xaaa0                                            |         
                                                                     |     } while (r3 == 0x23);
    0x0000aac0 add r7, sp, 0xc8                                      |     r7 += var_c8h;
    0x0000aac2 mov r1, fp                                            |     r1 = fp;
    0x0000aac4 mov r2, r7                                            |     r2 = r7;
    0x0000aac6 blx 0x1aac                                            |     r0 = opendir ();
    0x0000aaca mov r6, r0                                            |     r6 = r0;
    0x0000aacc cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000aace beq 0xaaa0                                            |         goto label_1;
                                                                     |     }
    0x0000aad0 ldr r1, [sp, 0x20]                                    |     r1 = var_20h;
    0x0000aad2 blx 0x1924                                            |     r0 = fcn_00001924 ();
    0x0000aad6 mov r5, r0                                            |     r5 = r0;
    0x0000aad8 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000aada bne 0xaa3c                                            |         goto label_2;
                                                                     |     }
    0x0000aadc mov r2, r7                                            |     r2 = r7;
    0x0000aade mov r1, fp                                            |     r1 = fp;
    0x0000aae0 blx 0x1aac                                            |     opendir ();
    0x0000aae4 mov r2, r7                                            |     r2 = r7;
    0x0000aae6 mov r6, r0                                            |     r6 = r0;
    0x0000aae8 mov r1, fp                                            |     r1 = fp;
    0x0000aaea mov r0, r5                                            |     r0 = r5;
    0x0000aaec blx 0x1aac                                            |     r0 = opendir ();
    0x0000aaf0 mov r7, r0                                            |     r7 = r0;
    0x0000aaf2 mov r0, r6                                            |     r0 = r6;
    0x0000aaf4 bl 0x9344                                             |     r0 = fcn_00009344 (r0);
    0x0000aaf8 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0000aafa blt 0xaaa0                                            |         goto label_1;
                                                                     |     }
    0x0000aafc mov r0, r7                                            |     r0 = r7;
    0x0000aafe bl 0x9344                                             |     r0 = fcn_00009344 (r0);
    0x0000ab02 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0000ab04 blt 0xaaa0                                            |         goto label_1;
                                                                     |     }
    0x0000ab06 mov r0, r6                                            |     r0 = r6;
    0x0000ab08 blx 0x1bb0                                            |     r0 = fcn_00001bb0 ();
    0x0000ab0c adds r3, r0, 1                                        |     r3 = r0 + 1;
    0x0000ab0e mov r0, r7                                            |     r0 = r7;
    0x0000ab10 str r3, [sp, 0x28]                                    |     var_28h = r3;
    0x0000ab12 blx 0x1bb0                                            |     fcn_00001bb0 ();
    0x0000ab14 strex fp, sb, [lr, 0x28]                              |     __asm ("strex fp, sb, [lr, 0x28]");
    0x0000ab18 adds r2, r0, 1                                        |     r2 = r0 + 1;
    0x0000ab1a mov r8, r0                                            |     r8 = r0;
    0x0000ab1c str r2, [sp, 0x2c]                                    |     var_2ch = r2;
    0x0000ab1e adds r0, r3, r2                                       |     r0 = r3 + r2;
    0x0000ab20 adds r0, 4                                            |     r0 += 4;
    0x0000ab22 blx 0x1b0c                                            |     r0 = strerror (r0);
    0x0000ab26 mov r3, r0                                            |     r3 = r0;
                                                                     |     if (r0 != 0) {
    0x0000ab28 cbz r0, 0xab5e                                        |         
    0x0000ab2a add.w r8, r8, 5                                       |         r8 += 5;
    0x0000ab2e ldr r2, [sp, 0x2c]                                    |         r2 = var_2ch;
    0x0000ab30 add r8, r0                                            |         r8 += r0;
    0x0000ab32 mov r1, r7                                            |         r1 = r7;
    0x0000ab34 str r0, [sp, 0x2c]                                    |         var_2ch = r0;
    0x0000ab36 str r8, [r0], 4                                       |         *(r0) = r8;
                                                                     |         r0 += 4;
    0x0000ab3a blx 0x19c8                                            |         mmap64 ();
    0x0000ab3e mov r1, r6                                            |         r1 = r6;
    0x0000ab40 ldr r2, [sp, 0x28]                                    |         r2 = var_28h;
    0x0000ab42 mov r0, r8                                            |         r0 = r8;
    0x0000ab44 blx 0x19c8                                            |         mmap64 ();
    0x0000ab48 ldr r3, [sp, 0x2c]                                    |         r3 = var_2ch;
    0x0000ab4a ldr r6, [sp, 0x24]                                    |         r6 = var_24h;
    0x0000ab4c mov r1, r3                                            |         r1 = r3;
    0x0000ab4e str r3, [sp, 0x28]                                    |         var_28h = r3;
    0x0000ab50 ldr r0, [r6, 4]                                       |         r0 = *((r6 + 4));
    0x0000ab52 bl 0xa350                                             |         fcn_0000a350 (r0, r1);
    0x0000ab56 ldr r3, [sp, 0x28]                                    |         r3 = var_28h;
                                                                     |         if (r0 == 0) {
    0x0000ab58 cbz r0, 0xab5e                                        |             goto label_35;
                                                                     |         }
    0x0000ab5a mov r3, r5                                            |         r3 = r5;
    0x0000ab5c str r0, [r6, 4]                                       |         *((r6 + 4)) = r0;
                                                                     |     }
                                                                     | label_35:
    0x0000ab5e mov r0, r3                                            |     r0 = r3;
    0x0000ab60 blx 0x19a0                                            |     fcn_000019a0 ();
    0x0000ab64 b 0xaaa0                                              |     goto label_1;
                                                                     | label_21:
    0x0000ab66 mov r0, r5                                            |     r0 = r5;
    0x0000ab68 blx 0x1ab8                                            |     r0 = fnmatch ();
    0x0000ab6c mov r6, r0                                            |     r6 = r0;
    0x0000ab6e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000ab70 beq.w 0xa920                                          |         goto label_3;
                                                                     |     }
    0x0000ab74 blx 0x1cf4                                            |     r0 = fcn_00001cf4 ();
                                                                     |     if (r0 == 0) {
    0x0000ab78 cbz r0, 0xabf2                                        |         goto label_36;
                                                                     |     }
    0x0000ab7a strd sb, sl, [sp, 0x20]                               |     __asm ("strd sb, sl, [var_24h]");
    0x0000ab7e add r3, sp, 0xc8                                      |     r3 += var_c8h;
    0x0000ab80 ldr.w sb, [sp, 0x28]                                  |     sb = var_28h;
    0x0000ab84 mov sl, r0                                            |     sl = r0;
    0x0000ab86 mov r7, r3                                            |     r7 = r3;
                                                                     |     do {
    0x0000ab88 add.w r4, sl, 0x13                                    |         r4 = sl + 0x13;
    0x0000ab8c mov r0, r4                                            |         r0 = r4;
    0x0000ab8e blx 0x1bb0                                            |         fcn_00001bb0 ();
    0x0000ab92 ldrb.w r2, [sl, 0x13]                                 |         r2 = *((sl + 0x13));
    0x0000ab94 movs r0, 0x13                                         |         r0 = 0x13;
    0x0000ab96 mov sl, r0                                            |         sl = r0;
    0x0000ab98 cmp r2, 0x2e                                          |         
                                                                     |         if (r2 != 0x2e) {
    0x0000ab9a beq 0xabe2                                            |             
    0x0000ab9c cmp r0, 5                                             |             
                                                                     |             if (r0 < 5) {
    0x0000ab9e bls 0xabe2                                            |                 goto label_37;
                                                                     |             }
    0x0000aba0 subs r0, 5                                            |             r0 -= 5;
    0x0000aba2 mov r1, sb                                            |             r1 = sb;
    0x0000aba4 add r0, r4                                            |             r0 += r4;
    0x0000aba6 blx 0x1924                                            |             fcn_00001924 ();
    0x0000aba8 mrc p1, 5, fp, c14, c0, 1                             |             __asm ("mrc p1, 5, fp, c14, c0, 1");
    0x0000abac sub.w r0, sl, 6                                       |             r0 = sl - 6;
    0x0000abb0 ldr r1, [sp, 0x1c]                                    |             r1 = var_1ch;
    0x0000abb2 add r0, r4                                            |             r0 += r4;
    0x0000abb4 blx 0x1924                                            |             r0 = fcn_00001924 ();
                                                                     |             if (r0 != 0) {
    0x0000abb8 cbnz r0, 0xabe2                                       |                 goto label_37;
                                                                     |             }
    0x0000abba mov r0, r6                                            |             r0 = r6;
    0x0000abbc blx 0x1d40                                            |             renameat ();
    0x0000abc0 movs r3, 0                                            |             r3 = 0;
    0x0000abc2 mov r2, r7                                            |             r2 = r7;
    0x0000abc4 mov r1, r4                                            |             r1 = r4;
    0x0000abc6 blx 0x1adc                                            |             asprintf_chk ()
    0x0000abca ldr r3, [fp, -0x60]                                   |             r3 = var_bp_60h;
    0x0000abce and r3, r3, 0xf000                                    |             r3 &= 0xf000;
    0x0000abd2 cmp.w r3, 0x4000                                      |             
                                                                     |             if (r3 == 0x4000) {
    0x0000abd6 beq 0xabe2                                            |                 goto label_37;
                                                                     |             }
    0x0000abd8 mov r2, r4                                            |             r2 = r4;
    0x0000abda mov r1, r5                                            |             r1 = r5;
    0x0000abdc mov r0, r8                                            |             r0 = r8;
    0x0000abde bl 0xa610                                             |             fcn_0000a610 (r0, r1, r2);
                                                                     |         }
                                                                     | label_37:
    0x0000abe2 mov r0, r6                                            |         r0 = r6;
    0x0000abe4 blx 0x1cf4                                            |         r0 = fcn_00001cf4 ();
    0x0000abe8 mov sl, r0                                            |         sl = r0;
    0x0000abea cmp r0, 0                                             |         
    0x0000abec bne 0xab88                                            |         
                                                                     |     } while (r0 != 0);
    0x0000abee ldrd sb, sl, [sp, 0x20]                               |     __asm ("ldrd sb, sl, [var_24h]");
                                                                     | label_36:
    0x0000abf2 mov r0, r6                                            |     r0 = r6;
    0x0000abf4 blx 0x1dc8                                            |     fcn_00001dc8 ();
    0x0000abf8 b 0xa95a                                              |     goto label_4;
                                                                     | label_19:
    0x0000abfa vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0000abfe vstr d16, [sp, 0x10]                                  |     __asm ("vstr d16, [sp, 0x10]");
    0x0000ac02 b 0xa95a                                              |     goto label_4;
                                                                     | label_34:
    0x0000ac04 mov r0, sb                                            |     r0 = sb;
    0x0000ac06 blx 0x1c84                                            |     fcn_00001c84 ();
    0x0000ac0a b 0xa9d8                                              |     goto label_5;
                                                                     | label_26:
    0x0000ac0c ldr r3, [sp, 0x1c]                                    |     r3 = var_1ch;
    0x0000ac0e subs r4, r3, 4                                        |     r4 = r3 - 4;
    0x0000ac10 mov r3, r2                                            |     r3 = r2;
    0x0000ac12 adds r3, 5                                            |     r3 += 5;
    0x0000ac14 movs r2, 1                                            |     r2 = 1;
    0x0000ac16 str r3, [sp, 8]                                       |     var_8h = r3;
    0x0000ac18 ldr.w r3, [pc, 0x6d4]                                 |     
    0x0000ac1c add r3, pc                                            |     r3 = 0x15f10;
    0x0000ac1e strd r3, r0, [sp]                                     |     __asm ("strd r3, r0, [sp]");
    0x0000ac22 mov.w r3, 0x1000                                      |     r3 = 0x1000;
    0x0000ac26 mov r1, r3                                            |     r1 = r3;
    0x0000ac28 mov r0, r4                                            |     r0 = r4;
    0x0000ac2a blx 0x1dd4                                            |     r0 = fcn_00001dd4 ();
    0x0000ac2e cmp.w r0, 0x1000                                      |     
    0x0000ac32 it lt                                                 |     
                                                                     |     if (r0 < 0x1000) {
    0x0000ac34 movlt r0, r4                                          |         r0 = r4;
                                                                     |         goto label_38;
                                                                     |     }
                                                                     |     if (r0 < 0x1000) {
                                                                     | label_38:
    0x0000ac36 blt.w 0xaa02                                          |         goto label_6;
                                                                     |     }
    0x0000ac3a b 0xa9d8                                              |     goto label_5;
                                                                     | label_29:
    0x0000ac3c mov r2, r7                                            |     r2 = r7;
    0x0000ac3e mov r1, fp                                            |     r1 = fp;
    0x0000ac40 blx 0x1aac                                            |     r0 = opendir ();
    0x0000ac44 mov r6, r0                                            |     r6 = r0;
    0x0000ac46 bl 0x9344                                             |     r0 = fcn_00009344 (r0);
    0x0000ac4a cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0000ac4c blt.w 0xaaa0                                          |         goto label_1;
                                                                     |     }
    0x0000ac50 mov r0, r6                                            |     r0 = r6;
    0x0000ac52 blx 0x1a10                                            |     r0 = stack_chk_fail ();
    0x0000ac56 mov r6, r0                                            |     r6 = r0;
                                                                     |     if (r0 != 0) {
    0x0000ac58 cbz r0, 0xac6a                                        |         
    0x0000ac5a ldr r7, [sp, 0x24]                                    |         r7 = var_24h;
    0x0000ac5c mov r1, r6                                            |         r1 = r6;
    0x0000ac5e ldr r0, [r7, 8]                                       |         r0 = *((r7 + 8));
    0x0000ac60 bl 0xa350                                             |         r0 = fcn_0000a350 (r0, r1);
                                                                     |         if (r0 == 0) {
    0x0000ac64 cbz r0, 0xac6a                                        |             goto label_39;
                                                                     |         }
    0x0000ac66 mov r6, r5                                            |         r6 = r5;
    0x0000ac68 str r0, [r7, 8]                                       |         *((r7 + 8)) = r0;
                                                                     |     }
                                                                     | label_39:
    0x0000ac6a mov r0, r6                                            |     r0 = r6;
    0x0000ac6c blx 0x19a0                                            |     fcn_000019a0 ();
    0x0000ac70 b 0xaaa0                                              |     goto label_1;
                                                                     | label_30:
    0x0000ac72 mov r2, r7                                            |     r2 = r7;
    0x0000ac74 mov r1, fp                                            |     r1 = fp;
    0x0000ac76 blx 0x1aac                                            |     opendir ();
    0x0000ac7a ldr.w r1, [pc, 0x678]                                 |     
    0x0000ac7e mov r3, r0                                            |     r3 = r0;
    0x0000ac80 mov r2, r7                                            |     r2 = r7;
    0x0000ac82 mov r0, r5                                            |     r0 = r5;
    0x0000ac84 mov r5, r3                                            |     r5 = r3;
    0x0000ac86 add r1, pc                                            |     r1 = 0x15f80;
    0x0000ac88 blx 0x1aac                                            |     r0 = opendir ();
    0x0000ac8c mov r6, r0                                            |     r6 = r0;
    0x0000ac8e mov r0, r5                                            |     r0 = r5;
    0x0000ac90 bl 0x9344                                             |     fcn_00009344 (r0);
    0x0000ac94 clz r3, r6                                            |     r3 &= r6;
    0x0000ac98 lsrs r3, r3, 5                                        |     r3 >>= 5;
    0x0000ac9a orrs.w r3, r3, r0, lsr 31                             |     r3 |= (r0 >> 31);
                                                                     |     if (r3 != r3) {
    0x0000ac9e bne.w 0xaaa0                                          |         goto label_1;
                                                                     |     }
    0x0000aca2 ldr r0, [sp, 0x24]                                    |     r0 = var_24h;
    0x0000aca4 mov r2, r6                                            |     r2 = r6;
    0x0000aca6 mov r1, r5                                            |     r1 = r5;
    0x0000aca8 bl 0xa760                                             |     fcn_0000a760 (r0, r1, r2);
    0x0000acac b 0xaaa0                                              |     goto label_1;
                                                                     | label_31:
    0x0000acae mov r2, r7                                            |     r2 = r7;
    0x0000acb0 mov r1, fp                                            |     r1 = fp;
    0x0000acb2 blx 0x1aac                                            |     opendir ();
    0x0000acb6 ldr.w r1, [pc, 0x640]                                 |     
    0x0000acba mov r3, r0                                            |     r3 = r0;
    0x0000acbc mov r2, r7                                            |     r2 = r7;
    0x0000acbe mov r0, r5                                            |     r0 = r5;
    0x0000acc0 mov r5, r3                                            |     r5 = r3;
    0x0000acc2 add r1, pc                                            |     r1 = 0x15fc0;
    0x0000acc4 blx 0x1aac                                            |     r0 = opendir ();
    0x0000acc8 mov r6, r0                                            |     r6 = r0;
    0x0000acca mov r0, r5                                            |     r0 = r5;
    0x0000accc bl 0x9344                                             |     fcn_00009344 (r0);
    0x0000acd0 clz r3, r6                                            |     r3 &= r6;
    0x0000acd4 lsrs r3, r3, 5                                        |     r3 >>= 5;
    0x0000acd6 orrs.w r3, r3, r0, lsr 31                             |     r3 |= (r0 >> 31);
                                                                     |     if (r3 != r3) {
    0x0000acda bne.w 0xaaa0                                          |         goto label_1;
                                                                     |     }
    0x0000acde ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
    0x0000ace0 mov r1, r6                                            |     r1 = r6;
    0x0000ace2 mov r0, r5                                            |     r0 = r5;
    0x0000ace4 add.w r2, r3, 0x14                                    |     r2 = r3 + 0x14;
    0x0000ace8 bl 0xa700                                             |     fcn_0000a700 (r0, r1, r2);
    0x0000acec b 0xaaa0                                              |     goto label_1;
                                                                     | label_25:
    0x0000acee mov fp, r2                                            |     
                                                                     | label_24:
    0x0000acf0 ldr.w r0, [pc, 0x608]                                 |     
    0x0000acf4 mov.w r1, 0x80000                                     |     r1 = 0x80000;
    0x0000acf8 add r0, pc                                            |     r0 = 0x15ff8;
    0x0000acfa blx 0x1ad0                                            |     r0 = fstatat64 ();
    0x0000acfe subs r5, r0, 0                                        |     r5 = r0 - 0;
                                                                     |     if (r5 < r0) {
    0x0000ad00 blt.w 0xae1a                                          |         goto label_15;
                                                                     |     }
    0x0000ad04 sub.w r4, fp, 4                                       |     r4 = fp - 4;
    0x0000ad08 mov.w r2, 0x1000                                      |     r2 = 0x1000;
    0x0000ad0c mov r1, r4                                            |     r1 = r4;
    0x0000ad0e bl 0x9440                                             |     r0 = fcn_00009440 (r0, r1, r2);
    0x0000ad12 mov r6, r0                                            |     r6 = r0;
    0x0000ad14 mov r0, r5                                            |     r0 = r5;
    0x0000ad16 blx 0x1dbc                                            |     fcn_00001dbc ();
    0x0000ad1a cmp r6, 0                                             |     
                                                                     |     if (r6 < 0) {
    0x0000ad1c blt.w 0xb288                                          |         goto label_40;
                                                                     |     }
    0x0000ad20 ldr.w r3, [pc, 0x5dc]                                 |     
    0x0000ad24 movs r6, 0                                            |     r6 = 0;
    0x0000ad26 mov r7, r6                                            |     r7 = r6;
    0x0000ad28 mov r0, r6                                            |     r0 = r6;
    0x0000ad2a mov r8, r4                                            |     r8 = r4;
    0x0000ad2c movs r2, 1                                            |     r2 = 1;
    0x0000ad2e mov r5, r6                                            |     r5 = r6;
    0x0000ad30 add r3, pc                                            |     r3 = 0x16034;
    0x0000ad32 str r3, [sp, 0x10]                                    |     var_10h = r3;
                                                                     |     do {
                                                                     | label_7:
    0x0000ad34 mov r1, r4                                            |         r1 = r4;
    0x0000ad36 ldrb r3, [r4], 1                                      |         r3 = *(r4);
                                                                     |         r4++;
    0x0000ad3a cmp r3, 0x2e                                          |         
                                                                     |         if (r3 > 0x2e) {
    0x0000ad3c bhi.w 0xae62                                          |             goto label_41;
                                                                     |         }
    0x0000ad40 cmp r3, 0x2e                                          |         
    0x0000ad42 bhi 0xad34                                            |         
                                                                     |     } while (r3 > 0x2e);
    0x0000ad44 addw ip, pc, 8                                        |     __asm ("addw ip, pc, 8");
    0x0000ad48 ldr.w r3, [ip, r3, lsl 2]                             |     offset_0 = r3 << 2;
                                                                     |     r3 = *((ip + offset_0));
    0x0000ad4c add ip, r3                                            |     
    0x0000ad4e bx ip                                                 |     return void (*ip)() ();
                                                                     | label_15:
    0x0000ae1a movs r0, 0                                            |     r0 = 0;
                                                                     | label_8:
    0x0000ae1c ldr.w r2, [pc, 0x4e4]                                 |     r2 = *(0x0000b304);
    0x0000ae20 add.w r1, sp, 0x1120                                  |     r1 += var_1120h;
    0x0000ae24 ldr.w r3, [pc, 0x490]                                 |     r3 = *(0xb2b8);
    0x0000ae28 adds r1, 0x14                                         |     r1 += 0x14;
    0x0000ae2a add r2, pc                                            |     r2 += pc;
    0x0000ae2c ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0000ae2e ldr r2, [r3]                                          |     r2 = *(0xb2b8);
    0x0000ae30 ldr r3, [r1]                                          |     r3 = *(r1);
    0x0000ae32 eors r2, r3                                           |     r2 ^= r3;
    0x0000ae34 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0000ae38 bne.w 0xb2a4                                          |         goto label_42;
                                                                     |     }
    0x0000ae3c add.w sp, sp, 0x1120                                  |     
    0x0000ae40 add sp, 0x1c                                          |     
    0x0000ae42 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_41:
    0x0000ae62 cmp r3, 0x3d                                          |     
                                                                     |     if (r3 != 0x3d) {
    0x0000ae64 bne.w 0xad34                                          |         goto label_7;
                                                                     |     }
    0x0000ae68 cmp r2, 2                                             |     
                                                                     |     if (r2 == 2) {
    0x0000ae6a beq.w 0xb230                                          |         goto label_43;
                                                                     |     }
    0x0000ae6e cmp r2, 1                                             |     
    0x0000ae70 it eq                                                 |     
                                                                     |     if (r2 != 1) {
    0x0000ae72 moveq r2, 0                                           |         r2 = 0;
                                                                     |     }
    0x0000ae74 b 0xad34                                              |     goto label_7;
                                                                     | label_32:
    0x0000af54 mov r2, r7                                            |     r2 = r7;
    0x0000af56 mov r1, fp                                            |     r1 = fp;
    0x0000af58 blx 0x1aac                                            |     opendir ();
    0x0000af5c ldr r1, [pc, 0x3b0]                                   |     
    0x0000af5e mov r3, r0                                            |     r3 = r0;
    0x0000af60 mov r2, r7                                            |     r2 = r7;
    0x0000af62 mov r0, r5                                            |     r0 = r5;
    0x0000af64 mov r5, r3                                            |     r5 = r3;
    0x0000af66 add r1, pc                                            |     r1 = 0x1627a;
    0x0000af68 blx 0x1aac                                            |     r0 = opendir ();
    0x0000af6c mov r6, r0                                            |     r6 = r0;
    0x0000af6e mov r0, r5                                            |     r0 = r5;
    0x0000af70 bl 0x9344                                             |     fcn_00009344 (r0);
    0x0000af72 invalid                                               |     
    0x0000af76 usat sb, 0x1b, r6, lsl 1                              |     __asm ("usat sb, 0x1b, r6, lsl 1");
    0x0000af7a orrs.w r3, r3, r0, lsr 31                             |     r3 |= (r0 >> 31);
                                                                     |     if (r3 != r3) {
    0x0000af7e bne.w 0xaaa0                                          |         goto label_1;
                                                                     |     }
    0x0000af82 ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
    0x0000af84 mov r1, r6                                            |     r1 = r6;
    0x0000af86 mov r0, r5                                            |     r0 = r5;
    0x0000af88 add.w r2, r3, 0x10                                    |     r2 = r3 + 0x10;
    0x0000af8c bl 0xa700                                             |     fcn_0000a700 (r0, r1, r2);
    0x0000af90 b 0xaaa0                                              |     goto label_1;
                                                                     | label_23:
    0x0000af92 mov r0, r4                                            |     r0 = r4;
    0x0000af94 ldr r7, [sp, 0x18]                                    |     r7 = var_18h;
    0x0000af96 blx 0x19a0                                            |     fcn_000019a0 ();
                                                                     | label_17:
    0x0000af9a ldr r4, [fp, -0xdc]                                   |     r4 = var_5ch;
                                                                     |     if (r4 == 0) {
    0x0000af9e cbz r4, 0xafb6                                        |         goto label_44;
                                                                     |     }
                                                                     |     do {
    0x0000afa0 ldr r0, [r4, 8]                                       |         r0 = *((r4 + 8));
    0x0000afa2 blx 0x19a0                                            |         fcn_000019a0 ();
    0x0000afa6 mov r0, r4                                            |         r0 = r4;
    0x0000afa8 bl 0xa3ec                                             |         r0 = fcn_0000a3ec (r0);
    0x0000afac mov r4, r0                                            |         r4 = r0;
    0x0000afae str r0, [fp, -0xdc]                                   |         var_5ch = r0;
    0x0000afb2 cmp r0, 0                                             |         
    0x0000afb4 bne 0xafa0                                            |         
                                                                     |     } while (r0 != 0);
                                                                     |     if (r7 == 0) {
                                                                     | label_44:
    0x0000afb6 cbz r7, 0xafca                                        |         goto label_45;
                                                                     |     }
                                                                     |     do {
    0x0000afb8 ldr r0, [r7, 8]                                       |         r0 = *((r7 + 8));
    0x0000afba blx 0x19a0                                            |         fcn_000019a0 ();
    0x0000afbe mov r0, r7                                            |         r0 = r7;
    0x0000afc0 bl 0xa3ec                                             |         r0 = fcn_0000a3ec (r0);
    0x0000afc4 mov r7, r0                                            |         r7 = r0;
    0x0000afc6 cmp r7, 0                                             |         
    0x0000afc8 bne 0xafb8                                            |         
                                                                     |     } while (r7 != 0);
                                                                     | label_45:
    0x0000afca mvn r0, 0xb                                           |     r0 = ~0xb;
    0x0000afce b 0xae1c                                              |     goto label_8;
                                                                     | label_33:
    0x0000afd0 mov r2, r7                                            |     r2 = r7;
    0x0000afd2 mov r1, fp                                            |     r1 = fp;
    0x0000afd4 blx 0x1aac                                            |     opendir ();
    0x0000afd8 ldr r1, [pc, 0x338]                                   |     
    0x0000afda mov r3, r0                                            |     r3 = r0;
    0x0000afdc mov r2, r7                                            |     r2 = r7;
    0x0000afde mov r0, r5                                            |     r0 = r5;
    0x0000afe0 mov r5, r3                                            |     r5 = r3;
    0x0000afe2 str r3, [sp, 0x48]                                    |     var_48h = r3;
    0x0000afe4 add r1, pc                                            |     r1 = 0x162fc;
    0x0000afe6 blx 0x1aac                                            |     r0 = opendir ();
    0x0000afea mov r7, r0                                            |     r7 = r0;
    0x0000afec mov r0, r5                                            |     r0 = r5;
    0x0000afee bl 0x9344                                             |     fcn_00009344 (r0);
    0x0000aff2 clz r3, r7                                            |     r3 &= r7;
    0x0000aff6 lsrs r3, r3, 5                                        |     r3 >>= 5;
    0x0000aff8 orrs.w r3, r3, r0, lsr 31                             |     r3 |= (r0 >> 31);
                                                                     |     if (r3 != r3) {
    0x0000affc bne.w 0xaaa0                                          |         goto label_1;
                                                                     |     }
    0x0000b000 mov r0, r5                                            |     r0 = r5;
    0x0000b002 mov r6, r7                                            |     r6 = r7;
    0x0000b004 blx 0x1bb0                                            |     r0 = fcn_00001bb0 ();
    0x0000b008 mov r3, r0                                            |     r3 = r0;
    0x0000b00a mov r5, r7                                            |     r5 = r7;
    0x0000b00c adds r3, 1                                            |     r3++;
    0x0000b00e mov r8, r7                                            |     r8 = r7;
    0x0000b010 str r3, [sp, 0x54]                                    |     var_54h = r3;
    0x0000b012 mov r3, r7                                            |     r3 = r7;
    0x0000b014 movs r2, 0                                            |     r2 = 0;
    0x0000b016 str r0, [sp, 0x50]                                    |     var_50h = r0;
    0x0000b018 str r2, [sp, 0x28]                                    |     var_28h = r2;
    0x0000b01a strd r2, r2, [sp, 0x30]                               |     __asm ("strd r2, r2, [var_30h]");
    0x0000b01e strd r2, r2, [sp, 0x40]                               |     __asm ("strd r2, r2, [var_44h]");
    0x0000b022 str r4, [sp, 0x4c]                                    |     errnum = r4;
                                                                     |     do {
                                                                     | label_9:
    0x0000b024 mov r2, r6                                            |         r2 = r6;
    0x0000b026 ldrb r4, [r6], 1                                      |         r4 = *(r6);
                                                                     |         r6++;
                                                                     |         if (r4 == 0) {
    0x0000b02a cbz r4, 0xb054                                        |             goto label_46;
                                                                     |         }
    0x0000b02c str r2, [sp, 0x2c]                                    |         var_2ch = r2;
    0x0000b02e blx 0x1b80                                            |         r0 = fcn_00001b80 ();
    0x0000b032 ldr r0, [r0]                                          |         r0 = *(r0);
    0x0000b034 ldrh.w r0, [r0, r4, lsl 1]                            |         offset_1 = r4 << 1;
                                                                     |         r0 = *((r0 + offset_1));
    0x0000b038 ands r0, r0, 0x2000                                   |         r0 &= 0x2000;
                                                                     |         if (r0 == r0) {
    0x0000b03c beq.w 0xb1d6                                          |             goto label_47;
                                                                     |         }
    0x0000b040 ldrd r3, r2, [sp, 0x28]                               |         __asm ("ldrd r3, r2, [var_28h]");
    0x0000b044 cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0000b046 bne.w 0xb22c                                          |             goto label_48;
                                                                     |         }
    0x0000b04a cmp r2, r8                                            |         
    0x0000b04c mov.w r3, 1                                           |         r3 = 1;
    0x0000b050 str r3, [sp, 0x28]                                    |         var_28h = r3;
    0x0000b052 bls 0xb024                                            |         
                                                                     |     } while (r2 < r8);
                                                                     | label_46:
    0x0000b054 sub.w r2, r2, r8                                      |     r2 -= r8;
    0x0000b058 cmp r2, 4                                             |     
                                                                     |     if (r2 == 4) {
    0x0000b05a beq.w 0xb18c                                          |         goto label_49;
                                                                     |     }
    0x0000b05e cmp r2, 5                                             |     
                                                                     |     if (r2 == 5) {
    0x0000b060 beq.w 0xb1be                                          |         goto label_50;
                                                                     |     }
                                                                     | label_11:
    0x0000b064 ldr r1, [sp, 0x28]                                    |     r1 = var_28h;
    0x0000b066 cmp r4, 0                                             |     
    0x0000b068 ite ne                                                |     
                                                                     |     if (r4 == 0) {
    0x0000b06a movne r1, 0                                           |         r1 = 0;
                                                                     |     }
                                                                     |     if (r4 != 0) {
    0x0000b06c andeq r1, r1, 1                                       |         r1 &= 1;
                                                                     |     }
                                                                     |     if (r1 != 0) {
    0x0000b070 cbnz r1, 0xb094                                       |         goto label_51;
                                                                     |     }
    0x0000b072 ldr r3, [sp, 0x30]                                    |     r3 = var_30h;
    0x0000b074 cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0000b076 beq.w 0xb1da                                          |         goto label_52;
                                                                     |     }
    0x0000b07a ldr r3, [sp, 0x30]                                    |     r3 = var_30h;
    0x0000b07c cmp r3, 2                                             |     
                                                                     |     if (r3 == 2) {
    0x0000b07e bne 0xb08e                                            |         
    0x0000b080 ldr r1, [sp, 0x34]                                    |         r1 = var_34h;
    0x0000b082 adds r1, 1                                            |         r1++;
    0x0000b084 adds r3, r2, r1                                       |         r3 = r2 + r1;
    0x0000b086 str r3, [sp, 0x34]                                    |         var_34h = r3;
    0x0000b088 ldr r3, [sp, 0x44]                                    |         r3 = var_44h;
    0x0000b08a adds r3, 1                                            |         r3++;
    0x0000b08c str r3, [sp, 0x44]                                    |         var_44h = r3;
                                                                     |     }
                                                                     | label_12:
    0x0000b08e mov r8, r6                                            |     r8 = r6;
    0x0000b090 cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0000b092 bne 0xb024                                            |         goto label_9;
                                                                     |     }
                                                                     | label_51:
    0x0000b094 ldrd r4, r0, [sp, 0x4c]                               |     __asm ("ldrd r4, r0, [var_50h]");
    0x0000b098 ldr r3, [sp, 0x34]                                    |     r3 = var_34h;
    0x0000b09a ldr r2, [sp, 0x44]                                    |     r2 = var_44h;
    0x0000b09c adds r0, 0x15                                         |     r0 += 0x15;
    0x0000b09e add r0, r3                                            |     r0 += r3;
    0x0000b0a0 ldr r3, [sp, 0x40]                                    |     r3 = var_40h;
    0x0000b0a2 lsls r6, r2, 2                                        |     r6 = r2 << 2;
    0x0000b0a4 lsl.w r8, r3, 2                                       |     r8 = r3 << 2;
    0x0000b0a8 add r0, r8                                            |     r0 += r8;
    0x0000b0aa add r0, r6                                            |     r0 += r6;
    0x0000b0ac blx 0x1b0c                                            |     strerror (r0);
    0x0000b0b0 str r0, [sp, 0x30]                                    |     var_30h = r0;
    0x0000b0b2 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b0b4 beq.w 0xaaa0                                          |         goto label_1;
                                                                     |     }
    0x0000b0b8 ldr r2, [sp, 0x44]                                    |     r2 = var_44h;
    0x0000b0ba ldr r3, [sp, 0x40]                                    |     r3 = var_40h;
    0x0000b0bc ldr r1, [sp, 0x48]                                    |     r1 = var_48h;
    0x0000b0be str r2, [r0, 0x10]                                    |     *((r0 + 0x10)) = r2;
    0x0000b0c0 add.w r2, r0, 0x14                                    |     r2 = r0 + 0x14;
    0x0000b0c4 str r3, [r0, 0xc]                                     |     *((r0 + 0xc)) = r3;
    0x0000b0c6 add.w r3, r2, r8                                      |     r3 = r2 + r8;
    0x0000b0ca str r2, [r0, 4]                                       |     *((r0 + 4)) = r2;
    0x0000b0cc adds r0, r3, r6                                       |     r0 = r3 + r6;
    0x0000b0ce ldr.w r8, [sp, 0x54]                                  |     r8 = var_54h;
    0x0000b0d2 ldr r6, [sp, 0x30]                                    |     r6 = var_30h;
    0x0000b0d4 mov r2, r8                                            |     r2 = r8;
    0x0000b0d6 str r3, [r6, 8]                                       |     *((r6 + 8)) = r3;
    0x0000b0d8 str r0, [r6]                                          |     *(r6) = r0;
    0x0000b0da blx 0x19c8                                            |     mmap64 ();
    0x0000b0de ldr r3, [r6]                                          |     r3 = *(r6);
    0x0000b0e0 mov r2, r8                                            |     r2 = r8;
    0x0000b0e2 mov.w r8, 0                                           |     r8 = 0;
    0x0000b0e6 str.w r8, [sp, 0x2c]                                  |     __asm ("str.w r8, [var_2ch]");
    0x0000b0ea add r2, r3                                            |     r2 += r3;
    0x0000b0ec strd r8, r8, [sp, 0x40]                               |     __asm ("strd r8, r8, [var_44h]");
    0x0000b0f0 str r2, [sp, 0x34]                                    |     var_34h = r2;
                                                                     |     do {
                                                                     | label_10:
    0x0000b0f2 mov r2, r5                                            |         r2 = r5;
    0x0000b0f4 ldrb r6, [r5], 1                                      |         r6 = *(r5);
                                                                     |         r5++;
                                                                     |         if (r6 == 0) {
    0x0000b0f8 cbz r6, 0xb120                                        |             goto label_53;
                                                                     |         }
    0x0000b0fa str r2, [sp, 0x28]                                    |         var_28h = r2;
    0x0000b0fc blx 0x1b80                                            |         r0 = fcn_00001b80 ();
    0x0000b100 ldr r3, [r0]                                          |         r3 = *(r0);
    0x0000b102 ldrh.w r3, [r3, r6, lsl 1]                            |         offset_2 = r6 << 1;
                                                                     |         r3 = *((r3 + offset_2));
    0x0000b106 ands r3, r3, 0x2000                                   |         r3 &= 0x2000;
                                                                     |         if (r3 == r3) {
    0x0000b10a beq.w 0xb224                                          |             goto label_54;
                                                                     |         }
    0x0000b10e ldr r2, [sp, 0x28]                                    |         r2 = var_28h;
    0x0000b110 cmp.w r8, 0                                           |         
                                                                     |         if (r8 != 0) {
    0x0000b114 bne.w 0xb228                                          |             goto label_55;
                                                                     |         }
    0x0000b118 cmp r2, r7                                            |         
    0x0000b11a mov.w r8, 1                                           |         r8 = 1;
    0x0000b11e bls 0xb0f2                                            |         
                                                                     |     } while (r2 < r7);
                                                                     | label_53:
    0x0000b120 subs r2, r2, r7                                       |     r2 -= r7;
    0x0000b122 cmp r2, 4                                             |     
                                                                     |     if (r2 == 4) {
    0x0000b124 beq 0xb1ea                                            |         goto label_56;
                                                                     |     }
    0x0000b126 cmp r2, 5                                             |     
                                                                     |     if (r2 == 5) {
    0x0000b128 beq 0xb20e                                            |         goto label_57;
                                                                     |     }
                                                                     | label_13:
    0x0000b12a cmp r6, 0                                             |     
    0x0000b12c ite ne                                                |     
                                                                     |     if (r6 == 0) {
    0x0000b12e movne r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r6 != 0) {
    0x0000b130 andeq r3, r8, 1                                       |         r3 = r8 & 1;
                                                                     |     }
                                                                     |     if (r3 != 0) {
    0x0000b134 cbnz r3, 0xb14c                                       |         goto label_58;
                                                                     |     }
    0x0000b136 ldr r1, [sp, 0x2c]                                    |     r1 = var_2ch;
    0x0000b138 cmp r1, 1                                             |     
                                                                     |     if (r1 == 1) {
    0x0000b13a beq.w 0xb244                                          |         goto label_59;
                                                                     |     }
    0x0000b13e ldr r1, [sp, 0x2c]                                    |     r1 = var_2ch;
    0x0000b140 cmp r1, 2                                             |     
                                                                     |     if (r1 == 2) {
    0x0000b142 beq.w 0xb272                                          |         goto label_60;
                                                                     |     }
                                                                     | label_14:
    0x0000b146 mov r7, r5                                            |     r7 = r5;
    0x0000b148 cmp r6, 0                                             |     
                                                                     |     if (r6 != 0) {
    0x0000b14a bne 0xb0f2                                            |         goto label_10;
                                                                     |     }
                                                                     | label_58:
    0x0000b14c ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
    0x0000b14e ldr r1, [sp, 0x30]                                    |     r1 = var_30h;
    0x0000b150 ldr r0, [r3, 0x18]                                    |     r0 = *((r3 + 0x18));
    0x0000b152 bl 0xa350                                             |     r0 = fcn_0000a350 (r0, r1);
    0x0000b156 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0000b158 beq.w 0xb2a8                                          |         goto label_61;
                                                                     |     }
    0x0000b15c ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
    0x0000b15e str r0, [r3, 0x18]                                    |     *((r3 + 0x18)) = r0;
    0x0000b160 b 0xaaa0                                              |     goto label_1;
                                                                     | label_49:
    0x0000b18c ldrb.w r0, [r8]                                       |     r0 = *(r8);
    0x0000b190 cmp r0, 0x70                                          |     
                                                                     |     if (r0 != 0x70) {
    0x0000b192 bne.w 0xb064                                          |         goto label_11;
                                                                     |     }
    0x0000b196 ldrb.w r0, [r8, 1]                                    |     r0 = *((r8 + 1));
    0x0000b19a add.w r1, r8, 1                                       |     r1 = r8 + 1;
    0x0000b19e cmp r0, 0x72                                          |     
                                                                     |     if (r0 != 0x72) {
    0x0000b1a0 bne.w 0xb064                                          |         goto label_11;
                                                                     |     }
    0x0000b1a4 ldrb r0, [r1, 1]!                                     |     r0 = *((r1 += 1));
    0x0000b1a8 cmp r0, 0x65                                          |     
                                                                     |     if (r0 != 0x65) {
    0x0000b1aa bne.w 0xb064                                          |         goto label_11;
                                                                     |     }
    0x0000b1ae ldrb r1, [r1, 1]                                      |     r1 = *((r1 + 1));
    0x0000b1b0 cmp r1, 0x3a                                          |     
    0x0000b1b2 itt eq                                                |     
                                                                     |     if (r1 != 0x3a) {
    0x0000b1b4 moveq r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     |     if (r1 == 0x3a) {
    0x0000b1b6 streq r3, [sp, 0x30]                                  |         var_30h = r3;
                                                                     |         goto label_62;
                                                                     |     }
                                                                     |     if (r1 != 0x3a) {
                                                                     | label_62:
    0x0000b1b8 bne.w 0xb064                                          |         goto label_11;
                                                                     |     }
    0x0000b1bc b 0xb08e                                              |     goto label_12;
                                                                     | label_50:
    0x0000b1be ldr r1, [sp, 0x38]                                    |     r1 = var_38h;
    0x0000b1c0 mov r0, r8                                            |     r0 = r8;
    0x0000b1c2 str r2, [sp, 0x2c]                                    |     var_2ch = r2;
    0x0000b1c4 blx 0x19f8                                            |     uname ();
    0x0000b1c8 ldr r2, [sp, 0x2c]                                    |     r2 = var_2ch;
    0x0000b1ca cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b1cc bne.w 0xb064                                          |         goto label_11;
                                                                     |     }
    0x0000b1d0 movs r3, 2                                            |     r3 = 2;
    0x0000b1d2 str r3, [sp, 0x30]                                    |     var_30h = r3;
    0x0000b1d4 b 0xb08e                                              |     goto label_12;
                                                                     | label_47:
    0x0000b1d6 str r0, [sp, 0x28]                                    |     var_28h = r0;
    0x0000b1d8 b 0xb024                                              |     goto label_9;
                                                                     | label_52:
    0x0000b1da ldr r1, [sp, 0x34]                                    |     r1 = var_34h;
    0x0000b1dc adds r1, 1                                            |     r1++;
    0x0000b1de adds r3, r1, r2                                       |     r3 = r1 + r2;
    0x0000b1e0 str r3, [sp, 0x34]                                    |     var_34h = r3;
    0x0000b1e2 ldr r3, [sp, 0x40]                                    |     r3 = var_40h;
    0x0000b1e4 adds r3, 1                                            |     r3++;
    0x0000b1e6 str r3, [sp, 0x40]                                    |     var_40h = r3;
    0x0000b1e8 b 0xb08e                                              |     goto label_12;
                                                                     | label_56:
    0x0000b1ea ldrb r3, [r7]                                         |     r3 = *(r7);
    0x0000b1ec cmp r3, 0x70                                          |     
                                                                     |     if (r3 != 0x70) {
    0x0000b1ee bne 0xb12a                                            |         goto label_13;
                                                                     |     }
    0x0000b1f0 ldrb r3, [r7, 1]                                      |     r3 = *((r7 + 1));
    0x0000b1f2 adds r1, r7, 1                                        |     r1 = r7 + 1;
    0x0000b1f4 cmp r3, 0x72                                          |     
                                                                     |     if (r3 != 0x72) {
    0x0000b1f6 bne 0xb12a                                            |         goto label_13;
                                                                     |     }
    0x0000b1f8 ldrb r3, [r1, 1]!                                     |     r3 = *((r1 += 1));
    0x0000b1fc cmp r3, 0x65                                          |     
                                                                     |     if (r3 != 0x65) {
    0x0000b1fe bne 0xb12a                                            |         goto label_13;
                                                                     |     }
    0x0000b200 ldrb r3, [r1, 1]                                      |     r3 = *((r1 + 1));
    0x0000b202 cmp r3, 0x3a                                          |     
    0x0000b204 itt eq                                                |     
                                                                     |     if (r3 != 0x3a) {
    0x0000b206 moveq r3, 1                                           |         r3 = 1;
                                                                     |     }
                                                                     |     if (r3 == 0x3a) {
    0x0000b208 streq r3, [sp, 0x2c]                                  |         var_2ch = r3;
                                                                     |         goto label_63;
                                                                     |     }
                                                                     |     if (r3 != 0x3a) {
                                                                     | label_63:
    0x0000b20a bne 0xb12a                                            |         goto label_13;
                                                                     |     }
    0x0000b20c b 0xb146                                              |     goto label_14;
                                                                     | label_57:
    0x0000b20e ldr r1, [sp, 0x3c]                                    |     r1 = var_3ch;
    0x0000b210 mov r0, r7                                            |     r0 = r7;
    0x0000b212 str r2, [sp, 0x28]                                    |     var_28h = r2;
    0x0000b214 blx 0x19f8                                            |     uname ();
    0x0000b218 ldr r2, [sp, 0x28]                                    |     r2 = var_28h;
    0x0000b21a cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0000b21c bne 0xb12a                                            |         goto label_13;
                                                                     |     }
    0x0000b21e movs r3, 2                                            |     r3 = 2;
    0x0000b220 str r3, [sp, 0x2c]                                    |     var_2ch = r3;
    0x0000b222 b 0xb146                                              |     goto label_14;
                                                                     | label_54:
    0x0000b224 mov r8, r3                                            |     r8 = r3;
    0x0000b226 b 0xb0f2                                              |     goto label_10;
                                                                     | label_55:
    0x0000b228 mov r7, r5                                            |     r7 = r5;
    0x0000b22a b 0xb0f2                                              |     goto label_10;
                                                                     | label_48:
    0x0000b22c mov r8, r6                                            |     r8 = r6;
    0x0000b22e b 0xb024                                              |     goto label_9;
                                                                     | label_43:
    0x0000b230 mov r6, r4                                            |     r6 = r4;
    0x0000b232 movs r2, 3                                            |     r2 = 3;
    0x0000b234 b 0xad34                                              |     goto label_7;
                                                                     | label_59:
    0x0000b244 str r3, [sp, 0x48]                                    |     var_48h = r3;
    0x0000b246 mov r1, r7                                            |     r1 = r7;
    0x0000b248 ldr r3, [sp, 0x30]                                    |     r3 = var_30h;
    0x0000b24a ldr r6, [sp, 0x34]                                    |     r6 = var_34h;
    0x0000b24c ldr r0, [r3, 4]                                       |     r0 = *((r3 + 4));
    0x0000b24e ldr r3, [sp, 0x40]                                    |     r3 = var_40h;
    0x0000b250 str.w r6, [r0, r3, lsl 2]                             |     __asm ("str.w r6, [r0, r3, lsl 2]");
    0x0000b254 adds r3, 1                                            |     r3++;
    0x0000b256 str r3, [sp, 0x40]                                    |     var_40h = r3;
                                                                     |     do {
    0x0000b258 mov r0, r6                                            |         r0 = r6;
    0x0000b25a str r2, [sp, 0x28]                                    |         var_28h = r2;
    0x0000b25c blx 0x19c8                                            |         mmap64 ();
    0x0000b260 ldr r2, [sp, 0x28]                                    |         r2 = var_28h;
    0x0000b262 ldr r3, [sp, 0x48]                                    |         r3 = var_48h;
    0x0000b264 strb r3, [r6, r2]                                     |         *((r6 + r2)) = r3;
    0x0000b266 adds r2, 1                                            |         r2++;
    0x0000b268 adds r3, r6, r2                                       |         r3 = r6 + r2;
    0x0000b26a str r3, [sp, 0x34]                                    |         var_34h = r3;
    0x0000b26c ldrb r6, [r5, -0x1]                                   |         r6 = *((r5 - 0x1));
    0x0000b270 b 0xb146                                              |         goto label_14;
                                                                     | label_60:
    0x0000b272 str r3, [sp, 0x48]                                    |         var_48h = r3;
    0x0000b274 mov r1, r7                                            |         r1 = r7;
    0x0000b276 ldr r3, [sp, 0x30]                                    |         r3 = var_30h;
    0x0000b278 ldr r6, [sp, 0x34]                                    |         r6 = var_34h;
    0x0000b27a ldr r0, [r3, 8]                                       |         r0 = *((r3 + 8));
    0x0000b27c ldr r3, [sp, 0x44]                                    |         r3 = var_44h;
    0x0000b27e str.w r6, [r0, r3, lsl 2]                             |         __asm ("str.w r6, [r0, r3, lsl 2]");
    0x0000b282 adds r3, 1                                            |         r3++;
    0x0000b284 str r3, [sp, 0x44]                                    |         var_44h = r3;
    0x0000b286 b 0xb258                                              |         
                                                                     |     } while (1);
                                                                     | label_40:
    0x0000b288 rsbs r0, r6, 0                                        |     r0 = r6 - ;
    0x0000b28a blx 0x1b18                                            |     system (r0);
    0x0000b28e b 0xae1a                                              |     goto label_15;
                                                                     | label_18:
    0x0000b290 mov r7, r5                                            |     r7 = r5;
    0x0000b292 b.w 0xa99c                                            |     goto label_16;
                                                                     | label_22:
    0x0000b296 ldr r7, [sp, 0x18]                                    |     r7 = var_18h;
    0x0000b298 b 0xaf9a                                              |     goto label_17;
                                                                     | label_27:
    0x0000b29a mov r0, r4                                            |     r0 = r4;
    0x0000b29c blx 0x1dbc                                            |     fcn_00001dbc ();
    0x0000b2a0 b.w 0xa9d8                                            |     goto label_5;
                                                                     | label_42:
    0x0000b2a4 blx 0x1a1c                                            |     stat64 ();
                                                                     | label_61:
    0x0000b2a8 ldr r0, [sp, 0x30]                                    |     r0 = var_30h;
    0x0000b2aa blx 0x19a0                                            |     fcn_000019a0 ();
    0x0000b2ae b.w 0xaaa0                                            |     goto label_1;
                                                                     | }

[*] Function sprintf used 7 times kmod