[*] 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-80367616.squashfs_v4_le_extract/usr/html/axis-cgi/oak.cgi @ 0x1968 */
| #include <stdint.h>
|
; (fcn) fcn.00001968 () | void fcn_00001968 (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;
| 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_2ch;
| int16_t var_30h;
| int16_t var_34h;
| void * s;
| int16_t var_94h_2;
| int16_t var_134h;
| r0 = arg1;
| r1 = arg2;
0x00001968 mvnsmi lr, 0xb4000 | __asm ("mvnsmi lr, aav.0x000000ff");
0x0000196c mov r5, r0 | r5 = r0;
0x0000196e ldr r0, [pc, 0x190] |
0x00001970 mov r8, r1 | r8 = r1;
0x00001972 movw r3, 0x7661 |
0x00001976 sub sp, 0x44 |
0x00001978 ldr r1, [pc, 0x188] | r1 = *(0x1b04);
0x0000197a movt r3, 0x7368 | r3 = 0x73687661;
0x0000197e add r0, pc | r0 = 0x3484;
0x00001980 movs r2, 0 | r2 = 0;
0x00001982 ldr r1, [r0, r1] |
0x00001984 ldr r1, [r1] | r1 = *(0x3484);
0x00001986 str r1, [sp, 0x3c] | var_3ch = r1;
0x00001988 mov.w r1, 0 | r1 = 0;
0x0000198c strd r2, r3, [sp, 0x10] | __asm ("strd r2, r3, [sp, 0x10]");
0x00001990 bl 0x1874 | r0 = fcn_00001874 ();
| if (r0 == 0) {
0x00001994 cbz r0, 0x19cc | goto label_0;
| }
0x00001996 mov r6, r0 | r6 = r0;
0x00001998 ldrb r0, [r5] | r0 = *(r5);
| if (r0 == 0) {
0x0000199a cbz r0, 0x19ac | goto label_4;
| }
0x0000199c mov r4, r5 | r4 = r5;
| do {
0x0000199e blx 0xe00 | g_ascii_tolower ();
0x000019a2 strb r0, [r4] | *(r4) = r0;
0x000019a4 ldrb r0, [r4, 1]! | r0 = *((r4 += 1));
0x000019a8 cmp r0, 0 |
0x000019aa bne 0x199e |
| } while (r0 != 0);
| label_4:
0x000019ac movs r4, 0 | r4 = 0;
0x000019ae add r7, sp, 0x2c | r7 += var_2ch_2;
0x000019b0 add.w sb, sp, 0x14 | sb += var_14h_3;
0x000019b4 strd r4, r4, [sp, 0x28] | __asm ("strd r4, r4, [sp, 0x28]");
0x000019b8 movs r2, 4 | r2 = 4;
0x000019ba mov r1, sb | r1 = sb;
0x000019bc mov r0, r6 | r0 = r6;
0x000019be strd r4, r4, [r7, 4] | __asm ("strd r4, r4, [var_134h]");
0x000019c2 str r4, [r7, 0xc] | *((r7 + 0xc)) = r4;
0x000019c4 blx 0xf90 | r0 = fcn_00000f90 ();
0x000019c8 cmp r0, 1 |
0x000019ca beq 0x1a00 |
| while (r0 != 1) {
| label_0:
0x000019cc ldr r2, [pc, 0x138] |
0x000019ce movs r6, 0 | r6 = 0;
0x000019d0 movs r1, 1 | r1 = 1;
0x000019d2 movs r0, 3 | r0 = 3;
0x000019d4 mov sb, r6 | sb = r6;
0x000019d6 add r2, pc | r2 = 0x34e2;
0x000019d8 blx 0xe6c | syslog_chk ();
| label_1:
0x000019dc mov r0, r6 | r0 = r6;
0x000019de blx 0xe88 | fcn_00000e88 ();
0x000019e2 ldr r2, [pc, 0x128] |
0x000019e4 ldr r3, [pc, 0x11c] | r3 = *(0x1b04);
0x000019e6 add r2, pc | r2 = 0x34f8;
0x000019e8 ldr r3, [r2, r3] | r3 = *(0x34f8);
0x000019ea ldr r2, [r3] | r2 = *(0x34f8);
0x000019ec ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x000019ee eors r2, r3 | r2 ^= r3;
0x000019f0 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000019f4 bne.w 0x1afa | goto label_5;
| }
0x000019f8 mov r0, sb | r0 = sb;
0x000019fa add sp, 0x44 |
0x000019fc pop.w {r4, r5, r6, r7, r8, sb, pc} |
0x00001a00 mov r0, r5 | r0 = r5;
0x00001a02 blx 0xef4 | fcn_00000ef4 ();
0x00001a06 mov r1, r5 | r1 = r5;
0x00001a08 mov r2, r0 | r2 = r0;
0x00001a0a mov r0, r6 | r0 = r6;
0x00001a0c blx 0xf90 | r0 = fcn_00000f90 ();
0x00001a10 cmp r0, 1 |
0x00001a12 bne 0x19cc |
| }
0x00001a14 movs r2, 4 | r2 = 4;
0x00001a16 add r1, sp, 0x10 | r1 += var_10h_3;
0x00001a18 mov r0, r6 | r0 = r6;
0x00001a1a blx 0xf90 | r0 = fcn_00000f90 ();
0x00001a1e cmp r0, 1 |
| if (r0 != 1) {
0x00001a20 bne 0x19cc | goto label_0;
| }
0x00001a22 add r5, sp, 0x28 | r5 += var_28h;
0x00001a24 mov r2, r4 | r2 = r4;
0x00001a26 mov r1, r5 | r1 = r5;
0x00001a28 mov r0, r6 | r0 = r6;
0x00001a2a blx 0xf30 | r0 = fcn_00000f30 ();
| if (r0 == 0) {
0x00001a2e cbnz r0, 0x1a38 |
0x00001a30 mov r0, r6 | r0 = r6;
0x00001a32 blx 0xf18 | fcn_00000f18 ();
0x00001a36 b 0x19cc | goto label_0;
| }
0x00001a38 mov r0, r6 | r0 = r6;
0x00001a3a blx 0xf18 | fcn_00000f18 ();
0x00001a3e movs r0, 0x14 | r0 = 0x14;
0x00001a40 blx 0xea0 | r0 = fcn_00000ea0 ();
0x00001a44 mov r6, r0 | r6 = r0;
0x00001a46 cmp r0, 0 |
| if (r0 == 0) {
0x00001a48 beq 0x19cc | goto label_0;
| }
0x00001a4a mov ip, r5 |
0x00001a4c strd r4, r4, [sp, 0x14] | __asm ("strd r4, r4, [sp, 0x14]");
0x00001a50 ldm.w ip!, {r0, r1, r2, r3} | r0 = *(ip!);
| r1 = *((ip! + 4));
| r2 = *((ip! + 8));
| r3 = *((ip! + 12));
0x00001a54 strd r4, r4, [sp, 0x1c] | __asm ("strd r4, r4, [sp, 0x1c]");
0x00001a58 str r4, [sp, 0x24] | var_24h_2 = r4;
0x00001a5a str r0, [r6] | *(r6) = r0;
0x00001a5c ldr.w r0, [ip] | r0 = *(ip);
0x00001a60 str r1, [r6, 4] | *((r6 + 4)) = r1;
0x00001a62 strd r4, r4, [sp, 0x28] | __asm ("strd r4, r4, [sp, 0x28]");
0x00001a66 str r2, [r6, 8] | *((r6 + 8)) = r2;
0x00001a68 strd r4, r4, [r7, 4] | __asm ("strd r4, r4, [var_134h]");
0x00001a6c str r4, [r7, 0xc] | *((r7 + 0xc)) = r4;
0x00001a6e str r3, [r6, 0xc] | *((r6 + 0xc)) = r3;
0x00001a70 str r0, [r6, 0x10] | *((r6 + 0x10)) = r0;
0x00001a72 bl 0x1874 | r0 = fcn_00001874 ();
0x00001a76 mov r7, r0 | r7 = r0;
| if (r0 == 0) {
0x00001a78 cbz r0, 0x1ae8 | goto label_6;
| }
0x00001a7a movs r2, 0x14 | r2 = 0x14;
0x00001a7c mov r1, r6 | r1 = r6;
0x00001a7e blx 0xf90 | fcn_00000f90 ();
0x00001a82 mov r0, r8 | r0 = r8;
0x00001a84 blx 0xef4 | fcn_00000ef4 ();
0x00001a88 mov r1, r8 | r1 = r8;
0x00001a8a mov r2, r0 | r2 = r0;
0x00001a8c mov r0, r7 | r0 = r7;
0x00001a8e blx 0xf90 | fcn_00000f90 ();
0x00001a92 mov r2, r4 | r2 = r4;
0x00001a94 mov r1, sb | r1 = sb;
0x00001a96 mov r0, r7 | r0 = r7;
0x00001a98 blx 0xf30 | fcn_00000f30 ();
0x00001a9c mov r0, r7 | r0 = r7;
0x00001a9e blx 0xf18 | fcn_00000f18 ();
0x00001aa2 blx 0xd94 | EVP_sha1 ();
0x00001aa6 movs r2, 0x14 | r2 = 0x14;
0x00001aa8 mov r3, sb | r3 = sb;
0x00001aaa mov r1, r6 | r1 = r6;
0x00001aac strd r5, r4, [sp, 4] | __asm ("strd r5, r4, [sp, 4]");
0x00001ab0 str r2, [sp] | *(sp) = r2;
0x00001ab2 blx 0xf3c | r0 = fcn_00000f3c ();
| if (r0 == 0) {
0x00001ab6 cbz r0, 0x1ae8 | goto label_6;
| }
0x00001ab8 ldr r7, [pc, 0x54] |
0x00001aba mov r1, r4 | r1 = r4;
0x00001abc movs r0, 0x29 | r0 = 0x29;
0x00001abe mov r4, r5 | r4 = r5;
0x00001ac0 blx 0xd34 | g_strnfill ();
0x00001ac4 add.w r8, sp, 0x3c | r8 += var_3ch;
0x00001ac8 mov sb, r0 | sb = r0;
0x00001aca mov r5, r0 | r5 = r0;
0x00001acc add r7, pc | r7 = 0x35e0;
| do {
0x00001ace ldrb r2, [r4], 1 | r2 = *(r4);
| r4++;
0x00001ad2 mov r0, r5 | r0 = r5;
0x00001ad4 mov r1, r7 | r1 = r7;
0x00001ad6 adds r5, 2 | r5 += 2;
0x00001ad8 blx 0xe30 | g_sprintf ()
0x00001adc cmp r8, r4 |
0x00001ade bne 0x1ace |
| } while (r8 != r4);
0x00001ae0 cmp.w sb, 0 |
| if (sb != 0) {
0x00001ae4 bne.w 0x19dc | goto label_1;
| }
| label_6:
0x00001ae8 ldr r2, [pc, 0x28] |
0x00001aea movs r1, 1 | r1 = 1;
0x00001aec movs r0, 3 | r0 = 3;
0x00001aee mov.w sb, 0 | sb = 0;
0x00001af2 add r2, pc | r2 = 0x360a;
0x00001af4 blx 0xe6c | syslog_chk ();
0x00001af8 b 0x19dc | goto label_1;
| label_5:
0x00001afa blx 0xe78 | stack_chk_fail ();
0x00001afe nop |
0x00001b00 movs r5, 0x7e | r5 = 0x7e;
0x00001b02 movs r0, r0 |
0x00001b04 lsls r4, r4, 3 | r4 <<= 3;
0x00001b06 movs r0, r0 |
0x00001b08 lsrs r6, r3, 0xa | r6 = r3 >> 0xa;
0x00001b0a movs r0, r0 |
0x00001b0c movs r5, 0x16 | r5 = 0x16;
0x00001b0e movs r0, r0 |
0x00001b10 lsrs r0, r4, 6 | r0 = r4 >> 6;
0x00001b12 movs r0, r0 |
0x00001b14 lsrs r2, r3, 6 | r2 = r3 >> 6;
0x00001b16 movs r0, r0 |
0x00001b18 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00001b1c mov r3, r0 | r3 = r0;
0x00001b1e sub sp, 0x13c |
0x00001b20 ldr r4, [pc, 0x250] |
0x00001b22 add r7, sp, 0x38 | r7 += s;
0x00001b24 movs r2, 0xfc | r2 = 0xfc;
0x00001b26 str r3, [sp, 0x20] | var_20h = r3;
0x00001b28 movs r1, 0 | r1 = 0;
0x00001b2a ldr r3, [pc, 0x24c] | r3 = *(0x1d7a);
0x00001b2c add r4, pc | r4 = 0x38a4;
0x00001b2e mov r0, r7 | r0 = r7;
0x00001b30 ldr r5, [pc, 0x248] |
0x00001b32 add.w fp, sp, 0x28 |
0x00001b36 add.w r8, sp, 0x2c | r8 += var_2ch;
0x00001b3a ldr r3, [r4, r3] |
0x00001b3c add.w sb, sp, 0x30 | sb += var_30h;
0x00001b40 add.w sl, sp, 0x34 | sl += var_34h;
0x00001b44 movs r4, 0 | r4 = 0;
0x00001b46 add r5, pc | r5 = 0x38c6;
0x00001b48 ldr r3, [r3] | r3 = *(0x38a4);
0x00001b4a str r3, [sp, 0x134] | var_134h = r3;
0x00001b4c mov.w r3, 0 | r3 = 0;
0x00001b50 blx 0xde8 | memset (r0, r1, r2);
0x00001b54 ldr r0, [pc, 0x228] |
0x00001b56 str.w r4, [fp] | __asm ("str.w r4, [fp]");
0x00001b5a str.w r4, [r8] | __asm ("str.w r4, [r8]");
0x00001b5e add r0, pc | r0 = 0x38e2;
0x00001b60 str.w r4, [sb] | __asm ("str.w r4, [sb]");
0x00001b64 str.w r4, [sl] | __asm ("str.w r4, [sl]");
0x00001b68 blx 0xf60 | r0 = fcn_00000f60 ();
0x00001b6c cmp r0, 0 |
| if (r0 == 0) {
0x00001b6e beq.w 0x1cbe | goto label_7;
| }
0x00001b72 movs r2, 0xa | r2 = 0xa;
0x00001b74 mov r1, r4 | r1 = r4;
0x00001b76 blx 0xd4c | r0 = strtol (r0, r1, r2);
0x00001b7a cmp.w r0, 0x100 |
0x00001b7e mov r2, r0 | r2 = r0;
| if (r0 > 0x100) {
0x00001b80 bhi.w 0x1cbe | goto label_7;
| }
0x00001b84 adds r0, 1 | r0++;
0x00001b86 str r2, [sp, 0x24] | nmemb = r2;
0x00001b88 blx 0xf00 | fcn_00000f00 ();
0x00001b8c ldr r3, [pc, 0x1f4] |
0x00001b8e movs r1, 1 | r1 = 1;
0x00001b90 ldr r2, [sp, 0x24] | r2 = nmemb;
0x00001b92 mov r6, r0 | r6 = r0;
0x00001b94 ldr r3, [r5, r3] | r3 = *((r5 + r3));
0x00001b96 ldr r3, [r3] | r3 = *(0x1d84);
0x00001b98 blx 0xe54 | fread (r0, r1, r2, r3);
0x00001b9c ldr r2, [sp, 0x24] | r2 = nmemb;
0x00001b9e cmp r2, r0 |
| if (r2 != r0) {
0x00001ba0 bne.w 0x1cb8 | goto label_8;
| }
0x00001ba4 cmp r6, 0 |
| if (r6 == 0) {
0x00001ba6 beq.w 0x1cbe | goto label_7;
| }
0x00001baa mov r2, r7 | r2 = r7;
0x00001bac mov r1, r4 | r1 = r4;
0x00001bae mov r0, r6 | r0 = r6;
0x00001bb0 blx 0xdd0 | r0 = json_loads ();
0x00001bb4 mov r5, r0 | r5 = r0;
0x00001bb6 cmp r0, 0 |
| if (r0 == 0) {
0x00001bb8 beq.w 0x1d16 | goto label_9;
| }
0x00001bbc ldr r3, [pc, 0x1c8] |
0x00001bbe mov r2, r4 | r2 = r4;
0x00001bc0 mov r1, r7 | r1 = r7;
0x00001bc2 str.w sl, [sp, 0x1c] | __asm ("str.w sl, [var_1ch]");
0x00001bc6 str.w r8, [sp, 0x14] | __asm ("str.w r8, [var_14h_2]");
0x00001bca add r3, pc | r3 = 0x3956;
0x00001bcc str.w sb, [sp, 0xc] | __asm ("str.w sb, [var_ch]");
0x00001bd0 str r3, [sp, 0x18] | var_18h_2 = r3;
0x00001bd2 ldr r3, [pc, 0x1b8] |
0x00001bd4 str.w fp, [sp, 4] | __asm ("str.w fp, [var_4h]");
0x00001bd8 add r3, pc | r3 = 0x396a;
0x00001bda str r3, [sp, 0x10] | var_10h_2 = r3;
0x00001bdc ldr r3, [pc, 0x1b0] |
0x00001bde add r3, pc | r3 = 0x3972;
0x00001be0 str r3, [sp, 8] | var_8h = r3;
0x00001be2 ldr r3, [pc, 0x1b0] |
0x00001be4 add r3, pc | r3 = 0x397e;
0x00001be6 str r3, [sp] | *(sp) = r3;
0x00001be8 ldr r3, [pc, 0x1ac] |
0x00001bea add r3, pc | r3 = 0x3986;
0x00001bec blx 0xd88 | r0 = json_unpack_ex ();
0x00001bf0 cmp r0, 0 |
| if (r0 != 0) {
0x00001bf2 bne.w 0x1d44 | goto label_10;
| }
0x00001bf6 ldr.w r0, [r8] | r0 = *(r8);
| if (r0 == 0) {
0x00001bfa cbz r0, 0x1c68 | goto label_11;
| }
0x00001bfc blx 0xef4 | r0 = fcn_00000ef4 ();
0x00001c00 cmp r0, 0x40 |
| if (r0 > 0x40) {
0x00001c02 bhi 0x1c68 | goto label_11;
| }
0x00001c04 ldr.w r0, [sb] | r0 = *(sb);
| if (r0 != 0) {
0x00001c08 cbz r0, 0x1c12 |
0x00001c0a blx 0xef4 | r0 = fcn_00000ef4 ();
0x00001c0e cmp r0, 0x40 |
| if (r0 > 0x40) {
0x00001c10 bhi 0x1cec | goto label_12;
| }
| }
0x00001c12 movs r0, 0x10 | r0 = 0x10;
0x00001c14 blx 0xe18 | g_malloc ();
0x00001c16 stmdb r0, {r2, sb, sl, lr} | __asm ("stmdb r0, {r2, sb, sl, lr}");
0x00001c1a ldr.w r0, [fp] | r0 = *(fp);
0x00001c1e blx 0xdc4 | g_strdup ();
0x00001c22 str r0, [r4] | *(r4) = r0;
0x00001c24 ldr.w r0, [r8] | r0 = *(r8);
0x00001c28 blx 0xdc4 | g_strdup ();
0x00001c2c str r0, [r4, 4] | *((r4 + 4)) = r0;
0x00001c2e ldr.w r0, [sb] | r0 = *(sb);
0x00001c32 blx 0xdc4 | g_strdup ();
0x00001c36 ldr.w r3, [sl] | r3 = *(sl);
0x00001c3a strd r0, r3, [r4, 8] | __asm ("strd r0, r3, [r4, 8]");
0x00001c3e ldr r3, [r5, 4] | r3 = *((r5 + 4));
0x00001c40 adds r3, 1 | r3++;
| if (r3 != 1) {
0x00001c42 bne 0x1c98 | goto label_13;
| }
| do {
| label_2:
0x00001c44 mov r0, r6 | r0 = r6;
0x00001c46 blx 0xe88 | fcn_00000e88 ();
0x00001c4a ldr r2, [pc, 0x150] |
0x00001c4c ldr r3, [pc, 0x128] | r3 = *(0x1d78);
0x00001c4e add r2, pc | r2 = 0x39f0;
0x00001c50 ldr r3, [r2, r3] | r3 = *(0x39f0);
0x00001c52 ldr r2, [r3] | r2 = *(0x39f0);
0x00001c54 ldr r3, [sp, 0x134] | r3 = var_134h;
0x00001c56 eors r2, r3 | r2 ^= r3;
0x00001c58 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00001c5c bne.w 0x1d70 | goto label_14;
| }
0x00001c60 mov r0, r4 | r0 = r4;
0x00001c62 add sp, 0x13c |
0x00001c64 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_11:
0x00001c68 ldr r2, [pc, 0x134] |
0x00001c6a movs r1, 1 | r1 = 1;
0x00001c6c movs r0, 4 | r0 = 4;
0x00001c6e add r2, pc | r2 = 0x3a12;
0x00001c70 blx 0xe6c | syslog_chk ();
0x00001c74 ldr r4, [sp, 0x20] | r4 = var_20h;
0x00001c76 mov r0, r4 | r0 = r4;
0x00001c78 blx 0xec4 | fcn_00000ec4 ();
0x00001c7c bl 0x1854 | fcn_00001854 ();
0x00001c80 ldr r3, [pc, 0x120] |
0x00001c82 mov r1, r0 | r1 = r0;
0x00001c84 movw r2, 0x835 | r2 = 0x835;
0x00001c88 mov r0, r4 | r0 = r4;
0x00001c8a add r3, pc | r3 = 0x3a32;
0x00001c8c blx 0xf54 | fcn_00000f54 ();
| label_3:
0x00001c90 ldr r3, [r5, 4] | r3 = *((r5 + 4));
0x00001c92 movs r4, 0 | r4 = 0;
0x00001c94 adds r3, 1 | r3++;
0x00001c96 beq 0x1c44 |
| } while (r3 == 1);
| label_13:
0x00001c98 adds r3, r5, 4 | r3 = r5 + 4;
0x00001c9a dmb ish | __asm ("dmb ish");
| do {
0x00001c9e ldrex r2, [r3] | __asm ("ldrex r2, [r3]");
0x00001ca2 subs r2, 1 | r2--;
0x00001ca4 strex r1, r2, [r3] | __asm ("strex r1, r2, [r3]");
0x00001ca8 cmp r1, 0 |
0x00001caa bne 0x1c9e |
| } while (r1 != 0);
0x00001cac cmp r2, 0 |
| if (r2 != 0) {
0x00001cae bne 0x1c44 | goto label_2;
| }
0x00001cb0 mov r0, r5 | r0 = r5;
0x00001cb2 blx 0xee8 | fcn_00000ee8 ();
0x00001cb6 b 0x1c44 | goto label_2;
| label_8:
0x00001cb8 mov r0, r6 | r0 = r6;
0x00001cba blx 0xe88 | fcn_00000e88 ();
| label_7:
0x00001cbe ldr r2, [pc, 0xe8] |
0x00001cc0 movs r1, 1 | r1 = 1;
0x00001cc2 movs r0, 3 | r0 = 3;
0x00001cc4 movs r6, 0 | r6 = 0;
0x00001cc6 add r2, pc | r2 = 0x3a74;
0x00001cc8 blx 0xe6c | syslog_chk ();
0x00001ccc ldr r4, [sp, 0x20] | r4 = var_20h;
0x00001cce mov r0, r4 | r0 = r4;
0x00001cd0 blx 0xec4 | fcn_00000ec4 ();
0x00001cd4 bl 0x1854 | fcn_00001854 ();
0x00001cd8 ldr r3, [pc, 0xd0] |
0x00001cda mov r1, r0 | r1 = r0;
0x00001cdc mov.w r2, 0x7d0 | r2 = 0x7d0;
0x00001ce0 mov r0, r4 | r0 = r4;
0x00001ce2 mov r4, r6 | r4 = r6;
0x00001ce4 add r3, pc | r3 = 0x3a94;
0x00001ce6 blx 0xf54 | fcn_00000f54 ();
0x00001cea b 0x1c44 | goto label_2;
| label_12:
0x00001cec ldr r2, [pc, 0xc0] |
0x00001cee movs r1, 1 | r1 = 1;
0x00001cf0 movs r0, 4 | r0 = 4;
0x00001cf2 add r2, pc | r2 = 0x3aa6;
0x00001cf4 blx 0xe6c | syslog_chk ();
0x00001cf8 ldr r4, [sp, 0x20] | r4 = var_20h;
0x00001cfa mov r0, r4 | r0 = r4;
0x00001cfc blx 0xec4 | fcn_00000ec4 ();
0x00001d00 bl 0x1854 | fcn_00001854 ();
0x00001d04 ldr r3, [pc, 0xac] |
0x00001d06 mov r1, r0 | r1 = r0;
0x00001d08 movw r2, 0x835 | r2 = 0x835;
0x00001d0c mov r0, r4 | r0 = r4;
0x00001d0e add r3, pc | r3 = 0x3ac6;
0x00001d10 blx 0xf54 | fcn_00000f54 ();
0x00001d14 b 0x1c90 | goto label_3;
| label_9:
0x00001d16 ldr r2, [pc, 0xa0] |
0x00001d18 add r3, sp, 0x94 | r3 += var_34h;
0x00001d1a movs r1, 1 | r1 = 1;
0x00001d1c mov r4, r0 | r4 = r0;
0x00001d1e movs r0, 4 | r0 = 4;
0x00001d20 add r2, pc | r2 = 0x3ade;
0x00001d22 blx 0xe6c | syslog_chk ();
0x00001d26 ldr r5, [sp, 0x20] | r5 = var_20h;
0x00001d28 mov r0, r5 | r0 = r5;
0x00001d2a blx 0xec4 | fcn_00000ec4 ();
0x00001d2e bl 0x1854 | fcn_00001854 ();
0x00001d32 ldr r3, [pc, 0x88] |
0x00001d34 mov r1, r0 | r1 = r0;
0x00001d36 movw r2, 0x835 | r2 = 0x835;
0x00001d3a mov r0, r5 | r0 = r5;
0x00001d3c add r3, pc | r3 = 0x3afe;
0x00001d3e blx 0xf54 | fcn_00000f54 ();
0x00001d42 b 0x1c44 | goto label_2;
| label_10:
0x00001d44 ldr r2, [pc, 0x78] |
0x00001d46 add r3, sp, 0x94 | r3 += var_34h;
0x00001d48 movs r1, 1 | r1 = 1;
0x00001d4a movs r0, 4 | r0 = 4;
0x00001d4c add r2, pc | r2 = 0x3b10;
0x00001d4e blx 0xe6c | syslog_chk ();
0x00001d52 ldr r4, [sp, 0x20] | r4 = var_20h;
0x00001d54 mov r0, r4 | r0 = r4;
0x00001d56 blx 0xec4 | fcn_00000ec4 ();
0x00001d5a bl 0x1854 | fcn_00001854 ();
0x00001d5e ldr r3, [pc, 0x64] |
0x00001d60 mov r1, r0 | r1 = r0;
0x00001d62 movw r2, 0x835 | r2 = 0x835;
0x00001d66 mov r0, r4 | r0 = r4;
0x00001d68 add r3, pc | r3 = 0x3b32;
0x00001d6a blx 0xf54 | fcn_00000f54 ();
0x00001d6e b 0x1c90 | goto label_3;
| label_14:
0x00001d70 blx 0xe78 | stack_chk_fail ();
0x00001d74 movs r3, 0xd0 | r3 = 0xd0;
0x00001d76 movs r0, r0 |
0x00001d78 lsls r4, r4, 3 | r4 <<= 3;
0x00001d7a movs r0, r0 |
0x00001d7c movs r3, 0xb6 | r3 = 0xb6;
0x00001d7e movs r0, r0 |
0x00001d80 lsrs r2, r0, 5 | r2 = r0 >> 5;
0x00001d82 movs r0, r0 |
0x00001d84 lsls r0, r4, 3 | r0 = r4 << 3;
0x00001d86 movs r0, r0 |
0x00001d88 lsrs r2, r6, 4 | r2 = r6 >> 4;
0x00001d8a movs r0, r0 |
0x00001d8c lsrs r4, r5, 4 | r4 = r5 >> 4;
0x00001d8e movs r0, r0 |
0x00001d90 lsrs r6, r5, 4 | r6 = r5 >> 4;
0x00001d92 movs r0, r0 |
0x00001d94 lsrs r0, r6, 4 | r0 = r6 >> 4;
0x00001d96 movs r0, r0 |
0x00001d98 lsrs r2, r7, 3 | r2 = r7 >> 3;
0x00001d9a movs r0, r0 |
0x00001d9c movs r2, 0xae | r2 = 0xae;
0x00001d9e movs r0, r0 |
0x00001da0 lsrs r2, r6, 2 | r2 = r6 >> 2;
0x00001da2 movs r0, r0 |
0x00001da4 lsrs r6, r0, 1 | r6 = r0 >> 1;
0x00001da6 movs r0, r0 |
0x00001da8 lsls r2, r5, 0x1f | r2 = r5 << 0x1f;
0x00001daa movs r0, r0 |
0x00001dac lsls r4, r0, 0x1b | r4 = r0 << 0x1b;
0x00001dae movs r0, r0 |
0x00001db0 lsrs r2, r1, 1 | r2 = r1 >> 1;
0x00001db2 movs r0, r0 |
0x00001db4 lsls r2, r0, 0x1f | r2 = r0 << 0x1f;
0x00001db6 movs r0, r0 |
0x00001db8 lsls r0, r1, 0x18 | r0 = r1 << 0x18;
0x00001dba movs r0, r0 |
0x00001dbc lsls r4, r2, 0x1e | r4 = r2 << 0x1e;
0x00001dbe movs r0, r0 |
0x00001dc0 lsls r4, r3, 0x17 | r4 = r3 << 0x17;
0x00001dc2 movs r0, r0 |
0x00001dc4 lsls r0, r5, 0x1d | r0 = r5 << 0x1d;
0x00001dc6 movs r0, r0 |
| if (r0 != 0) {
0x00001dc8 cbz r0, 0x1dea |
0x00001dca push {r4, lr} |
0x00001dcc mov r4, r0 | r4 = r0;
0x00001dce ldr r0, [r0] | r0 = *(r0);
0x00001dd0 blx 0xe88 | fcn_00000e88 ();
0x00001dd4 ldr r0, [r4, 4] | r0 = *((r4 + 4));
0x00001dd6 blx 0xe88 | fcn_00000e88 ();
0x00001dda ldr r0, [r4, 8] | r0 = *((r4 + 8));
0x00001ddc blx 0xe88 | fcn_00000e88 ();
0x00001de0 mov r0, r4 | r0 = r4;
0x00001de2 pop.w {r4, lr} |
0x00001de6 b.w 0xe84 | void (*0xe84)() ();
| }
0x00001dea bx lr | return;
| }
[*] Function sprintf used 2 times oak.cgi