[*] Binary protection state of libloggen_ssl_plugin.so

  
  	Full RELRO     Canary found      NX enabled   DSO          No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of libloggen_ssl_plugin.so

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/syslog-ng/loggen/libloggen_ssl_plugin.so @ 0x16f0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000016f0 ()                  | void fcn_000016f0 () {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     if (? >= ?) {
    0x000016f0 addlt fp, r3, r0, lsr r5      |         
                                             |     }
    0x000016f4 ldr r4, [pc, 0x50]            |     
    0x000016f6 blx 0x109c                    |     get_debug_level ();
    0x000016fa add r4, pc                    |     r4 = 0x2e46;
                                             |     if (r0 == 0) {
    0x000016fc cbnz r0, 0x1704               |         
    0x000016fe movs r0, 0                    |         r0 = 0;
    0x00001700 add sp, 0xc                   |         
    0x00001702 pop {r4, r5, pc}              |         
                                             |     }
    0x00001704 ldr r0, [pc, 0x44]            |     
    0x00001706 add r0, pc                    |     r0 = 0x2e56;
    0x00001708 blx 0x10a8                    |     g_path_get_basename ();
    0x0000170c ldr r3, [pc, 0x40]            |     r3 = *(0x1750);
    0x0000170e movs r2, 0x5b                 |     r2 = 0x5b;
    0x00001710 ldr r1, [pc, 0x40]            |     
    0x00001712 mov r5, r0                    |     r5 = r0;
    0x00001714 ldr r4, [r4, r3]              |     r4 = *((r4 + r3));
    0x00001716 mov r3, r0                    |     r3 = r0;
    0x00001718 str r2, [sp, 4]               |     var_4h = r2;
    0x0000171a add r1, pc                    |     r1 = 0x2e72;
    0x0000171c ldr r2, [pc, 0x38]            |     
    0x0000171e adds r1, 0x14                 |     r1 += 0x14;
    0x00001720 str r1, [sp]                  |     *(sp) = r1;
    0x00001722 movs r1, 1                    |     r1 = 1;
    0x00001724 ldr r0, [r4]                  |     r0 = *(r4);
    0x00001726 add r2, pc                    |     r2 = 0x2e82;
    0x00001728 blx 0x10f0                    |     fprintf_chk ()
    0x0000172c ldr r0, [pc, 0x2c]            |     
    0x0000172e movs r2, 0x4d                 |     r2 = 0x4d;
    0x00001730 ldr r3, [r4]                  |     r3 = *(r4);
    0x00001732 movs r1, 1                    |     r1 = 1;
    0x00001734 add r0, pc                    |     r0 = 0x2e94;
    0x00001736 blx 0x11f0                    |     fcn_000011f0 ();
    0x0000173a mov r0, r5                    |     r0 = r5;
    0x0000173c blx 0x119c                    |     fcn_0000119c ();
    0x00001740 movs r0, 0                    |     r0 = 0;
    0x00001742 add sp, 0xc                   |     
    0x00001744 pop {r4, r5, pc}              |     
                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/syslog-ng/loggen/libloggen_ssl_plugin.so @ 0x1c20 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00001c20 ()                              | void fcn_00001c20 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_8h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x00001c20 mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, aav.0x000000ff");
    0x00001c24 mov r7, r3                                |     r7 = r3;
    0x00001c26 ldr r3, [r0, 0x3c]                        |     r3 = *((r0 + 0x3c));
    0x00001c28 sub sp, 0x14                              |     
    0x00001c2a mov r8, r2                                |     r8 = r2;
    0x00001c2c mov r2, r1                                |     r2 = r1;
    0x00001c2e ldr.w sb, [pc, 0x11c]                     |     
    0x00001c32 mov.w r1, 0x2000                          |     r1 = 0x2000;
    0x00001c36 str r3, [sp, 8]                           |     var_8h = r3;
    0x00001c38 ldr r3, [r0, 0x38]                        |     r3 = *((r0 + 0x38));
    0x00001c3a add sb, pc                                |     sb = 0x398c;
    0x00001c3c str r3, [sp, 4]                           |     var_4h = r3;
    0x00001c3e ldr r3, [r0, 0x34]                        |     r3 = *((r0 + 0x34));
    0x00001c40 str r3, [sp]                              |     *(sp) = r3;
    0x00001c42 ldr r3, [r0, 0x30]                        |     r3 = *((r0 + 0x30));
    0x00001c44 mov r0, r7                                |     r0 = r7;
    0x00001c46 blx 0x10cc                                |     r0 = generate_proxy_header ();
    0x00001c4a mov r6, r0                                |     r6 = r0;
    0x00001c4c blx 0x109c                                |     r0 = get_debug_level ();
    0x00001c50 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00001c52 bne 0x1cc4                                |         goto label_1;
                                                         |     }
                                                         |     if (r6 == 0) {
                                                         | label_0:
    0x00001c54 cbz r6, 0x1cb8                            |         goto label_2;
                                                         |     }
    0x00001c56 movs r4, 0                                |     r4 = 0;
    0x00001c58 b 0x1c5e                                  |     
                                                         |     while (r5 >= r0) {
    0x00001c5a cmp r4, r6                                |         
                                                         |         if (r4 >= r6) {
    0x00001c5c bhs 0x1cb8                                |             goto label_2;
                                                         |         }
    0x00001c5e subs r2, r6, r4                           |         r2 = r6 - r4;
    0x00001c60 adds r1, r7, r4                           |         r1 = r7 + r4;
    0x00001c62 movs r3, 0                                |         r3 = 0;
    0x00001c64 mov r0, r8                                |         r0 = r8;
    0x00001c66 blx 0x129c                                |         r0 = fcn_0000129c ();
    0x00001c6a subs r5, r0, 0                            |         r5 = r0 - 0;
    0x00001c6c add r4, r5                                |         r4 += r5;
    0x00001c6e bge 0x1c5a                                |         
                                                         |     }
    0x00001c70 ldr r0, [pc, 0xdc]                        |     
    0x00001c72 add r0, pc                                |     r0 = 0x39c6;
    0x00001c74 blx 0x10a8                                |     g_path_get_basename ();
    0x00001c78 ldr r3, [pc, 0xd8]                        |     r3 = *(0x1d54);
    0x00001c7a mov r4, r0                                |     r4 = r0;
    0x00001c7c ldr r2, [pc, 0xd8]                        |     
    0x00001c7e movs r1, 1                                |     r1 = 1;
    0x00001c80 ldr.w r6, [sb, r3]                        |     r6 = *((sb + r3));
    0x00001c84 ldr r3, [pc, 0xd4]                        |     
    0x00001c86 add r2, pc                                |     r2 = 0x39e2;
    0x00001c88 ldr r0, [r6]                              |     r0 = *(r6);
    0x00001c8a add r3, pc                                |     r3 = 0x39ea;
    0x00001c8c adds r3, 0x38                             |     r3 += 0x38;
    0x00001c8e str r3, [sp]                              |     *(sp) = r3;
    0x00001c90 mov.w r3, 0x134                           |     r3 = 0x134;
    0x00001c94 str r3, [sp, 4]                           |     var_4h = r3;
    0x00001c96 mov r3, r4                                |     r3 = r4;
    0x00001c98 blx 0x10f0                                |     fprintf_chk ()
    0x00001c9c ldr r2, [pc, 0xc0]                        |     
    0x00001c9e mov r3, r8                                |     r3 = r8;
    0x00001ca0 ldr r0, [r6]                              |     r0 = *(r6);
    0x00001ca2 movs r1, 1                                |     r1 = 1;
    0x00001ca4 str r5, [sp]                              |     *(sp) = r5;
    0x00001ca6 add r2, pc                                |     r2 = 0x3a0a;
    0x00001ca8 blx 0x10f0                                |     fprintf_chk ()
    0x00001cac mov r0, r4                                |     r0 = r4;
    0x00001cae add sp, 0x14                              |     
    0x00001cb0 pop.w {r4, r5, r6, r7, r8, sb, lr}        |     
    0x00001cb4 b.w 0x1198                                |     void (*0x1198)() ();
                                                         | label_2:
    0x00001cb8 blx 0x109c                                |     r0 = get_debug_level ();
                                                         |     if (r0 == 0) {
    0x00001cbc cbnz r0, 0x1d06                           |         
    0x00001cbe add sp, 0x14                              |         
    0x00001cc0 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_1:
    0x00001cc4 ldr r0, [pc, 0x9c]                        |         
    0x00001cc6 add r0, pc                                |         r0 = 0x3a2e;
    0x00001cc8 blx 0x10a8                                |         g_path_get_basename ();
    0x00001ccc ldr r3, [pc, 0x98]                        |         r3 = *(0x1d68);
    0x00001cce mov r4, r0                                |         r4 = r0;
    0x00001cd0 ldr r2, [pc, 0x98]                        |         
    0x00001cd2 movs r1, 1                                |         r1 = 1;
    0x00001cd4 ldr.w r5, [sb, r3]                        |         r5 = *((sb + r3));
    0x00001cd8 ldr r3, [pc, 0x94]                        |         
    0x00001cda add r2, pc                                |         r2 = 0x3a4a;
    0x00001cdc add r3, pc                                |         r3 = 0x3a50;
    0x00001cde adds r3, 0x38                             |         r3 += 0x38;
    0x00001ce0 str r3, [sp]                              |         *(sp) = r3;
    0x00001ce2 mov.w r3, 0x12c                           |         r3 = 0x12c;
    0x00001ce6 ldr r0, [r5]                              |         r0 = *(r5);
    0x00001ce8 str r3, [sp, 4]                           |         var_4h = r3;
    0x00001cea mov r3, r4                                |         r3 = r4;
    0x00001cec blx 0x10f0                                |         fprintf_chk ()
    0x00001cf0 ldr r2, [pc, 0x80]                        |         
    0x00001cf2 mov r3, r6                                |         r3 = r6;
    0x00001cf4 ldr r0, [r5]                              |         r0 = *(r5);
    0x00001cf6 movs r1, 1                                |         r1 = 1;
    0x00001cf8 add r2, pc                                |         r2 = 0x3a70;
    0x00001cfa blx 0x10f0                                |         fprintf_chk ()
    0x00001cfe mov r0, r4                                |         r0 = r4;
    0x00001d00 blx 0x119c                                |         fcn_0000119c ();
    0x00001d04 b 0x1c54                                  |         goto label_0;
                                                         |     }
    0x00001d06 ldr r0, [pc, 0x70]                        |     
    0x00001d08 add r0, pc                                |     r0 = 0x3a86;
    0x00001d0a blx 0x10a8                                |     g_path_get_basename ();
    0x00001d0e ldr r3, [pc, 0x58]                        |     r3 = *(0x1d6a);
    0x00001d10 movw r2, 0x13b                            |     r2 = 0x13b;
    0x00001d14 ldr r1, [pc, 0x64]                        |     
    0x00001d16 mov r4, r0                                |     r4 = r0;
    0x00001d18 ldr.w r5, [sb, r3]                        |     r5 = *((sb + r3));
    0x00001d1c mov r3, r0                                |     r3 = r0;
    0x00001d1e str r2, [sp, 4]                           |     var_4h = r2;
    0x00001d20 add r1, pc                                |     r1 = 0x3aa0;
    0x00001d22 ldr r2, [pc, 0x5c]                        |     
    0x00001d24 adds r1, 0x38                             |     r1 += 0x38;
    0x00001d26 str r1, [sp]                              |     *(sp) = r1;
    0x00001d28 movs r1, 1                                |     r1 = 1;
    0x00001d2a ldr r0, [r5]                              |     r0 = *(r5);
    0x00001d2c add r2, pc                                |     r2 = 0x3ab2;
    0x00001d2e blx 0x10f0                                |     fprintf_chk ()
    0x00001d32 ldr r2, [pc, 0x50]                        |     
    0x00001d34 mov r3, r6                                |     r3 = r6;
    0x00001d36 ldr r0, [r5]                              |     r0 = *(r5);
    0x00001d38 movs r1, 1                                |     r1 = 1;
    0x00001d3a add r2, pc                                |     r2 = 0x3ac4;
    0x00001d3c blx 0x10f0                                |     fprintf_chk ()
    0x00001d40 mov r0, r4                                |     r0 = r4;
    0x00001d42 add sp, 0x14                              |     
    0x00001d44 pop.w {r4, r5, r6, r7, r8, sb, lr}        |     
    0x00001d48 b.w 0x1198                                |     return void (*0x1198)() ();
                                                         | }

[*] Function printf used 8 times libloggen_ssl_plugin.so