[*] 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