[*] Binary protection state of oak.cgi
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function sprintf tear down of oak.cgi
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/html/axis-cgi/oak.cgi @ 0x15e0 */
| #include <stdint.h>
|
; (fcn) fcn.000015e0 () | void fcn_000015e0 (int16_t arg1, int16_t arg2) {
| int16_t var_0h;
| int16_t var_10h_3;
| int16_t var_14h_3;
| int16_t var_24h_2;
| int16_t var_28h_2;
| int16_t var_2ch_2;
| int16_t var_3ch;
| int16_t var_sp_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h_2;
| int16_t var_14h_2;
| int16_t var_18h_2;
| int16_t var_1ch;
| int16_t var_20h;
| size_t nmemb;
| int16_t var_28h;
| int16_t var_2ch;
| int16_t var_30h;
| void * s;
| int16_t var_94h_2;
| int16_t var_134h;
| r0 = arg1;
| r1 = arg2;
0x000015e0 mvnsmi lr, 0xb4000 | __asm ("mvnsmi lr, aav.0x000000ff");
0x000015e4 mov r5, r0 | r5 = r0;
0x000015e6 ldr r0, [pc, 0x190] |
0x000015e8 mov r8, r1 | r8 = r1;
0x000015ea movw r3, 0x7661 |
0x000015ee sub sp, 0x44 |
0x000015f0 ldr r1, [pc, 0x188] | r1 = *(0x177c);
0x000015f2 movt r3, 0x7368 | r3 = 0x73687661;
0x000015f6 add r0, pc | r0 = 0x2d74;
0x000015f8 movs r2, 0 | r2 = 0;
0x000015fa ldr r1, [r0, r1] |
0x000015fc ldr r1, [r1] | r1 = *(0x2d74);
0x000015fe str r1, [sp, 0x3c] | var_3ch = r1;
0x00001600 mov.w r1, 0 | r1 = 0;
0x00001604 strd r2, r3, [sp, 0x10] | __asm ("strd r2, r3, [sp, 0x10]");
0x00001608 bl 0x14ec | r0 = fcn_000014ec ();
| if (r0 == 0) {
0x0000160c cbz r0, 0x1644 | goto label_0;
| }
0x0000160e mov r6, r0 | r6 = r0;
0x00001610 ldrb r0, [r5] | r0 = *(r5);
| if (r0 == 0) {
0x00001612 cbz r0, 0x1624 | goto label_4;
| }
0x00001614 mov r4, r5 | r4 = r5;
| do {
0x00001616 blx 0xc90 | g_ascii_tolower ();
0x0000161a strb r0, [r4] | *(r4) = r0;
0x0000161c ldrb r0, [r4, 1]! | r0 = *((r4 += 1));
0x00001620 cmp r0, 0 |
0x00001622 bne 0x1616 |
| } while (r0 != 0);
| label_4:
0x00001624 movs r4, 0 | r4 = 0;
0x00001626 add r7, sp, 0x2c | r7 += var_2ch_2;
0x00001628 add.w sb, sp, 0x14 | sb += var_14h_3;
0x0000162c strd r4, r4, [sp, 0x28] | __asm ("strd r4, r4, [sp, 0x28]");
0x00001630 movs r2, 4 | r2 = 4;
0x00001632 mov r1, sb | r1 = sb;
0x00001634 mov r0, r6 | r0 = r6;
0x00001636 strd r4, r4, [r7, 4] | __asm ("strd r4, r4, [var_134h]");
0x0000163a str r4, [r7, 0xc] | *((r7 + 0xc)) = r4;
0x0000163c blx 0xdfc | r0 = fcn_00000dfc ();
0x00001640 cmp r0, 1 |
0x00001642 beq 0x1678 |
| while (r0 != 1) {
| label_0:
0x00001644 ldr r2, [pc, 0x138] |
0x00001646 movs r6, 0 | r6 = 0;
0x00001648 movs r1, 1 | r1 = 1;
0x0000164a movs r0, 3 | r0 = 3;
0x0000164c mov sb, r6 | sb = r6;
0x0000164e add r2, pc | r2 = 0x2dd2;
0x00001650 blx 0xcf0 | syslog_chk ();
| label_1:
0x00001654 mov r0, r6 | r0 = r6;
0x00001656 blx 0xd0c | fcn_00000d0c ();
0x0000165a ldr r2, [pc, 0x128] |
0x0000165c ldr r3, [pc, 0x11c] | r3 = *(0x177c);
0x0000165e add r2, pc | r2 = 0x2de8;
0x00001660 ldr r3, [r2, r3] | r3 = *(0x2de8);
0x00001662 ldr r2, [r3] | r2 = *(0x2de8);
0x00001664 ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x00001666 eors r2, r3 | r2 ^= r3;
0x00001668 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000166c bne.w 0x1772 | goto label_5;
| }
0x00001670 mov r0, sb | r0 = sb;
0x00001672 add sp, 0x44 |
0x00001674 pop.w {r4, r5, r6, r7, r8, sb, pc} |
0x00001678 mov r0, r5 | r0 = r5;
0x0000167a blx 0xd84 | fcn_00000d84 ();
0x0000167e mov r1, r5 | r1 = r5;
0x00001680 mov r2, r0 | r2 = r0;
0x00001682 mov r0, r6 | r0 = r6;
0x00001684 blx 0xdfc | r0 = fcn_00000dfc ();
0x00001688 cmp r0, 1 |
0x0000168a bne 0x1644 |
| }
0x0000168c movs r2, 4 | r2 = 4;
0x0000168e add r1, sp, 0x10 | r1 += var_10h_3;
0x00001690 mov r0, r6 | r0 = r6;
0x00001692 blx 0xdfc | r0 = fcn_00000dfc ();
0x00001696 cmp r0, 1 |
| if (r0 != 1) {
0x00001698 bne 0x1644 | goto label_0;
| }
0x0000169a add r5, sp, 0x28 | r5 += var_28h_2;
0x0000169c mov r2, r4 | r2 = r4;
0x0000169e mov r1, r5 | r1 = r5;
0x000016a0 mov r0, r6 | r0 = r6;
0x000016a2 blx 0xdb4 | r0 = fcn_00000db4 ();
| if (r0 == 0) {
0x000016a6 cbnz r0, 0x16b0 |
0x000016a8 mov r0, r6 | r0 = r6;
0x000016aa blx 0xd9c | fcn_00000d9c ();
0x000016ae b 0x1644 | goto label_0;
| }
0x000016b0 mov r0, r6 | r0 = r6;
0x000016b2 blx 0xd9c | fcn_00000d9c ();
0x000016b6 movs r0, 0x14 | r0 = 0x14;
0x000016b8 blx 0xd24 | r0 = fcn_00000d24 ();
0x000016bc mov r6, r0 | r6 = r0;
0x000016be cmp r0, 0 |
| if (r0 == 0) {
0x000016c0 beq 0x1644 | goto label_0;
| }
0x000016c2 mov ip, r5 |
0x000016c4 strd r4, r4, [sp, 0x14] | __asm ("strd r4, r4, [sp, 0x14]");
0x000016c8 ldm.w ip!, {r0, r1, r2, r3} | r0 = *(ip!);
| r1 = *((ip! + 4));
| r2 = *((ip! + 8));
| r3 = *((ip! + 12));
0x000016cc strd r4, r4, [sp, 0x1c] | __asm ("strd r4, r4, [sp, 0x1c]");
0x000016d0 str r4, [sp, 0x24] | var_24h_2 = r4;
0x000016d2 str r0, [r6] | *(r6) = r0;
0x000016d4 ldr.w r0, [ip] | r0 = *(ip);
0x000016d8 str r1, [r6, 4] | *((r6 + 4)) = r1;
0x000016da strd r4, r4, [sp, 0x28] | __asm ("strd r4, r4, [sp, 0x28]");
0x000016de str r2, [r6, 8] | *((r6 + 8)) = r2;
0x000016e0 strd r4, r4, [r7, 4] | __asm ("strd r4, r4, [var_134h]");
0x000016e4 str r4, [r7, 0xc] | *((r7 + 0xc)) = r4;
0x000016e6 str r3, [r6, 0xc] | *((r6 + 0xc)) = r3;
0x000016e8 str r0, [r6, 0x10] | *((r6 + 0x10)) = r0;
0x000016ea bl 0x14ec | r0 = fcn_000014ec ();
0x000016ee mov r7, r0 | r7 = r0;
| if (r0 == 0) {
0x000016f0 cbz r0, 0x1760 | goto label_6;
| }
0x000016f2 movs r2, 0x14 | r2 = 0x14;
0x000016f4 mov r1, r6 | r1 = r6;
0x000016f6 blx 0xdfc | fcn_00000dfc ();
0x000016fa mov r0, r8 | r0 = r8;
0x000016fc blx 0xd84 | fcn_00000d84 ();
0x00001700 mov r1, r8 | r1 = r8;
0x00001702 mov r2, r0 | r2 = r0;
0x00001704 mov r0, r7 | r0 = r7;
0x00001706 blx 0xdfc | fcn_00000dfc ();
0x0000170a mov r2, r4 | r2 = r4;
0x0000170c mov r1, sb | r1 = sb;
0x0000170e mov r0, r7 | r0 = r7;
0x00001710 blx 0xdb4 | fcn_00000db4 ();
0x00001714 mov r0, r7 | r0 = r7;
0x00001716 blx 0xd9c | fcn_00000d9c ();
0x0000171a blx 0xc30 | EVP_sha1 ();
0x0000171e movs r2, 0x14 | r2 = 0x14;
0x00001720 mov r3, sb | r3 = sb;
0x00001722 mov r1, r6 | r1 = r6;
0x00001724 strd r5, r4, [sp, 4] | __asm ("strd r5, r4, [sp, 4]");
0x00001728 str r2, [sp] | *(sp) = r2;
0x0000172a blx 0xdc0 | r0 = fcn_00000dc0 ();
| if (r0 == 0) {
0x0000172e cbz r0, 0x1760 | goto label_6;
| }
0x00001730 ldr r7, [pc, 0x54] |
0x00001732 mov r1, r4 | r1 = r4;
0x00001734 movs r0, 0x29 | r0 = 0x29;
0x00001736 mov r4, r5 | r4 = r5;
0x00001738 blx 0xbd0 | g_strnfill ();
0x0000173c add.w r8, sp, 0x3c | r8 += var_3ch;
0x00001740 mov sb, r0 | sb = r0;
0x00001742 mov r5, r0 | r5 = r0;
0x00001744 add r7, pc | r7 = 0x2ed0;
| do {
0x00001746 ldrb r2, [r4], 1 | r2 = *(r4);
| r4++;
0x0000174a mov r0, r5 | r0 = r5;
0x0000174c mov r1, r7 | r1 = r7;
0x0000174e adds r5, 2 | r5 += 2;
0x00001750 blx 0xcc0 | g_sprintf ()
0x00001754 cmp r8, r4 |
0x00001756 bne 0x1746 |
| } while (r8 != r4);
0x00001758 cmp.w sb, 0 |
| if (sb != 0) {
0x0000175c bne.w 0x1654 | goto label_1;
| }
| label_6:
0x00001760 ldr r2, [pc, 0x28] |
0x00001762 movs r1, 1 | r1 = 1;
0x00001764 movs r0, 3 | r0 = 3;
0x00001766 mov.w sb, 0 | sb = 0;
0x0000176a add r2, pc | r2 = 0x2efa;
0x0000176c blx 0xcf0 | syslog_chk ();
0x00001770 b 0x1654 | goto label_1;
| label_5:
0x00001772 blx 0xcfc | stack_chk_fail ();
0x00001776 nop |
0x00001778 adds r6, r2, r4 | r6 = r2 + r4;
0x0000177a movs r1, r0 | r1 = r0;
0x0000177c lsls r4, r2, 3 | r4 = r2 << 3;
0x0000177e movs r0, r0 |
0x00001780 lsrs r2, r4, 4 | r2 = r4 >> 4;
0x00001782 movs r0, r0 |
0x00001784 adds r6, r5, r2 | r6 = r5 + r2;
0x00001786 movs r1, r0 | r1 = r0;
0x00001788 lsrs r4, r4, 0x20 | r4 >>= 0x20;
0x0000178a movs r0, r0 |
0x0000178c lsrs r6, r3, 0x20 | r6 = r3 >> 0x20;
0x0000178e movs r0, r0 |
0x00001790 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00001794 sub sp, 0x13c |
0x00001796 ldr r4, [pc, 0x248] |
0x00001798 add.w r8, sp, 0x38 | r8 += s;
0x0000179c mov r6, r0 | r6 = r0;
0x0000179e movs r2, 0xfc | r2 = 0xfc;
0x000017a0 ldr r3, [pc, 0x240] | r3 = *(0x19e4);
0x000017a2 movs r1, 0 | r1 = 0;
0x000017a4 add r4, pc | r4 = 0x318a;
0x000017a6 mov r0, r8 | r0 = r8;
0x000017a8 ldr r5, [pc, 0x23c] |
0x000017aa add.w sb, sp, 0x2c | sb += var_2ch;
0x000017ae ldr r3, [r4, r3] |
0x000017b0 add.w sl, sp, 0x30 | sl += var_30h;
0x000017b4 add.w fp, sp, 0x34 |
0x000017b8 movs r4, 0 | r4 = 0;
0x000017ba add r5, pc | r5 = 0x31a6;
0x000017bc ldr r3, [r3] | r3 = *(0x318a);
0x000017be str r3, [sp, 0x134] | var_134h = r3;
0x000017c0 mov.w r3, 0 | r3 = 0;
0x000017c4 blx 0xc78 | memset (r0, r1, r2);
0x000017c8 ldr r0, [pc, 0x220] |
0x000017ca add r3, sp, 0x28 | r3 += var_28h;
0x000017cc str r3, [sp, 0x20] | var_20h = r3;
0x000017ce str r4, [sp, 0x28] | var_28h = r4;
0x000017d0 add r0, pc | r0 = 0x31c0;
0x000017d2 str.w r4, [sb] | __asm ("str.w r4, [sb]");
0x000017d6 str.w r4, [sl] | __asm ("str.w r4, [sl]");
0x000017da str.w r4, [fp] | __asm ("str.w r4, [fp]");
0x000017de blx 0xdd8 | r0 = fcn_00000dd8 ();
0x000017e2 cmp r0, 0 |
| if (r0 == 0) {
0x000017e4 beq.w 0x1926 | goto label_7;
| }
0x000017e8 movs r2, 0xa | r2 = 0xa;
0x000017ea mov r1, r4 | r1 = r4;
0x000017ec blx 0xbe8 | r0 = strtol (r0, r1, r2);
0x000017f0 cmp.w r0, 0x100 |
0x000017f4 mov r2, r0 | r2 = r0;
| if (r0 > 0x100) {
0x000017f6 bhi.w 0x1926 | goto label_7;
| }
0x000017fa adds r0, 1 | r0++;
0x000017fc str r2, [sp, 0x24] | nmemb = r2;
0x000017fe blx 0xd90 | fcn_00000d90 ();
0x00001802 ldr r3, [pc, 0x1ec] |
0x00001804 movs r1, 1 | r1 = 1;
0x00001806 ldr r2, [sp, 0x24] | r2 = nmemb;
0x00001808 mov r7, r0 | r7 = r0;
0x0000180a ldr r3, [r5, r3] | r3 = *((r5 + r3));
0x0000180c ldr r3, [r3] | r3 = *(0x19f2);
0x0000180e blx 0xcd8 | fread (r0, r1, r2, r3);
0x00001812 ldr r2, [sp, 0x24] | r2 = nmemb;
0x00001814 cmp r2, r0 |
| if (r2 != r0) {
0x00001816 bne.w 0x1920 | goto label_8;
| }
0x0000181a cmp r7, 0 |
| if (r7 == 0) {
0x0000181c beq.w 0x1926 | goto label_7;
| }
0x00001820 mov r2, r8 | r2 = r8;
0x00001822 mov r1, r4 | r1 = r4;
0x00001824 mov r0, r7 | r0 = r7;
0x00001826 blx 0xc00 | r0 = json_loads ();
0x0000182a mov r5, r0 | r5 = r0;
0x0000182c cmp r0, 0 |
| if (r0 == 0) {
0x0000182e beq.w 0x197c | goto label_9;
| }
0x00001832 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00001834 mov r1, r8 | r1 = r8;
0x00001836 mov r2, r4 | r2 = r4;
0x00001838 str.w fp, [sp, 0x1c] | __asm ("str.w fp, [var_1ch]");
0x0000183c str.w sb, [sp, 0x14] | __asm ("str.w sb, [var_14h_2]");
0x00001840 str r3, [sp, 4] | var_4h = r3;
0x00001842 ldr r3, [pc, 0x1b0] |
0x00001844 str.w sl, [sp, 0xc] | __asm ("str.w sl, [var_ch]");
0x00001848 add r3, pc | r3 = 0x3242;
0x0000184a str r3, [sp, 0x18] | var_18h_2 = r3;
0x0000184c ldr r3, [pc, 0x1a8] |
0x0000184e add r3, pc | r3 = 0x324a;
0x00001850 str r3, [sp, 0x10] | var_10h_2 = r3;
0x00001852 ldr r3, [pc, 0x1a8] |
0x00001854 add r3, pc | r3 = 0x3256;
0x00001856 str r3, [sp, 8] | var_8h = r3;
0x00001858 ldr r3, [pc, 0x1a4] |
0x0000185a add r3, pc | r3 = 0x325e;
0x0000185c str r3, [sp] | *(sp) = r3;
0x0000185e ldr r3, [pc, 0x1a4] |
0x00001860 add r3, pc | r3 = 0x326a;
0x00001862 blx 0xd6c | r0 = fcn_00000d6c ();
0x00001866 cmp r0, 0 |
| if (r0 != 0) {
0x00001868 bne.w 0x19a8 | goto label_10;
| }
0x0000186c ldr.w r0, [sb] | r0 = *(sb);
0x00001870 cmp r0, 0 |
| if (r0 == 0) {
0x00001872 beq 0x18f6 | goto label_11;
| }
0x00001874 blx 0xd84 | r0 = fcn_00000d84 ();
0x00001878 cmp r0, 0x40 |
| if (r0 > 0x40) {
0x0000187a bhi 0x18f6 | goto label_11;
| }
0x0000187c ldr.w r0, [sl] | r0 = *(sl);
| if (r0 != 0) {
0x00001880 cbz r0, 0x188a |
0x00001882 blx 0xd84 | r0 = fcn_00000d84 ();
0x00001886 cmp r0, 0x40 |
| if (r0 > 0x40) {
0x00001888 bhi 0x1952 | goto label_12;
| }
| }
0x0000188a movs r0, 0x10 | r0 = 0x10;
0x0000188c blx 0xca8 | g_malloc ();
0x00001890 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00001892 mov r4, r0 | r4 = r0;
0x00001894 ldr r0, [r3] | r0 = *(r3);
0x00001896 blx 0xc60 | g_strdup ();
0x0000189a str r0, [r4] | *(r4) = r0;
0x0000189c ldr.w r0, [sb] | r0 = *(sb);
0x000018a0 blx 0xc60 | g_strdup ();
0x000018a4 str r0, [r4, 4] | *((r4 + 4)) = r0;
0x000018a6 ldr.w r0, [sl] | r0 = *(sl);
0x000018aa blx 0xc60 | g_strdup ();
0x000018ae ldr.w r3, [fp] | r3 = *(fp);
0x000018b2 strd r0, r3, [r4, 8] | __asm ("strd r0, r3, [r4, 8]");
| label_2:
0x000018b6 ldr r3, [r5, 4] | r3 = *((r5 + 4));
0x000018b8 adds r3, 1 | r3++;
| if (r3 == 1) {
0x000018ba beq 0x18d4 | goto label_3;
| }
0x000018bc adds r3, r5, 4 | r3 = r5 + 4;
0x000018be dmb ish | __asm ("dmb ish");
| do {
0x000018c2 ldrex r2, [r3] | __asm ("ldrex r2, [r3]");
0x000018c6 subs r2, 1 | r2--;
0x000018c8 strex r1, r2, [r3] | __asm ("strex r1, r2, [r3]");
0x000018cc cmp r1, 0 |
0x000018ce bne 0x18c2 |
| } while (r1 != 0);
0x000018d0 cmp r2, 0 |
| if (r2 == 0) {
0x000018d2 beq 0x19d2 | goto label_13;
| }
| do {
| label_3:
0x000018d4 mov r0, r7 | r0 = r7;
0x000018d6 blx 0xd0c | fcn_00000d0c ();
0x000018da ldr r2, [pc, 0x12c] |
0x000018dc ldr r3, [pc, 0x104] | r3 = *(0x19e4);
0x000018de add r2, pc | r2 = 0x32ec;
0x000018e0 ldr r3, [r2, r3] | r3 = *(0x32ec);
0x000018e2 ldr r2, [r3] | r2 = *(0x32ec);
0x000018e4 ldr r3, [sp, 0x134] | r3 = var_134h;
0x000018e6 eors r2, r3 | r2 ^= r3;
0x000018e8 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000018ec bne 0x19da | goto label_14;
| }
0x000018ee mov r0, r4 | r0 = r4;
0x000018f0 add sp, 0x13c |
0x000018f2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_11:
0x000018f6 ldr r2, [pc, 0x114] |
0x000018f8 movs r1, 1 | r1 = 1;
0x000018fa movs r0, 4 | r0 = 4;
0x000018fc movs r4, 0 | r4 = 0;
0x000018fe add r2, pc | r2 = 0x3310;
0x00001900 blx 0xcf0 | syslog_chk ();
0x00001904 mov r0, r6 | r0 = r6;
0x00001906 blx 0xd48 | fcn_00000d48 ();
0x0000190a bl 0x14cc | fcn_000014cc ();
0x0000190e ldr r3, [pc, 0x100] |
0x00001910 mov r1, r0 | r1 = r0;
0x00001912 movw r2, 0x835 | r2 = 0x835;
0x00001916 mov r0, r6 | r0 = r6;
0x00001918 add r3, pc | r3 = 0x332e;
0x0000191a blx 0xdcc | fcn_00000dcc ();
0x0000191e b 0x18b6 | goto label_2;
| label_8:
0x00001920 mov r0, r7 | r0 = r7;
0x00001922 blx 0xd0c | fcn_00000d0c ();
| label_7:
0x00001926 ldr r2, [pc, 0xec] |
0x00001928 movs r1, 1 | r1 = 1;
0x0000192a movs r0, 3 | r0 = 3;
0x0000192c movs r7, 0 | r7 = 0;
0x0000192e mov r4, r7 | r4 = r7;
0x00001930 add r2, pc | r2 = 0x334a;
0x00001932 blx 0xcf0 | syslog_chk ();
0x00001936 mov r0, r6 | r0 = r6;
0x00001938 blx 0xd48 | fcn_00000d48 ();
0x0000193c bl 0x14cc | fcn_000014cc ();
0x00001940 ldr r3, [pc, 0xd4] |
0x00001942 mov r1, r0 | r1 = r0;
0x00001944 mov.w r2, 0x7d0 | r2 = 0x7d0;
0x00001948 mov r0, r6 | r0 = r6;
0x0000194a add r3, pc | r3 = 0x3366;
0x0000194c blx 0xdcc | fcn_00000dcc ();
0x00001950 b 0x18d4 |
| } while (1);
| label_12:
0x00001952 ldr r2, [pc, 0xc8] |
0x00001954 movs r1, 1 | r1 = 1;
0x00001956 movs r0, 4 | r0 = 4;
0x00001958 movs r4, 0 | r4 = 0;
0x0000195a add r2, pc | r2 = 0x337c;
0x0000195c blx 0xcf0 | syslog_chk ();
0x00001960 mov r0, r6 | r0 = r6;
0x00001962 blx 0xd48 | fcn_00000d48 ();
0x00001966 bl 0x14cc | fcn_000014cc ();
0x0000196a ldr r3, [pc, 0xb4] |
0x0000196c mov r1, r0 | r1 = r0;
0x0000196e movw r2, 0x835 | r2 = 0x835;
0x00001972 mov r0, r6 | r0 = r6;
0x00001974 add r3, pc | r3 = 0x339a;
0x00001976 blx 0xdcc | fcn_00000dcc ();
0x0000197a b 0x18b6 | goto label_2;
| label_9:
0x0000197c ldr r2, [pc, 0xa4] |
0x0000197e add r3, sp, 0x94 | r3 += var_94h_2;
0x00001980 movs r1, 1 | r1 = 1;
0x00001982 mov r4, r0 | r4 = r0;
0x00001984 movs r0, 4 | r0 = 4;
0x00001986 add r2, pc | r2 = 0x33ae;
0x00001988 blx 0xcf0 | syslog_chk ();
0x0000198c mov r0, r6 | r0 = r6;
0x0000198e blx 0xd48 | fcn_00000d48 ();
0x00001992 bl 0x14cc | fcn_000014cc ();
0x00001996 ldr r3, [pc, 0x90] |
0x00001998 mov r1, r0 | r1 = r0;
0x0000199a movw r2, 0x835 | r2 = 0x835;
0x0000199e mov r0, r6 | r0 = r6;
0x000019a0 add r3, pc | r3 = 0x33ce;
0x000019a2 blx 0xdcc | fcn_00000dcc ();
0x000019a6 b 0x18d4 | goto label_3;
| label_10:
0x000019a8 ldr r2, [pc, 0x80] |
0x000019aa add r3, sp, 0x94 | r3 += var_94h_2;
0x000019ac movs r1, 1 | r1 = 1;
0x000019ae movs r0, 4 | r0 = 4;
0x000019b0 add r2, pc | r2 = 0x33e0;
0x000019b2 blx 0xcf0 | syslog_chk ();
0x000019b6 mov r0, r6 | r0 = r6;
0x000019b8 blx 0xd48 | fcn_00000d48 ();
0x000019bc bl 0x14cc | fcn_000014cc ();
0x000019c0 ldr r3, [pc, 0x6c] |
0x000019c2 mov r1, r0 | r1 = r0;
0x000019c4 movw r2, 0x835 | r2 = 0x835;
0x000019c8 mov r0, r6 | r0 = r6;
0x000019ca add r3, pc | r3 = 0x33fe;
0x000019cc blx 0xdcc | fcn_00000dcc ();
0x000019d0 b 0x18b6 | goto label_2;
| label_13:
0x000019d2 mov r0, r5 | r0 = r5;
0x000019d4 blx 0xd54 | fcn_00000d54 ();
0x000019d8 b 0x18d4 | goto label_3;
| label_14:
0x000019da blx 0xcfc | stack_chk_fail ();
0x000019de nop |
0x000019e0 asrs r0, r5, 0x1d | r0 = r5 >> 0x1d;
0x000019e2 movs r1, r0 | r1 = r0;
0x000019e4 lsls r4, r2, 3 | r4 = r2 << 3;
0x000019e6 movs r0, r0 |
0x000019e8 asrs r2, r2, 0x1d | r2 >>= 0x1d;
0x000019ea movs r1, r0 | r1 = r0;
0x000019ec lsls r4, r1, 0x1f | r4 = r1 << 0x1f;
0x000019ee movs r0, r0 |
0x000019f0 lsls r0, r2, 3 | r0 = r2 << 3;
0x000019f2 movs r0, r0 |
0x000019f4 lsls r0, r6, 0x1e | r0 = r6 << 0x1e;
0x000019f6 movs r0, r0 |
0x000019f8 lsls r2, r6, 0x1e | r2 = r6 << 0x1e;
0x000019fa movs r0, r0 |
0x000019fc lsls r4, r6, 0x1e | r4 = r6 << 0x1e;
0x000019fe movs r0, r0 |
0x00001a00 lsls r6, r6, 0x1e | r6 <<= 0x1e;
0x00001a02 movs r0, r0 |
0x00001a04 lsls r0, r0, 0x1e | r0 <<= 0x1e;
0x00001a06 movs r0, r0 |
0x00001a08 asrs r6, r5, 0x18 | r6 = r5 >> 0x18;
0x00001a0a movs r1, r0 | r1 = r0;
0x00001a0c lsls r6, r3, 0x1c | r6 = r3 << 0x1c;
0x00001a0e movs r0, r0 |
0x00001a10 lsls r4, r6, 0x1a | r4 = r6 << 0x1a;
0x00001a12 movs r0, r0 |
0x00001a14 lsls r4, r7, 0x19 | r4 = r7 << 0x19;
0x00001a16 movs r0, r0 |
0x00001a18 lsls r2, r3, 0x15 | r2 = r3 << 0x15;
0x00001a1a movs r0, r0 |
0x00001a1c lsls r6, r3, 0x1b | r6 = r3 << 0x1b;
0x00001a1e movs r0, r0 |
0x00001a20 lsls r0, r3, 0x19 | r0 = r3 << 0x19;
0x00001a22 movs r0, r0 |
0x00001a24 lsls r6, r3, 0x12 | r6 = r3 << 0x12;
0x00001a26 movs r0, r0 |
0x00001a28 lsls r4, r5, 0x18 | r4 = r5 << 0x18;
0x00001a2a movs r0, r0 |
0x00001a2c lsls r4, r6, 0x11 | r4 = r6 << 0x11;
0x00001a2e movs r0, r0 |
0x00001a30 lsls r2, r0, 0x18 | r2 = r0 << 0x18;
0x00001a32 movs r0, r0 |
| if (r0 != 0) {
0x00001a34 cbz r0, 0x1a56 |
0x00001a36 push {r4, lr} |
0x00001a38 mov r4, r0 | r4 = r0;
0x00001a3a ldr r0, [r0] | r0 = *(r0);
0x00001a3c blx 0xd0c | fcn_00000d0c ();
0x00001a40 ldr r0, [r4, 4] | r0 = *((r4 + 4));
0x00001a42 blx 0xd0c | fcn_00000d0c ();
0x00001a46 ldr r0, [r4, 8] | r0 = *((r4 + 8));
0x00001a48 blx 0xd0c | fcn_00000d0c ();
0x00001a4c mov r0, r4 | r0 = r4;
0x00001a4e pop.w {r4, lr} |
0x00001a52 b.w 0xd08 | void (*0xd08)() ();
| }
0x00001a56 bx lr | return;
| }
[*] Function sprintf used 2 times oak.cgi