[*] Binary protection state of mod_authz_axisgroupfile.so
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function strcat tear down of mod_authz_axisgroupfile.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_authz_axisgroupfile.so @ 0x152c */
| #include <stdint.h>
|
; (fcn) fcn.0000152c () | void fcn_0000152c (int16_t arg_40h, int16_t arg_7ch, int16_t arg_80h, int16_t arg_2040h, int16_t arg1) {
| int16_t var_0h_2;
| int16_t var_4h;
| int32_t var_0h_3;
| int16_t var_0h;
| int16_t var_4h_2;
| r0 = arg1;
0x0000152c blmi 0xfef14020 | __asm ("blmi 0xfef14020");
0x00001530 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00001534 sub.w sp, sp, 0x2080 |
0x00001538 ldr r6, [pc, 0x2e8] |
0x0000153a add r2, pc | r2 += pc;
0x0000153c sub sp, 4 |
0x0000153e mov r5, r0 | r5 = r0;
0x00001540 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001542 add.w r1, sp, 0x2040 | r1 += arg_2040h;
0x00001546 ldr r7, [pc, 0x2e0] |
0x00001548 add r6, pc | r6 = 0x2d70;
0x0000154a ldr r0, [r6, 4] | r0 = *(0x2d74);
0x0000154c adds r1, 0x3c | r1 += 0x3c;
0x0000154e ldr r3, [r3] | r3 = *(r3);
0x00001550 str r3, [r1] | *(r1) = r3;
0x00001552 mov.w r3, 0 | r3 = 0;
0x00001556 add r7, pc | r7 = "axis-group";
0x00001558 blx 0xf50 | r0 = apr_thread_mutex_lock ();
0x0000155c cmp r0, 0 |
| if (r0 != 0) {
0x0000155e bne.w 0x16e2 | goto label_14;
| }
0x00001562 mov r4, r0 | r4 = r0;
0x00001564 ldr r0, [pc, 0x2c4] |
0x00001566 add.w r8, sp, 0x40 | r8 += arg_40h;
0x0000156a sub.w r1, r8, 0x20 | r1 = r8 - 0x20;
0x0000156c lsls r0, r4, 4 | r0 = r4 << 4;
0x0000156e add r0, pc | r0 = 0x2d9e;
0x00001570 blx 0xf80 | r0 = stat ();
0x00001574 cmp r0, 0 |
| if (r0 != 0) {
0x00001576 bne.w 0x1698 | goto label_15;
| }
0x0000157a ldr r3, [pc, 0x2b4] |
0x0000157c add r4, sp, 0x80 | r4 += arg_80h;
0x0000157e ldr sb, [r4, -0x20] | sb = *((r4 - 0x20));
0x00001582 add r3, pc |
0x00001584 ldr r3, [r3] | r3 = "axis-rtsp-ws-session-only";
0x00001586 cmp sb, r3 |
| if (sb == r3) {
0x00001588 bne 0x1590 |
0x0000158a ldr r3, [r6, 0xc] | r3 = *((r6 + 0xc));
0x0000158c cmp r3, 0 |
| if (r3 == 0) {
0x0000158e beq 0x1660 | goto label_16;
| }
| }
0x00001590 ldr r3, [pc, 0x2a0] |
0x00001592 asr.w r6, sb, 0x1f | r6 = sb >> 0x1f;
0x00001596 movs r1, 0 | r1 = 0;
0x00001598 sub.w r0, r8, 0x28 | r0 = r8 - 0x28;
0x0000159c add r3, pc | r3 = "axis-anonymous-unmetered";
0x0000159e str.w sb, [r3, 8] | __asm ("str.w sb, [r3, 8]");
0x000015a2 str r6, [r3, 0xc] | *((r3 + 0xc)) = r6;
0x000015a4 blx 0xf38 | gettimeofday ();
0x000015a8 ldr r2, [r4, -0x68] | r2 = *((r4 - 0x68));
0x000015ac movw r3, 0x4240 |
0x000015b0 movt r3, 0xf | r3 = 0xf4240;
0x000015b4 ldr r1, [pc, 0x280] |
0x000015b6 sub.w r0, r8, 0x2c | r0 = r8 - 0x2c;
0x000015ba smull r2, r3, r2, r3 | r2:r3 = r2 * r3;
0x000015be add r1, pc | r1 = 0x2dfa;
0x000015c0 cmp r3, r6 |
0x000015c2 it eq |
| if (r3 == r6) {
0x000015c4 cmpeq r2, sb | __asm ("cmpeq r2, sb");
| }
0x000015c6 ldr r3, [r5] | r3 = *(r5);
0x000015c8 ite eq |
| if (r3 != r6) {
0x000015ca moveq r2, 1 | r2 = 1;
| }
| if (r3 == r6) {
0x000015cc movne r2, 0 | r2 = 0;
| }
0x000015ce str r3, [sp] | *(sp) = r3;
0x000015d0 ldr r3, [pc, 0x268] |
0x000015d2 add r3, pc | r3 = 0x2e12;
0x000015d4 str r2, [r3, 0xc] | *((r3 + 0xc)) = r2;
0x000015d6 movw r3, 0xfff | r3 = 0xfff;
0x000015d8 strb r7, [r7, 0xf] | *((r7 + 0xf)) = r7;
0x000015da movs r2, 1 | r2 = 1;
0x000015dc blx 0x1064 | r0 = apr_file_open ();
0x000015e0 cmp r0, 0 |
| if (r0 != 0) {
0x000015e2 bne.w 0x1714 | goto label_17;
| }
0x000015e6 movw r8, 0x7247 |
0x000015ea movw sb, 0x5070 |
0x000015ee movw sl, 0x6369 |
0x000015f2 movw fp, 0x4d44 |
0x000015f6 add r6, sp, 0x7c | r6 += arg_7ch;
0x000015f8 movt r8, 0x756f | r8 = 0x756f7247;
0x000015fc movt sb, 0x6c6f | sb = 0x6c6f5070;
0x00001600 movt sl, 0x4179 | sl = 0x41796369;
0x00001604 movt fp, 0x4e49 | fp = 0x4e494d44;
| do {
| label_0:
0x00001608 ldr r2, [r4, -0x6c] | r2 = *((r4 - 0x6c));
0x0000160c mov.w r1, 0x2000 | r1 = 0x2000;
0x00001610 mov r0, r6 | r0 = r6;
0x00001612 blx 0x10a0 | r0 = apr_file_gets ();
| if (r0 != 0) {
0x00001616 cbnz r0, 0x164e | goto label_8;
| }
0x00001618 ldr r3, [r6] | r3 = *(r6);
0x0000161a cmp r3, r8 |
0x0000161c bne 0x1608 |
| } while (r3 != r8);
0x0000161e ldr r3, [r4] | r3 = *(r4);
0x00001620 cmp r3, sb |
| if (r3 != sb) {
0x00001622 bne 0x1608 | goto label_0;
| }
0x00001624 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x00001626 cmp r3, sl |
| if (r3 != sl) {
0x00001628 bne 0x1608 | goto label_0;
| }
0x0000162a ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x0000162c cmp r3, fp |
| if (r3 != fp) {
0x0000162e bne 0x1608 | goto label_0;
| }
0x00001630 ldr r1, [pc, 0x20c] |
0x00001632 add.w r8, r4, 0xc | r8 = r4 + 0xc;
0x00001636 mov r0, r8 | r0 = r8;
0x00001638 add r1, pc | r1 = 0x2e7c;
0x0000163a blx 0xe60 | r0 = strstr (r0, r1);
0x0000163e mov r6, r0 | r6 = r0;
0x00001640 cmp r0, 0 |
| if (r0 == 0) {
0x00001642 beq.w 0x17ca | goto label_18;
| }
0x00001646 ldr r3, [pc, 0x1fc] |
0x00001648 movs r2, 1 | r2 = 1;
0x0000164a add r3, pc | r3 = 0x2e94;
0x0000164c str r2, [r3, 0x10] | *((r3 + 0x10)) = r2;
| label_8:
0x0000164e ldr r0, [r4, -0x6c] | r0 = *((r4 - 0x6c));
0x00001652 blx 0xf98 | apr_file_close ();
0x00001654 vstmia r2!, {d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19} | __asm ("vstmia r2!, {d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19}");
0x00001658 ldr r2, [r4, -0x20] | r2 = *((r4 - 0x20));
0x0000165c add r3, pc | r3 += pc;
0x0000165e str r2, [r3] | *(r3) = r2;
| label_16:
0x00001660 ldr r3, [pc, 0x1e8] |
0x00001662 movs r4, 1 | r4 = 1;
0x00001664 add r3, pc | r3 = "authz: second_authorization status is %i(%s)";
0x00001666 ldr r0, [r3, 4] | r0 = *(0x2eb8);
0x00001668 blx 0x1104 | r0 = fcn_00001104 ();
0x0000166c cmp r0, 0 |
| if (r0 != 0) {
0x0000166e bne 0x1740 | goto label_19;
| }
| do {
| label_1:
0x00001670 ldr r2, [pc, 0x1dc] |
0x00001672 add.w r1, sp, 0x2040 | r1 += arg_2040h;
0x00001676 ldr r3, [pc, 0x1a8] | r3 = *(0x1822);
0x00001678 adds r1, 0x3c | r1 += 0x3c;
0x0000167a add r2, pc | r2 = 0x2ece;
0x0000167c ldr r3, [r2, r3] | r3 = *(0x2ece);
0x0000167e ldr r2, [r3] | r2 = *(0x2ece);
0x00001680 ldr r3, [r1] | r3 = *(r1);
0x00001682 eors r2, r3 | r2 ^= r3;
0x00001684 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00001688 bne.w 0x1816 | goto label_20;
| }
0x0000168c mov r0, r4 | r0 = r4;
0x0000168e add.w sp, sp, 0x2080 |
0x00001692 add sp, 4 |
0x00001694 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_15:
0x00001698 ldr r3, [pc, 0x1b8] | r3 = *(0x1854);
0x0000169a ldr.w r1, [r5, 0x108] | r1 = *((r5 + 0x108));
0x0000169e ldr r3, [r7, r3] | r3 = *((r7 + r3));
0x000016a0 ldr r2, [r3, 8] | r2 = *(0x185c);
0x000016a2 cmp r2, 0 |
| if (r2 < 0) {
0x000016a4 blt 0x1704 | goto label_21;
| }
0x000016a6 cmp r1, 0 |
| if (r1 == 0) {
0x000016a8 beq 0x1790 | goto label_22;
| }
| label_4:
0x000016aa ldr r3, [r1] | r3 = *(r1);
| if (r3 == 0) {
0x000016ac cbz r3, 0x1708 | goto label_6;
| }
0x000016ae ldrsb r3, [r3, r2] | r3 = *((r3 + r2));
0x000016b0 cmp r3, 0 |
| if (r3 < 0) {
0x000016b2 blt 0x1708 | goto label_6;
| }
| label_5:
0x000016b4 cmp r3, 5 |
0x000016b6 ite le |
| if (r3 > 5) {
0x000016b8 movle r3, 0 | r3 = 0;
| }
| if (r3 <= 5) {
0x000016ba movgt r3, 1 | r3 = 1;
| }
| label_2:
0x000016bc cmp r3, 0 |
0x000016be beq 0x1670 |
| } while (r3 == 0);
0x000016c0 ldr r1, [pc, 0x194] |
0x000016c2 ldr r3, [pc, 0x198] |
0x000016c4 ldr r0, [pc, 0x198] |
0x000016c6 add r1, pc | r1 = 0x2f22;
0x000016c8 str r5, [sp, 4] | var_4h_2 = r5;
0x000016ca add r3, pc | r3 = 0x2f2c;
0x000016cc movs r5, 0 | r5 = 0;
0x000016ce strd r3, r1, [sp, 8] | __asm ("strd r3, r1, [sp, 8]");
0x000016d2 add r0, pc | r0 = 0x2f36;
0x000016d4 movs r3, 6 | r3 = 6;
0x000016d6 mov.w r1, 0x3e4 | r1 = 0x3e4;
0x000016da str r5, [sp] | *(sp) = r5;
0x000016dc blx 0x107c | loc_imp_ap_log_rerror_ ();
0x000016e0 b 0x1670 | goto label_1;
| label_14:
0x000016e2 ldr r1, [pc, 0x170] | r1 = *(0x1856);
0x000016e4 movs r3, 0 | r3 = 0;
0x000016e6 ldr r2, [pc, 0x17c] |
0x000016e8 mov r4, r3 | r4 = r3;
0x000016ea ldr r0, [pc, 0x17c] |
0x000016ec ldr r1, [r7, r1] | r1 = *((r7 + r1));
0x000016ee add r2, pc | r2 = 0x2f58;
0x000016f0 str r3, [sp] | *(sp) = r3;
0x000016f2 strd r5, r2, [sp, 4] | __asm ("strd r5, r2, [sp, 4]");
0x000016f6 add r0, pc | r0 = 0x2f64;
0x000016f8 ldr r2, [r1, 8] | r2 = *(0x185e);
0x000016fa movw r1, 0x3dd | r1 = 0x3dd;
0x000016fe blx 0x107c | loc_imp_ap_log_rerror_ ();
0x00001702 b 0x1670 | goto label_1;
| label_21:
0x00001704 cmp r1, 0 |
| if (r1 == 0) {
0x00001706 beq 0x17de | goto label_23;
| }
| label_6:
0x00001708 ldr r3, [r1, 4] | r3 = *((r1 + 4));
0x0000170a cmp r3, 5 |
0x0000170c ite le |
| if (r3 > 5) {
0x0000170e movle r3, 0 | r3 = 0;
| }
| if (r3 <= 5) {
0x00001710 movgt r3, 1 | r3 = 1;
| }
0x00001712 b 0x16bc | goto label_2;
| label_17:
0x00001714 ldr r3, [pc, 0x13c] | r3 = *(0x1854);
0x00001716 ldr.w r1, [r5, 0x108] | r1 = *((r5 + 0x108));
0x0000171a ldr r3, [r7, r3] | r3 = *((r7 + r3));
0x0000171c ldr r2, [r3, 8] | r2 = *(0x185c);
0x0000171e cmp r2, 0 |
| if (r2 < 0) {
0x00001720 blt 0x1778 | goto label_24;
| }
| if (r1 == 0) {
0x00001722 cbz r1, 0x1762 | goto label_25;
| }
0x00001724 ldr r3, [r1] | r3 = *(r1);
0x00001726 cmp r3, 0 |
| if (r3 == 0) {
0x00001728 beq 0x1784 | goto label_26;
| }
0x0000172a ldrsb r3, [r3, r2] | r3 = *((r3 + r2));
0x0000172c cmp r3, 0 |
| if (r3 < 0) {
0x0000172e blt 0x1784 | goto label_26;
| }
| do {
0x00001730 cmp r3, 5 |
0x00001732 ite le |
| if (r3 > 5) {
0x00001734 movle r3, 0 | r3 = 0;
| }
| if (r3 <= 5) {
0x00001736 movgt r3, 1 | r3 = 1;
| }
| label_3:
0x00001738 cmp r3, 0 |
| if (r3 != 0) {
0x0000173a bne 0x17a8 | goto label_27;
| }
| label_7:
0x0000173c movs r4, 0 | r4 = 0;
0x0000173e b 0x1670 | goto label_1;
| label_19:
0x00001740 ldr r1, [pc, 0x110] | r1 = *(0x1854);
0x00001742 movs r3, 0 | r3 = 0;
0x00001744 ldr r2, [pc, 0x124] |
0x00001746 mov r4, r3 | r4 = r3;
0x00001748 ldr r0, [pc, 0x124] |
0x0000174a ldr r1, [r7, r1] | r1 = *((r7 + r1));
0x0000174c add r2, pc | r2 = "${HTTPS_PORT}";
0x0000174e str r3, [sp] | *(sp) = r3;
0x00001750 strd r5, r2, [sp, 4] | __asm ("strd r5, r2, [sp, 4]");
0x00001754 add r0, pc | r0 = 0x2fc8;
0x00001756 ldr r2, [r1, 8] | r2 = *(0x185c);
0x00001758 movw r1, 0x41b | r1 = 0x41b;
0x0000175c blx 0x107c | loc_imp_ap_log_rerror_ ();
0x00001760 b 0x1670 | goto label_1;
| label_25:
0x00001762 ldr r3, [r5, 4] | r3 = *((r5 + 4));
0x00001764 ldr r1, [r3, 0x60] | r1 = *((r3 + 0x60));
0x00001766 cmp r1, 0 |
| if (r1 == 0) {
0x00001768 beq 0x1804 | goto label_28;
| }
0x0000176a ldr r3, [r1] | r3 = *(r1);
| if (r3 == 0) {
0x0000176c cbz r3, 0x1784 | goto label_26;
| }
0x0000176e ldrsb r0, [r3, r2] | r0 = *((r3 + r2));
0x00001770 cmp r0, 0 |
| if (r0 < 0) {
0x00001772 blt 0x1784 | goto label_26;
| }
| label_11:
0x00001774 ldrsb r3, [r3, r2] | r3 = *((r3 + r2));
0x00001776 b 0x1730 |
| } while (1);
| if (r1 == 0) {
| label_24:
0x00001778 cbnz r1, 0x1784 |
0x0000177a ldr r3, [r5, 4] | r3 = *((r5 + 4));
0x0000177c ldr r1, [r3, 0x60] | r1 = *((r3 + 0x60));
| if (r1 != 0) {
0x0000177e cbnz r1, 0x1784 | goto label_26;
| }
0x00001780 ldr r1, [r5, 8] | r1 = *((r5 + 8));
| label_10:
0x00001782 adds r1, 0x10 | r1 += 0x10;
| }
| label_26:
0x00001784 ldr r3, [r1, 4] | r3 = *((r1 + 4));
0x00001786 cmp r3, 5 |
0x00001788 ite le |
| if (r3 > 5) {
0x0000178a movle r3, 0 | r3 = 0;
| }
| if (r3 <= 5) {
0x0000178c movgt r3, 1 | r3 = 1;
| }
0x0000178e b 0x1738 | goto label_3;
| label_22:
0x00001790 ldr r3, [r5, 4] | r3 = *((r5 + 4));
0x00001792 ldr r1, [r3, 0x60] | r1 = *((r3 + 0x60));
0x00001794 cmp r1, 0 |
| if (r1 != 0) {
0x00001796 bne 0x16aa | goto label_4;
| }
0x00001798 ldr r1, [r5, 8] | r1 = *((r5 + 8));
0x0000179a ldr r3, [r1, 0x10] | r3 = *((r1 + 0x10));
| if (r3 == 0) {
0x0000179c cbz r3, 0x17a4 | goto label_9;
| }
0x0000179e ldrsb r3, [r3, r2] | r3 = *((r3 + r2));
0x000017a0 cmp r3, 0 |
| if (r3 >= 0) {
0x000017a2 bge 0x16b4 | goto label_5;
| }
| label_9:
0x000017a4 adds r1, 0x10 | r1 += 0x10;
0x000017a6 b 0x1708 | goto label_6;
| label_27:
0x000017a8 ldr r4, [pc, 0xc8] |
0x000017aa movs r3, 0 | r3 = 0;
0x000017ac ldr r0, [pc, 0xc8] |
0x000017ae movw r1, 0x3fb | r1 = 0x3fb;
0x000017b2 strd r3, r5, [sp] | __asm ("strd r3, r5, [sp]");
0x000017b6 movs r3, 6 | r3 = 6;
0x000017b8 add r4, pc | r4 = 0x3030;
0x000017ba add r0, pc | r0 = 0x3036;
0x000017bc strd r0, r4, [sp, 8] | __asm ("strd r0, r4, [sp, 8]");
0x000017c0 ldr r0, [pc, 0xb8] |
0x000017c2 add r0, pc | r0 = 0x3042;
0x000017c4 blx 0x107c | loc_imp_ap_log_rerror_ ();
0x000017c8 b 0x173c | goto label_7;
| label_18:
0x000017ca ldr r1, [pc, 0xb4] |
0x000017cc mov r0, r8 | r0 = r8;
0x000017ce add r1, pc | r1 = 0x3054;
0x000017d0 blx 0xe60 | r0 = strstr (r0, r1);
| if (r0 == 0) {
0x000017d4 cbz r0, 0x17ea | goto label_29;
| }
0x000017d6 ldr r3, [pc, 0xac] |
0x000017d8 add r3, pc | r3 = 0x3062;
0x000017da str r6, [r3, 0x10] | *((r3 + 0x10)) = r6;
0x000017dc b 0x164e | goto label_8;
| label_23:
0x000017de ldr r3, [r5, 4] | r3 = *((r5 + 4));
0x000017e0 ldr r1, [r3, 0x60] | r1 = *((r3 + 0x60));
0x000017e2 cmp r1, 0 |
| if (r1 != 0) {
0x000017e4 bne 0x1708 | goto label_6;
| }
0x000017e6 ldr r1, [r5, 8] | r1 = *((r5 + 8));
0x000017e8 b 0x17a4 | goto label_9;
| label_29:
0x000017ea ldr r1, [pc, 0x9c] |
0x000017ec mov r0, r8 | r0 = r8;
0x000017ee add r1, pc | r1 = 0x307c;
0x000017f0 blx 0xe60 | r0 = strstr (r0, r1);
0x000017f4 cmp r0, 0 |
| if (r0 == 0) {
0x000017f6 beq.w 0x164e | goto label_8;
| }
0x000017fa ldr r3, [pc, 0x90] |
0x000017fc movs r2, 2 | r2 = 2;
0x000017fe add r3, pc | r3 = 0x3090;
0x00001800 str r2, [r3, 0x10] | *((r3 + 0x10)) = r2;
0x00001802 b 0x164e | goto label_8;
| label_28:
0x00001804 ldr r1, [r5, 8] | r1 = *((r5 + 8));
0x00001806 ldr r3, [r1, 0x10] | r3 = *((r1 + 0x10));
0x00001808 cmp r3, 0 |
| if (r3 == 0) {
0x0000180a beq 0x1782 | goto label_10;
| }
0x0000180c ldrsb r3, [r3, r2] | r3 = *((r3 + r2));
0x0000180e cmp r3, 0 |
| if (r3 < 0) {
0x00001810 blt 0x1782 | goto label_10;
| }
0x00001812 ldr r3, [r1, 0x10] | r3 = *((r1 + 0x10));
0x00001814 b 0x1774 | goto label_11;
| label_20:
0x00001816 blx 0xed8 | stack_chk_fail ();
0x0000181a nop |
0x0000181c cmp r1, 0xae |
0x0000181e movs r1, r0 | r1 = r0;
0x00001820 lsls r4, r0, 4 | r4 = r0 << 4;
0x00001822 movs r0, r0 |
0x00001824 cmp r3, 0x24 |
0x00001826 movs r1, r0 | r1 = r0;
0x00001828 cmp r1, 0x92 |
0x0000182a movs r1, r0 | r1 = r0;
0x0000182c adds r6, r3, r6 | r6 = r3 + r6;
0x0000182e movs r0, r0 |
0x00001830 cmp r2, 0x82 |
0x00001832 movs r1, r0 | r1 = r0;
0x00001834 cmp r2, 0x68 |
0x00001836 movs r1, r0 | r1 = r0;
0x00001838 adds r6, r1, r5 | r6 = r1 + r5;
0x0000183a movs r0, r0 |
0x0000183c cmp r2, 0x9a |
0x0000183e movs r1, r0 | r1 = r0;
0x00001840 adds r4, r4, r4 | r4 += r4;
0x00001842 movs r0, r0 |
0x00001844 cmp r2, 0x22 |
0x00001846 movs r1, r0 | r1 = r0;
0x00001848 cmp r1, 0xa8 |
0x0000184a movs r1, r0 | r1 = r0;
0x0000184c cmp r2, 8 |
0x0000184e movs r1, r0 | r1 = r0;
0x00001850 cmp r0, 0x6e |
0x00001852 movs r1, r0 | r1 = r0;
0x00001854 lsls r4, r1, 4 | r4 = r1 << 4;
0x00001856 movs r0, r0 |
0x00001858 adds r6, r0, r1 | r6 = r0 + r1;
0x0000185a movs r0, r0 |
0x0000185c adds r6, r2, r1 | r6 = r2 + r1;
0x0000185e movs r0, r0 |
0x00001860 asrs r2, r4, 0x1d | r2 = r4 >> 0x1d;
0x00001862 movs r0, r0 |
0x00001864 adds r6, r0, r0 | r6 = r0 + r0;
0x00001866 movs r0, r0 |
0x00001868 asrs r6, r7, 0x1c | r6 = r7 >> 0x1c;
0x0000186a movs r0, r0 |
0x0000186c adds r0, r5, r0 | r0 = r5 + r0;
0x0000186e movs r0, r0 |
0x00001870 asrs r0, r4, 0x1b | r0 = r4 >> 0x1b;
0x00001872 movs r0, r0 |
0x00001874 asrs r4, r2, 0x1d | r4 = r2 >> 0x1d;
0x00001876 movs r0, r0 |
0x00001878 asrs r2, r7, 0x1d | r2 = r7 >> 0x1d;
0x0000187a movs r0, r0 |
0x0000187c asrs r2, r6, 0x19 | r2 = r6 >> 0x19;
0x0000187e movs r0, r0 |
0x00001880 asrs r6, r2, 0x1e | r6 = r2 >> 0x1e;
0x00001882 movs r0, r0 |
0x00001884 cmp r0, 0x94 |
0x00001886 movs r1, r0 | r1 = r0;
0x00001888 asrs r6, r7, 0x1d | r6 = r7 >> 0x1d;
0x0000188a movs r0, r0 |
0x0000188c cmp r0, 0x6e |
0x0000188e movs r1, r0 | r1 = r0;
0x00001890 ldr r3, [pc, 0xd4] |
0x00001892 ldr r2, [pc, 0xd8] | r2 = *(0x196e);
0x00001894 push {r4, r5, r6, lr} |
0x00001896 mov r4, r0 | r4 = r0;
0x00001898 add r3, pc | r3 = 0x3204;
0x0000189a ldr r1, [pc, 0xd4] |
0x0000189c sub sp, 8 |
0x0000189e ldr r2, [r3, r2] |
0x000018a0 ldr r0, [r0, 4] | r0 = *((r0 + 4));
0x000018a2 add r1, pc | r1 = 0x3218;
0x000018a4 ldr.w r3, [r4, 0x100] | r3 = *((r4 + 0x100));
0x000018a8 ldr r2, [r2, 8] | r2 = "(null)";
0x000018aa ldr r0, [r0, 0x14] | r0 = *((r0 + 0x14));
0x000018ac ldr.w r5, [r3, r2, lsl 2] | r5 = *(0x3204);
0x000018b0 blx 0xe6c | r0 = strcmp (r0, r1);
0x000018b4 cmp r0, 0 |
| if (r0 == 0) {
0x000018b6 beq 0x1962 | goto label_30;
| }
0x000018b8 ldr r3, [r5, 0xc] | r3 = *((r5 + 0xc));
0x000018ba cmp r3, 1 |
| if (r3 == 1) {
0x000018bc bne 0x18c4 |
0x000018be ldr r3, [r4, 0x20] | r3 = *((r4 + 0x20));
0x000018c0 cmp r3, 1 |
| if (r3 == 1) {
0x000018c2 beq 0x1962 | goto label_30;
| }
| }
0x000018c4 mov r0, r4 | r0 = r4;
0x000018c6 bl 0x152c | r0 = fcn_0000152c (r0, r1, r2, r3, r4);
0x000018ca cbnz r0, 0x18da |
| while (r6 != 0) {
| label_12:
0x000018cc mov r0, r4 | r0 = r4;
0x000018ce blx 0x1034 | loc_imp_ap_get_server_name_for_url ();
0x000018d2 mov.w r0, -1 | r0 = -1;
| label_13:
0x000018d6 add sp, 8 |
0x000018d8 pop {r4, r5, r6, pc} |
0x000018da ldr r0, [r4, 4] | r0 = *((r4 + 4));
0x000018dc blx 0xe9c | r0 = loc_imp_ap_ssl_conn_is_ssl ();
0x000018e0 mov r5, r0 | r5 = r0;
| if (r0 == 0) {
0x000018e2 cbz r0, 0x1924 | goto label_31;
| }
0x000018e4 ldr r3, [pc, 0x8c] |
0x000018e6 add r3, pc | r3 = 0x325e;
0x000018e8 ldr r6, [r3, 0x10] | r6 = *(0x326e);
0x000018ea cmp r6, 0 |
0x000018ec bne 0x18cc |
| }
0x000018ee mov r0, r4 | r0 = r4;
0x000018f0 ldr.w r5, [r4, 0xe0] | r5 = *((r4 + 0xe0));
0x000018f4 blx 0x1034 | loc_imp_ap_get_server_name_for_url ();
0x000018f8 ldr r3, [pc, 0x7c] |
0x000018fa mov r2, r0 | r2 = r0;
0x000018fc ldr r1, [pc, 0x7c] |
0x000018fe str r6, [sp, 4] | var_4h = r6;
0x00001900 add r3, pc |
0x00001902 str r5, [sp] | *(sp) = r5;
0x00001904 add r1, pc | r1 = "/etc/apache2/digest_auth_passwd";
0x00001906 ldr r3, [r3] | r3 = "null";
0x00001908 ldr r0, [r4] | r0 = *(r4);
0x0000190a blx 0x1094 | apr_pstrcat ()
0x0000190e ldr r1, [pc, 0x70] |
0x00001910 mov r2, r0 | r2 = r0;
0x00001912 ldr.w r0, [r4, 0xb4] | r0 = *((r4 + 0xb4));
0x00001916 add r1, pc | r1 = 0x329c;
0x00001918 blx 0xf8c | apr_table_setn ();
0x0000191c mov.w r0, 0x12e | r0 = 0x12e;
0x00001920 add sp, 8 |
0x00001922 pop {r4, r5, r6, pc} |
| label_31:
0x00001924 ldr r3, [pc, 0x5c] |
0x00001926 add r3, pc |
0x00001928 ldr r3, [r3, 0x10] | r3 = *(0x32be);
0x0000192a cmp r3, 1 |
| if (r3 != 1) {
0x0000192c bne 0x18cc | goto label_12;
| }
0x0000192e mov r0, r4 | r0 = r4;
0x00001930 ldr.w r6, [r4, 0xe0] | r6 = *((r4 + 0xe0));
0x00001934 blx 0x1034 | loc_imp_ap_get_server_name_for_url ();
0x00001938 ldr r3, [pc, 0x4c] |
0x0000193a mov r2, r0 | r2 = r0;
0x0000193c ldr r1, [pc, 0x4c] |
0x0000193e str r5, [sp, 4] | var_4h = r5;
0x00001940 add r3, pc |
0x00001942 str r6, [sp] | *(sp) = r6;
0x00001944 add r1, pc | r1 = 0x32d4;
0x00001946 ldr r3, [r3, 4] | r3 = *(0x32d0);
0x00001948 ldr r0, [r4] | r0 = *(r4);
0x0000194a blx 0x1094 | apr_pstrcat ()
0x0000194e ldr r1, [pc, 0x40] |
0x00001950 mov r2, r0 | r2 = r0;
0x00001952 ldr.w r0, [r4, 0xb4] | r0 = *((r4 + 0xb4));
0x00001956 add r1, pc | r1 = "AH01671: Granted %s access to %s, group %s";
0x00001958 blx 0xf8c | apr_table_setn ();
0x0000195c mov.w r0, 0x12e | r0 = 0x12e;
0x00001960 b 0x18d6 | goto label_13;
| label_30:
0x00001962 mov.w r0, -1 | r0 = -1;
0x00001966 b 0x18d6 | goto label_13;
| }
[*] Function strcat used 3 times mod_authz_axisgroupfile.so