[*] Binary protection state of mod_proxy_balancer.so
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of mod_proxy_balancer.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_balancer.so @ 0x3198 */
| #include <stdint.h>
|
; (fcn) fcn.00003198 () | void fcn_00003198 (int16_t arg_10h, int16_t arg_18h, int16_t arg_28h, int16_t arg_34h, int16_t arg_38h, int16_t arg_68h, int16_t arg_6ch, int16_t arg_71h, int16_t arg1, int16_t arg2, int16_t arg3) {
| int16_t var_0h_2;
| int16_t var_4h_3;
| int16_t var_8h_2;
| int16_t var_ch_2;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_1ch;
| int16_t var_20h;
| int16_t var_24h;
| int16_t var_28h;
| int16_t var_2ch;
| int16_t var_30h;
| int16_t var_34h;
| int16_t var_38h;
| int16_t var_3ch;
| int16_t var_40h;
| int16_t var_44h;
| int16_t var_48h;
| int16_t var_4ch;
| int16_t var_50h;
| int16_t var_54h;
| int16_t var_58h;
| int16_t var_5ch;
| int16_t var_60h_2;
| int16_t var_64h;
| int16_t var_68h;
| int32_t var_68h_2;
| int16_t var_70h_2;
| int16_t var_74h;
| int16_t var_78h;
| int16_t var_7ch;
| int16_t var_80h;
| int16_t var_84h;
| int16_t var_88h;
| int16_t var_8ch;
| int16_t var_4h;
| int16_t var_60h;
| int16_t var_70h;
| int16_t var_94h;
| int32_t var_44h_2;
| int16_t var_d4h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x00003198 svcmi 0xf0e92d | __asm ("svcmi aav.0x000000ff");
0x0000319c mov r8, r2 | r8 = r2;
0x0000319e ldr r2, [pc, 0x148] |
0x000031a0 sub sp, 0xdc |
0x000031a2 add r5, sp, 4 | r5 += var_4h;
0x000031a4 mov sb, r0 | sb = r0;
0x000031a6 ldr r3, [pc, 0x144] | r3 = *(0x32ee);
0x000031a8 mov r0, r5 | r0 = r5;
0x000031aa add r2, pc | r2 = 0x6498;
0x000031ac mov fp, r1 |
0x000031ae ldr r3, [r2, r3] |
0x000031b0 ldr r3, [r3] | r3 = *(0x6498);
0x000031b2 str r3, [sp, 0xd4] | var_d4h = r3;
0x000031b4 mov.w r3, 0 | r3 = 0;
0x000031b8 blx 0x166c | loc_imp_apr_md5_init ();
0x000031bc ldr.w r4, [sb, 0x38] | r4 = *((sb + 0x38));
0x000031c0 cmp r4, 0 |
| if (r4 == 0) {
0x000031c2 beq.w 0x32d8 | goto label_16;
| }
0x000031c6 add r6, sp, 0x94 | r6 += var_94h;
0x000031c8 mov.w sl, 0 | sl = 0;
0x000031cc b 0x31d4 |
| while (r8 != 0) {
0x000031ce ldr r4, [r4] | r4 = *(r4);
0x000031d0 cmp r4, 0 |
| if (r4 == 0) {
0x000031d2 beq 0x32ce | goto label_17;
| }
0x000031d4 ldr r2, [r4, 8] | r2 = *((r4 + 8));
0x000031d6 movs r1, 0x40 | r1 = 0x40;
0x000031d8 mov r0, r6 | r0 = r6;
0x000031da strb.w sl, [sp, 0x94] | var_94h = sl;
0x000031de blx 0x176c | fcn_0000176c ();
0x000031e0 pkhtb r8, r6, r7, asr 0x19 | __asm ("pkhtb r8, r6, r7, asr 0x19");
0x000031e4 mov r0, r7 | r0 = r7;
0x000031e6 blx 0x18f8 | fcn_000018f8 ();
0x000031ea mov r1, r7 | r1 = r7;
0x000031ec mov r2, r0 | r2 = r0;
0x000031ee mov r0, r5 | r0 = r5;
0x000031f0 blx 0x1678 | loc_imp_apr_md5_update ();
0x000031f4 mov r0, r6 | r0 = r6;
0x000031f6 blx 0x18f8 | fcn_000018f8 ();
0x000031fa mov r1, r6 | r1 = r6;
0x000031fc mov r2, r0 | r2 = r0;
0x000031fe mov r0, r5 | r0 = r5;
0x00003200 blx 0x1678 | loc_imp_apr_md5_update ();
0x00003204 movs r2, 2 | r2 = 2;
0x00003206 add.w r1, r4, 0xc | r1 = r4 + 0xc;
0x0000320a mov r0, r5 | r0 = r5;
0x0000320c blx 0x1678 | loc_imp_apr_md5_update ();
0x00003210 cmp.w r8, 0 |
0x00003214 bne 0x31ce |
| }
0x00003216 ldr.w r4, [sb, 0x34] | r4 = *((sb + 0x34));
0x0000321a cmp r4, 0 |
| if (r4 == 0) {
0x0000321c beq 0x3294 | goto label_18;
| }
| label_0:
0x0000321e mov r0, r4 | r0 = r4;
0x00003220 blx 0x18f8 | fcn_000018f8 ();
0x00003224 mov r1, r4 | r1 = r4;
0x00003226 mov r2, r0 | r2 = r0;
0x00003228 mov r0, r5 | r0 = r5;
0x0000322a blx 0x1678 | loc_imp_apr_md5_update ();
0x0000322c invalid |
| label_2:
0x0000322e cmp.w r8, 0 |
| if (r8 == 0) {
0x00003232 beq 0x3294 | goto label_18;
| }
| label_1:
0x00003234 ldr.w r3, [sb, 0x58] | r3 = *((sb + 0x58));
| if (r3 == 0) {
0x00003238 cbz r3, 0x3264 | goto label_19;
| }
0x0000323a ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x0000323c cmp r2, 0 |
| if (r2 <= 0) {
0x0000323e ble 0x3264 | goto label_19;
| }
0x00003240 movs r4, 0 | r4 = 0;
| do {
0x00003242 ldr r3, [r3, 0x10] | r3 = *((r3 + 0x10));
0x00003244 ldr.w r6, [r3, r4, lsl 2] | offset_0 = r4 << 2;
| r6 = *((r3 + offset_0));
0x00003248 adds r4, 1 | r4++;
0x0000324a mov r0, r6 | r0 = r6;
0x0000324c blx 0x18f8 | fcn_000018f8 ();
0x00003250 mov r1, r6 | r1 = r6;
0x00003252 mov r2, r0 | r2 = r0;
0x00003254 mov r0, r5 | r0 = r5;
0x00003256 blx 0x1678 | loc_imp_apr_md5_update ();
0x0000325a ldr.w r3, [sb, 0x58] | r3 = *((sb + 0x58));
0x0000325e ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x00003260 cmp r2, r4 |
0x00003262 bgt 0x3242 |
| } while (r2 > r4);
| label_19:
0x00003264 ldr.w r3, [sb, 0x5c] | r3 = *((sb + 0x5c));
| if (r3 == 0) {
0x00003268 cbz r3, 0x3294 | goto label_18;
| }
0x0000326a ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x0000326c cmp r2, 0 |
| if (r2 <= 0) {
0x0000326e ble 0x3294 | goto label_18;
| }
0x00003270 movs r4, 0 | r4 = 0;
| do {
0x00003272 ldr r3, [r3, 0x10] | r3 = *((r3 + 0x10));
0x00003274 ldr.w r6, [r3, r4, lsl 2] | offset_1 = r4 << 2;
| r6 = *((r3 + offset_1));
0x00003278 adds r4, 1 | r4++;
0x0000327a mov r0, r6 | r0 = r6;
0x0000327c blx 0x18f8 | fcn_000018f8 ();
0x00003280 mov r1, r6 | r1 = r6;
0x00003282 mov r2, r0 | r2 = r0;
0x00003284 mov r0, r5 | r0 = r5;
0x00003286 blx 0x1678 | loc_imp_apr_md5_update ();
0x0000328a ldr.w r3, [sb, 0x5c] | r3 = *((sb + 0x5c));
0x0000328e ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x00003290 cmp r2, r4 |
0x00003292 bgt 0x3272 |
| } while (r2 > r4);
| label_18:
0x00003294 mov r1, r5 | r1 = r5;
0x00003296 add r5, sp, 0x60 | r5 += var_60h;
0x00003298 add r4, sp, 0x70 | r4 += var_70h;
0x0000329a mov r0, r5 | r0 = r5;
0x0000329c blx 0x1a84 | fcn_00001a84 ();
0x000032a0 mov r2, r4 | r2 = r4;
0x000032a2 movs r1, 0x10 | r1 = 0x10;
0x000032a4 mov r0, r5 | r0 = r5;
0x000032a6 blx 0x17b4 | fcn_000017b4 ();
0x000032aa movs r2, 0x20 | r2 = 0x20;
0x000032ac mov r1, r4 | r1 = r4;
0x000032ae mov r0, fp | r0 = fp;
0x000032b0 blx 0x16d8 | loc_imp_apr_pstrmemdup ();
0x000032b4 ldr r2, [pc, 0x38] |
0x000032b6 ldr r3, [pc, 0x34] | r3 = *(0x32ee);
0x000032b8 add r2, pc | r2 = 0x65ac;
0x000032ba ldr r3, [r2, r3] | r3 = *(0x65ac);
0x000032bc ldr r2, [r3] | r2 = *(0x65ac);
0x000032be ldr r3, [sp, 0xd4] | r3 = var_d4h;
0x000032c0 eors r2, r3 | r2 ^= r3;
0x000032c2 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000032c6 bne 0x32e2 | goto label_20;
| }
0x000032c8 add sp, 0xdc |
0x000032ca pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_17:
0x000032ce ldr.w r4, [sb, 0x34] | r4 = *((sb + 0x34));
0x000032d2 cmp r4, 0 |
| if (r4 != 0) {
0x000032d4 bne 0x321e | goto label_0;
| }
0x000032d6 b 0x3234 | goto label_1;
| label_16:
0x000032d8 ldr.w r4, [sb, 0x34] | r4 = *((sb + 0x34));
0x000032dc cmp r4, 0 |
| if (r4 != 0) {
0x000032de bne 0x321e | goto label_0;
| }
0x000032e0 b 0x322e | goto label_2;
| label_20:
0x000032e2 blx 0x17d8 | fcn_000017d8 ();
0x000032e6 nop |
0x000032e8 ldr r6, [r5, 0x44] | r6 = var_44h_2;
0x000032ea movs r1, r0 | r1 = r0;
0x000032ec lsls r0, r1, 7 | r0 = r1 << 7;
0x000032ee movs r0, r0 |
0x000032f0 ldr r0, [r4, 0x34] | r0 = var_44h_2;
0x000032f2 movs r1, r0 | r1 = r0;
0x000032f4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x000032f8 mov r7, r2 | r7 = r2;
0x000032fa sub sp, 0x94 |
0x000032fc ldr.w r2, [pc, 0x73c] | r2 = *(0x00003a3c);
0x00003300 mov r1, r0 | r1 = r0;
0x00003302 movs r4, 0 | r4 = 0;
0x00003304 str r3, [sp, 0x20] | var_20h = r3;
0x00003306 mov r0, r4 | r0 = r4;
0x00003308 ldr.w r3, [pc, 0x734] |
0x0000330c add r2, pc | r2 += pc;
0x0000330e str r1, [sp, 0x28] | var_28h = r1;
0x00003310 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00003312 ldr r3, [r3] | r3 = *(0x3a40);
0x00003314 str r3, [sp, 0x8c] | var_8ch = r3;
0x00003316 mov.w r3, 0 | r3 = 0;
0x0000331a str r4, [sp, 0x78] | var_78h = r4;
0x0000331c blx 0x1b00 | fcn_00001b00 ();
0x00003320 ldr.w r3, [pc, 0x720] | r3 = *(0x00003a44);
0x00003324 cmp r0, 2 |
0x00003326 add r3, pc | r3 += pc;
0x00003328 str r3, [sp, 0x2c] | var_2ch = r3;
| if (r0 == 2) {
0x0000332a beq.w 0x3476 | goto label_21;
| }
0x0000332e ldr.w r0, [pc, 0x718] |
0x00003332 add r0, pc | r0 = 0x6d80;
0x00003334 blx 0x1988 | fcn_00001988 ();
0x00003338 ldr.w r3, [pc, 0x710] | r3 = *(0x00003a4c);
0x0000333c add r3, pc | r3 += pc;
0x0000333e str r0, [r3] | *(r3) = r0;
0x00003340 cmp r0, 0 |
| if (r0 == 0) {
0x00003342 beq.w 0x38b0 | goto label_22;
| }
0x00003346 ldr.w r5, [pc, 0x708] |
0x0000334a ldr.w r2, [pc, 0x708] |
0x0000334e ldr.w r1, [pc, 0x708] |
0x00003352 add r5, pc | r5 = 0x6da8;
0x00003354 add r2, pc | r2 = 0x6dae;
0x00003356 mov r0, r5 | r0 = r5;
0x00003358 add r1, pc | r1 = 0x6db6;
0x0000335a blx 0x1868 | fcn_00001868 ();
0x0000335e ldr.w r3, [pc, 0x6fc] | r3 = *(0x3a5e);
0x00003362 ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x00003364 ldr.w sb, [r2, r3] | sb = *(0x6dae);
0x00003368 str.w r0, [sb] | __asm ("str.w r0, [sb]");
0x0000336c cmp r0, 0 |
| if (r0 == 0) {
0x0000336e beq.w 0x34ec | goto label_23;
| }
0x00003372 movs r2, 4 | r2 = 4;
0x00003374 movs r1, 0xa | r1 = 0xa;
0x00003376 mov r0, r7 | r0 = r7;
0x00003378 blx 0x1660 | r0 = loc_imp_apr_array_make ();
0x0000337c mov fp, r0 |
0x0000337e mov r0, r7 | r0 = r7;
0x00003380 blx 0x1928 | fcn_00001928 ();
0x00003384 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00003386 mov r8, r0 | r8 = r0;
0x00003388 str r4, [sp, 0x88] | var_88h = r4;
0x0000338a cmp r3, 0 |
| if (r3 == 0) {
0x0000338c beq.w 0x392a | goto label_24;
| }
0x00003390 mov sl, r4 | sl = r4;
0x00003392 str r4, [sp, 0x24] | var_24h = r4;
0x00003394 mov r4, r3 | r4 = r3;
0x00003396 add r3, sp, 0x88 | r3 += var_88h;
0x00003398 strd r3, sb, [sp, 0x30] | __asm ("strd r3, sb, [var_34h]");
0x0000339c mov sb, r3 | sb = r3;
0x0000339e b 0x33c2 |
| while (r6 != 0) {
0x000033a0 ldr.w r3, [fp, 0x10] | r3 = *(arg_10h);
0x000033a4 mov r0, fp | r0 = fp;
0x000033a6 ldr r2, [r6] | r2 = *(r6);
0x000033a8 str.w sl, [r3, r2, lsl 2] | __asm ("str.w sl, [r3, r2, lsl 2]");
0x000033ac blx 0x1a18 | fcn_00001a18 ();
0x000033b0 movs r3, 1 | r3 = 1;
0x000033b2 str.w sl, [r0] | __asm ("str.w sl, [r0]");
0x000033b6 str r3, [sp, 0x24] | var_24h = r3;
| label_3:
0x000033b8 ldr r3, [sp, 0x88] | r3 = var_88h;
0x000033ba ldr r4, [r4, 4] | r4 = *((r4 + 4));
0x000033bc adds r3, 1 | r3++;
0x000033be str r3, [sp, 0x88] | var_88h = r3;
| if (r4 == 0) {
0x000033c0 cbz r4, 0x3402 | goto label_25;
| }
0x000033c2 movs r2, 0 | r2 = 0;
0x000033c4 mov r1, r7 | r1 = r7;
0x000033c6 mov r0, r4 | r0 = r4;
0x000033c8 bl 0x3198 | fcn_00003198 (r0, r1, r2, r3, r4, r5, r6);
0x000033cc mov.w r2, -1 | r2 = -1;
0x000033d0 mov r1, r0 | r1 = r0;
0x000033d2 mov r5, r0 | r5 = r0;
0x000033d4 mov r0, r8 | r0 = r8;
0x000033d6 blx 0x1b18 | fcn_00001b18 ();
0x000033da movs r2, 4 | r2 = 4;
0x000033dc mov r6, r0 | r6 = r0;
0x000033de mov r1, sb | r1 = sb;
0x000033e0 mov r0, r7 | r0 = r7;
0x000033e2 blx 0x169c | loc_imp_apr_pmemdup ();
0x000033e6 mov.w r2, -1 | r2 = -1;
0x000033ea mov r3, r0 | r3 = r0;
0x000033ec mov r1, r5 | r1 = r5;
0x000033ee mov r0, r8 | r0 = r8;
0x000033f0 blx 0x1720 | loc_imp_apr_hash_set ();
0x000033f4 cmp r6, 0 |
0x000033f6 bne 0x33a0 |
| }
0x000033f8 mov r0, fp | r0 = fp;
0x000033fa blx 0x1a18 | r0 = fcn_00001a18 ();
0x000033fe str r5, [r0] | *(r0) = r5;
0x00003400 b 0x33b8 | goto label_3;
| label_25:
0x00003402 ldr r3, [sp, 0x24] | r3 = var_24h;
0x00003404 ldr.w sb, [sp, 0x34] | sb = var_34h;
0x00003408 cmp r3, 0 |
| if (r3 != 0) {
0x0000340a bne.w 0x3850 | goto label_26;
| }
| label_12:
0x0000340e ldr.w r3, [pc, 0x650] |
0x00003412 add r3, pc |
0x00003414 str r3, [sp, 0x44] | var_44h = r3;
0x00003416 ldr.w r3, [pc, 0x64c] | r3 = *(0x00003a64);
0x0000341a add r3, pc | r3 = 0xa296;
0x0000341c str r3, [sp, 0x64] | var_64h = r3;
0x0000341e movs r3, 0 | r3 = 0;
0x00003420 str r3, [sp, 0x34] | var_34h = r3;
0x00003422 blx 0x16e4 | loc_imp_apr_time_now ();
0x00003426 ldr.w r3, [pc, 0x640] | r3 = *(0x3a6a);
0x0000342a ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x0000342c strd r0, r1, [sp, 0x68] | __asm ("strd r0, r1, [var_68h]");
0x0000342e lsls r2, r3, 4 | r2 = r3 << 4;
0x00003430 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00003432 strd r3, fp, [sp, 0x48] | __asm ("strd r3, fp, [var_0h_2x48]");
| do {
0x00003436 ldr r3, [sp, 0x48] | r3 = var_48h;
0x00003438 movs r1, 0 | r1 = 0;
0x0000343a ldr r4, [sp, 0x20] | r4 = var_20h;
0x0000343c ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x0000343e ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
0x00003440 ldr.w fp, [r3, r2, lsl 2] | offset_2 = r2 << 2;
| fp = *((r3 + offset_2));
0x00003444 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x00003446 ldr r2, [sp, 0x34] | r2 = var_34h;
0x00003448 ldr r3, [r3, 0x10] | r3 = *((r3 + 0x10));
0x0000344a ldr r0, [r3, r2] | r0 = *((r3 + r2));
0x0000344c blx 0x1690 | loc_imp_ap_proxy_hashfunc ();
0x00003450 ldr r1, [sp, 0x44] | r1 = var_44h;
0x00003452 mov r2, r0 | r2 = r0;
0x00003454 ldr r0, [sp, 0x28] | r0 = var_28h;
0x00003456 blx 0x1934 | fcn_00001934 ();
0x0000345a ldr.w r3, [fp, 0x68] | r3 = *(arg_68h);
0x0000345e mov r1, r0 | r1 = r0;
0x00003460 str.w r0, [fp, 0x28] | __asm ("str.w r0, [arg_28h]");
| if (r3 == 0) {
0x00003464 cbz r3, 0x3498 | goto label_27;
| }
0x00003466 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x00003468 str r3, [sp, 0x20] | var_20h = r3;
| label_4:
0x0000346a ldr r3, [sp, 0x34] | r3 = var_34h;
0x0000346c adds r3, 4 | r3 += 4;
0x0000346e str r3, [sp, 0x34] | var_34h = r3;
0x00003470 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00003472 cmp r3, 0 |
0x00003474 bne 0x3436 |
| } while (r3 != 0);
| label_21:
0x00003476 movs r0, 0 | r0 = 0;
| do {
| label_10:
0x00003478 ldr.w r2, [pc, 0x5f0] | r2 = *(0x00003a6c);
0x0000347c ldr.w r3, [pc, 0x5c0] | r3 = *(0x3a40);
0x00003480 add r2, pc | r2 += pc;
0x00003482 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00003484 ldr r2, [r3] | r2 = *(0x3a40);
0x00003486 ldr r3, [sp, 0x8c] | r3 = var_8ch;
0x00003488 eors r2, r3 | r2 ^= r3;
0x0000348a mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000348e bne.w 0x3a36 | goto label_28;
| }
0x00003492 add sp, 0x94 |
0x00003494 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_27:
0x00003498 ldr.w r3, [fp, 0x18] | r3 = *(arg_18h);
0x0000349c ldr r0, [r3, 8] | r0 = *((r3 + 8));
0x0000349e ldrb.w r3, [fp, 0x71] | r3 = *(arg_71h);
0x000034a2 tst.w r3, 4 |
0x000034a6 ite ne |
| if ((r3 & 4) == 0) {
0x000034a8 movne r3, 9 | r3 = 9;
| }
| if ((r3 & 4) != 0) {
0x000034aa moveq r3, 0 | r3 = 0;
| }
0x000034ac str r3, [sp, 0x50] | var_50h = r3;
| if (r0 == 0) {
0x000034ae cbnz r0, 0x34c0 |
0x000034b0 ldr.w r3, [sb] | r3 = *(sb);
0x000034b4 str.w r3, [fp, 0x6c] | __asm ("str.w r3, [arg_6ch]");
| label_5:
0x000034b8 ldr r3, [sp, 0x20] | r3 = var_20h;
0x000034ba ldr r3, [r3, 4] | r3 = *((r3 + 4));
0x000034bc str r3, [sp, 0x20] | var_20h = r3;
0x000034be b 0x346a | goto label_4;
| }
0x000034c0 ldr.w r3, [fp, 0x38] | r3 = *(arg_38h);
0x000034c4 ldr.w r2, [pc, 0x5a8] |
0x000034c8 ldr r4, [sp, 0x2c] | r4 = var_2ch;
0x000034ca add r3, r0 | r3 += r0;
0x000034cc str.w r3, [fp, 0x34] | __asm ("str.w r3, [arg_34h]");
0x000034d0 ldr r2, [r4, r2] | r2 = *((r4 + r2));
0x000034d2 str r2, [sp, 0x54] | var_54h = r2;
0x000034d4 ldr r2, [r2, 8] | r2 = *(0x3a78);
0x000034d6 cmp r2, 0 |
| if (r2 < 0) {
0x000034d8 blt 0x3518 | goto label_29;
| }
0x000034da ldr r4, [sp, 0x20] | r4 = var_20h;
0x000034dc ldr r4, [r4, 0x10] | r4 = *((r4 + 0x10));
| if (r4 == 0) {
0x000034de cbz r4, 0x3518 | goto label_29;
| }
0x000034e0 ldrsb r4, [r4, r2] | r4 = *((r4 + r2));
0x000034e2 cmp r4, 0 |
| if (r4 < 0) {
0x000034e4 blt 0x3518 | goto label_29;
| }
0x000034e6 cmp r4, 6 |
| if (r4 <= 6) {
0x000034e8 ble 0x3552 | goto label_30;
| }
0x000034ea b 0x3520 | goto label_31;
| label_23:
0x000034ec ldr.w r3, [pc, 0x580] | r3 = *(0x3a70);
0x000034f0 ldr.w r1, [pc, 0x580] |
0x000034f4 ldr r2, [r2, r3] | r2 = *((r2 + r3));
0x000034f6 ldr r3, [sp, 0x20] | r3 = var_20h;
0x000034f8 add r1, pc | r1 = 0x6f70;
0x000034fa str r0, [sp] | *(sp) = r0;
0x000034fc str r5, [sp, 0xc] | var_ch_2 = r5;
0x000034fe str r3, [sp, 4] | var_4h_3 = r3;
0x00003500 mov r3, r0 | r3 = r0;
0x00003502 ldr.w r0, [pc, 0x574] |
0x00003506 ldr r2, [r2, 8] | r2 = *((r2 + 8));
0x00003508 str r1, [sp, 8] | var_8h_2 = r1;
0x0000350a mov.w r1, 0x384 | r1 = 0x384;
0x0000350e add r0, pc | r0 = "session-sticky";
0x00003510 blx 0x18bc | fcn_000018bc ();
0x00003514 movs r0, 1 | r0 = 1;
0x00003516 b 0x3478 |
| } while (1);
| label_29:
0x00003518 ldr r4, [sp, 0x20] | r4 = var_20h;
0x0000351a ldr r4, [r4, 0x14] | r4 = *((r4 + 0x14));
0x0000351c cmp r4, 6 |
| if (r4 > 6) {
0x0000351e ble 0x3552 |
| label_31:
0x00003520 strd r0, r3, [sp, 0x10] | __asm ("strd r0, r3, [var_10h]");
0x00003524 movw r1, 0x3ad | r1 = 0x3ad;
0x00003528 ldr r3, [sp, 0x20] | r3 = var_20h;
0x0000352a ldr.w r0, [pc, 0x550] |
0x0000352e str r3, [sp, 4] | var_4h_3 = r3;
0x00003530 ldr.w r3, [pc, 0x54c] |
0x00003534 add r0, pc | r0 = 0x6fb6;
0x00003536 add r3, pc | r3 = 0x6fba;
0x00003538 str r3, [sp, 8] | var_8h_2 = r3;
0x0000353a mov.w r3, 0x220 | r3 = 0x220;
0x0000353e str r3, [sp, 0xc] | var_ch_2 = r3;
0x00003540 movs r3, 0 | r3 = 0;
0x00003542 str r3, [sp] | *(sp) = r3;
0x00003544 movs r3, 7 | r3 = 7;
0x00003546 blx 0x18bc | fcn_000018bc ();
0x0000354a ldr.w r1, [fp, 0x28] | r1 = *(arg_28h);
0x0000354e ldr.w r3, [fp, 0x34] | r3 = *(arg_34h);
| }
| label_30:
0x00003552 ldr r2, [sp, 0x28] | r2 = var_28h;
0x00003554 str r2, [sp, 4] | var_4h_3 = r2;
0x00003556 ldr r2, [sp, 0x50] | r2 = var_50h;
0x00003558 str r2, [sp] | *(sp) = r2;
0x0000355a ldr.w r2, [sb] | r2 = *(sb);
0x0000355e ldr r4, [r2, 8] | r4 = *((r2 + 8));
0x00003560 add r2, sp, 0x78 | r2 += var_78h;
0x00003562 mov r0, r2 | r0 = r2;
0x00003564 str r2, [sp, 0x74] | var_74h = r2;
0x00003566 mov.w r2, 0x220 | r2 = 0x220;
0x0000356a blx r4 | uint32_t (*r4)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
0x0000356c str r0, [sp, 0x70] | var_70h_2 = r0;
0x0000356e cmp r0, 0 |
| if (r0 != 0) {
0x00003570 bne.w 0x39f0 | goto label_32;
| }
0x00003574 ldr.w r3, [fp, 0x18] | r3 = *(arg_18h);
0x00003578 ldr r2, [sp, 0x78] | r2 = var_78h;
0x0000357a ldr r4, [r3, 0x10] | r4 = *((r3 + 0x10));
0x0000357c str.w r2, [fp, 0x68] | __asm ("str.w r2, [arg_68h]");
0x00003580 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x00003582 ldr.w r3, [sb] | r3 = *(sb);
0x00003586 cmp r2, 0 |
0x00003588 str.w r3, [fp, 0x6c] | __asm ("str.w r3, [arg_6ch]");
| if (r2 <= 0) {
0x0000358c ble 0x34b8 | goto label_5;
| }
0x0000358e ldr.w r3, [pc, 0x4f4] | r3 = fcn.00003c38;
0x00003592 adds r4, 0x2c | r4 += 0x2c;
0x00003594 str.w fp, [sp, 0x3c] | __asm ("str.w fp, [var_3ch]");
0x00003598 ldrd sl, fp, [sp, 0x68] | __asm ("ldrd sl, fp, [var_68h]");
0x0000359c add r3, pc | r3 += pc;
0x0000359e str r3, [sp, 0x58] | var_58h = r3;
0x000035a0 ldr.w r3, [pc, 0x4e4] |
0x000035a4 add r3, pc | r3 = 0x7030;
0x000035a6 str r3, [sp, 0x5c] | var_5ch = r3;
0x000035a8 add r3, sp, 0x80 | r3 += var_80h;
0x000035aa str r3, [sp, 0x60] | var_60h_2 = r3;
| label_11:
0x000035ac ldr r6, [sp, 0x28] | r6 = var_28h;
0x000035ae movs r5, 0 | r5 = 0;
0x000035b0 ldr r1, [r4, 0x10] | r1 = *((r4 + 0x10));
0x000035b2 ldr r2, [sp, 0x60] | r2 = var_60h_2;
0x000035b4 mov r0, r6 | r0 = r6;
0x000035b6 adds r1, 0xc0 | r1 += 0xc0;
0x000035b8 blx 0x1a24 | fcn_00001a24 ();
0x000035ba bics.w fp, r4, pc, lsl 4 | __asm ("bics.w fp, r4, pc, lsl 4");
0x000035be mov r0, r6 | r0 = r6;
0x000035c0 ldr r2, [sp, 0x58] | r2 = var_58h;
0x000035c2 ldr r1, [r3, 0x28] | r1 = *((r3 + 0x28));
0x000035c4 ldr r3, [sp, 0x80] | r3 = var_80h;
0x000035c6 str r5, [sp] | *(sp) = r5;
0x000035c8 blx 0x1a78 | r0 = fcn_00001a78 ();
0x000035cc mov r1, r0 | r1 = r0;
0x000035ce str r0, [sp, 0x80] | var_80h = r0;
0x000035d0 ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x000035d2 movs r2, 0x60 | r2 = 0x60;
0x000035d4 addw r0, r0, 0x115 | __asm ("addw r0, r0, aav.0x000000ff");
0x000035d8 blx 0x19e8 | fcn_000019e8 ();
0x000035dc ldr r3, [r4, -0x2c] | r3 = *((r4 - 0x2c));
0x000035e0 mov r1, r5 | r1 = r5;
0x000035e2 ldr r2, [r4, -0x1c] | r2 = *((r4 - 0x1c));
0x000035e6 mov r0, r4 | r0 = r4;
0x000035e8 ldr r3, [r3, 8] | r3 = *((r3 + 8));
0x000035ea add r3, r2 | r3 += r2;
0x000035ec ldr r2, [sp, 0x20] | r2 = var_20h;
0x000035ee str r3, [r4, -0x18] | *((r4 - 0x18)) = r3;
0x000035f2 ldr r3, [r4, 0x10] | r3 = *((r4 + 0x10));
0x000035f4 str r5, [sp, 8] | var_8h_2 = r5;
0x000035f6 str r2, [sp] | *(sp) = r2;
0x000035f8 addw r3, r3, 0x115 | __asm ("addw r3, r3, aav.0x000000ff");
0x000035fc ldr r2, [sp, 0x5c] | r2 = var_5ch;
0x000035fe str r6, [sp, 4] | var_4h_3 = r6;
0x00003600 blx 0x1684 | loc_imp_ap_global_mutex_create ();
0x00003604 sub.w r3, r4, 0x2c | r3 = r4 - 0x2c;
0x00003608 mov r5, r0 | r5 = r0;
0x0000360a str r3, [sp, 0x40] | var_40h = r3;
0x0000360c cmp r0, 0 |
| if (r0 != 0) {
0x0000360e bne.w 0x3952 | goto label_33;
| }
0x00003612 ldr r3, [r4] | r3 = *(r4);
0x00003614 cmp r3, 0 |
| if (r3 == 0) {
0x00003616 beq.w 0x3952 | goto label_33;
| }
0x0000361a ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x0000361c add.w r8, sp, 0x84 | r8 += var_84h;
0x0000361e lsrs r4, r0, 2 | r4 = r0 >> 2;
0x00003620 ldr.w r3, [pc, 0x468] | r3 = *(0x3a8c);
0x00003624 ldr r1, [sp, 0x20] | r1 = var_20h;
0x00003626 ldr r0, [sp, 0x28] | r0 = var_28h;
0x00003628 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x0000362a ldr r2, [sp, 0x64] | r2 = var_64h;
0x0000362c blx 0x1820 | fcn_00001820 ();
0x0000362e ldrd sb, pc, [r8], 0x3c | __asm ("ldrd sb, pc, [r8], 0x3c");
0x00003632 mov r3, r8 | r3 = r8;
0x00003634 ldr.w r0, [sb] | r0 = *(sb);
0x00003638 ldr r2, [sp, 0x40] | r2 = var_40h;
0x0000363a ldr r1, [r7, 0x68] | r1 = *((r7 + 0x68));
0x0000363c blx 0x163c | loc_imp_ap_proxy_find_balancershm ();
0x00003640 ldr.w r3, [sb] | r3 = *(sb);
0x00003644 mov r6, r0 | r6 = r0;
0x00003646 str r0, [sp, 0x7c] | var_7ch = r0;
0x00003648 cmp r0, 0 |
| if (r0 == 0) {
0x0000364a beq.w 0x37c0 | goto label_34;
| }
0x0000364e ldr r3, [r3, 0x30] | r3 = *((r3 + 0x30));
0x00003650 ldr r1, [sp, 0x84] | r1 = var_84h;
0x00003652 ldr r0, [r7, 0x68] | r0 = *((r7 + 0x68));
0x00003654 blx r3 | r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
0x00003656 cmp r0, 0 |
| if (r0 != 0) {
0x00003658 bne.w 0x39cc | goto label_35;
| }
| label_9:
0x0000365c ldr r2, [sp, 0x84] | r2 = var_84h;
0x0000365e ldr r1, [sp, 0x7c] | r1 = var_7ch;
0x00003660 ldr r0, [sp, 0x40] | r0 = var_40h;
0x00003662 blx 0x179c | r0 = fcn_0000179c ();
0x00003666 cmp r0, 0 |
| if (r0 != 0) {
0x00003668 bne.w 0x3986 | goto label_36;
| }
0x0000366c ldr r3, [sp, 0x54] | r3 = var_54h;
0x0000366e ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x00003670 cmp r2, 0 |
| if (r2 < 0) {
0x00003672 blt.w 0x37b4 | goto label_37;
| }
0x00003676 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00003678 ldr r3, [r3, 0x10] | r3 = *((r3 + 0x10));
0x0000367a cmp r3, 0 |
| if (r3 == 0) {
0x0000367c beq.w 0x37b4 | goto label_37;
| }
0x00003680 ldrsb r3, [r3, r2] | r3 = *((r3 + r2));
0x00003682 cmp r3, 0 |
| if (r3 < 0) {
0x00003684 blt.w 0x37b4 | goto label_37;
| }
0x00003688 cmp r3, 6 |
| if (r3 > 6) {
0x0000368a ble 0x36c4 |
| label_7:
0x0000368c ldr r1, [sp, 0x70] | r1 = var_70h_2;
0x0000368e ldr r3, [r4, 0x10] | r3 = *((r4 + 0x10));
0x00003690 str r1, [sp, 0x1c] | var_1ch = r1;
0x00003692 ldr r1, [pc, 0x3fc] |
0x00003694 ldr r0, [r4, -0x18] | r0 = *((r4 - 0x18));
0x00003698 add r1, pc | r1 = 0x712e;
0x0000369a str r1, [sp, 8] | var_8h_2 = r1;
0x0000369c ldr r1, [sp, 0x20] | r1 = var_20h;
0x0000369e str r0, [sp, 0x18] | var_18h = r0;
0x000036a0 ldr r0, [pc, 0x3f0] |
0x000036a2 str r1, [sp, 4] | var_4h_3 = r1;
0x000036a4 mov.w r1, 0x590 | r1 = 0x590;
0x000036a8 str r1, [sp, 0x14] | var_14h = r1;
0x000036aa addw r1, r3, 0x115 | __asm ("addw r1, r3, aav.0x000000ff");
0x000036ae adds r3, 0xb5 | r3 += 0xb5;
0x000036b0 str r1, [sp, 0x10] | var_10h = r1;
0x000036b2 str r3, [sp, 0xc] | var_ch_2 = r3;
0x000036b4 movs r3, 0 | r3 = 0;
0x000036b6 str r3, [sp] | *(sp) = r3;
0x000036b8 add r0, pc | r0 = 0x7150;
0x000036ba movs r3, 7 | r3 = 7;
0x000036bc mov.w r1, 0x3f0 | r1 = 0x3f0;
0x000036c0 blx 0x18bc | fcn_000018bc ();
0x000036c2 invalid |
| }
| label_8:
0x000036c4 ldr r2, [sp, 0x28] | r2 = var_28h;
0x000036c6 ldr r1, [r4, 0x10] | r1 = *((r4 + 0x10));
0x000036c8 ldr r3, [r4, -0x18] | r3 = *((r4 - 0x18));
0x000036cc str r2, [sp, 4] | var_4h_3 = r2;
0x000036ce ldr r2, [sp, 0x50] | r2 = var_50h;
0x000036d0 addw r1, r1, 0x115 | __asm ("addw r1, r1, aav.0x000000ff");
0x000036d4 ldr r0, [sp, 0x74] | r0 = var_74h;
0x000036d6 str r2, [sp] | *(sp) = r2;
0x000036d8 ldr.w r2, [sb] | r2 = *(sb);
0x000036dc ldr r5, [r2, 8] | r5 = *((r2 + 8));
0x000036de mov.w r2, 0x590 | r2 = 0x590;
0x000036e0 str r2, [r6, 0x28] | *((r6 + 0x28)) = r2;
0x000036e2 blx r5 | r0 = uint32_t (*r5)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
0x000036e4 mov r6, r0 | r6 = r0;
0x000036e6 cmp r0, 0 |
| if (r0 != 0) {
0x000036e8 bne.w 0x39aa | goto label_38;
| }
0x000036ec ldr r3, [r4, -0x2c] | r3 = *((r4 - 0x2c));
0x000036f0 ldr r1, [sp, 0x78] | r1 = var_78h;
0x000036f2 ldr.w r0, [sb] | r0 = *(sb);
0x000036f6 ldr r2, [r4, 0x10] | r2 = *((r4 + 0x10));
0x000036f8 str r1, [r4, -0x24] | *((r4 - 0x24)) = r1;
0x000036fc str r0, [r4, -0x20] | *((r4 - 0x20)) = r0;
0x000036fe lsrs r0, r4, 0x10 | r0 = r4 >> 0x10;
0x00003700 strd sl, fp, [r2, 0x200] | __asm ("strd sl, fp, [r2, 0x200]");
0x00003704 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x00003706 ldr r7, [r3, 0x10] | r7 = *((r3 + 0x10));
0x00003708 strd sl, fp, [r4, -0xc] | __asm ("strd sl, fp, [r4, -0xc]");
0x0000370c cmp r2, 0 |
| if (r2 <= 0) {
0x0000370e ble 0x380c | goto label_39;
| }
0x00003710 subs r7, 4 | r7 -= 4;
0x00003712 b 0x3750 |
| while (r0 != 0) {
0x00003714 ldr.w r3, [sb] | r3 = *(sb);
0x00003718 ldr r1, [sp, 0x84] | r1 = var_84h;
0x0000371a ldr r0, [r4, -0x24] | r0 = *((r4 - 0x24));
0x0000371e ldr r3, [r3, 0x30] | r3 = *((r3 + 0x30));
0x00003720 blx r3 | r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
0x00003722 cmp r0, 0 |
| if (r0 != 0) {
0x00003724 bne.w 0x38d6 | goto label_40;
| }
| label_6:
0x00003728 ldrd r2, r1, [sp, 0x84] | __asm ("ldrd r2, r1, [var_88h]");
0x0000372c mov r0, r5 | r0 = r5;
0x0000372e blx 0x1b30 | r0 = fcn_00001b30 ();
0x00003732 cmp r0, 0 |
| if (r0 != 0) {
0x00003734 bne 0x382c | goto label_41;
| }
0x00003736 ldr r3, [r5, 0x10] | r3 = *((r5 + 0x10));
0x00003738 adds r6, 1 | r6++;
0x0000373a strd sl, fp, [r3, 0x1d8] | __asm ("strd sl, fp, [r3, 0x1d8]");
0x0000373e ldr r3, [r4, -0x2c] | r3 = *((r4 - 0x2c));
0x00003742 ldr r3, [r3, 8] | r3 = *((r3 + 8));
0x00003744 cmp r3, r6 |
| if (r3 <= r6) {
0x00003746 ble 0x380c | goto label_39;
| }
0x00003748 ldr.w r0, [sb] | r0 = *(sb);
0x0000374c ldr r1, [r4, -0x24] | r1 = *((r4 - 0x24));
0x00003750 ldr r5, [r7, 4]! | r5 = *((r7 += 4));
0x00003754 mov r3, r8 | r3 = r8;
0x00003756 mov r2, r5 | r2 = r5;
0x00003758 blx 0x1994 | fcn_00001994 ();
0x0000375c str r0, [sp, 0x88] | var_88h = r0;
0x0000375e cmp r0, 0 |
0x00003760 bne 0x3714 |
| }
0x00003762 ldr.w r2, [sb] | r2 = *(sb);
0x00003766 mov r1, r8 | r1 = r8;
0x00003768 str r0, [sp, 0x24] | var_24h = r0;
0x0000376a ldr r0, [r4, -0x24] | r0 = *((r4 - 0x24));
0x0000376e ldr r2, [r2, 0x28] | r2 = *((r2 + 0x28));
0x00003770 blx r2 | uint32_t (*r2)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
0x00003772 ldr r3, [sp, 0x24] | r3 = var_24h;
0x00003774 str r0, [sp, 0x38] | var_38h = r0;
0x00003776 cmp r0, 0 |
| if (r0 != 0) {
0x00003778 bne.w 0x3932 | goto label_42;
| }
0x0000377c ldr.w r3, [sb] | r3 = *(sb);
0x00003780 ldr r1, [sp, 0x84] | r1 = var_84h;
0x00003782 ldr r0, [r4, -0x24] | r0 = *((r4 - 0x24));
0x00003786 ldr r3, [r3, 0x10] | r3 = *((r3 + 0x10));
0x00003788 ldr r2, [sp, 0x30] | r2 = var_30h;
0x0000378a blx r3 | r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
0x0000378c cmp r0, 0 |
| if (r0 == 0) {
0x0000378e beq 0x3728 | goto label_6;
| }
0x00003790 ldr r4, [pc, 0x304] |
0x00003792 mov ip, r0 |
0x00003794 ldr r3, [sp, 0x54] | r3 = var_54h;
0x00003796 ldr r1, [sp, 0x20] | r1 = var_20h;
0x00003798 ldr r0, [pc, 0x300] |
0x0000379a add r4, pc | r4 = 0x7236;
0x0000379c ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x0000379e str r1, [sp, 4] | var_4h_3 = r1;
0x000037a0 movw r1, 0x417 | r1 = 0x417;
0x000037a4 ldr r3, [sp, 0x38] | r3 = var_38h;
0x000037a6 add r0, pc | r0 = 0x7246;
0x000037a8 str r4, [sp, 8] | var_8h_2 = r4;
0x000037aa str.w ip, [sp] | __asm ("str.w ip, [sp]");
0x000037ae blx 0x18bc | fcn_000018bc ();
0x000037b2 b 0x384c | goto label_14;
| label_37:
0x000037b4 ldr r3, [sp, 0x20] | r3 = var_20h;
0x000037b6 ldr r3, [r3, 0x14] | r3 = *((r3 + 0x14));
0x000037b8 cmp r3, 6 |
| if (r3 > 6) {
0x000037ba bgt.w 0x368c | goto label_7;
| }
0x000037bc add r7, sp, 0x19c | r7 = sp + 0x19c;
0x000037be b 0x36c4 | goto label_8;
| label_34:
0x000037c0 ldr r2, [sp, 0x3c] | r2 = var_3ch;
0x000037c2 mov r1, r8 | r1 = r8;
0x000037c4 ldr r3, [r3, 0x28] | r3 = *((r3 + 0x28));
0x000037c6 ldr r0, [r2, 0x68] | r0 = *((r2 + 0x68));
0x000037c8 blx r3 | r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
0x000037ca mov r5, r0 | r5 = r0;
0x000037cc cmp r0, 0 |
| if (r0 != 0) {
0x000037ce bne.w 0x3a14 | goto label_43;
| }
0x000037d2 ldr r2, [sp, 0x3c] | r2 = var_3ch;
0x000037d4 ldr.w r3, [sb] | r3 = *(sb);
0x000037d8 ldr r1, [sp, 0x84] | r1 = var_84h;
0x000037da ldr r0, [r2, 0x68] | r0 = *((r2 + 0x68));
0x000037dc add r2, sp, 0x7c | r2 += var_7ch;
0x000037de ldr r3, [r3, 0x10] | r3 = *((r3 + 0x10));
0x000037e0 blx r3 | r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
0x000037e2 cmp r0, 0 |
| if (r0 == 0) {
0x000037e4 beq.w 0x365c | goto label_9;
| }
0x000037e8 ldr r4, [pc, 0x2b4] |
0x000037ea mov r6, r0 | r6 = r0;
0x000037ec ldr r3, [sp, 0x54] | r3 = var_54h;
0x000037ee ldr r1, [sp, 0x20] | r1 = var_20h;
0x000037f0 ldr r0, [pc, 0x2b0] |
0x000037f2 add r4, pc | r4 = 0x7296;
0x000037f4 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x000037f6 mov r3, r5 | r3 = r5;
0x000037f8 str r1, [sp, 4] | var_4h_3 = r1;
0x000037fa movw r1, 0x3e6 | r1 = 0x3e6;
0x000037fe add r0, pc | r0 = 0x72a6;
0x00003800 str r4, [sp, 8] | var_8h_2 = r4;
0x00003802 str r6, [sp] | *(sp) = r6;
0x00003804 blx 0x18bc | fcn_000018bc ();
0x00003808 movs r0, 1 | r0 = 1;
0x0000380a b 0x3478 | goto label_10;
| label_39:
0x0000380c ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x0000380e ldrb.w r3, [r3, 0x71] | r3 = *((r3 + 0x71));
0x00003812 lsls r3, r3, 0x1d | r3 <<= 0x1d;
| if (r3 < r3) {
0x00003814 bmi 0x3908 | goto label_44;
| }
| label_15:
0x00003816 ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x00003818 adds r4, 0x50 | r4 += 0x50;
0x0000381a ldr r2, [sp, 0x70] | r2 = var_70h_2;
0x0000381c ldr r3, [r3, 0x18] | r3 = *((r3 + 0x18));
0x0000381e adds r2, 1 | r2++;
0x00003820 str r2, [sp, 0x70] | var_70h_2 = r2;
0x00003822 ldr r3, [r3, 8] | r3 = *((r3 + 8));
0x00003824 cmp r3, r2 |
| if (r3 > r2) {
0x00003826 bgt.w 0x35ac | goto label_11;
| }
0x0000382a b 0x34b8 | goto label_5;
| label_41:
0x0000382c ldr r4, [pc, 0x278] |
0x0000382e mov r1, r0 | r1 = r0;
0x00003830 ldr r3, [sp, 0x54] | r3 = var_54h;
0x00003832 ldr r0, [pc, 0x278] |
0x00003834 ldr r5, [sp, 0x20] | r5 = var_20h;
0x00003836 add r4, pc | r4 = 0x72e2;
0x00003838 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x0000383a movs r3, 0 | r3 = 0;
0x0000383c add r0, pc | r0 = 0x72ee;
0x0000383e str r4, [sp, 8] | var_8h_2 = r4;
0x00003840 strd r1, r5, [sp] | __asm ("strd r1, r5, [sp]");
0x00003842 asrs r0, r0, 0x14 | r0 >>= 0x14;
0x00003844 movw r1, 0x41c | r1 = 0x41c;
0x00003848 blx 0x18bc | fcn_000018bc ();
| label_14:
0x0000384c movs r0, 1 | r0 = 1;
0x0000384e b 0x3478 | goto label_10;
| label_26:
0x00003850 ldr r5, [pc, 0x25c] |
0x00003852 mov r0, r8 | r0 = r8;
0x00003854 blx 0x19f4 | fcn_000019f4 ();
0x00003858 ldr r6, [sp, 0x20] | r6 = var_20h;
0x0000385a mov r3, r4 | r3 = r4;
0x0000385c add r5, pc | r5 = "AH02409: worker slotmem_fgrab failed";
0x0000385e str r4, [sp, 0x88] | var_88h = r4;
0x00003860 b 0x386e | goto label_45;
| label_13:
0x00003862 ldr r6, [r6, 4] | r6 = *((r6 + 4));
0x00003864 adds r3, 1 | r3++;
0x00003866 str r3, [sp, 0x88] | var_88h = r3;
0x00003868 cmp r6, 0 |
| if (r6 == 0) {
0x0000386a beq.w 0x340e | goto label_12;
| }
| label_45:
0x0000386e ldr.w r2, [fp, 0x10] | r2 = *(arg_10h);
0x00003872 ldr.w r2, [r2, r3, lsl 2] | offset_3 = r3 << 2;
| r2 = *((r2 + offset_3));
0x00003876 cmp r2, 0 |
| if (r2 != 0) {
0x00003878 bne 0x3862 | goto label_13;
| }
0x0000387a movs r2, 1 | r2 = 1;
0x0000387c mov r1, r7 | r1 = r7;
0x0000387e mov r0, r6 | r0 = r6;
0x00003880 bl 0x3198 | fcn_00003198 (r0, r1, r2, r3, r4, r5, r6);
0x00003884 mov.w r2, -1 | r2 = -1;
0x00003888 mov r4, r0 | r4 = r0;
0x0000388a mov r1, r0 | r1 = r0;
0x0000388c mov r0, r8 | r0 = r8;
0x0000388e blx 0x1b18 | r0 = fcn_00001b18 ();
0x00003892 cmp r0, 0 |
| if (r0 == 0) {
0x00003894 beq 0x38f8 | goto label_46;
| }
0x00003896 mov r2, r4 | r2 = r4;
0x00003898 ldr r3, [sp, 0x88] | r3 = var_88h;
0x0000389a mov r1, r5 | r1 = r5;
0x0000389c mov r0, r7 | r0 = r7;
0x0000389e blx 0x1934 | r0 = fcn_00001934 ();
0x000038a2 mov r4, r0 | r4 = r0;
| do {
0x000038a4 ldr r3, [sp, 0x88] | r3 = var_88h;
0x000038a6 ldr.w r2, [fp, 0x10] | r2 = *(arg_10h);
0x000038aa str.w r4, [r2, r3, lsl 2] | __asm ("str.w r4, [r2, r3, lsl 2]");
0x000038ae b 0x3862 | goto label_13;
| label_22:
0x000038b0 ldr r1, [sp, 0x2c] | r1 = var_2ch;
0x000038b2 ldr r2, [pc, 0x1bc] |
0x000038b4 ldr r3, [pc, 0x1fc] |
0x000038b6 ldr r2, [r1, r2] | r2 = *((r1 + r2));
0x000038b8 ldr r1, [sp, 0x20] | r1 = var_20h;
0x000038ba add r3, pc | r3 = 0x7372;
0x000038bc str r3, [sp, 8] | var_8h_2 = r3;
0x000038be mov r3, r0 | r3 = r0;
0x000038c0 strd r0, r1, [sp] | __asm ("strd r0, r1, [sp]");
0x000038c4 movw r1, 0x379 | r1 = 0x379;
0x000038c8 ldr r0, [pc, 0x1ec] |
0x000038ca ldr r2, [r2, 8] | r2 = *(0x3a7a);
0x000038cc add r0, pc | r0 = 0x7388;
0x000038ce blx 0x18bc | fcn_000018bc ();
0x000038d2 movs r0, 1 | r0 = 1;
0x000038d4 b 0x3478 | goto label_10;
| label_40:
0x000038d6 ldr r4, [pc, 0x1e4] |
0x000038d8 mov r1, r0 | r1 = r0;
0x000038da ldr r3, [sp, 0x54] | r3 = var_54h;
0x000038dc ldr r5, [sp, 0x20] | r5 = var_20h;
0x000038de ldr r0, [pc, 0x1e0] |
0x000038e0 add r4, pc | r4 = 0x73a2;
0x000038e2 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x000038e4 movs r3, 0 | r3 = 0;
0x000038e6 strd r1, r5, [sp] | __asm ("strd r1, r5, [sp]");
0x000038ea movw r1, 0x40c | r1 = 0x40c;
0x000038ee add r0, pc | r0 = 0x73b4;
0x000038f0 str r4, [sp, 8] | var_8h_2 = r4;
0x000038f2 blx 0x18bc | fcn_000018bc ();
0x000038f6 b 0x384c | goto label_14;
| label_46:
0x000038f8 mov.w r3, -1 | r3 = -1;
0x000038fc mov r1, r4 | r1 = r4;
0x000038fe mov r2, r3 | r2 = r3;
0x00003900 mov r0, r8 | r0 = r8;
0x00003902 blx 0x1720 | loc_imp_apr_hash_set ();
0x00003906 b 0x38a4 |
| } while (1);
| label_44:
0x00003908 ldr r3, [r4, -0xc] | r3 = *((r4 - 0xc));
0x0000390c ldr r0, [sp, 0x40] | r0 = var_40h;
0x0000390e ldr r2, [sp, 0x3c] | r2 = var_3ch;
0x00003910 subs r3, 1 | r3--;
0x00003912 ldr r1, [sp, 0x20] | r1 = var_20h;
0x00003914 str r3, [r4, -0xc] | *((r4 - 0xc)) = r3;
0x00003916 subs r4, 0xc | r4 -= 0xc;
0x00003918 ldr r3, [r4, -0x8] | r3 = *((r4 - 0x8));
0x0000391c adc r3, r3, -1 | __asm ("adc r3, r3, -1");
0x00003920 str r3, [r4, -0x8] | *((r4 - 0x8)) = r3;
0x00003924 blx 0x19b8 | fcn_000019b8 ();
0x00003928 b 0x3816 | goto label_15;
| label_24:
0x0000392a blx 0x16e4 | loc_imp_apr_time_now ();
0x0000392e ldr r0, [sp, 0x20] | r0 = var_20h;
0x00003930 b 0x3478 | goto label_10;
| label_42:
0x00003932 ldr r4, [pc, 0x190] |
0x00003934 ldr r2, [sp, 0x54] | r2 = var_54h;
0x00003936 ldr r1, [sp, 0x20] | r1 = var_20h;
0x00003938 add r4, pc | r4 = 0x7402;
0x0000393a ldr r0, [pc, 0x18c] |
0x0000393c ldr r2, [r2, 8] | r2 = *((r2 + 8));
0x0000393e str r4, [sp, 8] | var_8h_2 = r4;
0x00003940 ldr r4, [sp, 0x38] | r4 = var_38h;
0x00003942 add r0, pc | r0 = "w_wr";
0x00003944 str r1, [sp, 4] | var_4h_3 = r1;
0x00003946 movw r1, 0x412 | r1 = 0x412;
0x0000394a str r4, [sp] | *(sp) = r4;
0x0000394c blx 0x18bc | fcn_000018bc ();
0x00003950 b 0x384c | goto label_14;
| label_33:
0x00003952 ldr r3, [sp, 0x40] | r3 = var_40h;
0x00003954 ldr r6, [pc, 0x174] |
0x00003956 ldr r4, [pc, 0x178] |
0x00003958 ldr r1, [r3, 0x3c] | r1 = *((r3 + 0x3c));
0x0000395a ldr r3, [sp, 0x54] | r3 = var_54h;
0x0000395c add r6, pc | r6 = "w_status_N";
0x0000395e ldr r0, [pc, 0x174] |
0x00003960 add r4, pc | r4 = 0x7436;
0x00003962 addw r1, r1, 0x115 | __asm ("addw r1, r1, aav.0x000000ff");
0x00003966 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x00003968 ldr r3, [sp, 0x20] | r3 = var_20h;
0x0000396a add r0, pc | r0 = "w_status_H";
0x0000396c str r1, [sp, 0x10] | var_10h = r1;
0x0000396e mov.w r1, 0x3d0 | r1 = 0x3d0;
0x00003972 str r5, [sp] | *(sp) = r5;
0x00003974 str r3, [sp, 4] | var_4h_3 = r3;
0x00003976 movs r3, 0 | r3 = 0;
0x00003978 strd r4, r6, [sp, 8] | __asm ("strd r4, r6, [var_8h_2]");
0x0000397c blx 0x18bc | fcn_000018bc ();
0x0000397e vmls.i16 d15, d14, d7[1] | __asm ("vmls.i16 d15, d14, d7[1]");
0x00003982 strb r2, [r7, 3] | *((r7 + 3)) = r2;
0x00003984 b 0x3478 | goto label_10;
| label_36:
0x00003986 ldr r4, [pc, 0x150] |
0x00003988 mov r1, r0 | r1 = r0;
0x0000398a ldr r3, [sp, 0x54] | r3 = var_54h;
0x0000398c ldr r5, [sp, 0x20] | r5 = var_20h;
0x0000398e ldr r0, [pc, 0x14c] |
0x00003990 add r4, pc | r4 = 0x746e;
0x00003992 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x00003994 movs r3, 0 | r3 = 0;
0x00003996 strd r1, r5, [sp] | __asm ("strd r1, r5, [sp]");
0x0000399a movw r1, 0x3eb | r1 = 0x3eb;
0x0000399e add r0, pc | r0 = 0x7480;
0x000039a0 str r4, [sp, 8] | var_8h_2 = r4;
0x000039a2 blx 0x18bc | fcn_000018bc ();
0x000039a6 movs r0, 1 | r0 = 1;
0x000039a8 b 0x3478 | goto label_10;
| label_38:
0x000039aa ldr r4, [pc, 0x134] |
0x000039ac ldr r3, [sp, 0x54] | r3 = var_54h;
0x000039ae ldr r1, [sp, 0x20] | r1 = var_20h;
0x000039b0 ldr r0, [pc, 0x130] |
0x000039b2 add r4, pc | r4 = "w_hm";
0x000039b4 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x000039b6 movs r3, 0 | r3 = 0;
0x000039b8 strd r6, r1, [sp] | __asm ("strd r6, r1, [sp]");
0x000039bc movw r1, 0x3f9 | r1 = 0x3f9;
0x000039c0 add r0, pc | r0 = "w_he";
0x000039c2 str r4, [sp, 8] | var_8h_2 = r4;
0x000039c4 blx 0x18bc | fcn_000018bc ();
0x000039c8 movs r0, 1 | r0 = 1;
0x000039ca b 0x3478 | goto label_10;
| label_35:
0x000039cc ldr r4, [pc, 0x118] |
0x000039ce mov r6, r0 | r6 = r0;
0x000039d0 ldr r3, [sp, 0x54] | r3 = var_54h;
0x000039d2 ldr r1, [sp, 0x20] | r1 = var_20h;
0x000039d4 ldr r0, [pc, 0x114] |
0x000039d6 add r4, pc | r4 = 0x74c2;
0x000039d8 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x000039da mov r3, r5 | r3 = r5;
0x000039dc str r1, [sp, 4] | var_4h_3 = r1;
0x000039de mov.w r1, 0x3dc | r1 = 0x3dc;
0x000039e2 add r0, pc | r0 = 0x74d2;
0x000039e4 str r4, [sp, 8] | var_8h_2 = r4;
0x000039e6 str r6, [sp] | *(sp) = r6;
0x000039e8 blx 0x18bc | fcn_000018bc ();
0x000039ec movs r0, 1 | r0 = 1;
0x000039ee b 0x3478 | goto label_10;
| label_32:
0x000039f0 ldr r3, [sp, 0x54] | r3 = var_54h;
0x000039f2 ldr r1, [sp, 0x20] | r1 = var_20h;
0x000039f4 ldr r4, [pc, 0xf8] |
0x000039f6 ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x000039f8 movs r3, 0 | r3 = 0;
0x000039fa str r1, [sp, 4] | var_4h_3 = r1;
0x000039fc ldr r0, [pc, 0xf4] |
0x000039fe add r4, pc | r4 = 0x74f2;
0x00003a00 ldr r1, [sp, 0x70] | r1 = var_70h_2;
0x00003a02 str r4, [sp, 8] | var_8h_2 = r4;
0x00003a04 add r0, pc | r0 = "b_sforce";
0x00003a06 str r1, [sp] | *(sp) = r1;
0x00003a08 movw r1, 0x3b5 | r1 = 0x3b5;
0x00003a0c blx 0x18bc | fcn_000018bc ();
0x00003a10 movs r0, 1 | r0 = 1;
0x00003a12 b 0x3478 | goto label_10;
| label_43:
0x00003a14 ldr r4, [pc, 0xe0] |
0x00003a16 ldr r3, [sp, 0x54] | r3 = var_54h;
0x00003a18 ldr r1, [sp, 0x20] | r1 = var_20h;
0x00003a1a ldr r0, [pc, 0xe0] |
0x00003a1c add r4, pc | r4 = "b_nwrkr";
0x00003a1e ldr r2, [r3, 8] | r2 = *((r3 + 8));
0x00003a20 mov r3, r6 | r3 = r6;
0x00003a22 str r1, [sp, 4] | var_4h_3 = r1;
0x00003a24 movw r1, 0x3e2 | r1 = 0x3e2;
0x00003a28 add r0, pc | r0 = 0x752a;
0x00003a2a str r4, [sp, 8] | var_8h_2 = r4;
0x00003a2c str r5, [sp] | *(sp) = r5;
0x00003a2e blx 0x18bc | fcn_000018bc ();
0x00003a32 movs r0, 1 | r0 = 1;
0x00003a34 b 0x3478 | goto label_10;
| label_28:
0x00003a36 blx 0x17d8 | fcn_000017d8 ();
0x00003a3a nop |
0x00003a3c ldr r4, [r1, 0x30] | r4 = *((r1 + 0x30));
0x00003a3e movs r1, r0 | r1 = r0;
0x00003a40 lsls r0, r1, 7 | r0 = r1 << 7;
0x00003a42 movs r0, r0 |
0x00003a44 ldr r2, [r6, 0x2c] | r2 = *((r6 + 0x2c));
0x00003a46 movs r1, r0 | r1 = r0;
0x00003a48 subs r5, 0x8a | r5 -= 0x8a;
0x00003a4a movs r0, r0 |
0x00003a4c ldr r0, [r3, 0x50] | r0 = *((r3 + 0x50));
0x00003a4e movs r1, r0 | r1 = r0;
0x00003a50 subs r5, 0xc6 | r5 -= 0xc6;
0x00003a52 movs r0, r0 |
0x00003a54 subs r5, 0xbc | r5 -= 0xbc;
0x00003a56 movs r0, r0 |
0x00003a58 subs r5, 0xbc | r5 -= 0xbc;
0x00003a5a movs r0, r0 |
0x00003a5c lsls r0, r2, 7 | r0 = r2 << 7;
0x00003a5e movs r0, r0 |
0x00003a60 subs r5, 0x66 | r5 -= 0x66;
0x00003a62 movs r0, r0 |
0x00003a64 ldc2 p15, c15, [r7, -0x3fc]! | __asm ("ldc2 p15, c15, aav.0x000000ff!");
0x00003a68 lsls r4, r2, 7 | r4 = r2 << 7;
0x00003a6a movs r0, r0 |
0x00003a6c ldr r0, [r3, 0x18] | r0 = *((r3 + 0x18));
0x00003a6e movs r1, r0 | r1 = r0;
0x00003a70 lsls r4, r1, 7 | r4 = r1 << 7;
0x00003a72 movs r0, r0 |
0x00003a74 subs r4, 0x28 | r4 -= 0x28;
0x00003a76 movs r0, r0 |
0x00003a78 adds r5, 0x5a | r5 += 0x5a;
0x00003a7a movs r0, r0 |
0x00003a7c adds r5, 0x34 | r5 += 0x34;
0x00003a7e movs r0, r0 |
0x00003a80 subs r4, 0x46 | r4 -= 0x46;
0x00003a82 movs r0, r0 |
0x00003a84 subs r4, 0x38 | r4 -= 0x38;
0x00003a86 movs r0, r0 |
0x00003a88 subs r4, 0x34 | r4 -= 0x34;
0x00003a8a movs r0, r0 |
0x00003a8c lsls r4, r3, 7 | r4 = r3 << 7;
0x00003a8e movs r0, r0 |
0x00003a90 subs r4, 0x18 | r4 -= 0x18;
0x00003a92 movs r0, r0 |
0x00003a94 adds r3, 0xb0 | r3 += 0xb0;
0x00003a96 movs r0, r0 |
0x00003a98 subs r3, 0xbe | r3 -= 0xbe;
0x00003a9a movs r0, r0 |
0x00003a9c adds r2, 0xc2 | r2 += 0xc2;
0x00003a9e movs r0, r0 |
0x00003aa0 subs r2, 0x76 | r2 -= 0x76;
0x00003aa2 movs r0, r0 |
0x00003aa4 adds r2, 0x6a | r2 += 0x6a;
0x00003aa6 movs r0, r0 |
0x00003aa8 subs r3, 0x46 | r3 -= 0x46;
0x00003aaa movs r0, r0 |
0x00003aac adds r2, 0x2c | r2 += 0x2c;
0x00003aae movs r0, r0 |
0x00003ab0 subs r1, 0x14 | r1 -= 0x14;
0x00003ab2 movs r0, r0 |
0x00003ab4 subs r0, 0x1a | r0 -= 0x1a;
0x00003ab6 movs r0, r0 |
0x00003ab8 adds r1, 0x9c | r1 += 0x9c;
0x00003aba movs r0, r0 |
0x00003abc subs r2, 0x2c | r2 -= 0x2c;
0x00003abe movs r0, r0 |
0x00003ac0 adds r1, 0x7a | r1 += 0x7a;
0x00003ac2 movs r0, r0 |
0x00003ac4 subs r1, 0xfc | r1 -= 0xfc;
0x00003ac6 movs r0, r0 |
0x00003ac8 adds r1, 0x26 | r1 += 0x26;
0x00003aca movs r0, r0 |
0x00003acc subs r0, 0x7c | r0 -= 0x7c;
0x00003ace movs r0, r0 |
0x00003ad0 subs r0, 0x8c | r0 -= 0x8c;
0x00003ad2 movs r0, r0 |
0x00003ad4 adds r0, 0xfe | r0 += 0xfe;
0x00003ad6 movs r0, r0 |
0x00003ad8 subs r1, 0 |
0x00003ada movs r0, r0 |
0x00003adc adds r0, 0xca | r0 += 0xca;
0x00003ade movs r0, r0 |
0x00003ae0 subs r1, 0x32 | r1 -= 0x32;
0x00003ae2 movs r0, r0 |
0x00003ae4 adds r0, 0xa8 | r0 += 0xa8;
0x00003ae6 movs r0, r0 |
0x00003ae8 subs r0, 0x42 | r0 -= 0x42;
0x00003aea movs r0, r0 |
0x00003aec adds r0, 0x86 | r0 += 0x86;
0x00003aee movs r0, r0 |
0x00003af0 adds r7, 0xae | r7 += 0xae;
0x00003af2 movs r0, r0 |
0x00003af4 adds r0, 0x64 | r0 += 0x64;
0x00003af6 movs r0, r0 |
0x00003af8 subs r0, 0x24 | r0 -= 0x24;
0x00003afa movs r0, r0 |
0x00003afc adds r0, 0x40 | r0 += 0x40;
0x00003afe movs r0, r0 |
| }
[*] Function fprintf used 1 times mod_proxy_balancer.so