[*] Binary protection state of mod_ssi.so
Partial RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function mmap tear down of mod_ssi.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/lighttpd/mod_ssi.so @ 0x15f8 */
| #include <stdint.h>
|
; (fcn) entry.fini0 () | void entry_fini0 () {
0x000015f8 ldr r3, [pc, 0x68] | r3 = *(0x1664);
0x000015fc push {r4, lr} |
0x00001600 ldr r4, [pc, 0x64] | r4 = *(0x1668);
0x00001604 add r3, pc, r3 | r3 = pc + r3;
0x00001608 ldrb r3, [r3] | r3 = *(r3);
0x0000160c add r4, pc, r4 | r4 = pc + r4;
0x00001610 cmp r3, 0 |
0x00001614 popne {r4, pc} |
0x00001618 ldr r3, [pc, 0x50] | r3 = *(0x166c);
0x0000161c ldr r3, [r4, r3] | r3 = *(0x1668);
0x00001620 cmp r3, 0 |
| if (r3 != 0) {
0x00001624 beq 0x1634 |
0x00001628 ldr r3, [pc, 0x44] | r3 = "_T";
0x0000162c ldr r0, [pc, r3] | r0 = *(0x00001634);
0x00001630 bl 0x1290 | cxa_finalize ();
| }
0x00001634 bl 0x153c | entry0 ();
0x00001638 ldr r3, [pc, 0x38] | r3 = *(0x1674);
0x0000163c ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x00001640 cmp r3, 0 |
| if (r3 != 0) {
0x00001644 beq 0x1654 |
0x00001648 ldr r0, [pc, 0x2c] | r0 = "_";
0x0000164c add r0, pc, r0 | r0 = pc + r0;
0x00001650 bl 0x1314 | loc_imp_deregister_frame_info ();
| }
0x00001654 ldr r3, [pc, 0x24] | r3 = *(0x167c);
0x00001658 mov r2, 1 | r2 = 1;
0x0000165c add r3, pc, r3 | r3 = pc + r3;
0x00001660 strb r2, [r3] | *(r3) = r2;
0x00001664 pop {r4, pc} |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/lighttpd/mod_ssi.so @ 0x2948 */
| #include <stdint.h>
|
; (fcn) fcn.00002948 () | void fcn_00002948 (int32_t arg1, int32_t arg2) {
| int32_t var_0h;
| int32_t var_4h;
| int32_t var_8h;
| int32_t var_ch;
| int32_t var_10h;
| void * buf;
| char * s1;
| int32_t var_24h;
| void * ptr;
| int32_t var_2ch;
| int32_t var_30h;
| int32_t fildes;
| int32_t var_38h;
| char * s2;
| int32_t var_40h;
| int32_t var_44h;
| char * var_48h;
| char * var_4ch;
| int32_t var_50h;
| int32_t var_54h;
| time_t * var_5ch;
| int32_t var_60h;
| char * var_64h;
| char * var_68h;
| int32_t var_6ch;
| int32_t var_70h;
| int32_t var_74h;
| int32_t var_78h;
| int32_t var_7ch;
| int32_t var_80h;
| int32_t var_84h;
| int32_t var_88h;
| int32_t var_8ch;
| int32_t var_90h;
| int32_t var_94h;
| int32_t var_98h;
| int32_t var_9ch;
| time_t * timer;
| int32_t var_a4h;
| int32_t var_a8h;
| int32_t var_ach;
| int32_t var_d0h;
| int32_t var_d0h_2;
| int32_t var_f0h;
| char * s;
| time_t * var_208h;
| int32_t var_20ch;
| r0 = arg1;
| r1 = arg2;
0x00002948 push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0000294c sub sp, sp, 0x20c |
0x00002950 str r3, [sp, 0x38] | var_38h = r3;
0x00002954 ldr r3, [pc, 0xe80] | r3 = *(0x37d8);
0x00002958 mov sl, r0 | sl = r0;
0x0000295c add r3, pc, r3 | r3 = pc + r3;
0x00002960 str r3, [sp, 0x40] | var_40h = r3;
0x00002964 ldr r3, [r1, 0x154] | r3 = *((r1 + 0x154));
0x00002968 mov r5, r1 | r5 = r1;
0x0000296c ldr r0, [r3] | r0 = *(0x37d8);
0x00002970 mov r1, 0x800 | r1 = 0x800;
0x00002974 mov r4, r2 | r4 = r2;
0x00002978 bl 0x13c8 | r0 = open64 ();
0x0000297c cmn r0, 1 |
0x00002980 str r0, [sp, 0x34] | fildes = r0;
| if (r0 != 1) {
0x00002984 bne 0x29d0 | goto label_36;
| }
0x00002988 bl 0x1488 | r0 = errno_location ();
0x0000298c ldr r0, [r0] | r0 = *(r0);
0x00002990 bl 0x120c | strerror (r0);
0x00002994 ldr r3, [r5, 0x154] | r3 = *((r5 + 0x154));
0x00002998 ldr r1, [pc, 0xe40] | r1 = *(0x37dc);
0x0000299c ldr r2, [pc, 0xe40] | r2 = *(0x37e0);
0x000029a0 add r1, pc, r1 | r1 = pc + r1;
0x000029a4 stmib sp, {r0, r3} | __asm ("stmib sp, {r0, r3}");
0x000029a8 ldr r3, [pc, 0xe38] | r3 = *(0x37e4);
0x000029ac mov r0, sl | r0 = sl;
0x000029b0 add r3, pc, r3 | r3 = pc + r3;
0x000029b4 str r3, [sp] | *(sp) = r3;
0x000029b8 ldr r3, [pc, 0xe2c] | r3 = *(0x37e8);
0x000029bc add r3, pc, r3 | r3 = pc + r3;
0x000029c0 bl 0x1500 | loc_imp_log_error_write ();
| do {
0x000029c4 ldr r0, [sp, 0x34] | r0 = fildes;
0x000029c8 add sp, sp, 0x20c |
0x000029cc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_36:
0x000029d0 ldr r1, [sp, 0x38] | r1 = var_38h;
0x000029d4 bl 0x12d8 | r0 = fstat64 ();
0x000029d8 subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 == r0) {
0x000029dc beq 0x2a30 | goto label_37;
| }
0x000029e0 bl 0x1488 | r0 = errno_location ();
0x000029e4 ldr r0, [r0] | r0 = *(r0);
0x000029e8 bl 0x120c | strerror (r0);
0x000029ec ldr r3, [r5, 0x154] | r3 = *((r5 + 0x154));
0x000029f0 ldr r1, [pc, 0xdf8] | r1 = *(0x37ec);
0x000029f4 ldr r2, [pc, 0xdf8] | r2 = *(0x37f0);
0x000029f8 add r1, pc, r1 | r1 = pc + r1;
0x000029fc stmib sp, {r0, r3} | __asm ("stmib sp, {r0, r3}");
0x00002a00 ldr r3, [pc, 0xdf0] | r3 = *(0x37f4);
0x00002a04 mov r0, sl | r0 = sl;
0x00002a08 add r3, pc, r3 | r3 = pc + r3;
0x00002a0c str r3, [sp] | *(sp) = r3;
0x00002a10 ldr r3, [pc, 0xde4] | r3 = "r_";
0x00002a14 add r3, pc, r3 | r3 = pc + r3;
0x00002a18 bl 0x1500 | loc_imp_log_error_write ();
0x00002a1c ldr r0, [sp, 0x34] | r0 = fildes;
0x00002a20 bl 0x1518 | close (r0);
0x00002a24 mvn r3, 0 | r3 = ~0;
| label_3:
0x00002a28 str r3, [sp, 0x34] | fildes = r3;
0x00002a2c b 0x29c4 |
| } while (1);
| label_37:
0x00002a30 mov r0, 0x2000 | r0 = 0x2000;
0x00002a34 bl 0x12a8 | r0 = malloc (r0);
0x00002a38 subs r3, r0, 0 | r3 = r0 - 0;
0x00002a3c str r3, [sp, 0x28] | ptr = r3;
| if (r3 != r0) {
0x00002a40 bne 0x4800 | goto label_38;
| }
0x00002a44 ldr r2, [pc, 0xdb4] | r2 = *(0x37fc);
0x00002a48 ldr r0, [pc, 0xdb4] | r0 = *(0x3800);
0x00002a4c add r2, pc, r2 | r2 = pc + r2;
0x00002a50 ldr r1, [pc, 0xdb0] | r1 = *(0x3804);
0x00002a54 add r0, pc, r0 | r0 = pc + r0;
0x00002a58 bl 0x13bc | loc_imp_log_failed_assert ();
| label_2:
0x00002a5c ldr r3, [sp, 0x1c] | r3 = buf;
0x00002a60 add r3, r3, r0 | r3 += r0;
0x00002a64 mov r0, 0 | r0 = 0;
0x00002a68 str r3, [sp, 0x1c] | buf = r3;
| label_35:
0x00002a6c ldr r3, [sp, 0x1c] | r3 = buf;
0x00002a70 mov r1, 0x3c | r1 = 0x3c;
0x00002a74 sub r2, r3, r0 | r2 = r3 - r0;
0x00002a78 ldr r3, [sp, 0x28] | r3 = ptr;
0x00002a7c add r0, r3, r0 | r0 = r3 + r0;
0x00002a80 bl 0x132c | r0 = memchr (r0, r1, r2);
0x00002a84 subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 == r0) {
0x00002a88 beq 0x473c | goto label_34;
| }
0x00002a8c ldr r3, [sp, 0x28] | r3 = ptr;
0x00002a90 ldr r2, [sp, 0x1c] | r2 = buf;
0x00002a94 sub r3, r7, r3 | r3 = r7 - r3;
0x00002a98 str r3, [sp, 0x24] | var_24h = r3;
0x00002a9c add r3, r3, 5 | r3 += 5;
0x00002aa0 cmp r2, r3 |
| if (r2 <= r3) {
0x00002aa4 blo 0x4764 | goto label_39;
| }
0x00002aa8 ldr r1, [pc, 0xd5c] | r1 = *(0x3808);
0x00002aac mov r2, 4 | r2 = 4;
0x00002ab0 add r1, pc, r1 | r1 = pc + r1;
0x00002ab4 add r0, r7, 1 | r0 = r7 + 1;
0x00002ab8 bl 0x138c | r0 = memcmp (r0, r1, r2);
0x00002abc subs sb, r0, 0 | sb = r0 - 0;
| if (sb != r0) {
0x00002ac0 bne 0x47f4 | goto label_40;
| }
0x00002ac4 ldr r3, [sp, 0x24] | r3 = var_24h;
0x00002ac8 cmp r3, r6 |
| if (r3 != r6) {
0x00002acc beq 0x2af4 |
0x00002ad0 ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x00002ad4 cmp r3, 0 |
| if (r3 != 0) {
0x00002ad8 bne 0x2af4 | goto label_41;
| }
0x00002adc ldr r3, [sp, 0x24] | r3 = var_24h;
0x00002ae0 ldr r0, [r5, 0x4c] | r0 = *((r5 + 0x4c));
0x00002ae4 sub r2, r3, r6 | r2 = r3 - r6;
0x00002ae8 ldr r3, [sp, 0x28] | r3 = ptr;
0x00002aec add r1, r3, r6 | r1 = r3 + r6;
0x00002af0 bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
| }
| label_41:
0x00002af4 ldr r3, [sp, 0x1c] | r3 = buf;
0x00002af8 ldr r2, [sp, 0x24] | r2 = var_24h;
0x00002afc mov r0, 0 | r0 = 0;
0x00002b00 sub r8, r3, r2 | r8 = r3 - r2;
0x00002b04 mov r1, 5 | r1 = 5;
0x00002b08 mov r3, r0 | r3 = r0;
0x00002b0c mov r2, r0 | r2 = r0;
| do {
0x00002b10 cmp r8, r1 |
| if (r8 <= r1) {
0x00002b14 ble 0x2b9c | goto label_42;
| }
0x00002b18 ldrb ip, [r7, r1] | ip = *((r7 + r1));
0x00002b1c cmp ip, 0x27 |
| if (ip == 0x27) {
0x00002b20 beq 0x2ce0 | goto label_43;
| }
| if (ip > 0x27) {
0x00002b24 bhi 0x2b38 | goto label_44;
| }
0x00002b28 cmp ip, 0x22 |
| if (ip == 0x22) {
0x00002b2c beq 0x2cc0 | goto label_45;
| }
| label_0:
0x00002b30 add r1, r1, 1 | r1++;
0x00002b34 b 0x2b10 |
| } while (1);
| label_44:
0x00002b38 cmp ip, 0x2d |
| if (ip == 0x2d) {
0x00002b3c beq 0x2b60 | goto label_46;
| }
0x00002b40 cmp ip, 0x5c |
| if (ip != 0x5c) {
0x00002b44 bne 0x2b30 | goto label_0;
| }
0x00002b48 orrs ip, r2, r3 |
| if (ip != r2) {
0x00002b4c eorne r0, r0, 1 | r0 ^= 1;
| goto label_47;
| }
| if (ip != r2) {
| label_47:
0x00002b50 bne 0x2b30 | goto label_0;
| }
| label_1:
0x00002b54 mov r3, ip | r3 = ip;
0x00002b58 mov r2, ip | r2 = ip;
0x00002b5c b 0x2b30 | goto label_0;
| label_46:
0x00002b60 orrs ip, r2, r3 |
| if (ip != r2) {
0x00002b64 bne 0x2b30 | goto label_0;
| }
0x00002b68 add r3, r1, 2 | r3 = r1 + 2;
0x00002b6c cmp r8, r3 |
| if (r8 <= r3) {
0x00002b70 ble 0x2b54 | goto label_1;
| }
0x00002b74 add r3, r7, r1 | r3 = r7 + r1;
0x00002b78 ldrb r2, [r3, 1] | r2 = *((r3 + 1));
0x00002b7c cmp r2, 0x2d |
| if (r2 != 0x2d) {
0x00002b80 bne 0x2b54 | goto label_1;
| }
0x00002b84 ldrb r3, [r3, 2] | r3 = *((r3 + 2));
0x00002b88 cmp r3, 0x3e |
| if (r3 != 0x3e) {
0x00002b8c bne 0x2b54 | goto label_1;
| }
0x00002b90 adds r3, r1, 3 | r3 = r1 + 3;
0x00002b94 str r3, [sp, 0x2c] | var_2ch = r3;
| if (r3 != r1) {
0x00002b98 bne 0x2d00 | goto label_48;
| }
| label_42:
0x00002b9c ldr r3, [sp, 0x1c] | r3 = buf;
0x00002ba0 sub r6, r3, 0x2000 | r6 = r3 - 0x2000;
0x00002ba4 ldr r3, [sp, 0x24] | r3 = var_24h;
0x00002ba8 clz r6, r6 | r6 &= r6;
0x00002bac lsr r6, r6, 5 | r6 >>= 5;
0x00002bb0 cmp r3, 0 |
| if (r3 == 0) {
0x00002bb4 movne r6, 0 | r6 = 0;
| }
0x00002bb8 cmp r6, 0 |
| if (r6 == 0) {
0x00002bbc beq 0x4728 | goto label_49;
| }
0x00002bc0 ldr r1, [pc, 0xc48] | r1 = *(0x380c);
0x00002bc4 mov r2, 0x2d | r2 = 0x2d;
0x00002bc8 add r1, pc, r1 | r1 = pc + r1;
0x00002bcc ldr r0, [r5, 0x4c] | r0 = *((r5 + 0x4c));
0x00002bd0 bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
0x00002bd4 ldr r3, [sp, 0x28] | r3 = ptr;
0x00002bd8 add r3, r3, 0x1000 | r3 += 0x1000;
0x00002bdc ldrb r2, [r3, 0xffe] | r2 = *((r3 + 0xffe));
0x00002be0 cmp r2, 0x2d |
| if (r2 != 0x2d) {
0x00002be4 bne 0x4704 | goto label_50;
| }
0x00002be8 ldrb r2, [r3, 0xfff] | r2 = *((r3 + 0xfff));
0x00002bec cmp r2, 0x2d |
| if (r2 != 0x2d) {
0x00002bf0 bne 0x4704 | goto label_50;
| }
0x00002bf4 ldr r1, [pc, 0xc18] | r1 = *(0x3810);
0x00002bf8 mov r2, 2 | r2 = 2;
0x00002bfc add r1, pc, r1 | r1 = pc + r1;
0x00002c00 ldr r0, [r5, 0x4c] | r0 = *((r5 + 0x4c));
0x00002c04 bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
0x00002c08 mov r3, 0 | r3 = 0;
0x00002c0c mov r6, r3 | r6 = r3;
0x00002c10 str r3, [sp, 0x1c] | buf = r3;
| label_11:
0x00002c14 ldr r3, [sp, 0x1c] | r3 = buf;
0x00002c18 ldr r1, [sp, 0x1c] | r1 = buf;
0x00002c1c rsb r2, r3, 0x2000 | r2 = 0x2000 - r3;
0x00002c20 ldr r3, [sp, 0x28] | r3 = ptr;
0x00002c24 ldr r0, [sp, 0x34] | r0 = fildes;
0x00002c28 add r1, r3, r1 | r1 = r3 + r1;
0x00002c2c bl 0x1368 | r0 = read (r0, r1, r2);
0x00002c30 cmp r0, 0 |
| if (r0 > 0) {
0x00002c34 bgt 0x2a5c | goto label_2;
| }
| if (r0 != 0) {
0x00002c38 beq 0x2c78 |
0x00002c3c bl 0x1488 | r0 = errno_location ();
0x00002c40 ldr r0, [r0] | r0 = *(r0);
0x00002c44 bl 0x120c | strerror (r0);
0x00002c48 ldr r3, [r5, 0x154] | r3 = *((r5 + 0x154));
0x00002c4c ldr r1, [pc, 0xbc4] | r1 = *(0x3814);
0x00002c50 ldr r2, [pc, 0xbc4] | r2 = *(0x3818);
0x00002c54 add r1, pc, r1 | r1 = pc + r1;
0x00002c58 stmib sp, {r0, r3} | __asm ("stmib sp, {r0, r3}");
0x00002c5c ldr r3, [pc, 0xbbc] | r3 = *(0x381c);
0x00002c60 mov r0, sl | r0 = sl;
0x00002c64 add r3, pc, r3 | r3 = pc + r3;
0x00002c68 str r3, [sp] | *(sp) = r3;
0x00002c6c ldr r3, [pc, 0xbb0] | r3 = *(0x3820);
0x00002c70 add r3, pc, r3 | r3 = pc + r3;
0x00002c74 bl 0x1500 | loc_imp_log_error_write ();
| }
0x00002c78 ldr r3, [sp, 0x1c] | r3 = buf;
0x00002c7c cmp r3, r6 |
| if (r3 != r6) {
0x00002c80 beq 0x2ca8 |
0x00002c84 ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x00002c88 cmp r3, 0 |
| if (r3 != 0) {
0x00002c8c bne 0x2ca8 | goto label_51;
| }
0x00002c90 ldr r3, [sp, 0x1c] | r3 = buf;
0x00002c94 ldr r0, [r5, 0x4c] | r0 = *((r5 + 0x4c));
0x00002c98 sub r2, r3, r6 | r2 = r3 - r6;
0x00002c9c ldr r3, [sp, 0x28] | r3 = ptr;
0x00002ca0 add r1, r3, r6 | r1 = r3 + r6;
0x00002ca4 bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
| }
| label_51:
0x00002ca8 ldr r0, [sp, 0x28] | r0 = ptr;
0x00002cac bl 0x1524 | free (r0);
0x00002cb0 ldr r0, [sp, 0x34] | r0 = fildes;
0x00002cb4 bl 0x1518 | close (r0);
0x00002cb8 mov r3, 0 | r3 = 0;
0x00002cbc b 0x2a28 | goto label_3;
| label_45:
0x00002cc0 cmp r2, 0 |
| if (r2 != 0) {
0x00002cc4 bne 0x2b30 | goto label_0;
| }
0x00002cc8 eor r3, r3, 1 | r3 ^= 1;
0x00002ccc and lr, r3, 1 | lr = r3 & 1;
0x00002cd0 eor ip, r0, 1 |
0x00002cd4 orrs ip, ip, lr |
| if (ip != ip) {
0x00002cd8 moveq r3, 1 | r3 = 1;
| }
0x00002cdc b 0x2b30 | goto label_0;
| label_43:
0x00002ce0 cmp r3, 0 |
| if (r3 != 0) {
0x00002ce4 bne 0x2b30 | goto label_0;
| }
0x00002ce8 eor r2, r2, 1 | r2 ^= 1;
0x00002cec and lr, r2, 1 | lr = r2 & 1;
0x00002cf0 eor ip, r0, 1 |
0x00002cf4 orrs ip, ip, lr |
| if (ip != ip) {
0x00002cf8 moveq r2, 1 | r2 = 1;
| }
0x00002cfc b 0x2b30 | goto label_0;
| label_48:
0x00002d00 mov r3, 5 | r3 = 5;
0x00002d04 add r8, r7, r3 | r8 = r7 + r3;
0x00002d08 mov r0, r8 | r0 = r8;
0x00002d0c str r3, [sp, 0x78] | var_78h = r3;
| do {
0x00002d10 sub r2, r0, r7 | r2 = r0 - r7;
0x00002d14 ldrb r3, [r0], 1 | r3 = *(r0);
| r0++;
0x00002d18 orr r1, r3, 0x20 | r1 = r3 | 0x20;
0x00002d1c sub r1, r1, 0x61 | r1 -= 0x61;
0x00002d20 cmp r1, 0x19 |
0x00002d24 bls 0x2d10 |
| } while (r1 < 0x19);
0x00002d28 sub r1, r2, 5 | r1 = r2 - 5;
0x00002d2c cmp r1, 0 |
0x00002d30 str r1, [sp, 0x7c] | var_7ch = r1;
0x00002d34 bne 0x2dac |
| while ((r3 & 0x20) == 0) {
| label_4:
0x00002d38 mvn r6, 0 | r6 = ~0;
| label_5:
0x00002d3c mov r3, 0 | r3 = 0;
0x00002d40 cmn r6, 1 |
0x00002d44 str r7, [sp, 0x60] | var_60h = r7;
0x00002d48 str r3, [sp, 0x64] | var_64h = r3;
0x00002d4c str r3, [sp, 0x68] | var_68h = r3;
0x00002d50 str r3, [sp, 0x6c] | var_6ch = r3;
0x00002d54 str r3, [sp, 0x70] | var_70h = r3;
0x00002d58 str r3, [sp, 0x74] | var_74h = r3;
| if (r6 == 1) {
0x00002d5c addne r0, sp, 0x78 | r0 += var_78h;
| }
| if (r6 != 1) {
0x00002d60 bne 0x2fd8 | goto label_52;
| }
0x00002d64 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x00002d68 cmp r3, 0xf |
| if (r3 > 0xf) {
0x00002d6c ble 0x2d9c |
0x00002d70 ldr r1, [pc, 0xab0] | r1 = *(0x3824);
0x00002d74 mov r2, 7 | r2 = 7;
0x00002d78 add r1, pc, r1 | r1 = pc + r1;
0x00002d7c mov r0, r8 | r0 = r8;
0x00002d80 bl 0x138c | r0 = memcmp (r0, r1, r2);
0x00002d84 cmp r0, 0 |
| if (r0 != 0) {
0x00002d88 bne 0x2d9c | goto label_53;
| }
0x00002d8c ldrb r3, [r7, 0xc] | r3 = *((r7 + 0xc));
0x00002d90 cmp r3, 9 |
0x00002d94 cmpne r3, 0x20 | __asm ("cmpne r3, 0x20");
| if (r3 == 9) {
0x00002d98 beq 0x324c | goto label_15;
| }
| }
| label_53:
0x00002d9c ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x00002da0 mov r1, r7 | r1 = r7;
| label_12:
0x00002da4 ldr r0, [r5, 0x4c] | r0 = *((r5 + 0x4c));
0x00002da8 b 0x3248 | goto label_13;
0x00002dac ldr r0, [sp, 0x2c] | r0 = var_2ch;
0x00002db0 add r1, r2, 3 | r1 = r2 + 3;
0x00002db4 cmp r0, r1 |
| if (r0 == r1) {
0x00002db8 beq 0x2f80 | goto label_54;
| }
0x00002dbc ldr r1, [pc, 0xa68] | r1 = *(0x3828);
0x00002dc0 ldr r0, [sp, 0x40] | r0 = var_40h;
0x00002dc4 lsl r3, r3, 1 | r3 <<= 1;
0x00002dc8 ldr r1, [r0, r1] | r1 = *((r0 + r1));
0x00002dcc ldr fp, [r1] | fp = *(0x3828);
0x00002dd0 ldrh r3, [fp, r3] | r3 = *((fp + r3));
0x00002dd4 tst r3, 0x20 |
0x00002dd8 beq 0x2d38 |
| }
| label_6:
0x00002ddc add r3, r2, 1 | r3 = r2 + 1;
0x00002de0 ldrb r1, [r7, r3] | r1 = *((r7 + r3));
0x00002de4 lsl r1, r1, 1 | r1 <<= 1;
0x00002de8 ldrh r1, [fp, r1] | r1 = *((fp + r1));
0x00002dec tst r1, 0x20 |
| if ((r1 & 0x20) != 0) {
0x00002df0 bne 0x2f70 | goto label_55;
| }
0x00002df4 ldr r1, [sp, 0x2c] | r1 = var_2ch;
0x00002df8 add r2, r2, 4 | r2 += 4;
0x00002dfc cmp r1, r2 |
| if (r1 == r2) {
0x00002e00 beq 0x2f80 | goto label_54;
| }
0x00002e04 add r1, r7, r3 | r1 = r7 + r3;
0x00002e08 str r3, [sp, 0x80] | var_80h = r3;
| do {
0x00002e0c sub r6, r1, r7 | r6 = r1 - r7;
0x00002e10 ldrb ip, [r1], 1 | ip = *(r1);
| r1++;
0x00002e14 orr r2, ip, 0x20 | r2 = ip | 0x20;
0x00002e18 sub r2, r2, 0x61 | r2 -= 0x61;
0x00002e1c cmp r2, 0x19 |
0x00002e20 bls 0x2e0c |
| } while (r2 < 0x19);
0x00002e24 sub r3, r6, r3 | r3 = r6 - r3;
0x00002e28 cmp r3, 0 |
0x00002e2c str r3, [sp, 0x84] | var_84h = r3;
| if (r3 == 0) {
0x00002e30 beq 0x2d38 | goto label_4;
| }
0x00002e34 cmp ip, 0x3d |
0x00002e38 add r6, r6, 1 | r6++;
| if (ip != 0x3d) {
0x00002e3c bne 0x2d38 | goto label_4;
| }
0x00002e40 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x00002e44 add r0, r7, r6 | r0 = r7 + r6;
0x00002e48 sub r1, r3, r6 | r1 = r3 - r6;
0x00002e4c sub r1, r1, 3 | r1 -= 3;
0x00002e50 str r6, [sp, 0x88] | var_88h = r6;
0x00002e54 bl 0x2890 | r0 = fcn_00002890 (r0, r1);
0x00002e58 cmp r0, 0 |
0x00002e5c str r0, [sp, 0x8c] | var_8ch = r0;
| if (r0 == 0) {
0x00002e60 beq 0x2d38 | goto label_4;
| }
0x00002e64 ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x00002e68 add r6, r6, r0 | r6 += r0;
0x00002e6c add r3, r6, 3 | r3 = r6 + 3;
0x00002e70 cmp r2, r3 |
| if (r2 == r3) {
0x00002e74 beq 0x2f88 | goto label_56;
| }
0x00002e78 ldrb r3, [r7, r6] | r3 = *((r7 + r6));
0x00002e7c lsl r3, r3, 1 | r3 <<= 1;
0x00002e80 ldrh r3, [fp, r3] | r3 = *((fp + r3));
0x00002e84 tst r3, 0x20 |
| if ((r3 & 0x20) == 0) {
0x00002e88 beq 0x2d38 | goto label_4;
| }
| label_7:
0x00002e8c add r3, r6, 1 | r3 = r6 + 1;
0x00002e90 ldrb r2, [r7, r3] | r2 = *((r7 + r3));
0x00002e94 lsl r2, r2, 1 | r2 <<= 1;
0x00002e98 ldrh r2, [fp, r2] | r2 = *((fp + r2));
0x00002e9c tst r2, 0x20 |
| if ((r2 & 0x20) != 0) {
0x00002ea0 bne 0x2f78 | goto label_57;
| }
0x00002ea4 ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x00002ea8 add r6, r6, 4 | r6 += 4;
0x00002eac cmp r2, r6 |
| if (r2 == r6) {
0x00002eb0 beq 0x2f88 | goto label_56;
| }
0x00002eb4 add r1, r7, r3 | r1 = r7 + r3;
0x00002eb8 str r3, [sp, 0x90] | var_90h = r3;
| do {
0x00002ebc sub r6, r1, r7 | r6 = r1 - r7;
0x00002ec0 ldrb ip, [r1], 1 | ip = *(r1);
| r1++;
0x00002ec4 orr r2, ip, 0x20 | r2 = ip | 0x20;
0x00002ec8 sub r2, r2, 0x61 | r2 -= 0x61;
0x00002ecc cmp r2, 0x19 |
0x00002ed0 bls 0x2ebc |
| } while (r2 < 0x19);
0x00002ed4 sub r3, r6, r3 | r3 = r6 - r3;
0x00002ed8 cmp r3, 0 |
0x00002edc str r3, [sp, 0x94] | var_94h = r3;
| if (r3 == 0) {
0x00002ee0 beq 0x2d38 | goto label_4;
| }
0x00002ee4 cmp ip, 0x3d |
0x00002ee8 add r6, r6, 1 | r6++;
| if (ip != 0x3d) {
0x00002eec bne 0x2d38 | goto label_4;
| }
0x00002ef0 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x00002ef4 add r0, r7, r6 | r0 = r7 + r6;
0x00002ef8 sub r1, r3, r6 | r1 = r3 - r6;
0x00002efc sub r1, r1, 3 | r1 -= 3;
0x00002f00 str r6, [sp, 0x98] | var_98h = r6;
0x00002f04 bl 0x2890 | r0 = fcn_00002890 (r0, r1);
0x00002f08 cmp r0, 0 |
0x00002f0c str r0, [sp, 0x9c] | var_9ch = r0;
| if (r0 == 0) {
0x00002f10 beq 0x2d38 | goto label_4;
| }
0x00002f14 ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x00002f18 add r6, r6, r0 | r6 += r0;
0x00002f1c add r3, r6, 3 | r3 = r6 + 3;
0x00002f20 cmp r2, r3 |
| if (r2 == r3) {
0x00002f24 beq 0x2f68 | goto label_58;
| }
0x00002f28 ldrb r2, [r7, r6] | r2 = *((r7 + r6));
0x00002f2c add r3, r7, r6 | r3 = r7 + r6;
0x00002f30 lsl r2, r2, 1 | r2 <<= 1;
0x00002f34 ldrh r2, [fp, r2] | r2 = *((fp + r2));
0x00002f38 tst r2, 0x20 |
| if ((r2 & 0x20) == 0) {
0x00002f3c beq 0x2d38 | goto label_4;
| }
| do {
0x00002f40 sub r2, r3, r7 | r2 = r3 - r7;
0x00002f44 ldrb r1, [r3, 1]! | r1 = *((r3 += 1));
0x00002f48 lsl r1, r1, 1 | r1 <<= 1;
0x00002f4c ldrh r1, [fp, r1] | r1 = *((fp + r1));
0x00002f50 tst r1, 0x20 |
0x00002f54 bne 0x2f40 |
| } while ((r1 & 0x20) != 0);
0x00002f58 add r3, r2, 4 | r3 = r2 + 4;
0x00002f5c ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x00002f60 cmp r2, r3 |
| if (r2 != r3) {
0x00002f64 bne 0x2d38 | goto label_4;
| }
| label_58:
0x00002f68 mov r6, 0xa | r6 = 0xa;
0x00002f6c b 0x2d3c | goto label_5;
| label_55:
0x00002f70 mov r2, r3 | r2 = r3;
0x00002f74 b 0x2ddc | goto label_6;
| label_57:
0x00002f78 mov r6, r3 | r6 = r3;
0x00002f7c b 0x2e8c | goto label_7;
| label_54:
0x00002f80 mov r6, 2 | r6 = 2;
0x00002f84 b 0x2d3c | goto label_5;
| label_56:
0x00002f88 mov r6, 6 | r6 = 6;
0x00002f8c b 0x2d3c | goto label_5;
| do {
0x00002f90 ldr ip, [r0, sb, lsl 2] | offset_0 = sb << 2;
| ip = *((r0 + offset_0));
0x00002f94 add r1, r0, sb, lsl 2 | r1 = r0 + (sb << 2);
0x00002f98 add r2, r7, ip | r2 = r7 + ip;
0x00002f9c ldrb ip, [r7, ip] | ip = *((r7 + ip));
0x00002fa0 ldr r1, [r1, 4] | r1 = var_80h;
0x00002fa4 cmp ip, 0x22 |
| if (ip != 0x22) {
0x00002fa8 beq 0x2fb8 |
0x00002fac cmp ip, 0x27 |
| if (ip == 0x27) {
0x00002fb0 strbne r3, [r2, r1] | *((r2 + r1)) = r3;
| }
| if (ip != 0x27) {
0x00002fb4 bne 0x2fc4 | goto label_59;
| }
| }
0x00002fb8 add r2, r2, 1 | r2++;
0x00002fbc add r1, r2, r1 | r1 = r2 + r1;
0x00002fc0 strb r3, [r1, -2] | *((r1 - 2)) = r3;
| label_59:
0x00002fc4 asr r1, sb, 1 | r1 = sb >> 1;
0x00002fc8 add ip, sp, 0x208 |
0x00002fcc add r1, ip, r1, lsl 2 | r1 = ip + (r1 << 2);
0x00002fd0 add sb, sb, 2 | sb += 2;
0x00002fd4 str r2, [r1, -0x1a4] | var_64h = r2;
| label_52:
0x00002fd8 cmp sb, r6 |
0x00002fdc blt 0x2f90 |
| } while (sb < r6);
0x00002fe0 ldr r8, [pc, 0x848] | r8 = *(0x382c);
0x00002fe4 ldr r3, [sp, 0x64] | r3 = var_64h;
0x00002fe8 mov fp, 0 |
0x00002fec add r8, pc, r8 | r8 = pc + r8;
0x00002ff0 str r3, [sp, 0x20] | s1 = r3;
| label_8:
0x00002ff4 ldr r1, [r8, fp, lsl 3] | offset_1 = fp << 3;
| r1 = *((r8 + offset_1));
0x00002ff8 lsl sb, fp, 3 | sb = fp << 3;
0x00002ffc cmp r1, 0 |
0x00003000 bne 0x3030 |
| while (1) {
0x00003004 ldr r3, [sp, 0x20] | r3 = s1;
0x00003008 ldr r1, [pc, 0x824] | r1 = *(0x3830);
0x0000300c str r3, [sp, 4] | var_4h = r3;
0x00003010 ldr r3, [pc, 0x820] | r3 = *(0x3834);
0x00003014 ldr r2, [pc, 0x820] | r2 = *(0x3838);
0x00003018 add r3, pc, r3 | r3 = pc + r3;
0x0000301c str r3, [sp] | *(sp) = r3;
0x00003020 ldr r3, [pc, 0x818] | r3 = *(0x383c);
0x00003024 add r1, pc, r1 | r1 = pc + r1;
0x00003028 add r3, pc, r3 | r3 = pc + r3;
0x0000302c b 0x3720 | goto label_60;
0x00003030 ldr r0, [sp, 0x20] | r0 = s1;
0x00003034 bl 0x1404 | r0 = strcmp (r0, r1);
0x00003038 subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 != r0) {
0x0000303c bne 0x309c | goto label_61;
| }
0x00003040 asr r6, r6, 1 | r6 >>= 1;
0x00003044 add r3, r6, 1 | r3 = r6 + 1;
0x00003048 add r8, r8, sb | r8 += sb;
0x0000304c str r3, [sp, 0x30] | var_30h = r3;
0x00003050 ldr r3, [r8, 4] | r3 = *((r8 + 4));
0x00003054 str r3, [sp, 0x3c] | s2 = r3;
0x00003058 sub r3, r3, 1 | r3--;
0x0000305c cmp r3, 0xc |
| if (r3 > 0xc) {
| /* switch table (13 cases) at 0x3068 */
0x00003060 addls pc, pc, r3, lsl 2 | pc += (r3 << 2);
| }
0x00003064 b 0x3004 |
| }
0x00003068 b 0x31b8 | goto label_62;
0x0000306c b 0x360c | goto label_63;
0x00003070 b 0x360c | goto label_63;
0x00003074 b 0x360c | goto label_63;
0x00003078 b 0x3f8c | goto label_64;
0x0000307c b 0x40cc | goto label_65;
0x00003080 b 0x3ed0 | goto label_66;
0x00003084 b 0x44bc | goto label_67;
0x00003088 b 0x4634 | goto label_68;
0x0000308c b 0x4548 | goto label_69;
0x00003090 b 0x46e0 | goto label_70;
0x00003094 b 0x4208 | goto label_71;
0x00003098 b 0x324c | goto label_15;
| label_61:
0x0000309c add fp, fp, 1 |
0x000030a0 b 0x2ff4 | goto label_8;
| label_9:
0x000030a4 add r3, sp, 0x60 | r3 += var_60h;
0x000030a8 ldr fp, [r3, r8, lsl 2] | offset_2 = r8 << 2;
| fp = *((r3 + offset_2));
0x000030ac ldr r1, [sp, 0x3c] | r1 = s2;
0x000030b0 mov r0, fp | r0 = fp;
0x000030b4 str r3, [sp, 0x48] | var_48h = r3;
0x000030b8 bl 0x1404 | strcmp (r0, r1);
0x000030bc ldr r3, [sp, 0x48] | r3 = var_48h;
0x000030c0 subs sb, r0, 0 | sb = r0 - 0;
| if (sb != r0) {
0x000030c4 addeq r3, r3, r8, lsl 2 | r3 += (r8 << 2);
| }
| if (sb != r0) {
0x000030c8 ldreq r6, [r3, 4] | r6 = *((r3 + 4));
| }
| if (sb == r0) {
0x000030cc beq 0x3124 | goto label_72;
| }
0x000030d0 ldr r1, [pc, 0x76c] | r1 = *(0x3840);
0x000030d4 mov r0, fp | r0 = fp;
0x000030d8 add r1, pc, r1 | r1 = pc + r1;
0x000030dc bl 0x1404 | r0 = strcmp (r0, r1);
0x000030e0 cmp r0, 0 |
| if (r0 == 0) {
0x000030e4 beq 0x3154 | goto label_73;
| }
0x000030e8 ldr r3, [sp, 0x20] | r3 = s1;
0x000030ec ldr r1, [pc, 0x754] | r1 = *(0x3844);
0x000030f0 str r3, [sp, 4] | var_4h = r3;
0x000030f4 ldr r3, [pc, 0x750] | r3 = *(0x3848);
0x000030f8 str fp, [sp, 8] | var_8h = fp;
0x000030fc add r3, pc, r3 | r3 = pc + r3;
0x00003100 str r3, [sp] | *(sp) = r3;
0x00003104 ldr r3, [pc, 0x744] | r3 = *(0x384c);
0x00003108 ldr r2, [pc, 0x744] | r2 = *(0x3850);
0x0000310c add r3, pc, r3 | r3 = pc + r3;
0x00003110 add r1, pc, r1 | r1 = pc + r1;
0x00003114 mov r0, sl | r0 = sl;
0x00003118 bl 0x1500 | loc_imp_log_error_write ();
0x0000311c b 0x3154 | goto label_73;
| do {
0x00003120 add sb, sb, 1 | sb++;
| label_72:
0x00003124 ldr r3, [sp, 0x54] | r3 = var_54h;
0x00003128 lsl fp, sb, 3 |
0x0000312c ldr r1, [r3, sb, lsl 3] | offset_3 = sb << 3;
| r1 = *((r3 + offset_3));
0x00003130 cmp r1, 0 |
| if (r1 == 0) {
0x00003134 beq 0x3154 | goto label_73;
| }
0x00003138 mov r0, r6 | r0 = r6;
0x0000313c bl 0x1404 | r0 = strcmp (r0, r1);
0x00003140 cmp r0, 0 |
0x00003144 bne 0x3120 |
| } while (r0 != 0);
0x00003148 ldr r3, [sp, 0x44] | r3 = var_44h;
0x0000314c add r3, r3, fp | r3 += fp;
0x00003150 ldr r7, [r3, 0x74] | r7 = *((r3 + 0x74));
| label_73:
0x00003154 add r8, r8, 2 | r8 += 2;
| label_10:
0x00003158 ldr r3, [sp, 0x30] | r3 = var_30h;
0x0000315c cmp r3, r8 |
| if (r3 > r8) {
0x00003160 bhi 0x30a4 | goto label_9;
| }
0x00003164 ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x00003168 cmp r3, 0 |
| if (r3 != 0) {
0x0000316c bne 0x324c | goto label_15;
| }
0x00003170 cmp r6, 0 |
| if (r6 == 0) {
0x00003174 bne 0x31d0 |
0x00003178 ldr r3, [pc, 0x6d8] | r3 = *(0x3854);
0x0000317c ldr r1, [pc, 0x6d8] | r1 = *(0x3858);
0x00003180 add r3, pc, r3 | r3 = pc + r3;
0x00003184 str r3, [sp, 8] | var_8h = r3;
0x00003188 ldr r3, [sp, 0x20] | r3 = s1;
0x0000318c mov r2, 0x16c | r2 = 0x16c;
0x00003190 str r3, [sp, 4] | var_4h = r3;
0x00003194 ldr r3, [pc, 0x6c4] | r3 = *(0x385c);
0x00003198 add r1, pc, r1 | r1 = pc + r1;
0x0000319c add r3, pc, r3 | r3 = pc + r3;
0x000031a0 str r3, [sp] | *(sp) = r3;
0x000031a4 ldr r3, [pc, 0x6b8] | r3 = *(0x3860);
0x000031a8 add r3, pc, r3 | r3 = pc + r3;
| label_18:
0x000031ac mov r0, sl | r0 = sl;
0x000031b0 bl 0x1500 | loc_imp_log_error_write ();
0x000031b4 b 0x324c | goto label_15;
| label_62:
0x000031b8 ldr r3, [pc, 0x6a8] | r3 = *(0x3864);
0x000031bc mov r6, 0 | r6 = 0;
0x000031c0 add r3, pc, r3 | r3 = pc + r3;
0x000031c4 mov r8, 2 | r8 = 2;
0x000031c8 str r3, [sp, 0x3c] | s2 = r3;
0x000031cc b 0x3158 | goto label_10;
| }
0x000031d0 sub r7, r7, 1 | r7--;
0x000031d4 cmp r7, 7 |
| if (r7 > 7) {
| /* switch table (8 cases) at 0x31e0 */
0x000031d8 addls pc, pc, r7, lsl 2 | pc += (r7 << 2);
| }
0x000031dc b 0x34ec | goto label_74;
0x000031e0 b 0x3324 | goto label_75;
0x000031e4 b 0x32d4 | goto label_76;
0x000031e8 b 0x3374 | goto label_77;
0x000031ec b 0x33bc | goto label_78;
0x000031f0 b 0x3288 | goto label_79;
0x000031f4 b 0x3200 | goto label_80;
0x000031f8 b 0x33d4 | goto label_81;
0x000031fc b 0x34a8 | goto label_82;
| label_80:
0x00003200 ldr r3, [sp, 0x38] | r3 = var_38h;
0x00003204 ldr r6, [sl, 0x5c] | r6 = *((sl + 0x5c));
0x00003208 ldr r0, [r3, 0x18] | r0 = *((r3 + 0x18));
0x0000320c bl 0x1410 | r0 = getpwuid ();
0x00003210 subs r3, r0, 0 | r3 = r0 - 0;
| if (r3 != r0) {
0x00003214 bne 0x3278 | goto label_83;
| }
0x00003218 ldr r2, [sp, 0x38] | r2 = var_38h;
0x0000321c mov r0, r6 | r0 = r6;
0x00003220 ldr r2, [r2, 0x18] | r2 = *((r2 + 0x18));
0x00003224 bl 0x1440 | loc_imp_buffer_copy_int ();
| do {
0x00003228 cmp r6, 0 |
0x0000322c ldr r3, [r5, 0x4c] | r3 = *((r5 + 0x4c));
| if (r6 == 0) {
0x00003230 ldrne r1, [r6] | r1 = *(r6);
| }
| if (r6 != 0) {
0x00003234 moveq r1, r6 | r1 = r6;
| }
0x00003238 mov r0, r6 | r0 = r6;
| label_14:
0x0000323c bl 0x25dc | r0 = fcn_000025dc (r0);
0x00003240 mov r2, r0 | r2 = r0;
0x00003244 mov r0, r3 | r0 = r3;
| label_13:
0x00003248 bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
| label_15:
0x0000324c ldr r3, [sp, 0x24] | r3 = var_24h;
0x00003250 ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x00003254 add r6, r3, r2 | r6 = r3 + r2;
0x00003258 sub r3, r6, 1 | r3 = r6 - 1;
0x0000325c str r3, [sp, 0x24] | var_24h = r3;
0x00003260 ldr r3, [sp, 0x1c] | r3 = buf;
0x00003264 cmp r3, r6 |
| if (r3 != r6) {
0x00003268 bne 0x47f4 | goto label_40;
| }
| label_32:
0x0000326c mov r6, 0 | r6 = 0;
0x00003270 str r6, [sp, 0x1c] | buf = r6;
0x00003274 b 0x2c14 | goto label_11;
| label_83:
0x00003278 ldr r1, [r3] | r1 = *(r3);
0x0000327c mov r0, r6 | r0 = r6;
0x00003280 bl 0x12b4 | loc_imp_buffer_copy_string ();
0x00003284 b 0x3228 |
| } while (1);
| label_79:
0x00003288 ldr r3, [sp, 0x38] | r3 = var_38h;
0x0000328c add r0, sp, 0x208 | r0 += var_208h;
0x00003290 ldr r3, [r3, 0x50] | r3 = *((r3 + 0x50));
0x00003294 add r6, sp, 0x108 | r6 += s;
0x00003298 str r3, [r0, -0x168]! | *((r0 -= 0x168)) = r3;
0x0000329c ldr r3, [r4] | r3 = *(r4);
0x000032a0 ldr r7, [r3] | r7 = *(r3);
0x000032a4 bl 0x13a4 | localtime (r0);
0x000032a8 mov r1, 0xff | r1 = 0xff;
0x000032ac mov r2, r7 | r2 = r7;
0x000032b0 mov r3, r0 | r3 = r0;
0x000032b4 mov r0, r6 | r0 = r6;
0x000032b8 bl 0x144c | r0 = strftime (r0, r1, r2, r3);
0x000032bc cmp r0, 0 |
| if (r0 != 0) {
0x000032c0 bne 0x3cac | goto label_84;
| }
0x000032c4 ldr r1, [pc, 0x5a0] | r1 = *(0x3868);
0x000032c8 mov r2, 6 | r2 = 6;
0x000032cc add r1, pc, r1 | r1 = pc + r1;
0x000032d0 b 0x2da4 | goto label_12;
| label_76:
0x000032d4 mov r0, 0 | r0 = 0;
0x000032d8 bl 0x13d4 | time (r0);
0x000032dc ldr r2, [r4] | r2 = *(r4);
0x000032e0 add r3, sp, 0x208 | r3 += var_208h;
0x000032e4 ldr r7, [r2] | r7 = *(r2);
0x000032e8 add r6, sp, 0x108 | r6 += s;
0x000032ec str r0, [r3, -0x168]! | *((r3 -= 0x168)) = r0;
0x000032f0 mov r0, r3 | r0 = r3;
0x000032f4 bl 0x13a4 | localtime (r0);
0x000032f8 mov r2, r7 | r2 = r7;
0x000032fc mov r1, 0xff | r1 = 0xff;
0x00003300 mov r3, r0 | r3 = r0;
0x00003304 mov r0, r6 | r0 = r6;
0x00003308 bl 0x144c | r0 = strftime (r0, r1, r2, r3);
0x0000330c cmp r0, 0 |
| if (r0 != 0) {
0x00003310 bne 0x3cac | goto label_84;
| }
0x00003314 ldr r1, [pc, 0x554] | r1 = *(0x386c);
0x00003318 mov r2, 6 | r2 = 6;
0x0000331c add r1, pc, r1 | r1 = pc + r1;
0x00003320 b 0x2da4 | goto label_12;
| label_75:
0x00003324 mov r0, 0 | r0 = 0;
0x00003328 bl 0x13d4 | time (r0);
0x0000332c ldr r2, [r4] | r2 = *(r4);
0x00003330 add r3, sp, 0x208 | r3 += var_208h;
0x00003334 ldr r7, [r2] | r7 = *(r2);
0x00003338 add r6, sp, 0x108 | r6 += s;
0x0000333c str r0, [r3, -0x168]! | *((r3 -= 0x168)) = r0;
0x00003340 mov r0, r3 | r0 = r3;
0x00003344 bl 0x14b8 | gmtime (r0);
0x00003348 mov r2, r7 | r2 = r7;
0x0000334c mov r1, 0xff | r1 = 0xff;
0x00003350 mov r3, r0 | r3 = r0;
0x00003354 mov r0, r6 | r0 = r6;
0x00003358 bl 0x144c | r0 = strftime (r0, r1, r2, r3);
0x0000335c cmp r0, 0 |
| if (r0 != 0) {
0x00003360 bne 0x3cac | goto label_84;
| }
0x00003364 ldr r1, [pc, 0x508] | r1 = *(0x3870);
0x00003368 mov r2, 6 | r2 = 6;
0x0000336c add r1, pc, r1 | r1 = pc + r1;
0x00003370 b 0x2da4 | goto label_12;
| label_77:
0x00003374 ldr r8, [r5, 0x154] | r8 = *((r5 + 0x154));
0x00003378 mov r1, 0x2f | r1 = 0x2f;
0x0000337c ldr r7, [r8] | r7 = *(r8);
0x00003380 mov r0, r7 | r0 = r7;
0x00003384 bl 0x12f0 | strrchr (r0, r1);
0x00003388 ldr r6, [r5, 0x4c] | r6 = *((r5 + 0x4c));
0x0000338c cmp r0, 0 |
| if (r0 != 0) {
0x00003390 bne 0x33ac | goto label_85;
| }
0x00003394 mov r0, r8 | r0 = r8;
0x00003398 bl 0x25dc | r0 = fcn_000025dc (r0);
| do {
0x0000339c mov r2, r0 | r2 = r0;
0x000033a0 mov r1, r7 | r1 = r7;
0x000033a4 mov r0, r6 | r0 = r6;
0x000033a8 b 0x3248 | goto label_13;
| label_85:
0x000033ac add r7, r0, 1 | r7 = r0 + 1;
0x000033b0 mov r0, r7 | r0 = r7;
0x000033b4 bl 0x14c4 | strlen (r0);
0x000033b8 b 0x339c |
| } while (1);
| label_78:
0x000033bc ldr r3, [r5, 0x4c] | r3 = *((r5 + 0x4c));
0x000033c0 ldr r0, [r5, 0x148] | r0 = *((r5 + 0x148));
| label_16:
0x000033c4 cmp r0, 0 |
| if (r0 == 0) {
0x000033c8 ldrne r1, [r0] | r1 = *(r0);
| }
| if (r0 != 0) {
0x000033cc moveq r1, r0 | r1 = r0;
| }
0x000033d0 b 0x323c | goto label_14;
| label_81:
0x000033d4 ldr r2, [r5, 0x140] | r2 = *((r5 + 0x140));
0x000033d8 mov r0, r2 | r0 = r2;
0x000033dc bl 0x25b8 | r0 = fcn_000025b8 (r0);
0x000033e0 cmp r0, 0 |
| if (r0 != 0) {
0x000033e4 bne 0x324c | goto label_15;
| }
0x000033e8 ldr r0, [r5, 0x144] | r0 = *((r5 + 0x144));
0x000033ec bl 0x25b8 | r0 = fcn_000025b8 (r0);
0x000033f0 cmp r0, 0 |
| if (r0 != 0) {
0x000033f4 bne 0x324c | goto label_15;
| }
0x000033f8 cmp r2, 0 |
0x000033fc mov r0, r2 | r0 = r2;
| if (r2 == 0) {
0x00003400 ldrne r1, [r2] | r1 = *(r2);
| }
| if (r2 != 0) {
0x00003404 moveq r1, r2 | r1 = r2;
| }
0x00003408 ldr r3, [r5, 0x4c] | r3 = *((r5 + 0x4c));
0x0000340c bl 0x25dc | r0 = fcn_000025dc (r0);
0x00003410 mov r2, r0 | r2 = r0;
0x00003414 mov r0, r3 | r0 = r3;
0x00003418 bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
0x0000341c ldr r1, [pc, 0x454] | r1 = *(0x3874);
0x00003420 mov r2, 3 | r2 = 3;
0x00003424 add r1, pc, r1 | r1 = pc + r1;
0x00003428 ldr r0, [r5, 0x4c] | r0 = *((r5 + 0x4c));
0x0000342c bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
0x00003430 ldr r0, [r5, 0x144] | r0 = *((r5 + 0x144));
0x00003434 ldr r3, [r5, 0x4c] | r3 = *((r5 + 0x4c));
0x00003438 cmp r0, 0 |
| if (r0 == 0) {
0x0000343c ldrne r1, [r0] | r1 = *(r0);
| }
| if (r0 != 0) {
0x00003440 moveq r1, r0 | r1 = r0;
| }
0x00003444 bl 0x25dc | r0 = fcn_000025dc (r0);
0x00003448 mov r2, r0 | r2 = r0;
0x0000344c mov r0, r3 | r0 = r3;
0x00003450 bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
0x00003454 ldr r0, [r5, 0x104] | r0 = *((r5 + 0x104));
0x00003458 ldr r3, [r5, 0x4c] | r3 = *((r5 + 0x4c));
0x0000345c cmp r0, 0 |
| if (r0 == 0) {
0x00003460 ldrne r1, [r0] | r1 = *(r0);
| }
| if (r0 != 0) {
0x00003464 moveq r1, r0 | r1 = r0;
| }
0x00003468 bl 0x25dc | r0 = fcn_000025dc (r0);
0x0000346c mov r2, r0 | r2 = r0;
0x00003470 mov r0, r3 | r0 = r3;
0x00003474 bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
0x00003478 ldr r0, [r5, 0x150] | r0 = *((r5 + 0x150));
0x0000347c bl 0x25b8 | r0 = fcn_000025b8 (r0);
0x00003480 cmp r0, 0 |
| if (r0 != 0) {
0x00003484 bne 0x324c | goto label_15;
| }
0x00003488 ldr r1, [pc, 0x3ec] | r1 = *(0x3878);
0x0000348c mov r2, 1 | r2 = 1;
0x00003490 add r1, pc, r1 | r1 = pc + r1;
| label_17:
0x00003494 ldr r0, [r5, 0x4c] | r0 = *((r5 + 0x4c));
0x00003498 bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
0x0000349c ldr r3, [r5, 0x4c] | r3 = *((r5 + 0x4c));
0x000034a0 ldr r0, [r5, 0x150] | r0 = *((r5 + 0x150));
0x000034a4 b 0x33c4 | goto label_16;
| label_82:
0x000034a8 ldr r0, [r5, 0x104] | r0 = *((r5 + 0x104));
0x000034ac ldr r3, [r5, 0x4c] | r3 = *((r5 + 0x4c));
0x000034b0 cmp r0, 0 |
| if (r0 == 0) {
0x000034b4 ldrne r1, [r0] | r1 = *(r0);
| }
| if (r0 != 0) {
0x000034b8 moveq r1, r0 | r1 = r0;
| }
0x000034bc bl 0x25dc | r0 = fcn_000025dc (r0);
0x000034c0 mov r2, r0 | r2 = r0;
0x000034c4 mov r0, r3 | r0 = r3;
0x000034c8 bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
0x000034cc ldr r0, [r5, 0x150] | r0 = *((r5 + 0x150));
0x000034d0 bl 0x25b8 | r0 = fcn_000025b8 (r0);
0x000034d4 cmp r0, 0 |
| if (r0 != 0) {
0x000034d8 bne 0x324c | goto label_15;
| }
0x000034dc ldr r1, [pc, 0x39c] | r1 = *(0x387c);
0x000034e0 mov r2, 1 | r2 = 1;
0x000034e4 add r1, pc, r1 | r1 = pc + r1;
0x000034e8 b 0x3494 | goto label_17;
| label_74:
0x000034ec mov r0, r6 | r0 = r6;
0x000034f0 bl 0x14c4 | strlen (r0);
0x000034f4 mov r1, r6 | r1 = r6;
0x000034f8 mov r2, r0 | r2 = r0;
0x000034fc ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x00003500 bl 0x1260 | r0 = loc_imp_array_get_element_klen ();
0x00003504 cmp r0, 0 |
| if (r0 == 0) {
0x00003508 bne 0x352c |
0x0000350c mov r0, r6 | r0 = r6;
0x00003510 bl 0x14c4 | strlen (r0);
0x00003514 mov r1, r6 | r1 = r6;
0x00003518 mov r2, r0 | r2 = r0;
0x0000351c ldr r0, [r4, 0xc] | r0 = *((r4 + 0xc));
0x00003520 bl 0x1260 | r0 = loc_imp_array_get_element_klen ();
0x00003524 cmp r0, 0 |
| if (r0 == 0) {
0x00003528 beq 0x3538 | goto label_86;
| }
| }
0x0000352c ldr r3, [r5, 0x4c] | r3 = *((r5 + 0x4c));
0x00003530 ldr r0, [r0, 0x10] | r0 = *((r0 + 0x10));
0x00003534 b 0x33c4 | goto label_16;
| label_86:
0x00003538 ldr r1, [pc, 0x344] | r1 = *(0x3880);
0x0000353c mov r2, 6 | r2 = 6;
0x00003540 add r1, pc, r1 | r1 = pc + r1;
0x00003544 b 0x2da4 | goto label_12;
| do {
0x00003548 add sb, sp, 0x60 | sb += var_60h;
0x0000354c ldr r8, [sb, r7, lsl 2] | offset_4 = r7 << 2;
| r8 = *((sb + offset_4));
0x00003550 ldr r1, [sp, 0x48] | r1 = var_48h;
0x00003554 mov r0, r8 | r0 = r8;
0x00003558 bl 0x1404 | r0 = strcmp (r0, r1);
0x0000355c cmp r0, 0 |
| if (r0 != 0) {
0x00003560 addeq r3, sb, r7, lsl 2 | r3 = sb + (r7 << 2);
| }
| if (r0 != 0) {
0x00003564 ldreq fp, [r3, 4] | fp = var_6ch;
| }
| if (r0 != 0) {
0x00003568 beq 0x35b8 |
0x0000356c ldr r1, [sp, 0x4c] | r1 = var_4ch;
0x00003570 mov r0, r8 | r0 = r8;
0x00003574 bl 0x1404 | r0 = strcmp (r0, r1);
0x00003578 cmp r0, 0 |
| if (r0 != 0) {
0x0000357c addeq r3, sb, r7, lsl 2 | r3 = sb + (r7 << 2);
| }
| if (r0 != 0) {
0x00003580 ldreq r6, [r3, 4] | r6 = var_6ch;
| }
| if (r0 == 0) {
0x00003584 beq 0x35b8 | goto label_87;
| }
0x00003588 ldr r3, [sp, 0x20] | r3 = s1;
0x0000358c ldr r1, [pc, 0x2f4] | r1 = *(0x3884);
0x00003590 str r3, [sp, 4] | var_4h = r3;
0x00003594 ldr r3, [pc, 0x2f0] | r3 = *(0x3888);
0x00003598 str r8, [sp, 8] | var_8h = r8;
0x0000359c add r3, pc, r3 | r3 = pc + r3;
0x000035a0 str r3, [sp] | *(sp) = r3;
0x000035a4 ldr r2, [pc, 0x2e4] | r2 = *(0x388c);
0x000035a8 ldr r3, [sp, 0x50] | r3 = var_50h;
0x000035ac add r1, pc, r1 | r1 = pc + r1;
0x000035b0 mov r0, sl | r0 = sl;
0x000035b4 bl 0x1500 | loc_imp_log_error_write ();
| }
| label_87:
0x000035b8 add r7, r7, 2 | r7 += 2;
| label_19:
0x000035bc ldr r3, [sp, 0x30] | r3 = var_30h;
0x000035c0 cmp r3, r7 |
0x000035c4 bhi 0x3548 |
| } while (r3 > r7);
0x000035c8 cmp fp, 0 |
0x000035cc cmpeq r6, 0 | __asm ("cmpeq r6, 0");
| if (fp == 0) {
0x000035d0 bne 0x3640 |
0x000035d4 ldr r3, [pc, 0x2b8] | r3 = *(0x3890);
0x000035d8 ldr r1, [pc, 0x2b8] | r1 = *(0x3894);
0x000035dc add r3, pc, r3 | r3 = pc + r3;
0x000035e0 str r3, [sp, 8] | var_8h = r3;
0x000035e4 ldr r3, [sp, 0x20] | r3 = s1;
0x000035e8 mov r2, 0x1e8 | r2 = 0x1e8;
0x000035ec str r3, [sp, 4] | var_4h = r3;
0x000035f0 ldr r3, [pc, 0x2a4] | r3 = *(0x3898);
0x000035f4 add r1, pc, r1 | r1 = pc + r1;
0x000035f8 add r3, pc, r3 | r3 = pc + r3;
0x000035fc str r3, [sp] | *(sp) = r3;
0x00003600 ldr r3, [pc, 0x298] | r3 = *(0x389c);
0x00003604 add r3, pc, r3 | r3 = pc + r3;
0x00003608 b 0x31ac | goto label_18;
| label_63:
0x0000360c ldr r3, [pc, 0x290] | r3 = *(0x38a0);
0x00003610 mov r6, 0 | r6 = 0;
0x00003614 add r3, pc, r3 | r3 = pc + r3;
0x00003618 str r3, [sp, 0x48] | var_48h = r3;
0x0000361c ldr r3, [pc, 0x284] | r3 = *(0x38a4);
0x00003620 mov fp, r6 |
0x00003624 add r3, pc, r3 | r3 = pc + r3;
0x00003628 str r3, [sp, 0x4c] | var_4ch = r3;
0x0000362c ldr r3, [pc, 0x278] | r3 = *(0x38a8);
0x00003630 mov r7, 2 | r7 = 2;
0x00003634 add r3, pc, r3 | r3 = pc + r3;
0x00003638 str r3, [sp, 0x50] | var_50h = r3;
0x0000363c b 0x35bc | goto label_19;
| }
0x00003640 cmp fp, 0 |
0x00003644 cmpne r6, 0 | __asm ("cmpne r6, 0");
| if (fp != 0) {
0x00003648 beq 0x3684 |
0x0000364c ldr r3, [pc, 0x25c] | r3 = *(0x38ac);
0x00003650 ldr r1, [pc, 0x25c] | r1 = *(0x38b0);
0x00003654 add r3, pc, r3 | r3 = pc + r3;
0x00003658 str r3, [sp, 8] | var_8h = r3;
0x0000365c ldr r3, [sp, 0x20] | r3 = s1;
0x00003660 ldr r2, [pc, 0x250] | r2 = *(0x38b4);
0x00003664 str r3, [sp, 4] | var_4h = r3;
0x00003668 ldr r3, [pc, 0x24c] | r3 = *(0x38b8);
0x0000366c add r1, pc, r1 | r1 = pc + r1;
0x00003670 add r3, pc, r3 | r3 = pc + r3;
0x00003674 str r3, [sp] | *(sp) = r3;
0x00003678 ldr r3, [pc, 0x240] | r3 = *(0x38bc);
0x0000367c add r3, pc, r3 | r3 = pc + r3;
0x00003680 b 0x31ac | goto label_18;
| }
0x00003684 ldr r7, [r4, 0x1c] | r7 = *((r4 + 0x1c));
0x00003688 cmp r7, 0 |
| if (r7 != 0) {
0x0000368c bne 0x324c | goto label_15;
| }
0x00003690 cmp fp, 0 |
| if (fp == 0) {
0x00003694 beq 0x3744 | goto label_88;
| }
0x00003698 ldr r3, [r5, 0x154] | r3 = *((r5 + 0x154));
0x0000369c mov r1, 0x2f | r1 = 0x2f;
0x000036a0 ldr r6, [r3] | r6 = *(r3);
0x000036a4 mov r0, r6 | r0 = r6;
0x000036a8 bl 0x12f0 | strrchr (r0, r1);
0x000036ac ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x000036b0 subs r2, r0, 0 | r2 = r0 - 0;
| if (r2 == r0) {
0x000036b4 subne r2, r2, r6 | r2 -= r6;
| }
| if (r2 == r0) {
0x000036b8 addne r2, r2, 1 | r2++;
| }
| if (r2 == r0) {
0x000036bc movne r1, r6 | r1 = r6;
| }
| if (r2 != r0) {
0x000036c0 ldreq r1, [pc, 0x1fc] | r1 = *((pc + 0x1fc));
| }
| if (r2 != r0) {
0x000036c4 moveq r2, 1 | r2 = 1;
| }
| if (r2 != r0) {
0x000036c8 addeq r1, pc, r1 | r1 = pc + r1;
| }
0x000036cc mov r0, r3 | r0 = r3;
0x000036d0 bl 0x14dc | loc_imp_buffer_copy_string_len ();
0x000036d4 mov r1, fp | r1 = fp;
0x000036d8 ldr r0, [sl, 0x5c] | r0 = *((sl + 0x5c));
0x000036dc bl 0x12b4 | loc_imp_buffer_copy_string ();
0x000036e0 ldr r0, [sl, 0x5c] | r0 = *((sl + 0x5c));
0x000036e4 bl 0x11f4 | loc_imp_buffer_urldecode_path ();
0x000036e8 ldr r0, [sl, 0x5c] | r0 = *((sl + 0x5c));
0x000036ec bl 0x1428 | loc_imp_buffer_is_valid_UTF8 ();
0x000036f0 ldr r1, [sl, 0x5c] | r1 = *((sl + 0x5c));
0x000036f4 cmp r0, 0 |
| if (r0 != 0) {
0x000036f8 bne 0x372c | goto label_89;
| }
0x000036fc ldr r3, [pc, 0x1c4] | r3 = *(0x38c4);
0x00003700 str r1, [sp, 4] | var_4h = r1;
0x00003704 add r3, pc, r3 | r3 = pc + r3;
0x00003708 str r3, [sp] | *(sp) = r3;
0x0000370c ldr r1, [pc, 0x1b8] | r1 = *(0x38c8);
0x00003710 ldr r3, [pc, 0x1b8] | r3 = *(0x38cc);
0x00003714 ldr r2, [pc, 0x1b8] | r2 = *(0x38d0);
0x00003718 add r3, pc, r3 | r3 = pc + r3;
0x0000371c add r1, pc, r1 | r1 = pc + r1;
| do {
| label_60:
0x00003720 mov r0, sl | r0 = sl;
0x00003724 bl 0x1500 | loc_imp_log_error_write ();
0x00003728 b 0x324c | goto label_15;
| label_89:
0x0000372c mov r0, r1 | r0 = r1;
0x00003730 bl 0x1464 | loc_imp_buffer_path_simplify ();
| label_22:
0x00003734 ldr r1, [sl, 0x5c] | r1 = *((sl + 0x5c));
0x00003738 ldr r0, [r4, 8] | r0 = *((r4 + 8));
0x0000373c bl 0x2868 | fcn_00002868 (r0, r1);
0x00003740 b 0x3b0c | goto label_90;
| label_88:
0x00003744 ldrb r3, [r6] | r3 = *(r6);
0x00003748 ldr sb, [sl, 0x5c] | sb = *((sl + 0x5c));
0x0000374c cmp r3, 0x2f |
| if (r3 != 0x2f) {
0x00003750 bne 0x37a4 | goto label_91;
| }
0x00003754 mov r1, r6 | r1 = r6;
0x00003758 mov r0, sb | r0 = sb;
0x0000375c bl 0x12b4 | loc_imp_buffer_copy_string ();
| label_20:
0x00003760 ldr r0, [sl, 0x5c] | r0 = *((sl + 0x5c));
0x00003764 bl 0x11f4 | loc_imp_buffer_urldecode_path ();
0x00003768 ldr r0, [sl, 0x5c] | r0 = *((sl + 0x5c));
0x0000376c bl 0x1428 | loc_imp_buffer_is_valid_UTF8 ();
0x00003770 ldr r1, [sl, 0x5c] | r1 = *((sl + 0x5c));
0x00003774 cmp r0, 0 |
| if (r0 != 0) {
0x00003778 bne 0x3a30 | goto label_92;
| }
0x0000377c ldr r3, [pc, 0x154] | r3 = *(0x38d4);
0x00003780 str r1, [sp, 4] | var_4h = r1;
0x00003784 add r3, pc, r3 | r3 = pc + r3;
0x00003788 str r3, [sp] | *(sp) = r3;
0x0000378c ldr r1, [pc, 0x148] | r1 = *(0x38d8);
0x00003790 ldr r3, [pc, 0x148] | r3 = *(0x38dc);
0x00003794 ldr r2, [pc, 0x148] | r2 = *(0x38e0);
0x00003798 add r3, pc, r3 | r3 = pc + r3;
0x0000379c add r1, pc, r1 | r1 = pc + r1;
0x000037a0 b 0x3720 |
| } while (1);
| label_91:
0x000037a4 ldr r3, [r5, 0x148] | r3 = *((r5 + 0x148));
0x000037a8 mov r1, 0x2f | r1 = 0x2f;
0x000037ac ldr r8, [r3] | r8 = *(r3);
0x000037b0 mov r0, r8 | r0 = r8;
0x000037b4 bl 0x12f0 | strrchr (r0, r1);
0x000037b8 mov r1, r8 | r1 = r8;
0x000037bc sub r2, r0, r8 | r2 = r0 - r8;
0x000037c0 add r2, r2, 1 | r2++;
0x000037c4 mov r0, sb | r0 = sb;
0x000037c8 bl 0x14dc | loc_imp_buffer_copy_string_len ();
0x000037cc mov r1, r6 | r1 = r6;
0x000037d0 ldr r0, [sl, 0x5c] | r0 = *((sl + 0x5c));
0x000037d4 bl 0x1308 | loc_imp_buffer_append_string ();
0x000037d8 b 0x3760 | goto label_20;
| label_92:
0x00003a30 mov r0, r1 | r0 = r1;
0x00003a34 bl 0x1464 | loc_imp_buffer_path_simplify ();
0x00003a38 ldr r3, [r5, 0x148] | r3 = *((r5 + 0x148));
0x00003a3c ldr r0, [sl, 0x5c] | r0 = *((sl + 0x5c));
0x00003a40 ldr r3, [r3] | r3 = *(r3);
0x00003a44 ldr ip, [r0] | ip = *(r0);
0x00003a48 mov r6, 0 | r6 = 0;
| label_21:
0x00003a4c ldrb r2, [r3, r6] | r2 = *((r3 + r6));
0x00003a50 cmp r2, 0 |
| if (r2 == 0) {
0x00003a54 beq 0x3a64 | goto label_93;
| }
0x00003a58 ldrb r1, [ip, r6] | r1 = *((ip + r6));
0x00003a5c cmp r1, r2 |
| if (r1 == r2) {
0x00003a60 beq 0x3bd8 | goto label_94;
| }
| do {
| label_93:
0x00003a64 cmp r6, 0 |
| if (r6 == 0) {
0x00003a68 beq 0x3a7c | goto label_95;
| }
0x00003a6c sub r6, r6, 1 | r6--;
0x00003a70 ldrb r2, [r3, r6] | r2 = *((r3 + r6));
0x00003a74 cmp r2, 0x2f |
0x00003a78 bne 0x3a64 |
| } while (r2 != 0x2f);
| label_95:
0x00003a7c add r3, r5, 0x1ec | r3 = r5 + 0x1ec;
0x00003a80 ldrh r3, [r3, 2] | r3 = *((r3 + 2));
0x00003a84 cmp r3, 0 |
| if (r3 != 0) {
0x00003a88 beq 0x3a90 |
0x00003a8c bl 0x11d0 | loc_imp_buffer_to_lower ();
| }
0x00003a90 ldr r0, [r5, 0x148] | r0 = *((r5 + 0x148));
0x00003a94 bl 0x25dc | fcn_000025dc (r0);
0x00003a98 add r2, r5, 0x1ec | r2 = r5 + 0x1ec;
0x00003a9c ldrh r2, [r2, 2] | r2 = *((r2 + 2));
0x00003aa0 ldr r3, [r5, 0x154] | r3 = *((r5 + 0x154));
0x00003aa4 cmp r2, 0 |
0x00003aa8 sub r8, r0, r6 | r8 = r0 - r6;
| if (r2 != 0) {
0x00003aac bne 0x3be0 | goto label_96;
| }
0x00003ab0 ldr r1, [r5, 0x160] | r1 = *((r5 + 0x160));
0x00003ab4 mov r2, r8 | r2 = r8;
0x00003ab8 mov r0, r3 | r0 = r3;
0x00003abc bl 0x129c | r0 = loc_imp_buffer_is_equal_right_len ();
0x00003ac0 adds r1, r0, 0 | r1 = r0 + 0;
0x00003ac4 movne r1, 1 | r1 = 1;
| while (1) {
0x00003ac8 cmp r1, 0 |
0x00003acc ldr r3, [r4, 8] | r3 = *((r4 + 8));
| if (r1 == 0) {
0x00003ad0 beq 0x3c20 | goto label_97;
| }
0x00003ad4 ldr r1, [r5, 0x154] | r1 = *((r5 + 0x154));
0x00003ad8 mov r0, r1 | r0 = r1;
0x00003adc bl 0x25dc | r0 = fcn_000025dc (r0);
0x00003ae0 sub r2, r0, r8 | r2 = r0 - r8;
0x00003ae4 ldr r1, [r1] | r1 = *(r1);
0x00003ae8 mov r0, r3 | r0 = r3;
0x00003aec bl 0x14dc | loc_imp_buffer_copy_string_len ();
0x00003af0 ldr r0, [sl, 0x5c] | r0 = *((sl + 0x5c));
0x00003af4 ldr r1, [r0] | r1 = *(r0);
0x00003af8 add r1, r1, r6 | r1 += r6;
0x00003afc bl 0x25dc | r0 = fcn_000025dc (r0);
0x00003b00 sub r2, r0, r6 | r2 = r0 - r6;
0x00003b04 ldr r0, [r4, 8] | r0 = *((r4 + 8));
0x00003b08 bl 0x1380 | loc_imp_buffer_append_string_len ();
| label_90:
0x00003b0c ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x00003b10 add r1, sp, 0xa0 | r1 += timer;
0x00003b14 ldr r0, [r3] | r0 = *(r3);
0x00003b18 bl 0x1218 | r0 = stat64 ();
0x00003b1c subs r8, r0, 0 | r8 = r0 - 0;
| if (r8 != r0) {
0x00003b20 bne 0x3dc0 | goto label_98;
| }
0x00003b24 ldr r2, [sp, 0x3c] | r2 = s2;
0x00003b28 ldr r3, [sp, 0xf0] | r3 = var_f0h;
0x00003b2c cmp r2, 3 |
0x00003b30 str r3, [sp, 0x5c] | var_5ch = r3;
| if (r2 == 3) {
0x00003b34 beq 0x3cc0 | goto label_99;
| }
0x00003b38 cmp r2, 4 |
| if (r2 == 4) {
0x00003b3c beq 0x3c70 | goto label_100;
| }
0x00003b40 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x00003b44 ldr sb, [sl, 0x5c] | sb = *((sl + 0x5c));
0x00003b48 cmp r3, 0 |
0x00003b4c ldrd r6, r7, [sp, 0xd0] | __asm ("ldrd r6, r7, [var_d0h]");
| if (r3 == 0) {
0x00003b50 beq 0x3c5c | goto label_101;
| }
0x00003b54 ldr ip, [pc, -0x274] | ip = *(0x000038e8);
0x00003b58 add lr, sp, 0x108 | lr += s;
0x00003b5c add ip, pc, ip |
0x00003b60 add ip, ip, 0x60 |
0x00003b64 ldm ip!, {r0, r1, r2, r3} | r0 = *(ip!);
| r1 = *((ip! + 4));
| r2 = *((ip! + 8));
| r3 = *((ip! + 12));
0x00003b68 stm lr!, {r0, r1, r2, r3} | *(lr!) = r0;
| *((lr! + 4)) = r1;
| *((lr! + 8)) = r2;
| *((lr! + 12)) = r3;
0x00003b6c ldm ip, {r0, r1} | r0 = *(ip);
| r1 = *((ip + 4));
0x00003b70 mov r2, 0x400 | r2 = 0x400;
0x00003b74 mov r3, 0 | r3 = 0;
0x00003b78 add ip, sp, 0x108 |
0x00003b7c stm lr, {r0, r1} | *(lr) = r0;
| *((lr + 4)) = r1;
| label_23:
0x00003b80 cmp r2, r6 |
0x00003b84 sbcs r1, r3, r7 | __asm ("sbcs r1, r3, r7");
| if (r2 < r6) {
0x00003b88 bge 0x3b9c |
0x00003b8c add r0, r8, 1 | r0 = r8 + 1;
0x00003b90 ldr r1, [ip, r0, lsl 2] | offset_5 = r0 << 2;
| r1 = *((ip + offset_5));
0x00003b94 cmp r1, 0 |
| if (r1 != 0) {
0x00003b98 bne 0x3c40 | goto label_102;
| }
| }
0x00003b9c mov r3, r7 | r3 = r7;
0x00003ba0 mov r0, sb | r0 = sb;
0x00003ba4 mov r2, r6 | r2 = r6;
0x00003ba8 bl 0x1440 | loc_imp_buffer_copy_int ();
0x00003bac add r3, sp, 0x208 | r3 += var_208h;
0x00003bb0 add r8, r3, r8, lsl 2 | r8 = r3 + (r8 << 2);
0x00003bb4 ldr r1, [r8, -0x100] | r1 = *((r8 - 0x100));
0x00003bb8 mov r0, sb | r0 = sb;
0x00003bbc bl 0x1308 | loc_imp_buffer_append_string ();
| label_24:
0x00003bc0 cmp sb, 0 |
0x00003bc4 ldr r3, [r5, 0x4c] | r3 = *((r5 + 0x4c));
| if (sb == 0) {
0x00003bc8 ldrne r1, [sb] | r1 = *(sb);
| }
| if (sb != 0) {
0x00003bcc moveq r1, sb | r1 = sb;
| }
0x00003bd0 mov r0, sb | r0 = sb;
0x00003bd4 b 0x323c | goto label_14;
| label_94:
0x00003bd8 add r6, r6, 1 | r6++;
0x00003bdc b 0x3a4c | goto label_21;
| label_96:
0x00003be0 mov r0, r3 | r0 = r3;
0x00003be4 bl 0x25dc | r0 = fcn_000025dc (r0);
0x00003be8 cmp r8, r0 |
| if (r8 <= r0) {
0x00003bec bhi 0x3c18 |
0x00003bf0 ldr r2, [r5, 0x160] | r2 = *((r5 + 0x160));
0x00003bf4 ldr r3, [r3] | r3 = *(r3);
0x00003bf8 ldr r1, [r2] | r1 = *(r2);
0x00003bfc sub r0, r0, r8 | r0 -= r8;
0x00003c00 mov r2, r8 | r2 = r8;
0x00003c04 add r1, r1, r6 | r1 += r6;
0x00003c08 add r0, r3, r0 | r0 = r3 + r0;
0x00003c0c bl 0x12c0 | r0 = strncasecmp (r0, r1, r2);
0x00003c10 clz r7, r0 | r7 &= r0;
0x00003c14 lsr r7, r7, 5 | r7 >>= 5;
| }
0x00003c18 and r1, r7, 1 | r1 = r7 & 1;
0x00003c1c b 0x3ac8 |
| }
| label_97:
0x00003c20 ldr r0, [r5, 0x15c] | r0 = *((r5 + 0x15c));
0x00003c24 cmp r0, 0 |
| if (r0 == 0) {
0x00003c28 ldrne r1, [r0] | r1 = *(r0);
| }
0x00003c2c bl 0x25dc | r0 = fcn_000025dc (r0);
0x00003c30 mov r2, r0 | r2 = r0;
0x00003c34 mov r0, r3 | r0 = r3;
0x00003c38 bl 0x14dc | loc_imp_buffer_copy_string_len ();
0x00003c3c b 0x3734 | goto label_22;
| label_102:
0x00003c40 lsr r1, r6, 0xa | r1 = r6 >> 0xa;
0x00003c44 orr r1, r1, r7, lsl 22 | r1 |= (r7 << 22);
0x00003c48 asr lr, r7, 0xa | lr = r7 >> 0xa;
0x00003c4c mov r6, r1 | r6 = r1;
0x00003c50 mov r7, lr | r7 = lr;
0x00003c54 mov r8, r0 | r8 = r0;
0x00003c58 b 0x3b80 | goto label_23;
| label_101:
0x00003c5c mov r2, r6 | r2 = r6;
0x00003c60 mov r3, r7 | r3 = r7;
0x00003c64 mov r0, sb | r0 = sb;
0x00003c68 bl 0x1440 | loc_imp_buffer_copy_int ();
0x00003c6c b 0x3bc0 | goto label_24;
| label_100:
0x00003c70 ldr r3, [r4] | r3 = *(r4);
0x00003c74 add r0, sp, 0x5c | r0 += var_5ch;
0x00003c78 ldr r7, [r3] | r7 = *(r3);
0x00003c7c bl 0x13a4 | localtime (r0);
0x00003c80 add r6, sp, 0x108 | r6 += s;
0x00003c84 mov r2, r7 | r2 = r7;
0x00003c88 mov r1, 0xff | r1 = 0xff;
0x00003c8c mov r3, r0 | r3 = r0;
0x00003c90 mov r0, r6 | r0 = r6;
0x00003c94 bl 0x144c | r0 = strftime (r0, r1, r2, r3);
0x00003c98 cmp r0, 0 |
| if (r0 != 0) {
0x00003c9c ldreq r1, [pc, -0x3b8] | r1 = *((pc - 0x3b8));
| }
| if (r0 != 0) {
0x00003ca0 moveq r2, 6 | r2 = 6;
| }
| if (r0 == 0) {
0x00003ca4 addeq r1, pc, r1 | r1 = pc + r1;
| goto label_103;
| }
| if (r0 == 0) {
| label_103:
0x00003ca8 beq 0x2da4 | goto label_12;
| }
| label_84:
0x00003cac mov r0, r6 | r0 = r6;
0x00003cb0 bl 0x14c4 | strlen (r0);
0x00003cb4 mov r1, r6 | r1 = r6;
0x00003cb8 mov r2, r0 | r2 = r0;
0x00003cbc b 0x2da4 | goto label_12;
| label_99:
0x00003cc0 ldr r2, [pc, -0x3d8] | r2 = *(0x000038f0);
0x00003cc4 add r2, pc, r2 | r2 = pc + r2;
0x00003cc8 ldr r1, [r2] | r1 = *(r2);
0x00003ccc cmp r3, r1 |
| if (r3 <= r1) {
0x00003cd0 strgt r3, [r2] | *(r2) = r3;
| }
0x00003cd4 cmp fp, 0 |
| if (fp == 0) {
0x00003cd8 bne 0x3ce8 |
0x00003cdc ldrh r3, [r4, 0x34] | r3 = *((r4 + 0x34));
0x00003ce0 cmp r3, 0 |
| if (r3 != 0) {
0x00003ce4 bne 0x3d08 | goto label_104;
| }
| }
0x00003ce8 ldrd r2, r3, [sp, 0xd0] | __asm ("ldrd r2, r3, [var_d0h]");
0x00003cec ldr r1, [r4, 8] | r1 = *((r4 + 8));
0x00003cf0 strd r2, r3, [sp] | __asm ("strd r2, r3, [sp]");
0x00003cf4 ldr r0, [r5, 0x4c] | r0 = *((r5 + 0x4c));
0x00003cf8 mov r2, 0 | r2 = 0;
0x00003cfc mov r3, 0 | r3 = 0;
0x00003d00 bl 0x1320 | loc_imp_chunkqueue_append_file ();
0x00003d04 b 0x324c | goto label_15;
| label_104:
0x00003d08 ldrh r2, [r4, 0x24] | r2 = *((r4 + 0x24));
0x00003d0c cmp r2, r3 |
| if (r2 < r3) {
0x00003d10 ldrhs r1, [pc, -0x424] | r1 = *((pc - 0x424));
| }
| if (r2 < r3) {
0x00003d14 movhs r2, 0x4d | r2 = 0x4d;
| }
| if (r2 >= r3) {
0x00003d18 addhs r1, pc, r1 | r1 = pc + r1;
| goto label_105;
| }
| if (r2 >= r3) {
| label_105:
0x00003d1c bhs 0x2da4 | goto label_12;
| }
0x00003d20 ldr r1, [r4, 8] | r1 = *((r4 + 8));
0x00003d24 ldr r0, [r5, 0x154] | r0 = *((r5 + 0x154));
0x00003d28 bl 0x11c4 | r0 = loc_imp_buffer_is_equal ();
0x00003d2c cmp r0, 0 |
| if (r0 == 0) {
0x00003d30 ldrne r1, [pc, -0x440] | r1 = *((pc - 0x440));
| }
| if (r0 == 0) {
0x00003d34 movne r2, 0x33 | r2 = 0x33;
| }
| if (r0 != 0) {
0x00003d38 addne r1, pc, r1 | r1 = pc + r1;
| goto label_106;
| }
| if (r0 != 0) {
| label_106:
0x00003d3c bne 0x2da4 | goto label_12;
| }
0x00003d40 ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x00003d44 ldr r6, [r5, 0x154] | r6 = *((r5 + 0x154));
0x00003d48 str r3, [r5, 0x154] | *((r5 + 0x154)) = r3;
0x00003d4c ldr r8, [r5, 0x148] | r8 = *((r5 + 0x148));
0x00003d50 ldr r7, [r5, 0x160] | r7 = *((r5 + 0x160));
0x00003d54 bl 0x1200 | loc_imp_buffer_init ();
0x00003d58 str r0, [r4, 8] | *((r4 + 8)) = r0;
0x00003d5c ldr r0, [sl, 0x5c] | r0 = *((sl + 0x5c));
0x00003d60 bl 0x1374 | loc_imp_buffer_init_buffer ();
0x00003d64 ldrh r3, [r4, 0x24] | r3 = *((r4 + 0x24));
0x00003d68 mov r2, r4 | r2 = r4;
0x00003d6c add r3, r3, 1 | r3++;
0x00003d70 mov r1, r5 | r1 = r5;
0x00003d74 str r0, [r5, 0x160] | *((r5 + 0x160)) = r0;
0x00003d78 str r0, [r5, 0x148] | *((r5 + 0x148)) = r0;
0x00003d7c strh r3, [r4, 0x24] | *((r4 + 0x24)) = r3;
0x00003d80 mov r0, sl | r0 = sl;
0x00003d84 add r3, sp, 0xa0 | r3 += timer;
0x00003d88 bl 0x2948 | fcn_00002948 (r0, r1);
0x00003d8c ldrh r3, [r4, 0x24] | r3 = *((r4 + 0x24));
0x00003d90 ldr r0, [r5, 0x148] | r0 = *((r5 + 0x148));
0x00003d94 sub r3, r3, 1 | r3--;
0x00003d98 strh r3, [r4, 0x24] | *((r4 + 0x24)) = r3;
0x00003d9c bl 0x14d0 | loc_imp_buffer_free ();
0x00003da0 str r8, [r5, 0x148] | *((r5 + 0x148)) = r8;
0x00003da4 str r7, [r5, 0x160] | *((r5 + 0x160)) = r7;
0x00003da8 ldr r0, [r4, 8] | r0 = *((r4 + 8));
0x00003dac bl 0x14d0 | loc_imp_buffer_free ();
0x00003db0 ldr r3, [r5, 0x154] | r3 = *((r5 + 0x154));
0x00003db4 str r3, [r4, 8] | *((r4 + 8)) = r3;
0x00003db8 str r6, [r5, 0x154] | *((r5 + 0x154)) = r6;
0x00003dbc b 0x324c | goto label_15;
| label_98:
0x00003dc0 bl 0x1488 | errno_location ();
0x00003dc4 ldr r6, [r4, 8] | r6 = *((r4 + 8));
0x00003dc8 ldr r0, [r0] | r0 = *(r0);
0x00003dcc bl 0x120c | strerror (r0);
0x00003dd0 ldr r3, [pc, -0x4dc] | r3 = *(0x38f8);
0x00003dd4 ldr r1, [pc, -0x4dc] | r1 = *(0x00003900);
0x00003dd8 add r3, pc, r3 | r3 = pc + r3;
0x00003ddc str r3, [sp] | *(sp) = r3;
0x00003de0 ldr r3, [pc, -0x4e4] | r3 = *(0x3900);
0x00003de4 str r6, [sp, 4] | var_4h = r6;
0x00003de8 add r3, pc, r3 | r3 = pc + r3;
0x00003dec ldr r2, [pc, -0x4ec] | r2 = *(0x3904);
0x00003df0 add r1, pc, r1 | r1 = pc + r1;
0x00003df4 str r0, [sp, 8] | var_8h = r0;
0x00003df8 b 0x31ac | goto label_18;
| do {
0x00003dfc add fp, sp, 0x60 |
0x00003e00 ldr sb, [fp, r6, lsl 2] | offset_6 = r6 << 2;
| sb = *((fp + offset_6));
0x00003e04 ldr r1, [sp, 0x3c] | r1 = s2;
0x00003e08 mov r0, sb | r0 = sb;
0x00003e0c bl 0x1404 | r0 = strcmp (r0, r1);
0x00003e10 cmp r0, 0 |
| if (r0 != 0) {
0x00003e14 addeq r3, fp, r6, lsl 2 | r3 = fp + (r6 << 2);
| }
| if (r0 != 0) {
0x00003e18 ldreq r8, [r3, 4] | r8 = var_6ch;
| }
| if (r0 != 0) {
0x00003e1c beq 0x3e6c |
0x00003e20 ldr r1, [sp, 0x48] | r1 = var_48h;
0x00003e24 mov r0, sb | r0 = sb;
0x00003e28 bl 0x1404 | r0 = strcmp (r0, r1);
0x00003e2c cmp r0, 0 |
| if (r0 != 0) {
0x00003e30 addeq r3, fp, r6, lsl 2 | r3 = fp + (r6 << 2);
| }
| if (r0 != 0) {
0x00003e34 ldreq r7, [r3, 4] | r7 = var_6ch;
| }
| if (r0 == 0) {
0x00003e38 beq 0x3e6c | goto label_107;
| }
0x00003e3c ldr r3, [sp, 0x20] | r3 = s1;
0x00003e40 ldr r1, [pc, -0x53c] | r1 = *(0x0000390c);
0x00003e44 str r3, [sp, 4] | var_4h = r3;
0x00003e48 ldr r3, [pc, -0x540] | r3 = *(0x00003910);
0x00003e4c str sb, [sp, 8] | var_8h = sb;
0x00003e50 add r3, pc, r3 | r3 = pc + r3;
0x00003e54 str r3, [sp] | *(sp) = r3;
0x00003e58 ldr r2, [pc, -0x54c] | r2 = *(0x3910);
0x00003e5c ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x00003e60 add r1, pc, r1 | r1 = pc + r1;
0x00003e64 mov r0, sl | r0 = sl;
0x00003e68 bl 0x1500 | loc_imp_log_error_write ();
| }
| label_107:
0x00003e6c add r6, r6, 2 | r6 += 2;
| label_25:
0x00003e70 ldr r3, [sp, 0x30] | r3 = var_30h;
0x00003e74 cmp r3, r6 |
0x00003e78 bhi 0x3dfc |
| } while (r3 > r6);
0x00003e7c ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x00003e80 cmp r3, 0 |
| if (r3 != 0) {
0x00003e84 bne 0x324c | goto label_15;
| }
0x00003e88 adds r2, r8, 0 | r2 = r8 + 0;
| if (r2 == r8) {
0x00003e8c movne r2, 1 | r2 = 1;
| }
0x00003e90 adds r3, r7, 0 | r3 = r7 + 0;
| if (r3 == r7) {
0x00003e94 movne r3, 1 | r3 = 1;
| }
0x00003e98 tst r2, r3 |
| if ((r2 & r3) != 0) {
0x00003e9c beq 0x3f04 |
0x00003ea0 mov r0, r8 | r0 = r8;
0x00003ea4 bl 0x14c4 | r0 = strlen (r0);
0x00003ea8 mov r6, r0 | r6 = r0;
0x00003eac mov r0, r7 | r0 = r7;
0x00003eb0 bl 0x14c4 | strlen (r0);
0x00003eb4 mov r3, r7 | r3 = r7;
0x00003eb8 mov r2, r6 | r2 = r6;
0x00003ebc mov r1, r8 | r1 = r8;
0x00003ec0 str r0, [sp] | *(sp) = r0;
0x00003ec4 ldr r0, [r4, 0xc] | r0 = *((r4 + 0xc));
0x00003ec8 bl 0x12e4 | loc_imp_array_insert_key_value ();
0x00003ecc b 0x324c | goto label_15;
| label_66:
0x00003ed0 ldr r3, [pc, -0x5c0] | r3 = *(0x3914);
0x00003ed4 mov r7, 0 | r7 = 0;
0x00003ed8 add r3, pc, r3 | r3 = pc + r3;
0x00003edc str r3, [sp, 0x3c] | s2 = r3;
0x00003ee0 ldr r3, [pc, -0x5cc] | r3 = *(0x3918);
0x00003ee4 mov r8, r7 | r8 = r7;
0x00003ee8 add r3, pc, r3 | r3 = pc + r3;
0x00003eec str r3, [sp, 0x48] | var_48h = r3;
0x00003ef0 ldr r3, [pc, -0x5d8] | r3 = *(0x391c);
0x00003ef4 mov r6, 2 | r6 = 2;
0x00003ef8 add r3, pc, r3 | r3 = pc + r3;
0x00003efc str r3, [sp, 0x4c] | var_4ch = r3;
0x00003f00 b 0x3e70 | goto label_25;
| }
0x00003f04 orrs r3, r2, r3 | r3 = r2 | r3;
| if (r3 != r2) {
0x00003f08 beq 0x3f60 |
0x00003f0c ldr r3, [pc, -0x5f0] | r3 = *(0x3920);
0x00003f10 ldr r1, [pc, -0x5f0] | r1 = *(0x00003928);
0x00003f14 add r3, pc, r3 | r3 = pc + r3;
0x00003f18 str r3, [sp, 0x10] | var_10h = r3;
0x00003f1c ldr r3, [sp, 0x68] | r3 = var_68h;
0x00003f20 ldr r2, [pc, -0x5fc] | r2 = *(0x0000392c);
0x00003f24 str r3, [sp, 0xc] | var_ch = r3;
0x00003f28 ldr r3, [pc, -0x600] | r3 = *(0x392c);
0x00003f2c add r1, pc, r1 | r1 = pc + r1;
0x00003f30 add r3, pc, r3 | r3 = pc + r3;
0x00003f34 str r3, [sp, 8] | var_8h = r3;
0x00003f38 ldr r3, [sp, 0x20] | r3 = s1;
0x00003f3c mov r0, sl | r0 = sl;
0x00003f40 str r3, [sp, 4] | var_4h = r3;
0x00003f44 ldr r3, [pc, -0x618] | r3 = *(0x00003934);
0x00003f48 add r3, pc, r3 | r3 = pc + r3;
0x00003f4c str r3, [sp] | *(sp) = r3;
0x00003f50 ldr r3, [pc, -0x620] | r3 = *(0x00003938);
0x00003f54 add r3, pc, r3 | r3 = pc + r3;
0x00003f58 bl 0x1500 | loc_imp_log_error_write ();
0x00003f5c b 0x324c | goto label_15;
| }
0x00003f60 ldr r3, [pc, -0x62c] | r3 = s;
0x00003f64 ldr r1, [pc, -0x62c] | r1 = *(0x00003940);
0x00003f68 add r3, pc, r3 | r3 = pc + r3;
0x00003f6c str r3, [sp] | *(sp) = r3;
0x00003f70 ldr r3, [pc, -0x634] | r3 = *(0x3940);
0x00003f74 ldr r2, [pc, -0x634] | r2 = *(0x3944);
0x00003f78 add r3, pc, r3 | r3 = pc + r3;
0x00003f7c add r1, pc, r1 | r1 = pc + r1;
0x00003f80 mov r0, sl | r0 = sl;
0x00003f84 bl 0x1500 | loc_imp_log_error_write ();
0x00003f88 b 0x324c | goto label_15;
| label_64:
0x00003f8c ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x00003f90 cmp r3, 0 |
| if (r3 != 0) {
0x00003f94 bne 0x324c | goto label_15;
| }
0x00003f98 ldr r3, [pc, -0x654] | r3 = *(0x3948);
0x00003f9c ldr r8, [pc, -0x654] | r8 = *(0x394c);
0x00003fa0 ldr sb, [pc, -0x654] | sb = *(0x3950);
0x00003fa4 add r3, pc, r3 | r3 = pc + r3;
0x00003fa8 mov r6, 2 | r6 = 2;
0x00003fac add r8, pc, r8 | r8 = pc + r8;
0x00003fb0 add sb, pc, sb | sb = pc + sb;
0x00003fb4 str r3, [sp, 0x3c] | s2 = r3;
| label_26:
0x00003fb8 ldr r3, [sp, 0x30] | r3 = var_30h;
0x00003fbc cmp r3, r6 |
| if (r3 < r6) {
0x00003fc0 bls 0x324c | goto label_15;
| }
0x00003fc4 add fp, sp, 0x60 |
0x00003fc8 ldr r7, [fp, r6, lsl 2] | offset_7 = r6 << 2;
| r7 = *((fp + offset_7));
0x00003fcc ldr r1, [sp, 0x3c] | r1 = s2;
0x00003fd0 mov r0, r7 | r0 = r7;
0x00003fd4 bl 0x1404 | r0 = strcmp (r0, r1);
0x00003fd8 cmp r0, 0 |
| if (r0 != 0) {
0x00003fdc bne 0x3ff8 | goto label_108;
| }
0x00003fe0 add fp, fp, r6, lsl 2 |
0x00003fe4 ldr r1, [fp, 4] | r1 = var_64h;
0x00003fe8 ldr r0, [r4] | r0 = *(r4);
0x00003fec bl 0x12b4 | loc_imp_buffer_copy_string ();
| do {
| label_27:
0x00003ff0 add r6, r6, 2 | r6 += 2;
0x00003ff4 b 0x3fb8 | goto label_26;
| label_108:
0x00003ff8 mov r1, r8 | r1 = r8;
0x00003ffc mov r0, r7 | r0 = r7;
0x00004000 bl 0x1404 | r0 = strcmp (r0, r1);
0x00004004 cmp r0, 0 |
| if (r0 != 0) {
0x00004008 bne 0x4098 | goto label_109;
| }
0x0000400c add fp, fp, r6, lsl 2 |
0x00004010 ldr fp, [fp, 4] | fp = var_64h;
0x00004014 ldr r1, [pc, -0x6c4] | r1 = loc.imp.etag_mutate;
0x00004018 mov r0, fp | r0 = fp;
0x0000401c add r1, pc, r1 | r1 = pc + r1;
0x00004020 bl 0x1404 | r0 = strcmp (r0, r1);
0x00004024 cmp r0, 0 |
| if (r0 != 0) {
0x00004028 moveq r3, 1 | r3 = 1;
| }
| if (r0 != 0) {
0x0000402c streq r3, [r4, 4] | *((r4 + 4)) = r3;
| }
0x00004030 beq 0x3ff0 |
| } while (r0 == 0);
0x00004034 ldr r1, [pc, -0x6e0] | r1 = imp.etag_mutate;
0x00004038 mov r0, fp | r0 = fp;
0x0000403c add r1, pc, r1 | r1 = pc + r1;
0x00004040 bl 0x1404 | r0 = strcmp (r0, r1);
0x00004044 cmp r0, 0 |
| if (r0 == 0) {
0x00004048 streq r0, [r4, 4] | *((r4 + 4)) = r0;
| goto label_110;
| }
| if (r0 == 0) {
| label_110:
0x0000404c beq 0x3ff0 | goto label_27;
| }
0x00004050 ldr r3, [sp, 0x20] | r3 = s1;
0x00004054 ldr r1, [pc, -0x6fc] | r1 = *(0x00003960);
0x00004058 str r3, [sp, 0xc] | var_ch = r3;
0x0000405c ldr r3, [pc, -0x700] | r3 = *(0x3960);
0x00004060 str fp, [sp, 0x10] | var_10h = fp;
0x00004064 add r3, pc, r3 | r3 = pc + r3;
0x00004068 str r3, [sp, 8] | var_8h = r3;
0x0000406c ldr r3, [pc, -0x70c] | r3 = *(0x00003968);
0x00004070 str r7, [sp, 4] | var_4h = r7;
0x00004074 add r3, pc, r3 | r3 = pc + r3;
0x00004078 str r3, [sp] | *(sp) = r3;
0x0000407c ldr r3, [pc, -0x718] | r3 = *(0x3968);
0x00004080 ldr r2, [pc, -0x718] | r2 = *(0x00003970);
0x00004084 add r3, pc, r3 | r3 = pc + r3;
0x00004088 add r1, pc, r1 | r1 = pc + r1;
0x0000408c mov r0, sl | r0 = sl;
0x00004090 bl 0x1500 | loc_imp_log_error_write ();
0x00004094 b 0x3ff0 | goto label_27;
| label_109:
0x00004098 ldr r3, [sp, 0x20] | r3 = s1;
0x0000409c ldr r1, [pc, -0x730] | r1 = *(0x00003974);
0x000040a0 str r3, [sp, 4] | var_4h = r3;
0x000040a4 ldr r3, [pc, -0x734] | r3 = *(0x00003978);
0x000040a8 str r7, [sp, 8] | var_8h = r7;
0x000040ac add r3, pc, r3 | r3 = pc + r3;
0x000040b0 str r3, [sp] | *(sp) = r3;
0x000040b4 ldr r2, [pc, -0x740] | r2 = *(0x3978);
0x000040b8 mov r3, sb | r3 = sb;
0x000040bc add r1, pc, r1 | r1 = pc + r1;
0x000040c0 mov r0, sl | r0 = sl;
0x000040c4 bl 0x1500 | loc_imp_log_error_write ();
0x000040c8 b 0x3ff0 | goto label_27;
| label_65:
0x000040cc ldr r7, [r4, 0x1c] | r7 = *((r4 + 0x1c));
0x000040d0 cmp r7, 0 |
| if (r7 != 0) {
0x000040d4 bne 0x324c | goto label_15;
| }
0x000040d8 ldr r8, [pc, -0x760] | r8 = *(0x397c);
0x000040dc ldr sb, [pc, -0x760] | sb = *(0x3980);
0x000040e0 ldr r6, [sl, 0x5c] | r6 = *((sl + 0x5c));
0x000040e4 add r8, pc, r8 | r8 = pc + r8;
0x000040e8 add sb, pc, sb | sb = pc + sb;
0x000040ec str r7, [r6, 4] | *((r6 + 4)) = r7;
| do {
0x000040f0 ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x000040f4 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x000040f8 cmp r7, r2 |
| if (r7 > r2) {
0x000040fc blo 0x4138 |
0x00004100 ldr r8, [pc, -0x780] | r8 = *(0x3984);
0x00004104 ldr sb, [pc, -0x780] | sb = *(0x3988);
0x00004108 mov r7, 0 | r7 = 0;
0x0000410c add r8, pc, r8 | r8 = pc + r8;
0x00004110 add sb, pc, sb | sb = pc + sb;
| label_28:
0x00004114 ldr r3, [r4, 0x10] | r3 = *((r4 + 0x10));
0x00004118 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x0000411c cmp r7, r2 |
| if (r7 <= r2) {
0x00004120 blo 0x41a0 | goto label_111;
| }
0x00004124 mov r0, r6 | r0 = r6;
0x00004128 bl 0x25dc | fcn_000025dc (r0);
0x0000412c ldr r1, [r6] | r1 = *(r6);
0x00004130 mov r2, r0 | r2 = r0;
0x00004134 b 0x2da4 | goto label_12;
| }
0x00004138 ldr r2, [r3, 4] | r2 = *((r3 + 4));
0x0000413c ldr r3, [r3] | r3 = *(r3);
0x00004140 ldr r2, [r2, r7, lsl 2] | offset_8 = r7 << 2;
| r2 = *((r2 + offset_8));
0x00004144 mov r0, r6 | r0 = r6;
0x00004148 ldr fp, [r3, r2, lsl 2] | offset_9 = r2 << 2;
| fp = *((r3 + offset_9));
0x0000414c add r7, r7, 1 | r7++;
0x00004150 ldr r1, [fp] | r1 = *(fp);
0x00004154 bl 0x2868 | fcn_00002868 (r0, r1);
0x00004158 mov r1, r8 | r1 = r8;
0x0000415c mov r2, 1 | r2 = 1;
0x00004160 mov r0, r6 | r0 = r6;
0x00004164 bl 0x1380 | loc_imp_buffer_append_string_len ();
0x00004168 ldr r0, [fp, 0x10] | r0 = var_70h;
0x0000416c cmp r0, 0 |
| if (r0 == 0) {
0x00004170 ldrne r1, [r0] | r1 = *(r0);
| }
| if (r0 != 0) {
0x00004174 moveq r1, r0 | r1 = r0;
| }
0x00004178 bl 0x25dc | fcn_000025dc (r0);
0x0000417c mov r3, 3 | r3 = 3;
0x00004180 mov r2, r0 | r2 = r0;
0x00004184 mov r0, r6 | r0 = r6;
0x00004188 bl 0x1458 | loc_imp_buffer_append_string_encoded ();
0x0000418c mov r2, 1 | r2 = 1;
0x00004190 mov r1, sb | r1 = sb;
0x00004194 mov r0, r6 | r0 = r6;
0x00004198 bl 0x1380 | loc_imp_buffer_append_string_len ();
0x0000419c b 0x40f0 |
| } while (1);
| label_111:
0x000041a0 ldr r2, [r3, 4] | r2 = *((r3 + 4));
0x000041a4 ldr r3, [r3] | r3 = *(r3);
0x000041a8 ldr r2, [r2, r7, lsl 2] | offset_10 = r7 << 2;
| r2 = *((r2 + offset_10));
0x000041ac mov r0, r6 | r0 = r6;
0x000041b0 ldr fp, [r3, r2, lsl 2] | offset_11 = r2 << 2;
| fp = *((r3 + offset_11));
0x000041b4 add r7, r7, 1 | r7++;
0x000041b8 ldr r1, [fp] | r1 = *(fp);
0x000041bc bl 0x2868 | fcn_00002868 (r0, r1);
0x000041c0 mov r1, r8 | r1 = r8;
0x000041c4 mov r2, 1 | r2 = 1;
0x000041c8 mov r0, r6 | r0 = r6;
0x000041cc bl 0x1380 | loc_imp_buffer_append_string_len ();
0x000041d0 ldr r0, [fp, 0x10] | r0 = var_70h;
0x000041d4 cmp r0, 0 |
| if (r0 == 0) {
0x000041d8 ldrne r1, [r0] | r1 = *(r0);
| }
| if (r0 != 0) {
0x000041dc moveq r1, r0 | r1 = r0;
| }
0x000041e0 bl 0x25dc | fcn_000025dc (r0);
0x000041e4 mov r3, 3 | r3 = 3;
0x000041e8 mov r2, r0 | r2 = r0;
0x000041ec mov r0, r6 | r0 = r6;
0x000041f0 bl 0x1458 | loc_imp_buffer_append_string_encoded ();
0x000041f4 mov r2, 1 | r2 = 1;
0x000041f8 mov r1, sb | r1 = sb;
0x000041fc mov r0, r6 | r0 = r6;
0x00004200 bl 0x1380 | loc_imp_buffer_append_string_len ();
0x00004204 b 0x4114 | goto label_28;
| label_71:
0x00004208 ldrh r3, [r4, 0x32] | r3 = *((r4 + 0x32));
0x0000420c cmp r3, 0 |
| if (r3 == 0) {
0x00004210 beq 0x324c | goto label_15;
| }
0x00004214 ldr r3, [pc, -0x88c] | r3 = "able";
0x00004218 ldr r8, [pc, -0x88c] | r8 = "able";
0x0000421c ldr sb, [pc, -0x88c] | sb = *(0x3994);
0x00004220 add r3, pc, r3 | r3 = pc + r3;
0x00004224 mov r6, 0 | r6 = 0;
0x00004228 mov r7, 2 | r7 = 2;
0x0000422c add r8, pc, r8 | r8 = pc + r8;
0x00004230 add sb, pc, sb | sb = pc + sb;
0x00004234 str r3, [sp, 0x3c] | s2 = r3;
0x00004238 b 0x4298 |
| while (r3 > r7) {
0x0000423c add fp, sp, 0x60 |
0x00004240 ldr r3, [fp, r7, lsl 2] | offset_12 = r7 << 2;
| r3 = *((fp + offset_12));
0x00004244 mov r1, r8 | r1 = r8;
0x00004248 mov r0, r3 | r0 = r3;
0x0000424c str r3, [sp, 0x48] | var_48h = r3;
0x00004250 bl 0x1404 | strcmp (r0, r1);
0x00004254 ldr r3, [sp, 0x48] | r3 = var_48h;
0x00004258 cmp r0, 0 |
| if (r0 != 0) {
0x0000425c addeq fp, fp, r7, lsl 2 |
| }
| if (r0 != 0) {
0x00004260 ldreq r6, [fp, 4] | r6 = var_64h;
| }
| if (r0 != 0) {
0x00004264 beq 0x4294 |
0x00004268 str r3, [sp, 8] | var_8h = r3;
0x0000426c ldr r3, [sp, 0x20] | r3 = s1;
0x00004270 mov r2, 0x2fc | r2 = 0x2fc;
0x00004274 str r3, [sp, 4] | var_4h = r3;
0x00004278 ldr r3, [pc, -0x8e4] | r3 = "ch_value_suffix";
0x0000427c ldr r1, [sp, 0x3c] | r1 = s2;
0x00004280 add r3, pc, r3 | r3 = pc + r3;
0x00004284 str r3, [sp] | *(sp) = r3;
0x00004288 mov r0, sl | r0 = sl;
0x0000428c mov r3, sb | r3 = sb;
0x00004290 bl 0x1500 | loc_imp_log_error_write ();
| }
0x00004294 add r7, r7, 2 | r7 += 2;
0x00004298 ldr r3, [sp, 0x30] | r3 = var_30h;
0x0000429c cmp r3, r7 |
0x000042a0 bhi 0x423c |
| }
0x000042a4 ldr r2, [r4, 0x1c] | r2 = *((r4 + 0x1c));
0x000042a8 clz r3, r6 | r3 &= r6;
0x000042ac lsr r3, r3, 5 | r3 >>= 5;
0x000042b0 cmp r2, 0 |
| if (r2 == 0) {
0x000042b4 movne r3, 1 | r3 = 1;
| }
0x000042b8 cmp r3, 0 |
| if (r3 != 0) {
0x000042bc bne 0x324c | goto label_15;
| }
0x000042c0 ldr r2, [pc, -0x928] | r2 = *(0x000039a0);
0x000042c4 ldr r1, [r5, 0x4c] | r1 = *((r5 + 0x4c));
0x000042c8 add r2, pc, r2 | r2 = pc + r2;
0x000042cc mov r0, sl | r0 = sl;
0x000042d0 bl 0x1470 | r0 = loc_imp_chunkqueue_append_mem_to_tempfile ();
0x000042d4 subs r2, r0, 0 | r2 = r0 - 0;
| if (r2 != r0) {
0x000042d8 bne 0x324c | goto label_15;
| }
0x000042dc ldr r3, [r5, 0x4c] | r3 = *((r5 + 0x4c));
0x000042e0 ldr r0, [pc, -0x944] | r0 = *(0x39a0);
0x000042e4 ldr r7, [r3, 4] | r7 = *((r3 + 4));
0x000042e8 ldr r3, [pc, -0x948] | r3 = *(0x39a4);
0x000042ec add r0, pc, r0 | r0 = pc + r0;
0x000042f0 add r3, pc, r3 | r3 = pc + r3;
0x000042f4 str r3, [sp, 0xa4] | var_a4h = r3;
0x000042f8 mvn r3, 0 | r3 = ~0;
0x000042fc str r3, [sp, 8] | var_8h = r3;
0x00004300 str r3, [sp, 4] | var_4h = r3;
0x00004304 ldr r1, [r7, 0x28] | r1 = *((r7 + 0x28));
0x00004308 str r0, [sp, 0xa0] | timer = r0;
0x0000430c str r1, [sp] | *(sp) = r1;
0x00004310 add r1, sp, 0xa0 | r1 += timer;
0x00004314 str r6, [sp, 0xa8] | var_a8h = r6;
0x00004318 str r2, [sp, 0xac] | var_ach = r2;
0x0000431c bl 0x13ec | r0 = loc_imp_fdevent_fork_execve ();
0x00004320 cmn r0, 1 |
0x00004324 mov r8, r0 | r8 = r0;
| if (r0 == 1) {
0x00004328 addne sb, sp, 0x5c | sb += var_5ch;
| }
| if (r0 != 1) {
0x0000432c bne 0x4364 | goto label_112;
| }
0x00004330 bl 0x1488 | r0 = errno_location ();
0x00004334 ldr r0, [r0] | r0 = *(r0);
0x00004338 bl 0x120c | strerror (r0);
0x0000433c ldr r3, [pc, -0x998] | r3 = *(0x000039ac);
0x00004340 ldr r1, [pc, -0x998] | r1 = "append_file";
0x00004344 add r3, pc, r3 | r3 = pc + r3;
0x00004348 str r3, [sp] | *(sp) = r3;
0x0000434c ldr r3, [pc, -0x9a0] | r3 = "append_file";
0x00004350 ldr r2, [pc, -0x9a0] | r2 = *(0x000039b8);
0x00004354 add r3, pc, r3 | r3 = pc + r3;
0x00004358 add r1, pc, r1 | r1 = pc + r1;
0x0000435c stmib sp, {r0, r6} | __asm ("stmib sp, {r0, r6}");
0x00004360 b 0x31ac | goto label_18;
| do {
| label_112:
0x00004364 mov r2, 0 | r2 = 0;
0x00004368 mov r1, sb | r1 = sb;
0x0000436c mov r0, r8 | r0 = r8;
0x00004370 bl 0x11e8 | r0 = waitpid ();
0x00004374 cmn r0, 1 |
| if (r0 != 1) {
0x00004378 bne 0x43bc | goto label_113;
| }
0x0000437c bl 0x1488 | r0 = errno_location ();
0x00004380 ldr r0, [r0] | r0 = *(r0);
0x00004384 cmp r0, 4 |
0x00004388 beq 0x4364 |
| } while (r0 == 4);
0x0000438c bl 0x120c | strerror (r0);
0x00004390 ldr r3, [pc, -0x9dc] | r3 = *(0x39b8);
0x00004394 ldr r1, [pc, -0x9dc] | r1 = "ffer_append_string";
0x00004398 add r3, pc, r3 | r3 = pc + r3;
0x0000439c str r3, [sp] | *(sp) = r3;
0x000043a0 ldr r3, [pc, -0x9e4] | r3 = "ffer_append_string";
0x000043a4 ldr r2, [pc, -0x9e4] | r2 = *(0x39c4);
0x000043a8 add r3, pc, r3 | r3 = pc + r3;
0x000043ac add r1, pc, r1 | r1 = pc + r1;
0x000043b0 str r0, [sp, 4] | var_4h = r0;
0x000043b4 mov r0, sl | r0 = sl;
0x000043b8 bl 0x1500 | loc_imp_log_error_write ();
| label_113:
0x000043bc ldr r3, [sp, 0x5c] | r3 = var_5ch;
0x000043c0 tst r3, 0x7f |
| if ((r3 & 0x7f) != 0) {
0x000043c4 beq 0x43f4 |
0x000043c8 ldr r3, [pc, -0xa04] | r3 = *(0x39c8);
0x000043cc ldr r1, [pc, -0xa04] | r1 = "_urldecode_path";
0x000043d0 add r3, pc, r3 | r3 = pc + r3;
0x000043d4 str r3, [sp] | *(sp) = r3;
0x000043d8 ldr r3, [pc, -0xa0c] | r3 = "_urldecode_path";
0x000043dc str r6, [sp, 4] | var_4h = r6;
0x000043e0 add r3, pc, r3 | r3 = pc + r3;
0x000043e4 mov r2, 0x328 | r2 = 0x328;
0x000043e8 add r1, pc, r1 | r1 = pc + r1;
0x000043ec mov r0, sl | r0 = sl;
0x000043f0 bl 0x1500 | loc_imp_log_error_write ();
| }
0x000043f4 add r6, sp, 0x108 | r6 += s;
0x000043f8 mov r1, r6 | r1 = r6;
0x000043fc ldr r0, [r7, 0x28] | r0 = *((r7 + 0x28));
0x00004400 bl 0x12d8 | r0 = fstat64 ();
0x00004404 cmp r0, 0 |
0x00004408 ldrdeq r2, r3, [r6, 0x30] | __asm ("ldrdeq r2, r3, [r6, 0x30]");
0x0000440c strdeq r2, r3, [r7, 0x20] | __asm ("strdeq r2, r3, [r7, 0x20]");
0x00004410 b 0x324c | goto label_15;
| do {
0x00004414 add fp, sp, 0x60 |
0x00004418 ldr r3, [fp, r6, lsl 2] | offset_13 = r6 << 2;
| r3 = *((fp + offset_13));
0x0000441c mov r1, r8 | r1 = r8;
0x00004420 mov r0, r3 | r0 = r3;
0x00004424 str r3, [sp, 0x48] | var_48h = r3;
0x00004428 bl 0x1404 | strcmp (r0, r1);
0x0000442c ldr r3, [sp, 0x48] | r3 = var_48h;
0x00004430 cmp r0, 0 |
| if (r0 != 0) {
0x00004434 addeq fp, fp, r6, lsl 2 |
| }
| if (r0 != 0) {
0x00004438 ldreq r7, [fp, 4] | r7 = var_64h;
| }
| if (r0 != 0) {
0x0000443c beq 0x446c |
0x00004440 str r3, [sp, 8] | var_8h = r3;
0x00004444 ldr r3, [sp, 0x20] | r3 = s1;
0x00004448 mov r2, 0x338 | r2 = 0x338;
0x0000444c str r3, [sp, 4] | var_4h = r3;
0x00004450 ldr r3, [pc, -0xa80] | r3 = "lid_UTF8";
0x00004454 ldr r1, [sp, 0x3c] | r1 = s2;
0x00004458 add r3, pc, r3 | r3 = pc + r3;
0x0000445c str r3, [sp] | *(sp) = r3;
0x00004460 mov r0, sl | r0 = sl;
0x00004464 mov r3, sb | r3 = sb;
0x00004468 bl 0x1500 | loc_imp_log_error_write ();
| }
0x0000446c add r6, r6, 2 | r6 += 2;
| label_29:
0x00004470 ldr r3, [sp, 0x30] | r3 = var_30h;
0x00004474 cmp r3, r6 |
0x00004478 bhi 0x4414 |
| } while (r3 > r6);
0x0000447c cmp r7, 0 |
| if (r7 == 0) {
0x00004480 bne 0x44e4 |
0x00004484 ldr r3, [pc, -0xab0] | r3 = "ssi.so";
0x00004488 ldr r1, [pc, -0xab0] | r1 = "nsert_key_value";
0x0000448c add r3, pc, r3 | r3 = pc + r3;
0x00004490 str r3, [sp, 8] | var_8h = r3;
0x00004494 ldr r3, [sp, 0x20] | r3 = s1;
0x00004498 ldr r2, [pc, -0xabc] | r2 = "nsert_key_value";
0x0000449c str r3, [sp, 4] | var_4h = r3;
0x000044a0 ldr r3, [pc, -0xac0] | r3 = *(0x39e4);
0x000044a4 add r1, pc, r1 | r1 = pc + r1;
0x000044a8 add r3, pc, r3 | r3 = pc + r3;
0x000044ac str r3, [sp] | *(sp) = r3;
0x000044b0 ldr r3, [pc, -0xacc] | r3 = *(0x39e8);
0x000044b4 add r3, pc, r3 | r3 = pc + r3;
0x000044b8 b 0x31ac | goto label_18;
| label_67:
0x000044bc ldr r3, [pc, -0xad4] | r3 = "values_global";
0x000044c0 ldr r8, [pc, -0xad4] | r8 = "values_global";
0x000044c4 ldr sb, [pc, -0xad4] | sb = *(0x39f4);
0x000044c8 add r3, pc, r3 | r3 = pc + r3;
0x000044cc mov r7, 0 | r7 = 0;
0x000044d0 mov r6, 2 | r6 = 2;
0x000044d4 add r8, pc, r8 | r8 = pc + r8;
0x000044d8 add sb, pc, sb | sb = pc + sb;
0x000044dc str r3, [sp, 0x3c] | s2 = r3;
0x000044e0 b 0x4470 | goto label_29;
| }
0x000044e4 ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x000044e8 cmp r3, 0 |
| if (r3 == 0) {
0x000044ec bne 0x4538 |
0x000044f0 ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
0x000044f4 cmp r3, 0 |
| if (r3 != 0) {
0x000044f8 beq 0x4508 |
0x000044fc ldr r2, [r4, 0x14] | r2 = *((r4 + 0x14));
0x00004500 cmp r3, r2 |
| if (r3 <= r2) {
0x00004504 ble 0x4538 | goto label_31;
| }
| }
0x00004508 mov r3, r7 | r3 = r7;
0x0000450c mov r2, r4 | r2 = r4;
0x00004510 mov r1, r5 | r1 = r5;
0x00004514 mov r0, sl | r0 = sl;
0x00004518 bl 0x135c | r0 = fcn_0000135c ();
0x0000451c cmn r0, 1 |
| if (r0 < 1) {
0x00004520 blt 0x4538 | goto label_31;
| }
0x00004524 cmp r0, 0 |
| if (r0 <= 0) {
0x00004528 ble 0x46bc | goto label_114;
| }
0x0000452c cmp r0, 1 |
| if (r0 != 1) {
0x00004530 moveq r3, 0 | r3 = 0;
| }
| if (r0 == 1) {
0x00004534 streq r3, [r4, 0x1c] | *((r4 + 0x1c)) = r3;
| goto label_31;
| }
| }
| label_31:
0x00004538 ldr r3, [r4, 0x14] | r3 = *((r4 + 0x14));
0x0000453c add r3, r3, 1 | r3++;
0x00004540 str r3, [r4, 0x14] | *((r4 + 0x14)) = r3;
0x00004544 b 0x324c | goto label_15;
| label_69:
0x00004548 ldr r1, [r4, 0x1c] | r1 = *((r4 + 0x1c));
0x0000454c ldr r2, [r4, 0x14] | r2 = *((r4 + 0x14));
0x00004550 cmp r1, 0 |
0x00004554 sub r3, r2, 1 | r3 = r2 - 1;
| if (r1 != 0) {
0x00004558 moveq r1, 1 | r1 = 1;
| }
0x0000455c str r3, [r4, 0x14] | *((r4 + 0x14)) = r3;
| if (r1 != 0) {
0x00004560 streq r1, [r4, 0x1c] | *((r4 + 0x1c)) = r1;
| }
| if (r1 != 0) {
0x00004564 streq r3, [r4, 0x18] | *((r4 + 0x18)) = r3;
| }
| if (r1 != 0) {
0x00004568 beq 0x4584 |
0x0000456c ldr r1, [r4, 0x18] | r1 = *((r4 + 0x18));
0x00004570 cmp r3, r1 |
| if (r3 != r1) {
0x00004574 bne 0x4584 | goto label_115;
| }
0x00004578 ldr r3, [r4, 0x20] | r3 = *((r4 + 0x20));
0x0000457c cmp r3, 0 |
| if (r3 == 0) {
0x00004580 streq r3, [r4, 0x1c] | *((r4 + 0x1c)) = r3;
| goto label_115;
| }
| }
| label_115:
0x00004584 str r2, [r4, 0x14] | *((r4 + 0x14)) = r2;
0x00004588 b 0x324c | goto label_15;
| do {
0x0000458c add fp, sp, 0x60 |
0x00004590 ldr r3, [fp, r6, lsl 2] | offset_14 = r6 << 2;
| r3 = *((fp + offset_14));
0x00004594 mov r1, r8 | r1 = r8;
0x00004598 mov r0, r3 | r0 = r3;
0x0000459c str r3, [sp, 0x48] | var_48h = r3;
0x000045a0 bl 0x1404 | strcmp (r0, r1);
0x000045a4 ldr r3, [sp, 0x48] | r3 = var_48h;
0x000045a8 cmp r0, 0 |
| if (r0 != 0) {
0x000045ac addeq fp, fp, r6, lsl 2 |
| }
| if (r0 != 0) {
0x000045b0 ldreq r7, [fp, 4] | r7 = var_64h;
| }
| if (r0 != 0) {
0x000045b4 beq 0x45e4 |
0x000045b8 str r3, [sp, 8] | var_8h = r3;
0x000045bc ldr r3, [sp, 0x20] | r3 = s1;
0x000045c0 ldr r2, [pc, -0xbcc] | r2 = *(0x000039fc);
0x000045c4 str r3, [sp, 4] | var_4h = r3;
0x000045c8 ldr r3, [pc, -0xbd0] | r3 = "ailed_assert";
0x000045cc ldr r1, [sp, 0x3c] | r1 = s2;
0x000045d0 add r3, pc, r3 | r3 = pc + r3;
0x000045d4 str r3, [sp] | *(sp) = r3;
0x000045d8 mov r0, sl | r0 = sl;
0x000045dc mov r3, sb | r3 = sb;
0x000045e0 bl 0x1500 | loc_imp_log_error_write ();
| }
0x000045e4 add r6, r6, 2 | r6 += 2;
| label_30:
0x000045e8 ldr r3, [sp, 0x30] | r3 = var_30h;
0x000045ec cmp r3, r6 |
0x000045f0 bhi 0x458c |
| } while (r3 > r6);
0x000045f4 cmp r7, 0 |
| if (r7 == 0) {
0x000045f8 bne 0x465c |
0x000045fc ldr r3, [pc, -0xc00] | r3 = "end_mem_to_tempfile";
0x00004600 ldr r1, [pc, -0xc00] | r1 = *(0x00003a08);
0x00004604 add r3, pc, r3 | r3 = pc + r3;
0x00004608 str r3, [sp, 8] | var_8h = r3;
0x0000460c ldr r3, [sp, 0x20] | r3 = s1;
0x00004610 ldr r2, [pc, -0xc0c] | r2 = *(0x3a08);
0x00004614 str r3, [sp, 4] | var_4h = r3;
0x00004618 ldr r3, [pc, -0xc10] | r3 = *(0x3a0c);
0x0000461c add r1, pc, r1 | r1 = pc + r1;
0x00004620 add r3, pc, r3 | r3 = pc + r3;
0x00004624 str r3, [sp] | *(sp) = r3;
0x00004628 ldr r3, [pc, -0xc1c] | r3 = *(0x3a10);
0x0000462c add r3, pc, r3 | r3 = pc + r3;
0x00004630 b 0x31ac | goto label_18;
| label_68:
0x00004634 ldr r3, [pc, -0xc24] | r3 = "_cxa_finalize";
0x00004638 ldr r8, [pc, -0xc24] | r8 = "_cxa_finalize";
0x0000463c ldr sb, [pc, -0xc24] | sb = *(0x3a1c);
0x00004640 add r3, pc, r3 | r3 = pc + r3;
0x00004644 mov r7, 0 | r7 = 0;
0x00004648 mov r6, 2 | r6 = 2;
0x0000464c add r8, pc, r8 | r8 = pc + r8;
0x00004650 add sb, pc, sb | sb = pc + sb;
0x00004654 str r3, [sp, 0x3c] | s2 = r3;
0x00004658 b 0x45e8 | goto label_30;
| }
0x0000465c ldr r3, [r4, 0x14] | r3 = *((r4 + 0x14));
0x00004660 ldr r2, [r4, 0x18] | r2 = *((r4 + 0x18));
0x00004664 sub r3, r3, 1 | r3--;
0x00004668 cmp r3, r2 |
0x0000466c str r3, [r4, 0x14] | *((r4 + 0x14)) = r3;
| if (r3 != r2) {
0x00004670 bne 0x4538 | goto label_31;
| }
0x00004674 ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x00004678 cmp r3, 0 |
| if (r3 == 0) {
0x0000467c beq 0x46d0 | goto label_116;
| }
0x00004680 ldr r6, [r4, 0x20] | r6 = *((r4 + 0x20));
0x00004684 cmp r6, 0 |
| if (r6 != 0) {
0x00004688 bne 0x46d0 | goto label_116;
| }
0x0000468c mov r3, r7 | r3 = r7;
0x00004690 mov r2, r4 | r2 = r4;
0x00004694 mov r1, r5 | r1 = r5;
0x00004698 mov r0, sl | r0 = sl;
0x0000469c bl 0x135c | r0 = fcn_0000135c ();
0x000046a0 cmn r0, 1 |
| if (r0 < 1) {
0x000046a4 blt 0x4538 | goto label_31;
| }
0x000046a8 cmp r0, 0 |
| if (r0 > 0) {
0x000046ac ble 0x46bc |
0x000046b0 cmp r0, 1 |
| if (r0 != 1) {
0x000046b4 streq r6, [r4, 0x1c] | *((r4 + 0x1c)) = r6;
| }
0x000046b8 b 0x4538 | goto label_31;
| }
| label_114:
0x000046bc mov r3, 1 | r3 = 1;
0x000046c0 str r3, [r4, 0x1c] | *((r4 + 0x1c)) = r3;
0x000046c4 ldr r3, [r4, 0x14] | r3 = *((r4 + 0x14));
0x000046c8 str r3, [r4, 0x18] | *((r4 + 0x18)) = r3;
0x000046cc b 0x4538 | goto label_31;
| label_116:
0x000046d0 mov r3, 1 | r3 = 1;
0x000046d4 str r3, [r4, 0x1c] | *((r4 + 0x1c)) = r3;
0x000046d8 str r3, [r4, 0x20] | *((r4 + 0x20)) = r3;
0x000046dc b 0x4538 | goto label_31;
| label_70:
0x000046e0 ldr r3, [r4, 0x14] | r3 = *((r4 + 0x14));
0x000046e4 ldr r2, [r4, 0x18] | r2 = *((r4 + 0x18));
0x000046e8 sub r3, r3, 1 | r3--;
0x000046ec cmp r3, r2 |
0x000046f0 str r3, [r4, 0x14] | *((r4 + 0x14)) = r3;
| if (r3 != r2) {
0x000046f4 moveq r3, 0 | r3 = 0;
| }
| if (r3 != r2) {
0x000046f8 streq r3, [r4, 0x1c] | *((r4 + 0x1c)) = r3;
| }
| if (r3 != r2) {
0x000046fc streq r3, [r4, 0x20] | *((r4 + 0x20)) = r3;
| }
0x00004700 b 0x324c | goto label_15;
| label_50:
0x00004704 ldrb r3, [r3, 0xfff] | r3 = *((r3 + 0xfff));
0x00004708 cmp r3, 0x2d |
| if (r3 != 0x2d) {
0x0000470c bne 0x326c | goto label_32;
| }
0x00004710 ldr r1, [pc, -0xcf4] | r1 = *(0x3a20);
0x00004714 mov r2, 1 | r2 = 1;
0x00004718 add r1, pc, r1 | r1 = pc + r1;
| label_33:
0x0000471c ldr r0, [r5, 0x4c] | r0 = *((r5 + 0x4c));
0x00004720 bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
0x00004724 b 0x326c | goto label_32;
| label_49:
0x00004728 mov r2, r8 | r2 = r8;
0x0000472c mov r1, r7 | r1 = r7;
0x00004730 ldr r0, [sp, 0x28] | r0 = ptr;
0x00004734 bl 0x1224 | memmove (r0, r1, r2);
0x00004738 str r8, [sp, 0x1c] | buf = r8;
| label_34:
0x0000473c ldr r3, [sp, 0x1c] | r3 = buf;
0x00004740 cmp r3, 0x2000 |
| if (r3 != 0x2000) {
0x00004744 bne 0x2c14 | goto label_11;
| }
0x00004748 ldr r7, [r4, 0x1c] | r7 = *((r4 + 0x1c));
0x0000474c cmp r7, 0 |
| if (r7 != 0) {
0x00004750 ldreq r3, [sp, 0x28] | r3 = ptr;
| }
0x00004754 rsbeq r2, r6, 0x2000 | __asm ("rsbeq r2, r6, 0x2000");
| if (r7 == 0) {
0x00004758 addeq r1, r3, r6 | r1 = r3 + r6;
| goto label_117;
| }
| if (r7 != 0) {
| label_117:
0x0000475c bne 0x326c | goto label_32;
| }
0x00004760 b 0x471c | goto label_33;
| label_39:
0x00004764 ldr r3, [sp, 0x24] | r3 = var_24h;
0x00004768 ldr r2, [sp, 0x1c] | r2 = buf;
0x0000476c add r3, r3, 1 | r3++;
0x00004770 cmp r2, r3 |
| if (r2 != r3) {
0x00004774 beq 0x479c |
0x00004778 ldr r3, [sp, 0x24] | r3 = var_24h;
0x0000477c ldr r1, [pc, -0xd5c] | r1 = *(0x3a24);
0x00004780 sub r2, r2, 1 | r2--;
0x00004784 sub r2, r2, r3 | r2 -= r3;
0x00004788 add r1, pc, r1 | r1 = pc + r1;
0x0000478c add r0, r7, 1 | r0 = r7 + 1;
0x00004790 bl 0x138c | r0 = memcmp (r0, r1, r2);
0x00004794 cmp r0, 0 |
| if (r0 != 0) {
0x00004798 bne 0x47f4 | goto label_40;
| }
| }
0x0000479c ldr r3, [sp, 0x24] | r3 = var_24h;
0x000047a0 cmp r3, r6 |
| if (r3 != r6) {
0x000047a4 beq 0x47cc |
0x000047a8 ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x000047ac cmp r3, 0 |
| if (r3 != 0) {
0x000047b0 bne 0x47cc | goto label_118;
| }
0x000047b4 ldr r3, [sp, 0x24] | r3 = var_24h;
0x000047b8 ldr r0, [r5, 0x4c] | r0 = *((r5 + 0x4c));
0x000047bc sub r2, r3, r6 | r2 = r3 - r6;
0x000047c0 ldr r3, [sp, 0x28] | r3 = ptr;
0x000047c4 add r1, r3, r6 | r1 = r3 + r6;
0x000047c8 bl 0x13f8 | loc_imp_chunkqueue_append_mem ();
| }
| label_118:
0x000047cc ldr r3, [sp, 0x1c] | r3 = buf;
0x000047d0 ldr r2, [sp, 0x24] | r2 = var_24h;
0x000047d4 mov r1, r7 | r1 = r7;
0x000047d8 sub r3, r3, r2 | r3 -= r2;
0x000047dc mov r2, r3 | r2 = r3;
0x000047e0 ldr r0, [sp, 0x28] | r0 = ptr;
0x000047e4 str r3, [sp, 0x1c] | buf = r3;
0x000047e8 mov r6, 0 | r6 = 0;
0x000047ec bl 0x1278 | memcpy (r0, r1, r2);
0x000047f0 b 0x473c | goto label_34;
| label_40:
0x000047f4 ldr r3, [sp, 0x24] | r3 = var_24h;
0x000047f8 add r0, r3, 1 | r0 = r3 + 1;
0x000047fc b 0x2a6c | goto label_35;
| label_38:
0x00004800 ldr r3, [pc, -0xddc] | r3 = *(0x00003a2c);
0x00004804 str r6, [sp, 0x1c] | buf = r6;
0x00004808 add r3, pc, r3 | r3 = pc + r3;
0x0000480c str r3, [sp, 0x44] | var_44h = r3;
0x00004810 add r3, r3, 0x70 | r3 += 0x70;
0x00004814 str r3, [sp, 0x54] | var_54h = r3;
0x00004818 b 0x2c14 | goto label_11;
| }
[*] Function mmap used 1 times mod_ssi.so