[*] Binary protection state of libevent_core-2.1.so.6.0.2

  
  	Partial RELRO  No Canary found   NX disabled  DSO          No RPATH     No RUNPATH   No Symbols


[*] Function fprintf tear down of libevent_core-2.1.so.6.0.2

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libevent_core-2.1.so.6.0.2 @ 0x21dc8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.event_logv_ ()               | void event_logv_ (int32_t arg1, int32_t arg2) {
                                             |     char * s;
                                             |     int32_t var_400h;
                                             |     int32_t var_4h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00021dc8 push {r4, r5, r6, r7, lr}     |     
    0x00021dcc ldr r7, [pc, 0x114]           |     r7 = *(0x21ee4);
    0x00021dd0 sub sp, sp, 0x400             |     
    0x00021dd4 subs r5, r0, 0                |     r5 = r0 - 0;
    0x00021dd8 add r7, pc, r7                |     r7 = pc + r7;
    0x00021ddc sub sp, sp, 4                 |     
                                             |     if (r5 == r0) {
    0x00021de0 bne 0x21df8                   |         
    0x00021de4 ldr r0, [pc, 0x100]           |         
    0x00021de8 ldr r0, [r7, r0]              |         r0 = *((r7 + r0));
    0x00021dec ldr r0, [r0]                  |         r0 = *(0x21ee8);
    0x00021df0 cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x00021df4 beq 0x21e68                   |             goto label_1;
                                             |         }
                                             |     }
    0x00021df8 cmp r2, 0                     |     
    0x00021dfc mov r6, r1                    |     r6 = r1;
    0x00021e00 mov r4, sp                    |     r4 = sp;
                                             |     if (r2 != 0) {
    0x00021e04 strbeq r2, [sp]               |         *(sp) = r2;
                                             |     }
                                             |     if (r2 != 0) {
    0x00021e08 beq 0x21e18                   |         
    0x00021e0c mov r1, 0x400                 |         r1 = 0x400;
    0x00021e10 mov r0, r4                    |         r0 = r4;
    0x00021e14 bl 0x76bc                     |         fcn_000076bc ();
                                             |     }
    0x00021e18 cmp r6, 0                     |     
                                             |     if (r6 != 0) {
    0x00021e1c beq 0x21e48                   |         
    0x00021e20 mov r0, r4                    |         r0 = r4;
    0x00021e24 bl 0x7254                     |         r0 = strlen (r0);
    0x00021e28 cmp r0, 0x3fc                 |         
                                             |         if (r0 > 0x3fc) {
    0x00021e2c bhi 0x21e48                   |             goto label_2;
                                             |         }
    0x00021e30 ldr r2, [pc, 0xb8]            |         r2 = *(0x21eec);
    0x00021e34 rsb r1, r0, 0x400             |         r1 = 0x400 - r0;
    0x00021e38 mov r3, r6                    |         r3 = r6;
    0x00021e3c add r2, pc, r2                |         r2 = pc + r2;
    0x00021e40 add r0, r4, r0                |         r0 = r4 + r0;
    0x00021e44 bl 0x71a0                     |         fcn_000071a0 ();
                                             |     }
                                             | label_2:
    0x00021e48 ldr r3, [pc, 0xa4]            |     
    0x00021e4c add r3, pc, r3                |     r3 = pc + r3;
    0x00021e50 ldr r3, [r3, 4]               |     r3 = *(0x21ef4);
    0x00021e54 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x00021e58 beq 0x21e74                   |         goto label_3;
                                             |     }
    0x00021e5c mov r1, r4                    |     r1 = r4;
    0x00021e60 mov r0, r5                    |     r0 = r5;
    0x00021e64 blx r3                        |     uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
                                             |     do {
                                             | label_1:
    0x00021e68 add sp, sp, 0x400             |         
    0x00021e6c add sp, sp, 4                 |         
    0x00021e70 pop {r4, r5, r6, r7, pc}      |         
                                             | label_3:
    0x00021e74 cmp r5, 3                     |         
                                             |         if (r5 > 3) {
                                             |             /* switch table (4 cases) at 0x21e80 */
    0x00021e78 addls pc, pc, r5, lsl 2       |             pc += (r5 << 2);
                                             |         }
    0x00021e7c b 0x21ed0                     |         goto label_4;
    0x00021e80 b 0x21edc                     |         goto label_5;
    0x00021e84 b 0x21e90                     |         goto label_6;
    0x00021e88 b 0x21eb8                     |         goto label_7;
    0x00021e8c b 0x21ec4                     |         goto label_8;
                                             | label_6:
    0x00021e90 ldr r2, [pc, 0x60]            |         r2 = *(0x21ef4);
    0x00021e94 add r2, pc, r2                |         r2 = pc + r2;
                                             | label_0:
    0x00021e98 ldr r3, [pc, 0x5c]            |         r3 = *(0x21ef8);
    0x00021e9c ldr r1, [pc, 0x5c]            |         r1 = *(0x21efc);
    0x00021ea0 ldr r0, [r7, r3]              |         r0 = *((r7 + r3));
    0x00021ea4 add r1, pc, r1                |         r1 = pc + r1;
    0x00021ea8 mov r3, r4                    |         r3 = r4;
    0x00021eac ldr r0, [r0]                  |         r0 = *(r0);
    0x00021eb0 bl 0x7764                     |         fprintf (r0, r1, r2, r3)
    0x00021eb4 b 0x21e68                     |         
                                             |     } while (1);
                                             | label_7:
    0x00021eb8 ldr r2, [pc, 0x44]            |     r2 = "ketpair";
    0x00021ebc add r2, pc, r2                |     r2 = pc + r2;
    0x00021ec0 b 0x21e98                     |     goto label_0;
                                             | label_8:
    0x00021ec4 ldr r2, [pc, 0x3c]            |     r2 = *(0x21f04);
    0x00021ec8 add r2, pc, r2                |     r2 = pc + r2;
    0x00021ecc b 0x21e98                     |     goto label_0;
                                             | label_4:
    0x00021ed0 ldr r2, [pc, 0x34]            |     r2 = "eonexec_";
    0x00021ed4 add r2, pc, r2                |     r2 = pc + r2;
    0x00021ed8 b 0x21e98                     |     goto label_0;
                                             | label_5:
    0x00021edc ldr r2, [pc, 0x2c]            |     r2 = "pen_closeonexec_";
    0x00021ee0 add r2, pc, r2                |     r2 = pc + r2;
    0x00021ee4 b 0x21e98                     |     goto label_0;
                                             | }

[*] Function fprintf used 2 times libevent_core-2.1.so.6.0.2