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