[*] Binary protection state of libevent2.so
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function strcat tear down of libevent2.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libevent2.so @ 0xab18 */
| #include <stdint.h>
|
; (fcn) sym.key_value_print () | void key_value_print (int16_t arg1) {
| int16_t var_0h;
| int32_t var_0h_2;
| int16_t var_8h;
| r0 = arg1;
| if (? >= ?) {
0x0000ab18 ldrbmi lr, [r0, sp, lsr 18]! |
| }
0x0000ab1c mov r5, r0 | r5 = r0;
0x0000ab1e ldr.w r8, [pc, 0x15c] |
0x0000ab20 strh r4, [r3, 0xa] | *((r3 + 0xa)) = r4;
0x0000ab22 sub sp, 0x10 |
0x0000ab24 add r8, pc | r8 = 0x157a6;
0x0000ab26 mov r0, r8 | r0 = r8;
0x0000ab28 blx 0x8a2c | r0 = fcn_00008a2c ();
0x0000ab2c mov r7, r0 | r7 = r0;
0x0000ab2e mov r0, r8 | r0 = r8;
0x0000ab30 blx 0x8a2c | r0 = fcn_00008a2c ();
0x0000ab34 mov r6, r0 | r6 = r0;
0x0000ab36 mov r0, r8 | r0 = r8;
0x0000ab38 blx 0x8a2c | r0 = fcn_00008a2c ();
0x0000ab3c mov sb, r0 | sb = r0;
0x0000ab3e mov r0, r8 | r0 = r8;
0x0000ab40 blx 0x8a2c | fcn_00008a2c ();
0x0000ab44 cmp r5, 0 |
| if (r5 == 0) {
0x0000ab46 beq 0xac30 | goto label_7;
| }
0x0000ab48 mov sl, r0 | sl = r0;
0x0000ab4a ldr r0, [r5, 8] | r0 = *((r5 + 8));
0x0000ab4c blx 0x9698 | fcn_00009698 ();
0x0000ab50 ldr r3, [r5, 0x28] | r3 = *((r5 + 0x28));
0x0000ab52 mov r4, r0 | r4 = r0;
0x0000ab54 cmp r3, 0 |
| if (r3 != 0) {
0x0000ab56 bne 0xac14 | goto label_8;
| }
0x0000ab58 ldr r0, [r5, 0x20] | r0 = *((r5 + 0x20));
0x0000ab5a mov r1, r8 | r1 = r8;
0x0000ab5c blx 0x87b0 | r0 = g_strdup ();
0x0000ab60 cmp r0, 0 |
| if (r0 != 0) {
0x0000ab62 bne.w 0xac6e | goto label_9;
| }
| label_6:
0x0000ab66 ldr r0, [r5] | r0 = *(r5);
0x0000ab68 blx 0x98ac | fcn_000098ac ();
0x0000ab6c ldr r1, [pc, 0x110] |
0x0000ab6e mov r2, r0 | r2 = r0;
0x0000ab70 mov r0, r7 | r0 = r7;
0x0000ab72 add r1, pc | r1 = 0x157f6;
0x0000ab74 blx 0x998c | fcn_0000998c ();
| label_0:
0x0000ab78 ldr r2, [r5, 0x18] | r2 = *((r5 + 0x18));
| if (r2 != 0) {
0x0000ab7a cbz r2, 0xab82 |
0x0000ab7c ldrb r3, [r2] | r3 = *(r2);
0x0000ab7e cmp r3, 0 |
| if (r3 != 0) {
0x0000ab80 bne 0xac56 | goto label_10;
| }
| }
| label_4:
0x0000ab82 ldr r2, [r5, 0x1c] | r2 = *((r5 + 0x1c));
| if (r2 != 0) {
0x0000ab84 cbz r2, 0xab8c |
0x0000ab86 ldrb r3, [r2] | r3 = *(r2);
0x0000ab88 cmp r3, 0 |
| if (r3 != 0) {
0x0000ab8a bne 0xac62 | goto label_11;
| }
| }
| label_5:
0x0000ab8c ldr r2, [r5, 0x24] | r2 = *((r5 + 0x24));
| if (r2 != 0) {
0x0000ab8e cbz r2, 0xab96 |
0x0000ab90 ldrb r3, [r2] | r3 = *(r2);
0x0000ab92 cmp r3, 0 |
| if (r3 != 0) {
0x0000ab94 bne 0xac4a | goto label_12;
| }
| }
| label_3:
0x0000ab96 ldr r1, [r5, 0x30] | r1 = *((r5 + 0x30));
0x0000ab98 ldr r2, [r7] | r2 = *(r7);
0x0000ab9a ldr.w r3, [sb] | r3 = *(sb);
0x0000ab9e cmp r1, 0 |
| if (r1 != 0) {
0x0000aba0 bne 0xac20 | goto label_13;
| }
0x0000aba2 ldr r1, [r5, 0x2c] | r1 = *((r5 + 0x2c));
0x0000aba4 ldr r0, [pc, 0xdc] |
0x0000aba6 add r0, pc | r0 = 0x1582e;
0x0000aba8 cmp r1, 0 |
| if (r1 != 0) {
0x0000abaa bne 0xac2a | goto label_14;
| }
| label_1:
0x0000abac ldr r5, [r5, 4] | r5 = *((r5 + 4));
| label_2:
0x0000abae ldr.w r1, [sl] | r1 = *(sl);
0x0000abb2 strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x0000abb6 mov r0, r6 | r0 = r6;
0x0000abb8 str r1, [sp, 8] | var_8h = r1;
0x0000abba ldr r1, [pc, 0xcc] |
0x0000abbc add r1, pc | r1 = 0x1584a;
0x0000abbe blx 0x998c | fcn_0000998c ();
| if (r4 == 0) {
0x0000abc2 cbz r4, 0xabd8 | goto label_15;
| }
0x0000abc4 ldr r5, [pc, 0xc4] |
0x0000abc6 add r5, pc | r5 = 0x15856;
| do {
0x0000abc8 ldr r2, [r4] | r2 = *(r4);
0x0000abca mov r1, r5 | r1 = r5;
0x0000abcc mov r0, r6 | r0 = r6;
0x0000abce blx 0x998c | fcn_0000998c ();
0x0000abd2 ldr r4, [r4, 4] | r4 = *((r4 + 4));
0x0000abd4 cmp r4, 0 |
0x0000abd6 bne 0xabc8 |
| } while (r4 != 0);
| label_15:
0x0000abd8 movs r1, 1 | r1 = 1;
0x0000abda mov r0, r7 | r0 = r7;
0x0000abdc blx 0x8c7c | fcn_00008c7c ();
0x0000abde strex r1, r2, [lr, 4] | __asm ("strex r1, r2, [lr, 4]");
0x0000abe2 mov r0, sl | r0 = sl;
0x0000abe4 blx 0x8c7c | fcn_00008c7c ();
0x0000abe6 strex r1, r2, [sl, 4] | __asm ("strex r1, r2, [sl, 4]");
0x0000abea mov r0, sb | r0 = sb;
0x0000abec blx 0x8c7c | fcn_00008c7c ();
0x0000abf0 movs r1, 0 | r1 = 0;
0x0000abf2 mov r0, r6 | r0 = r6;
0x0000abf4 blx 0x8c7c | fcn_00008c7c ();
0x0000abf8 ldr r2, [pc, 0x94] |
0x0000abfa mov r4, r0 | r4 = r0;
0x0000abfc mov r3, r0 | r3 = r0;
0x0000abfe movs r1, 0x20 | r1 = 0x20;
0x0000ac00 movs r0, 0 | r0 = 0;
0x0000ac02 add r2, pc | r2 = 0x15896;
0x0000ac04 blx 0x999c | fcn_0000999c ();
0x0000ac08 mov r0, r4 | r0 = r4;
0x0000ac0a add sp, 0x10 |
0x0000ac0c pop.w {r4, r5, r6, r7, r8, sb, sl, lr} |
0x0000ac10 b.w 0x8520 | void (*0x8520)() ();
| label_8:
0x0000ac14 ldr r1, [pc, 0x7c] |
0x0000ac16 mov r0, r7 | r0 = r7;
0x0000ac18 add r1, pc | r1 = 0x158b0;
0x0000ac1a blx 0x998c | fcn_0000998c ();
0x0000ac1e b 0xab78 | goto label_0;
| label_13:
0x0000ac20 ldr r1, [r5, 0x2c] | r1 = *((r5 + 0x2c));
0x0000ac22 ldr r0, [pc, 0x74] |
0x0000ac24 add r0, pc | r0 = 0x158c2;
0x0000ac26 cmp r1, 0 |
| if (r1 == 0) {
0x0000ac28 beq 0xabac | goto label_1;
| }
| label_14:
0x0000ac2a ldr r5, [pc, 0x70] |
0x0000ac2c add r5, pc | r5 = 0x158ce;
0x0000ac2e b 0xabae | goto label_2;
| label_7:
0x0000ac30 ldr r3, [pc, 0x6c] |
0x0000ac32 mov.w r2, 0x24c | r2 = 0x24c;
0x0000ac36 ldr r4, [pc, 0x6c] |
0x0000ac38 mov r0, r5 | r0 = r5;
0x0000ac3a ldr r1, [pc, 0x6c] |
0x0000ac3c add r3, pc | r3 = 0x158e0;
0x0000ac3e add r4, pc | r4 = 0x158e8;
0x0000ac40 adds r3, 0x9c | r3 += 0x9c;
0x0000ac42 add r1, pc | r1 = 0x158f0;
0x0000ac44 str r4, [sp] | *(sp) = r4;
0x0000ac46 blx 0x8b7c | g_node_nth_child ();
| label_12:
0x0000ac4a ldr r1, [pc, 0x60] |
0x0000ac4c mov r0, sb | r0 = sb;
0x0000ac4e add r1, pc | r1 = 0x15900;
0x0000ac50 blx 0x998c | fcn_0000998c ();
0x0000ac54 b 0xab96 | goto label_3;
| label_10:
0x0000ac56 ldr r1, [pc, 0x58] |
0x0000ac58 mov r0, sb | r0 = sb;
0x0000ac5a add r1, pc | r1 = 0x15910;
0x0000ac5c blx 0x998c | fcn_0000998c ();
0x0000ac60 b 0xab82 | goto label_4;
| label_11:
0x0000ac62 ldr r1, [pc, 0x50] |
0x0000ac64 mov r0, sl | r0 = sl;
0x0000ac66 add r1, pc | r1 = 0x15920;
0x0000ac68 blx 0x998c | fcn_0000998c ();
0x0000ac6c b 0xab8c | goto label_5;
| label_9:
0x0000ac6e ldr r1, [pc, 0x48] |
0x0000ac70 mov r0, r7 | r0 = r7;
0x0000ac72 ldr r2, [r5, 0x20] | r2 = *((r5 + 0x20));
0x0000ac74 add r1, pc | r1 = 0x15932;
0x0000ac76 blx 0x998c | fcn_0000998c ();
0x0000ac7a b 0xab66 | goto label_6;
| }
[*] Function strcat used 1 times libevent2.so