[*] Binary protection state of mod_proxy_scgi.so
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function sprintf tear down of mod_proxy_scgi.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/apache2/modules/mod_proxy_scgi.so @ 0x14a4 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.000014a4 () | void fcn_000014a4 (int16_t arg1, int16_t arg2, uint32_t arg3, int16_t arg4) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| 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_47h;
| int16_t var_48h;
| int16_t var_4ch;
| int16_t var_78h;
| int16_t var_7ch;
| int32_t var_8h_2;
| int32_t var_8h_3;
| int16_t var_10h_2;
| int16_t var_18h_2;
| int16_t var_1ch;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x000014a4 svcmi 0xf0e92d | __asm ("svcmi 0xf0e92d");
0x000014a8 mov fp, r1 |
0x000014aa ldr r1, [pc, 0xa0] |
0x000014ac mov r8, r3 | r8 = r3;
0x000014ae sub sp, 0x24 |
0x000014b0 ldr r3, [pc, 0x9c] | r3 = *(0x1550);
0x000014b2 add r1, pc | r1 = 0x2a04;
0x000014b4 ldr.w sb, [pc, 0x9c] | sb = *(0x00001554);
0x000014b8 ldr r3, [r1, r3] |
0x000014ba add sb, pc | sb += pc;
0x000014bc ldr r3, [r3] | r3 = *(0x2a04);
0x000014be str r3, [sp, 0x1c] | var_1ch = r3;
0x000014c0 mov.w r3, 0 | r3 = 0;
0x000014c4 cmp r2, 0 |
| if (r2 == 0) {
0x000014c6 beq 0x152a | goto label_19;
| }
0x000014c8 mov r7, r0 | r7 = r0;
0x000014ca mov r6, r2 | r6 = r2;
0x000014cc add.w sl, sp, 0x18 | sl += var_18h_2;
0x000014d0 b 0x14ec |
| while (r0 == 0) {
0x000014d2 ldr r3, [r7, 8] | r3 = *((r7 + 8));
0x000014d4 ldr r4, [sp, 0x18] | r4 = var_18h_2;
0x000014d6 ldr r3, [r3, 0x10] | r3 = *((r3 + 0x10));
0x000014d8 add fp, r4 |
0x000014da ldrd r5, r2, [r3, 0x230] | __asm ("ldrd r5, r2, [r3, 0x230]");
0x000014de adds r5, r5, r4 | r5 += r4;
0x000014e0 adc r2, r2, 0 | __asm ("adc r2, r2, 0");
0x000014e4 subs r6, r6, r4 | r6 -= r4;
0x000014e6 strd r5, r2, [r3, 0x230] | __asm ("strd r5, r2, [r3, 0x230]");
| if (r6 == r6) {
0x000014ea beq 0x152a | goto label_19;
| }
0x000014ec ldr r0, [r7, 0x1c] | r0 = *((r7 + 0x1c));
0x000014ee mov r2, sl | r2 = sl;
0x000014f0 mov r1, fp | r1 = fp;
0x000014f2 str r6, [sp, 0x18] | var_18h_2 = r6;
0x000014f4 blx 0xe30 | r0 = loc_imp_apr_socket_send ();
0x000014f8 cmp r0, 0 |
0x000014fa beq 0x14d2 |
| }
0x000014fc ldr r3, [pc, 0x58] | r3 = *(0x1558);
0x000014fe ldr r4, [pc, 0x5c] |
0x00001500 ldrh r1, [r7, 0x2c] | r1 = *((r7 + 0x2c));
0x00001502 ldr.w r2, [sb, r3] | r2 = *((sb + r3));
0x00001506 movs r3, 3 | r3 = 3;
0x00001508 ldr r5, [r7, 0x10] | r5 = *((r7 + 0x10));
0x0000150a add r4, pc | r4 = 0x2a6c;
0x0000150c str r0, [sp] | *(sp) = r0;
0x0000150e ldr r0, [pc, 0x50] |
0x00001510 str.w r8, [sp, 4] | __asm ("str.w r8, [var_7ch]");
0x00001514 ldr r2, [r2, 8] | r2 = *((r2 + 8));
0x00001516 add r0, pc | r0 = 0x2a7c;
0x00001518 str r1, [sp, 0x10] | var_10h_2 = r1;
0x0000151a strd r4, r5, [sp, 8] | __asm ("strd r4, r5, [var_8h_2]");
0x0000151e movs r1, 0xed | r1 = 0xed;
0x00001520 blx 0xf50 | loc_imp_ap_log_rerror_ ();
0x00001524 movw r0, 0x1f7 | r0 = 0x1f7;
0x00001528 b 0x152c | goto label_20;
| label_19:
0x0000152a movs r0, 0 | r0 = 0;
| label_20:
0x0000152c ldr r2, [pc, 0x34] |
0x0000152e ldr r3, [pc, 0x20] | r3 = *(0x1552);
0x00001530 add r2, pc | r2 = 0x2a98;
0x00001532 ldr r3, [r2, r3] | r3 = *(0x2a98);
0x00001534 ldr r2, [r3] | r2 = *(0x2a98);
0x00001536 ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x00001538 eors r2, r3 | r2 ^= r3;
0x0000153a mov.w r3, 0 | r3 = 0;
| if (r2 == r3) {
0x0000153e bne 0x1546 |
0x00001540 add sp, 0x24 |
0x00001542 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| }
0x00001546 blx 0xe00 | stack_chk_fail ();
0x0000154a nop |
0x0000154c subs r2, r2, r1 | r2 -= r1;
0x0000154e movs r1, r0 | r1 = r0;
0x00001550 lsls r0, r3, 3 | r0 = r3 << 3;
0x00001552 movs r0, r0 |
0x00001554 subs r2, r1, r1 | r2 = r1 - r1;
0x00001556 movs r1, r0 | r1 = r0;
0x00001558 lsls r0, r5, 3 | r0 = r5 << 3;
0x0000155a movs r0, r0 |
0x0000155c lsrs r6, r6, 0xe | r6 >>= 0xe;
0x0000155e movs r0, r0 |
0x00001560 lsrs r6, r1, 9 | r6 = r1 >> 9;
0x00001562 movs r0, r0 |
0x00001564 adds r4, r2, r7 | r4 = r2 + r7;
0x00001566 movs r1, r0 | r1 = r0;
0x00001568 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0000156c mov r5, r1 | r5 = r1;
0x0000156e ldr.w r1, [pc, 0x6b4] | r1 = *(0x00001c24);
0x00001572 mov r6, r2 | r6 = r2;
0x00001574 sub sp, 0x54 |
0x00001576 mov sl, r0 | sl = r0;
0x00001578 ldr.w r2, [pc, 0x6ac] |
0x0000157c mov r0, r3 | r0 = r3;
0x0000157e add r1, pc | r1 += pc;
0x00001580 str r3, [sp, 0x3c] | var_3ch = r3;
0x00001582 movs r3, 0 | r3 = 0;
0x00001584 ldr.w sb, [sp, 0x78] | sb = var_78h;
0x00001588 ldr r2, [r1, r2] | r2 = *((r1 + r2));
0x0000158a ldr.w r1, [pc, 0x6a0] |
0x0000158e ldrh.w fp, [sp, 0x7c] | fp = var_7ch;
0x00001592 ldr r2, [r2] | r2 = *(0x1c28);
0x00001594 str r2, [sp, 0x4c] | var_4ch = r2;
0x00001596 mov.w r2, 0 | r2 = 0;
0x0000159a movs r2, 7 | r2 = 7;
0x0000159c add r1, pc | r1 = 0x31ce;
0x0000159e str r3, [sp, 0x48] | var_48h = r3;
0x000015a0 ldr.w r8, [sl] | r8 = *(sl);
0x000015a4 blx 0xf20 | loc_imp_ap_cstr_casecmpn ();
0x000015a8 ldr.w r3, [pc, 0x684] | r3 = *(0x00001c30);
0x000015ac add r3, pc | r3 += pc;
0x000015ae str r3, [sp, 0x24] | var_24h = r3;
0x000015b0 cmp r0, 0 |
| if (r0 != 0) {
0x000015b2 bne.w 0x19ac | goto label_21;
| }
0x000015b6 ldr.w r7, [pc, 0x67c] |
0x000015ba mov r2, r5 | r2 = r5;
0x000015bc ldr.w r3, [sl, 8] | r3 = *((sl + 8));
0x000015c0 add r1, sp, 0x48 | r1 += var_48h;
0x000015c2 add r7, pc | r7 = 0x31fc;
0x000015c4 mov r0, r7 | r0 = r7;
0x000015c6 blx 0xfb0 | r0 = loc_imp_ap_proxy_acquire_connection ();
0x000015ca mov r4, r0 | r4 = r0;
0x000015cc cbz r0, 0x160e |
| while (r0 != 0) {
| label_0:
0x000015ce ldr r1, [sp, 0x48] | r1 = var_48h;
| if (r1 != 0) {
0x000015d0 cbz r1, 0x15ec |
0x000015d2 ldrb.w r3, [r1, 0x2e] | r3 = *((r1 + 0x2e));
0x000015d6 ldr.w r0, [pc, 0x660] |
0x000015da orr r3, r3, 2 | r3 |= 2;
0x000015de strb.w r3, [r1, 0x2e] | *((r1 + 0x2e)) = r3;
0x000015e2 add r0, pc | r0 = 0x3220;
0x000015e4 ldr.w r2, [sl, 8] | r2 = *((sl + 8));
0x000015e8 blx 0xe54 | loc_imp_ap_proxy_release_connection ();
| }
| label_1:
0x000015ec ldr.w r2, [pc, 0x64c] | r2 = *(0x00001c3c);
0x000015f0 ldr.w r3, [pc, 0x634] | r3 = *(0x1c28);
0x000015f4 add r2, pc | r2 += pc;
0x000015f6 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x000015f8 ldr r2, [r3] | r2 = *(0x1c28);
0x000015fa ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x000015fc eors r2, r3 | r2 ^= r3;
0x000015fe mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00001602 bne.w 0x1c02 | goto label_22;
| }
0x00001606 mov r0, r4 | r0 = r4;
0x00001608 add sp, 0x54 |
0x0000160a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
0x0000160e ldr r3, [sp, 0x48] | r3 = var_48h;
0x00001610 movs r1, 0x2c | r1 = 0x2c;
0x00001612 mov r0, r8 | r0 = r8;
0x00001614 ldrb.w r2, [r3, 0x2e] | r2 = *((r3 + 0x2e));
0x00001616 movs r0, 0x2e | r0 = 0x2e;
0x00001618 bfi r2, r4, 0, 1 | value_0 = BIT_MASK (0, 1);
| value_1 = r4 & value_0;
| value_0 = ~value_0;
| r2 &= value_0;
| r2 |= value_1;
0x0000161c strb.w r2, [r3, 0x2e] | *((r3 + 0x2e)) = r2;
0x00001620 blx 0xe6c | loc_imp_apr_palloc ();
0x00001624 movs r3, 1 | r3 = 1;
0x00001626 str r0, [sp, 4] | var_4h = r0;
0x00001628 str r3, [sp, 0x18] | var_18h = r3;
0x0000162a mov r2, r6 | r2 = r6;
0x0000162c ldr r3, [sp, 0x48] | r3 = var_48h;
0x0000162e mov r0, r8 | r0 = r8;
0x00001630 mov r1, sl | r1 = sl;
0x00001632 strd sb, fp, [sp, 0xc] | __asm ("strd sb, fp, [var_0hxc]");
0x00001636 str r3, [sp] | *(sp) = r3;
0x00001638 add.w r3, sp, 0x47 | r3 += var_47h;
0x0000163c str r3, [sp, 0x14] | var_14h = r3;
0x0000163e add r3, sp, 0x3c | r3 += var_3ch;
0x00001640 str r3, [sp, 8] | var_8h = r3;
0x00001642 mov r3, r5 | r3 = r5;
0x00001644 blx 0xfc8 | r0 = loc_imp_ap_proxy_determine_connection ();
0x00001648 mov r4, r0 | r4 = r0;
0x0000164a cmp r0, 0 |
0x0000164c bne 0x15ce |
| }
0x0000164e ldr.w r3, [sl, 8] | r3 = *((sl + 8));
0x00001652 mov r2, r5 | r2 = r5;
0x00001654 ldr r1, [sp, 0x48] | r1 = var_48h;
0x00001656 mov r0, r7 | r0 = r7;
0x00001658 blx 0xec0 | r0 = loc_imp_ap_proxy_connect_backend ();
0x0000165c cmp r0, 0 |
| if (r0 != 0) {
0x0000165e bne.w 0x197a | goto label_23;
| }
0x00001662 movs r1, 1 | r1 = 1;
0x00001664 mov r0, sl | r0 = sl;
0x00001666 blx 0xfa4 | r0 = loc_imp_ap_setup_client_block ();
0x0000166a mov r4, r0 | r4 = r0;
0x0000166c cmp r0, 0 |
| if (r0 != 0) {
0x0000166e bne 0x15ce | goto label_0;
| }
0x00001670 ldr r3, [sp, 0x48] | r3 = var_48h;
0x00001672 mov r0, sl | r0 = sl;
0x00001674 str r3, [sp, 0x2c] | var_2ch = r3;
0x00001676 blx 0xdf4 | loc_imp_ap_add_common_vars ();
0x0000167a mov r0, sl | r0 = sl;
0x0000167c blx 0xf44 | loc_imp_ap_add_cgi_vars ();
0x00001680 ldr.w r0, [sl, 0xbc] | r0 = *((sl + 0xbc));
0x00001684 blx 0xde8 | loc_imp_apr_table_elts ();
0x00001688 ldr r7, [r0, 8] | r7 = *((r0 + 8));
0x0000168a ldr r3, [r0, 0x10] | r3 = *((r0 + 0x10));
0x0000168c str r0, [sp, 0x28] | var_28h = r0;
0x0000168e cmp r7, 0 |
0x00001690 str r3, [sp, 0x38] | var_38h = r3;
| if (r7 <= 0) {
0x00001692 ble.w 0x1adc | goto label_24;
| }
0x00001696 ldr.w r8, [pc, 0x5a8] |
0x0000169a add.w r7, r7, r7, lsl 1 | r7 += (r7 << 1);
0x0000169e ldr.w sb, [pc, 0x5a4] |
0x000016a2 mov r5, r3 | r5 = r3;
0x000016a4 ldr.w fp, [pc, 0x5a0] |
0x000016a8 add.w r7, r3, r7, lsl 2 | r7 = r3 + (r7 << 2);
0x000016ac add r8, pc | r8 = 0x32f2;
0x000016ae str r4, [sp, 0x30] | var_30h = r4;
0x000016b0 add sb, pc | sb = 0x32fa;
0x000016b2 movs r6, 0x16 | r6 = 0x16;
0x000016b4 add fp, pc | fp = 0x3300;
| do {
0x000016b6 ldr r4, [r5] | r4 = *(r5);
0x000016b8 mov r1, r8 | r1 = r8;
0x000016ba mov r0, r4 | r0 = r4;
0x000016bc blx 0xd94 | r0 = strcmp (r0, r1);
| if (r0 != 0) {
0x000016c0 cbz r0, 0x16ea |
0x000016c2 mov r1, sb | r1 = sb;
0x000016c4 mov r0, r4 | r0 = r4;
0x000016c6 blx 0xd94 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x000016ca cbz r0, 0x16ea | goto label_25;
| }
0x000016cc mov r1, fp | r1 = fp;
0x000016ce mov r0, r4 | r0 = r4;
0x000016d0 blx 0xd94 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x000016d4 cbz r0, 0x16ea | goto label_25;
| }
0x000016d6 mov r0, r4 | r0 = r4;
0x000016d8 adds r6, 2 | r6 += 2;
0x000016da blx 0xecc | r0 = strlen (r0);
0x000016de mov r4, r0 | r4 = r0;
0x000016e0 ldr r0, [r5, 4] | r0 = *((r5 + 4));
0x000016e2 add r6, r4 | r6 += r4;
0x000016e4 blx 0xecc | r0 = strlen (r0);
0x000016e8 add r6, r0 | r6 += r0;
| }
| label_25:
0x000016ea adds r5, 0xc | r5 += 0xc;
0x000016ec cmp r5, r7 |
0x000016ee bne 0x16b6 |
| } while (r5 != r7);
0x000016f0 ldr r4, [sp, 0x30] | r4 = var_30h;
| label_5:
0x000016f2 ldr.w r1, [pc, 0x558] |
0x000016f6 ldrd r2, r3, [sl, 0xa0] | __asm ("ldrd r2, r3, [sl, 0xa0]");
0x000016fa ldr.w r0, [sl] | r0 = *(sl);
0x000016fe add r1, pc | r1 = 0x3350;
0x00001700 blx 0xf08 | loc_imp_apr_psprintf ()
0x00001702 invalid |
0x00001706 blx 0xecc | strlen (r0);
0x0000170a ldr.w r1, [pc, 0x544] |
0x0000170e adds r5, r0, 1 | r5 = r0 + 1;
0x00001710 add r6, r5 | r6 += r5;
0x00001712 ldr.w r0, [sl] | r0 = *(sl);
0x00001716 mov r2, r6 | r2 = r6;
0x00001718 add r1, pc | r1 = 0x336e;
0x0000171a blx 0xf08 | r0 = loc_imp_apr_psprintf ()
0x0000171e mov sb, r0 | sb = r0;
0x00001720 blx 0xecc | r0 = strlen (r0);
0x00001724 mov r8, r0 | r8 = r0;
0x00001726 ldr.w r0, [sl] | r0 = *(sl);
0x0000172a add.w r3, r8, 1 | r3 = r8 + 1;
0x0000172e add r3, r6 | r3 += r6;
0x00001730 mov r1, r3 | r1 = r3;
0x00001732 str r3, [sp, 0x30] | var_30h = r3;
0x00001734 blx 0xe6c | loc_imp_apr_palloc ();
0x00001738 mov r1, sb | r1 = sb;
0x0000173a mov r2, r8 | r2 = r8;
0x0000173c mov r6, r0 | r6 = r0;
0x0000173e str r0, [sp, 0x34] | var_34h = r0;
0x00001740 blx 0xdc4 | memcpy (r0, r1, r2);
0x00001744 ldr.w r3, [pc, 0x50c] |
0x00001748 add.w ip, r6, r8 |
0x0000174c mov r7, r6 | r7 = r6;
0x0000174e add.w r6, ip, 0xf | r6 = ip + 0xf;
0x00001752 add r3, pc | r3 = 0x33aa;
0x00001754 ldm r3!, {r0, r1, r2} | r0 = *(r3!);
| r1 = *((r3! + 4));
| r2 = *((r3! + 8));
0x00001756 str.w r0, [r7, r8] | __asm ("str.w r0, [r7, r8]");
0x0000175a mov r0, r6 | r0 = r6;
0x0000175c str.w r2, [ip, 8] | __asm ("str.w r2, [ip, 8]");
0x00001760 ldrh r2, [r3] | r2 = *(r3);
0x00001762 ldrb r3, [r3, 2] | r3 = *((r3 + 2));
0x00001764 str.w r1, [ip, 4] | __asm ("str.w r1, [ip, 4]");
0x00001768 mov r1, fp | r1 = fp;
0x0000176a strh.w r2, [ip, 0xc] | *((ip + 0xc)) = r2;
0x0000176e mov r2, r5 | r2 = r5;
0x00001770 strb.w r3, [ip, 0xe] | *((ip + 0xe)) = r3;
0x00001774 blx 0xdc4 | memcpy (r0, r1, r2);
0x00001778 ldr.w r3, [pc, 0x4dc] |
0x0000177c ldr.w r2, [pc, 0x4dc] |
0x00001780 add r3, pc | r3 = 0x33dc;
0x00001782 ldr r0, [r3] | r0 = *(0x33dc);
0x00001784 add r2, pc | r2 = 0x33e4;
0x00001786 ldrb r3, [r3, 4] | r3 = *((r3 + 4));
0x00001788 ldrh r2, [r2] | r2 = *(r2);
0x0000178a str r0, [r6, r5] | *((r6 + r5)) = r0;
0x0000178c add r6, r5 | r6 += r5;
0x0000178e strb r3, [r6, 4] | *((r6 + 4)) = r3;
0x00001790 adds r6, 7 | r6 += 7;
0x00001792 ldr r3, [sp, 0x28] | r3 = var_28h;
0x00001794 strh r2, [r6, -0x2] | *((r6 - 0x2)) = r2;
0x00001798 ldr r7, [r3, 8] | r7 = *(0x33e4);
0x0000179a cmp r7, 0 |
| if (r7 <= 0) {
0x0000179c ble 0x1810 | goto label_26;
| }
0x0000179e ldr.w r3, [pc, 0x4c0] |
0x000017a2 ldr.w r8, [pc, 0x4c0] |
0x000017a6 ldr.w sb, [pc, 0x4c0] |
0x000017aa add r3, pc | r3 = 0x3410;
0x000017ac ldr r5, [sp, 0x38] | r5 = var_38h;
0x000017ae add r8, pc | r8 = 0x3418;
0x000017b0 mov fp, r3 |
0x000017b2 add sb, pc | sb = 0x3420;
0x000017b4 str.w sl, [sp, 0x38] | __asm ("str.w sl, [var_38h]");
| do {
0x000017b8 ldr.w sl, [r5] | sl = *(r5);
0x000017bc mov r1, r8 | r1 = r8;
0x000017be mov r0, sl | r0 = sl;
0x000017c0 blx 0xd94 | r0 = strcmp (r0, r1);
| if (r0 != 0) {
0x000017c4 cbz r0, 0x1804 |
0x000017c6 mov r1, sb | r1 = sb;
0x000017c8 mov r0, sl | r0 = sl;
0x000017ca blx 0xd94 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x000017ce cbz r0, 0x1804 | goto label_27;
| }
0x000017d0 mov r1, fp | r1 = fp;
0x000017d2 mov r0, sl | r0 = sl;
0x000017d4 blx 0xd94 | r0 = strcmp (r0, r1);
| if (r0 == 0) {
0x000017d8 cbz r0, 0x1804 | goto label_27;
| }
0x000017da mov r0, sl | r0 = sl;
0x000017dc blx 0xecc | strlen (r0);
0x000017e0 mov r1, sl | r1 = sl;
0x000017e2 adds r2, r0, 1 | r2 = r0 + 1;
0x000017e4 mov r0, r6 | r0 = r6;
0x000017e6 adds r7, r6, r2 | r7 = r6 + r2;
0x000017e8 blx 0xdc4 | memcpy (r0, r1, r2);
0x000017ec ldr r6, [r5, 4] | r6 = *((r5 + 4));
0x000017ee mov r0, r6 | r0 = r6;
0x000017f0 blx 0xecc | strlen (r0);
0x000017f4 mov r1, r6 | r1 = r6;
0x000017f6 adds r2, r0, 1 | r2 = r0 + 1;
0x000017f8 mov r0, r7 | r0 = r7;
0x000017fa adds r6, r7, r2 | r6 = r7 + r2;
0x000017fc blx 0xdc4 | memcpy (r0, r1, r2);
0x00001800 ldr r3, [sp, 0x28] | r3 = var_28h;
0x00001802 ldr r7, [r3, 8] | r7 = *((r3 + 8));
| }
| label_27:
0x00001804 adds r4, 1 | r4++;
0x00001806 adds r5, 0xc | r5 += 0xc;
0x00001808 cmp r4, r7 |
0x0000180a blt 0x17b8 |
| } while (r4 < r7);
0x0000180c ldr.w sl, [sp, 0x38] | sl = var_38h;
| label_26:
0x00001810 movs r3, 0x2c | r3 = 0x2c;
0x00001812 ldrd r2, r1, [sp, 0x30] | __asm ("ldrd r2, r1, [var_30h]");
0x00001816 strb r3, [r6] | *(r6) = r3;
0x00001818 mov r3, sl | r3 = sl;
0x0000181a ldr r0, [sp, 0x2c] | r0 = var_2ch;
0x0000181c bl 0x14a4 | r0 = fcn_000014a4 (r0, r1, r2, r3);
0x00001820 mov r4, r0 | r4 = r0;
0x00001822 cmp r0, 0 |
| if (r0 != 0) {
0x00001824 bne.w 0x15ce | goto label_0;
| }
0x00001828 mov r0, sl | r0 = sl;
0x0000182a ldr r5, [sp, 0x48] | r5 = var_48h;
0x0000182c blx 0xf80 | r0 = loc_imp_ap_should_client_block ();
0x00001830 cmp r0, 0 |
| if (r0 != 0) {
0x00001832 bne.w 0x1a82 | goto label_28;
| }
| label_4:
0x00001836 ldr r7, [sp, 0x48] | r7 = var_48h;
0x00001838 movs r1, 8 | r1 = 8;
0x0000183a ldr.w r0, [sl] | r0 = *(sl);
0x0000183e blx 0xe6c | loc_imp_apr_palloc ();
0x00001842 ldr r3, [r7, 0x1c] | r3 = *((r7 + 0x1c));
0x00001844 mov r6, r0 | r6 = r0;
0x00001846 str r3, [r0] | *(r0) = r3;
0x00001848 ldr r3, [r7, 8] | r3 = *((r7 + 8));
0x0000184a ldr r3, [r3, 0x10] | r3 = *((r3 + 0x10));
0x0000184c add.w r3, r3, 0x238 | r3 += 0x238;
0x00001850 str r3, [r0, 4] | *((r0 + 4)) = r3;
0x00001852 ldr.w r3, [sl, 4] | r3 = *((sl + 4));
0x00001856 ldr.w r0, [sl] | r0 = *(sl);
0x0000185a ldr r1, [r3, 0x40] | r1 = *((r3 + 0x40));
0x0000185c blx 0xea8 | loc_imp_apr_brigade_create ();
0x00001860 ldr.w r3, [sl, 4] | r3 = *((sl + 4));
0x00001864 mov r5, r0 | r5 = r0;
0x00001866 movs r0, 0x28 | r0 = 0x28;
0x00001868 adds r4, r5, 4 | r4 = r5 + 4;
0x0000186a ldr.w r8, [r3, 0x40] | r8 = *((r3 + 0x40));
0x0000186e mov r1, r8 | r1 = r8;
0x00001870 blx 0xf38 | loc_imp_apr_bucket_alloc ();
0x00001874 ldr r1, [sp, 0x24] | r1 = var_24h;
0x00001876 mov r3, r0 | r3 = r0;
0x00001878 ldr r2, [pc, 0x3f0] | r2 = *(0x1c6c);
0x0000187a str r0, [r0] | *(r0) = r0;
0x0000187c str r0, [r0, 4] | *((r0 + 4)) = r0;
0x0000187e ldr r2, [r1, r2] | r2 = *((r1 + r2));
0x00001880 str r4, [r0] | *(r0) = r4;
0x00001882 vmov.i8 d16, 0xff | __asm ("vmov.i8 d16, 0xff");
0x00001886 strd r6, r2, [r0, 0x18] | __asm ("strd r6, r2, [r0, 0x18]");
0x0000188a ldr r2, [r5, 8] | r2 = *((r5 + 8));
0x0000188c ldr r1, [pc, 0x3e0] |
0x0000188e vstr d16, [r0, 0x10] | __asm ("vstr d16, [r0, 0x10]");
0x00001892 str r2, [r0, 4] | *((r0 + 4)) = r2;
0x00001894 ldr.w r2, [sl, 4] | r2 = *((sl + 4));
0x00001898 add r1, pc | r1 = 0x350c;
0x0000189a str.w r8, [r0, 0x20] | __asm ("str.w r8, [r0, 0x20]");
0x0000189e ldr r0, [r2, 0x40] | r0 = *(0x1cac);
0x000018a0 ldr r2, [r5, 8] | r2 = *((r5 + 8));
0x000018a2 str r1, [r3, 8] | *((r3 + 8)) = r1;
0x000018a4 mov.w r1, -1 | r1 = -1;
0x000018a8 str r1, [r3, 0xc] | *((r3 + 0xc)) = r1;
0x000018aa str r3, [r2] | *(r2) = r3;
0x000018ac str r3, [r5, 8] | *((r5 + 8)) = r3;
0x000018ae blx 0xf68 | r0 = loc_imp_apr_bucket_eos_create ();
0x000018b2 str r4, [r0] | *(r0) = r4;
0x000018b4 ldr r3, [r5, 8] | r3 = *((r5 + 8));
0x000018b6 ldr r1, [sp, 0x24] | r1 = var_24h;
0x000018b8 str r3, [r0, 4] | *((r0 + 4)) = r3;
0x000018ba ldr r3, [pc, 0x3b8] | r3 = *(0x1c76);
0x000018bc ldr r2, [r5, 8] | r2 = *((r5 + 8));
0x000018be str r0, [r2] | *(r2) = r0;
0x000018c0 movs r2, 0 | r2 = 0;
0x000018c2 str r0, [r5, 8] | *((r5 + 8)) = r0;
0x000018c4 mov r0, sl | r0 = sl;
0x000018c6 ldr r6, [r1, r3] | r6 = *((r1 + r3));
0x000018c8 mov r1, r5 | r1 = r5;
0x000018ca ldr r3, [r6, 8] | r3 = *((r6 + 8));
0x000018cc blx 0xf8c | loc_imp_ap_scan_script_header_err_brigade_ex ();
0x000018d0 ldr r2, [r6, 8] | r2 = *((r6 + 8));
0x000018d2 mov r4, r0 | r4 = r0;
0x000018d4 cmp r0, 0 |
| if (r0 != 0) {
0x000018d6 bne.w 0x1b08 | goto label_29;
| }
0x000018da ldr.w r3, [sl, 0x100] | r3 = *((sl + 0x100));
0x000018de ldr.w r7, [r3, r2, lsl 2] | offset_2 = r2 << 2;
| r7 = *((r3 + offset_2));
0x000018e2 ldr r1, [r7] | r1 = *(r7);
0x000018e4 cmp r1, 0 |
| if (r1 == 0) {
0x000018e6 beq.w 0x1a32 | goto label_30;
| }
0x000018ea ldr r3, [pc, 0x38c] |
0x000018ec ldr r2, [sp, 0x24] | r2 = var_24h;
0x000018ee ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x000018f0 ldr r3, [r3] | r3 = *(0x1c7a);
0x000018f2 cmp r1, r3 |
| if (r1 == r3) {
0x000018f4 beq.w 0x1a32 | goto label_30;
| }
0x000018f8 ldr.w r0, [sl, 0xb8] | r0 = *((sl + 0xb8));
0x000018fc mov.w fp, 1 |
0x00001900 blx 0xdd0 | r0 = loc_imp_apr_table_get ();
0x00001904 mov r8, r0 | r8 = r0;
0x00001906 cmp r0, 0 |
| if (r0 == 0) {
0x00001908 beq.w 0x1a1e | goto label_31;
| }
| label_3:
0x0000190c movs r1, 8 | r1 = 8;
0x0000190e ldr.w r0, [sl] | r0 = *(sl);
0x00001912 blx 0xe6c | loc_imp_apr_palloc ();
0x00001916 ldr r2, [r6, 8] | r2 = *((r6 + 8));
0x00001918 mov sb, r0 | sb = r0;
0x0000191a ldr.w r1, [sl, 0x108] | r1 = *((sl + 0x108));
0x0000191e cmp r2, 0 |
| if (r2 < 0) {
0x00001920 blt.w 0x1b38 | goto label_32;
| }
0x00001924 cmp r1, 0 |
| if (r1 == 0) {
0x00001926 beq.w 0x1ba6 | goto label_33;
| }
0x0000192a ldr r3, [r1] | r3 = *(r1);
0x0000192c cmp r3, 0 |
| if (r3 == 0) {
0x0000192e beq.w 0x1b48 | goto label_15;
| }
0x00001932 ldrsb r3, [r3, r2] | r3 = *((r3 + r2));
0x00001934 cmp r3, 0 |
| if (r3 < 0) {
0x00001936 blt.w 0x1b48 | goto label_15;
| }
| label_16:
0x0000193a ldr r3, [r1] | r3 = *(r1);
0x0000193c ldrsb r3, [r3, r2] | r3 = *((r3 + r2));
0x0000193e cmp r3, 6 |
0x00001940 ite le |
| if (r3 > 6) {
0x00001942 movle r3, 0 | r3 = 0;
| }
| if (r3 <= 6) {
0x00001944 movgt r3, 1 | r3 = 1;
| }
| label_9:
0x00001946 cmp r3, 0 |
| if (r3 != 0) {
0x00001948 bne.w 0x1b80 | goto label_34;
| }
| label_14:
0x0000194c ldr r1, [r7] | r1 = *(r7);
0x0000194e cmp.w fp, 0 |
| if (fp == 0) {
0x00001952 beq.w 0x1b76 | goto label_35;
| }
0x00001956 ldr.w r0, [sl, 0xb8] | r0 = *((sl + 0xb8));
0x0000195a blx 0xe3c | loc_imp_apr_table_unset ();
| label_13:
0x0000195e ldr r2, [r6, 8] | r2 = *((r6 + 8));
0x00001960 movs r1, 1 | r1 = 1;
0x00001962 ldr.w r3, [sl, 0x104] | r3 = *((sl + 0x104));
0x00001966 mov r0, r5 | r0 = r5;
0x00001968 str.w r8, [sb] | __asm ("str.w r8, [sb]");
0x0000196c str.w r1, [sb, 4] | __asm ("str.w r1, [sb, 4]");
0x00001970 str.w sb, [r3, r2, lsl 2] | __asm ("str.w sb, [r3, r2, lsl 2]");
0x00001974 blx 0xe78 | loc_imp_apr_brigade_destroy ();
0x00001978 b 0x15ce | goto label_0;
| label_23:
0x0000197a ldr r3, [sp, 0x48] | r3 = var_48h;
0x0000197c ldr r1, [sp, 0x24] | r1 = var_24h;
0x0000197e ldr r2, [pc, 0x2f4] |
0x00001980 ldr r2, [r1, r2] | r2 = *((r1 + r2));
0x00001982 ldrh r1, [r3, 0x2c] | r1 = *((r3 + 0x2c));
0x00001984 ldr r2, [r2, 8] | r2 = *(0x1c7e);
0x00001986 str r1, [sp, 0x10] | var_10h = r1;
0x00001988 ldr r1, [pc, 0x2f0] |
0x0000198a ldr r0, [r3, 0x10] | r0 = *((r3 + 0x10));
0x0000198c movs r3, 3 | r3 = 3;
0x0000198e str r4, [sp] | *(sp) = r4;
0x00001990 movw r4, 0x1f7 | r4 = 0x1f7;
0x00001994 add r1, pc | r1 = 0x3614;
0x00001996 str.w sl, [sp, 4] | __asm ("str.w sl, [var_4h]");
0x0000199a strd r1, r0, [sp, 8] | __asm ("strd r1, r0, [var_8h]");
0x0000199e movw r1, 0x231 | r1 = 0x231;
0x000019a2 ldr r0, [pc, 0x2dc] |
0x000019a4 add r0, pc | r0 = 0x362a;
0x000019a6 blx 0xf50 | loc_imp_ap_log_rerror_ ();
0x000019aa b 0x15ce | goto label_0;
| label_21:
0x000019ac ldr r2, [sp, 0x24] | r2 = var_24h;
0x000019ae ldr r3, [pc, 0x2c4] | r3 = *(0x1c76);
0x000019b0 ldr.w r1, [sl, 0x108] | r1 = *((sl + 0x108));
0x000019b4 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x000019b6 ldr r2, [r3, 8] | r2 = *(0x1c7e);
0x000019b8 cmp r2, 0 |
| if (r2 < 0) {
0x000019ba blt 0x1a02 | goto label_36;
| }
0x000019bc cmp r1, 0 |
| if (r1 == 0) {
0x000019be beq.w 0x1ae8 | goto label_37;
| }
| label_6:
0x000019c2 ldr r3, [r1] | r3 = *(r1);
| if (r3 == 0) {
0x000019c4 cbz r3, 0x1a12 | goto label_38;
| }
0x000019c6 ldrsb r3, [r3, r2] | r3 = *((r3 + r2));
0x000019c8 cmp r3, 0 |
| if (r3 < 0) {
0x000019ca blt 0x1a12 | goto label_38;
| }
| label_8:
0x000019cc cmp r3, 6 |
0x000019ce ite le |
| if (r3 > 6) {
0x000019d0 movle r3, 0 | r3 = 0;
| }
| if (r3 <= 6) {
0x000019d2 movgt r3, 1 | r3 = 1;
| }
| label_2:
0x000019d4 mov.w r4, -1 | r4 = -1;
0x000019d8 cmp r3, 0 |
| if (r3 == 0) {
0x000019da beq.w 0x15ec | goto label_1;
| }
0x000019de ldr r0, [pc, 0x2a4] |
0x000019e0 movs r3, 0 | r3 = 0;
0x000019e2 ldr r4, [sp, 0x3c] | r4 = var_3ch;
0x000019e4 movw r1, 0x219 | r1 = 0x219;
0x000019e8 strd r3, sl, [sp] | __asm ("strd r3, sl, [sp]");
0x000019ec movs r3, 7 | r3 = 7;
0x000019ee add r0, pc | r0 = 0x3678;
0x000019f0 strd r0, r4, [sp, 8] | __asm ("strd r0, r4, [var_8h]");
0x000019f4 mov.w r4, -1 | r4 = -1;
0x000019f8 ldr r0, [pc, 0x28c] |
0x000019fa add r0, pc | r0 = 0x3686;
0x000019fc blx 0xf50 | loc_imp_ap_log_rerror_ ();
0x00001a00 b 0x15ec | goto label_1;
| if (r1 == 0) {
| label_36:
0x00001a02 cbnz r1, 0x1a12 |
0x00001a04 ldr.w r3, [sl, 4] | r3 = *((sl + 4));
0x00001a08 ldr r1, [r3, 0x60] | r1 = *((r3 + 0x60));
| if (r1 != 0) {
0x00001a0a cbnz r1, 0x1a12 | goto label_38;
| }
0x00001a0c ldr.w r1, [sl, 8] | r1 = *((sl + 8));
| label_7:
0x00001a10 adds r1, 0x10 | r1 += 0x10;
| }
| label_38:
0x00001a12 ldr r3, [r1, 4] | r3 = *((r1 + 4));
0x00001a14 cmp r3, 6 |
0x00001a16 ite le |
| if (r3 > 6) {
0x00001a18 movle r3, 0 | r3 = 0;
| }
| if (r3 <= 6) {
0x00001a1a movgt r3, 1 | r3 = 1;
| }
0x00001a1c b 0x19d4 | goto label_2;
| label_31:
0x00001a1e ldr r1, [r7] | r1 = *(r7);
0x00001a20 mov fp, r4 |
0x00001a22 ldr.w r0, [sl, 0xb4] | r0 = *((sl + 0xb4));
0x00001a26 blx 0xdd0 | r0 = loc_imp_apr_table_get ();
0x00001a2a mov r8, r0 | r8 = r0;
0x00001a2c cmp r0, 0 |
| if (r0 != 0) {
0x00001a2e bne.w 0x190c | goto label_3;
| }
| label_30:
0x00001a32 ldr.w r3, [sl, 0x44] | r3 = *((sl + 0x44));
0x00001a36 cmp r3, 0xc8 |
| if (r3 == 0xc8) {
0x00001a38 bne 0x1a6e |
0x00001a3a ldr.w r8, [r7, 4] | r8 = *((r7 + 4));
0x00001a3e cmp.w r8, 0 |
| if (r8 == 0) {
0x00001a42 beq.w 0x1b6a | goto label_39;
| }
0x00001a46 ldr r3, [pc, 0x244] |
0x00001a48 ldr r2, [sp, 0x24] | r2 = var_24h;
0x00001a4a ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001a4c ldr r3, [r3] | r3 = *(0x1c8e);
0x00001a4e cmp r8, r3 |
| if (r8 == r3) {
0x00001a50 beq 0x1a6e | goto label_10;
| }
| label_12:
0x00001a52 ldr.w r0, [sl, 0xb8] | r0 = *((sl + 0xb8));
0x00001a56 mov r1, r8 | r1 = r8;
0x00001a58 blx 0xdd0 | loc_imp_apr_table_get ();
0x00001a5c mov.w fp, 1 |
0x00001a60 mov r7, r0 | r7 = r0;
0x00001a62 cmp r0, 0 |
| if (r0 == 0) {
0x00001a64 beq 0x1b54 | goto label_40;
| }
| label_11:
0x00001a66 ldrb r3, [r7] | r3 = *(r7);
0x00001a68 cmp r3, 0x2f |
| if (r3 == 0x2f) {
0x00001a6a beq.w 0x1bbe | goto label_41;
| }
| }
| label_10:
0x00001a6e ldr.w r0, [sl, 0x114] | r0 = *((sl + 0x114));
0x00001a72 mov r1, r5 | r1 = r5;
0x00001a74 blx 0xf98 | r0 = loc_imp_ap_pass_brigade ();
0x00001a78 subs r4, r0, 0 | r4 = r0 - 0;
0x00001a7a it ne |
| if (r4 == r0) {
0x00001a7c mvnne r4, 0x65 | r4 = ~0x65;
| }
0x00001a80 b 0x15ce | goto label_0;
| label_28:
0x00001a82 ldr.w r0, [sl] | r0 = *(sl);
0x00001a86 mov.w r1, 0x2000 | r1 = 0x2000;
0x00001a8a blx 0xe6c | r0 = loc_imp_apr_palloc ();
0x00001a8e mov r4, r0 | r4 = r0;
0x00001a90 b 0x1a9e |
| while (r2 > r0) {
0x00001a92 mov r3, sl | r3 = sl;
0x00001a94 mov r1, r4 | r1 = r4;
0x00001a96 mov r0, r5 | r0 = r5;
0x00001a98 bl 0x14a4 | r0 = fcn_000014a4 (r0, r1, r2, r3);
| if (r0 != 0) {
0x00001a9c cbnz r0, 0x1ae2 | goto label_42;
| }
0x00001a9e mov.w r2, 0x2000 | r2 = 0x2000;
0x00001aa2 mov r1, r4 | r1 = r4;
0x00001aa4 mov r0, sl | r0 = sl;
0x00001aa6 blx 0xe84 | r0 = loc_imp_ap_get_client_block ();
0x00001aaa subs r2, r0, 0 | r2 = r0 - 0;
0x00001aac bgt 0x1a92 |
| }
0x00001aae adds r2, 1 | r2++;
| if (r2 != 1) {
0x00001ab0 bne.w 0x1836 | goto label_4;
| }
0x00001ab4 ldr r0, [sp, 0x24] | r0 = var_24h;
0x00001ab6 movs r1, 0 | r1 = 0;
0x00001ab8 ldr r2, [pc, 0x1b8] |
0x00001aba mov.w r4, 0x1f4 | r4 = 0x1f4;
0x00001abe ldr r3, [pc, 0x1d0] |
0x00001ac0 ldr r2, [r0, r2] | r2 = *((r0 + r2));
0x00001ac2 ldr r0, [pc, 0x1d0] |
0x00001ac4 add r3, pc | r3 = 0x375a;
0x00001ac6 str r3, [sp, 8] | var_8h = r3;
0x00001ac8 movs r3, 3 | r3 = 3;
0x00001aca strd r1, sl, [sp] | __asm ("strd r1, sl, [sp]");
0x00001ace mov.w r1, 0x15c | r1 = 0x15c;
0x00001ad2 ldr r2, [r2, 8] | r2 = *(0x1c7c);
0x00001ad4 add r0, pc | r0 = 0x376e;
0x00001ad6 blx 0xf50 | loc_imp_ap_log_rerror_ ();
0x00001ada b 0x15ce | goto label_0;
| label_24:
0x00001adc movs r3, 0x16 | r3 = 0x16;
0x00001ade mov r6, r3 | r6 = r3;
0x00001ae0 b 0x16f2 | goto label_5;
| label_42:
0x00001ae2 movw r4, 0x1f7 | r4 = 0x1f7;
0x00001ae6 b 0x15ce | goto label_0;
| label_37:
0x00001ae8 ldr.w r3, [sl, 4] | r3 = *((sl + 4));
0x00001aec ldr r1, [r3, 0x60] | r1 = *((r3 + 0x60));
0x00001aee cmp r1, 0 |
| if (r1 != 0) {
0x00001af0 bne.w 0x19c2 | goto label_6;
| }
0x00001af4 ldr.w r1, [sl, 8] | r1 = *((sl + 8));
0x00001af8 ldr r3, [r1, 0x10] | r3 = *((r1 + 0x10));
0x00001afa cmp r3, 0 |
| if (r3 == 0) {
0x00001afc beq 0x1a10 | goto label_7;
| }
0x00001afe ldrsb r3, [r3, r2] | r3 = *((r3 + r2));
0x00001b00 cmp r3, 0 |
| if (r3 >= 0) {
0x00001b02 bge.w 0x19cc | goto label_8;
| }
0x00001b06 b 0x1a10 | goto label_7;
| label_29:
0x00001b08 ldrh r3, [r7, 0x2c] | r3 = *((r7 + 0x2c));
0x00001b0a movs r6, 0 | r6 = 0;
0x00001b0c ldr r0, [pc, 0x188] |
0x00001b0e movw r1, 0x17f | r1 = 0x17f;
0x00001b12 str r3, [sp, 0x10] | var_10h = r3;
0x00001b14 ldr r3, [r7, 0x10] | r3 = *((r7 + 0x10));
0x00001b16 add r0, pc | r0 = 0x37b2;
0x00001b18 str.w sl, [sp, 4] | __asm ("str.w sl, [var_4h]");
0x00001b1c str r6, [sp] | *(sp) = r6;
0x00001b1e str r3, [sp, 0xc] | var_ch = r3;
0x00001b20 ldr r3, [pc, 0x178] |
0x00001b22 add r3, pc | r3 = 0x37c2;
0x00001b24 str r3, [sp, 8] | var_8h = r3;
0x00001b26 movs r3, 3 | r3 = 3;
0x00001b28 blx 0xf50 | loc_imp_ap_log_rerror_ ();
0x00001b2c mov r0, r5 | r0 = r5;
0x00001b2e str.w r6, [sl, 0x40] | __asm ("str.w r6, [sl, 0x40]");
0x00001b32 blx 0xe78 | loc_imp_apr_brigade_destroy ();
0x00001b36 b 0x15ce | goto label_0;
| if (r1 == 0) {
| label_32:
0x00001b38 cbnz r1, 0x1b48 |
0x00001b3a ldr.w r3, [sl, 4] | r3 = *((sl + 4));
| label_17:
0x00001b3e ldr r1, [r3, 0x60] | r1 = *((r3 + 0x60));
| if (r1 != 0) {
0x00001b40 cbnz r1, 0x1b48 | goto label_15;
| }
0x00001b42 ldr.w r1, [sl, 8] | r1 = *((sl + 8));
| label_18:
0x00001b46 adds r1, 0x10 | r1 += 0x10;
| }
| label_15:
0x00001b48 ldr r3, [r1, 4] | r3 = *((r1 + 4));
0x00001b4a cmp r3, 6 |
0x00001b4c ite le |
| if (r3 > 6) {
0x00001b4e movle r3, 0 | r3 = 0;
| }
| if (r3 <= 6) {
0x00001b50 movgt r3, 1 | r3 = 1;
| }
0x00001b52 b 0x1946 | goto label_9;
| label_40:
0x00001b54 ldr.w r0, [sl, 0xb4] | r0 = *((sl + 0xb4));
0x00001b58 mov r1, r8 | r1 = r8;
0x00001b5a blx 0xdd0 | loc_imp_apr_table_get ();
0x00001b5e mov.w fp, 0 |
0x00001b62 mov r7, r0 | r7 = r0;
0x00001b64 cmp r0, 0 |
| if (r0 == 0) {
0x00001b66 beq 0x1a6e | goto label_10;
| }
0x00001b68 b 0x1a66 | goto label_11;
| label_39:
0x00001b6a ldr r3, [pc, 0x134] | r3 = *(0x1ca2);
0x00001b6c ldr r2, [sp, 0x24] | r2 = var_24h;
0x00001b6e ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001b70 ldr.w r8, [r3] | r8 = *(0x1ca2);
0x00001b74 b 0x1a52 | goto label_12;
| label_35:
0x00001b76 ldr.w r0, [sl, 0xb4] | r0 = *((sl + 0xb4));
0x00001b7a blx 0xe3c | loc_imp_apr_table_unset ();
0x00001b7e b 0x195e | goto label_13;
| label_34:
0x00001b80 str.w r8, [sp, 0x10] | __asm ("str.w r8, [var_10h]");
0x00001b84 movw r1, 0x193 | r1 = 0x193;
0x00001b88 ldr r3, [r7] | r3 = *(r7);
0x00001b8a ldr r0, [pc, 0x118] |
0x00001b8c str.w sl, [sp, 4] | __asm ("str.w sl, [var_4h]");
0x00001b90 str r3, [sp, 0xc] | var_ch = r3;
0x00001b92 ldr r3, [pc, 0x114] |
0x00001b94 add r0, pc | r0 = 0x383e;
0x00001b96 add r3, pc | r3 = 0x3844;
0x00001b98 str r3, [sp, 8] | var_8h = r3;
0x00001b9a movs r3, 0 | r3 = 0;
0x00001b9c str r3, [sp] | *(sp) = r3;
0x00001b9e movs r3, 7 | r3 = 7;
0x00001ba0 blx 0xf50 | loc_imp_ap_log_rerror_ ();
0x00001ba4 b 0x194c | goto label_14;
| label_33:
0x00001ba6 ldr.w r3, [sl, 4] | r3 = *((sl + 4));
0x00001baa ldr r1, [r3, 0x60] | r1 = *((r3 + 0x60));
| if (r1 == 0) {
0x00001bac cbz r1, 0x1c10 | goto label_43;
| }
0x00001bae ldr r0, [r1] | r0 = *(r1);
0x00001bb0 cmp r0, 0 |
| if (r0 == 0) {
0x00001bb2 beq 0x1b48 | goto label_15;
| }
0x00001bb4 ldrsb r0, [r0, r2] | r0 = *((r0 + r2));
0x00001bb6 cmp r0, 0 |
| if (r0 >= 0) {
0x00001bb8 bge.w 0x193a | goto label_16;
| }
0x00001bbc b 0x1b3e | goto label_17;
| label_41:
0x00001bbe movs r1, 8 | r1 = 8;
0x00001bc0 ldr.w r0, [sl] | r0 = *(sl);
0x00001bc4 blx 0xe6c | loc_imp_apr_palloc ();
0x00001bc8 ldr r1, [pc, 0xe0] |
0x00001bca mov sb, r0 | sb = r0;
0x00001bcc mov r0, r8 | r0 = r8;
0x00001bce add r1, pc | r1 = 0x387e;
0x00001bd0 blx 0xfbc | r0 = loc_imp_ap_cstr_casecmp ();
| if (r0 == 0) {
0x00001bd4 cbz r0, 0x1be6 | goto label_44;
| }
0x00001bd6 mov r1, r8 | r1 = r8;
0x00001bd8 cmp.w fp, 0 |
| if (fp == 0) {
0x00001bdc beq 0x1c06 | goto label_45;
| }
0x00001bde ldr.w r0, [sl, 0xb8] | r0 = *((sl + 0xb8));
0x00001be2 blx 0xe3c | loc_imp_apr_table_unset ();
| do {
| label_44:
0x00001be6 ldr r2, [r6, 8] | r2 = *((r6 + 8));
0x00001be8 movs r1, 0 | r1 = 0;
0x00001bea ldr.w r3, [sl, 0x104] | r3 = *((sl + 0x104));
0x00001bee mov r0, r5 | r0 = r5;
0x00001bf0 str.w r7, [sb] | __asm ("str.w r7, [sb]");
0x00001bf4 str.w r1, [sb, 4] | __asm ("str.w r1, [sb, 4]");
0x00001bf8 str.w sb, [r3, r2, lsl 2] | __asm ("str.w sb, [r3, r2, lsl 2]");
0x00001bfc blx 0xe78 | loc_imp_apr_brigade_destroy ();
0x00001c00 b 0x15ce | goto label_0;
| label_22:
0x00001c02 blx 0xe00 | stack_chk_fail ();
| label_45:
0x00001c06 ldr.w r0, [sl, 0xb4] | r0 = *((sl + 0xb4));
0x00001c0a blx 0xe3c | loc_imp_apr_table_unset ();
0x00001c0e b 0x1be6 |
| } while (1);
| label_43:
0x00001c10 ldr.w r1, [sl, 8] | r1 = *((sl + 8));
0x00001c14 ldr r0, [r1, 0x10] | r0 = *((r1 + 0x10));
0x00001c16 cmp r0, 0 |
| if (r0 == 0) {
0x00001c18 beq 0x1b46 | goto label_18;
| }
0x00001c1a ldrsb r0, [r0, r2] | r0 = *((r0 + r2));
0x00001c1c cmp r0, 0 |
| if (r0 < 0) {
0x00001c1e blt 0x1b3e | goto label_17;
| }
0x00001c20 adds r1, 0x10 | r1 += 0x10;
0x00001c22 b 0x193a | goto label_16;
| }
[*] Function sprintf used 3 times mod_proxy_scgi.so