[*] Binary protection state of kmod
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf 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);
| do {
| if (r6 == 0) {
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 printf used 7 times kmod