[*] Binary protection state of libvirtualinput.so
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function printf tear down of libvirtualinput.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/libvirtualinput.so @ 0x830 */
| #include <stdint.h>
|
; (fcn) sym.virtual_input_port_deactivate () | void virtual_input_port_deactivate (int16_t arg1, int16_t arg2, int16_t arg3) {
| int32_t var_0h;
| int32_t var_0h_2;
| int16_t var_8h;
| int16_t var_10h;
| int16_t var_14h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x00000830 mvnsmi lr, sp, lsr 18 | __asm ("mvnsmi lr, sp, lsr 18");
0x00000834 mov r6, r2 | r6 = r2;
0x00000836 ldr r4, [pc, 0xa8] |
0x00000838 mov r2, r0 | r2 = r0;
0x0000083a mov r7, r1 | r7 = r1;
0x0000083c sub sp, 0x18 |
0x0000083e ldr r3, [pc, 0xa4] | r3 = *(0x8e6);
0x00000840 mov.w r8, 0 | r8 = 0;
0x00000844 add r4, pc | r4 = 0x112a;
0x00000846 ldr r1, [pc, 0xa0] |
0x00000848 ldr r0, [pc, 0xa0] |
0x0000084a ldr r3, [r4, r3] |
0x0000084c add r1, pc | r1 = 0x113a;
0x0000084e add r0, pc | r0 = 0x113e;
0x00000850 ldr r3, [r3] | r3 = *(0x112a);
0x00000852 str r3, [sp, 0x14] | var_14h = r3;
0x00000854 mov.w r3, 0 | r3 = 0;
0x00000858 str.w r8, [sp, 0x10] | __asm ("str.w r8, [var_10h]");
0x0000085c blx 0x5b8 | g_strdup_printf ()
0x00000860 ldr r1, [pc, 0x8c] |
0x00000862 mov r2, r0 | r2 = r0;
0x00000864 mov r3, r6 | r3 = r6;
0x00000866 mov r4, r0 | r4 = r0;
0x00000868 add r0, sp, 0x10 | r0 += var_10h;
0x0000086a add r1, pc | r1 = 0x115e;
0x0000086c bl 0x6e0 | fcn_000006e0 (r0, r1, r2, r3);
0x00000870 ldr r5, [sp, 0x10] | r5 = var_10h;
0x00000872 cbnz r0, 0x8a2 |
| while (r0 == 0) {
| if (r4 != 0) {
0x00000874 cbz r4, 0x87e |
0x00000876 mov r0, r4 | r0 = r4;
0x00000878 movs r4, 0 | r4 = 0;
0x0000087a blx 0x588 | g_free ();
| }
| if (r5 != 0) {
| label_0:
0x0000087e cbz r5, 0x886 |
0x00000880 mov r0, r5 | r0 = r5;
0x00000882 blx 0x5a0 | g_object_unref ();
| }
0x00000886 ldr r2, [pc, 0x6c] |
0x00000888 ldr r3, [pc, 0x58] | r3 = *(0x8e4);
0x0000088a add r2, pc | r2 = 0x1184;
0x0000088c ldr r3, [r2, r3] | r3 = *(0x1184);
0x0000088e ldr r2, [r3] | r2 = *(0x1184);
0x00000890 ldr r3, [sp, 0x14] | r3 = var_14h;
0x00000892 eors r2, r3 | r2 ^= r3;
0x00000894 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00000898 bne 0x8dc | goto label_1;
| }
0x0000089a mov r0, r4 | r0 = r4;
0x0000089c add sp, 0x18 |
0x0000089e pop.w {r4, r5, r6, r7, r8, pc} |
0x000008a2 ldr r1, [pc, 0x54] |
0x000008a4 mov.w r3, -1 | r3 = -1;
0x000008a8 str r6, [sp, 8] | var_8h = r6;
0x000008aa mov r2, r8 | r2 = r8;
0x000008ac strd r3, r8, [sp] | __asm ("strd r3, r8, [sp]");
0x000008b0 mov r0, r5 | r0 = r5;
0x000008b2 mov r3, r8 | r3 = r8;
0x000008b4 add r1, pc | r1 = 0x11b2;
0x000008b6 blx 0x5ac | r0 = g_dbus_proxy_call_sync ();
0x000008ba mov r6, r0 | r6 = r0;
0x000008bc cmp r0, 0 |
0x000008be beq 0x874 |
| }
0x000008c0 ldr r1, [pc, 0x38] |
0x000008c2 mov r2, r7 | r2 = r7;
0x000008c4 add r1, pc | r1 = 0x11c4;
0x000008c6 blx 0x5d0 | g_variant_get ();
| if (r4 != 0) {
0x000008ca cbz r4, 0x8d2 |
0x000008cc mov r0, r4 | r0 = r4;
0x000008ce blx 0x588 | g_free ();
| }
0x000008d2 mov r0, r6 | r0 = r6;
0x000008d4 movs r4, 1 | r4 = 1;
0x000008d6 blx 0x5e8 | g_variant_unref ();
0x000008da b 0x87e | goto label_0;
| label_1:
0x000008dc blx 0x5dc | stack_chk_fail ();
0x000008e0 lsls r0, r5, 0x1d | r0 = r5 << 0x1d;
0x000008e2 movs r1, r0 | r1 = r0;
0x000008e4 lsls r0, r1, 1 | r0 = r1 << 1;
0x000008e6 movs r0, r0 |
0x000008e8 lsls r4, r1, 9 | r4 = r1 << 9;
0x000008ea movs r0, r0 |
0x000008ec lsls r6, r4, 9 | r6 = r4 << 9;
0x000008ee movs r0, r0 |
0x000008f0 lsls r2, r2, 9 | r2 <<= 9;
0x000008f2 movs r0, r0 |
0x000008f4 lsls r2, r4, 0x1c | r2 = r4 << 0x1c;
0x000008f6 movs r1, r0 | r1 = r0;
0x000008f8 lsls r4, r6, 8 | r4 = r6 << 8;
0x000008fa movs r0, r0 |
0x000008fc lsls r0, r4, 8 | r0 = r4 << 8;
0x000008fe movs r0, r0 |
| }
[*] Function printf used 2 times libvirtualinput.so