[*] Binary protection state of libloggen_plugin-3.31.so.0.0.0
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of libloggen_plugin-3.31.so.0.0.0
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libloggen_plugin-3.31.so.0.0.0 @ 0x748 */
| #include <stdint.h>
|
; (fcn) sym.thread_check_exit_criteria () | void thread_check_exit_criteria (int16_t arg1) {
| int16_t var_4h;
| int16_t var_14h_2;
| int16_t var_0h;
| int16_t var_4h_2;
| int16_t var_ch;
| int16_t var_14h;
| r0 = arg1;
0x00000748 blmi 0xfd3048 | __asm ("blmi 0xfd3048");
0x0000074c push {r4, r5, r6, lr} |
0x0000074e sub sp, 0x18 |
0x00000750 add r2, pc | r2 += pc;
0x00000752 ldr r6, [pc, 0xf8] |
0x00000754 mov r4, r0 | r4 = r0;
0x00000756 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00000758 add r6, pc | r6 = 0xfaa;
0x0000075a ldr r3, [r3] | r3 = *(r3);
0x0000075c str r3, [sp, 0x14] | var_14h = r3;
0x0000075e mov.w r3, 0 | r3 = 0;
0x00000762 ldr r3, [r0] | r3 = *(r0);
0x00000764 ldr r3, [r3, 8] | r3 = *((r3 + 8));
| if (r3 != 0) {
0x00000766 cbz r3, 0x76e |
0x00000768 ldr r2, [r0, 8] | r2 = *((r0 + 8));
0x0000076a cmp r3, r2 |
| if (r3 <= r2) {
0x0000076c ble 0x7c2 | goto label_2;
| }
| }
0x0000076e add r5, sp, 0xc | r5 += var_ch;
0x00000770 movs r1, 0 | r1 = 0;
0x00000772 mov r0, r5 | r0 = r5;
0x00000774 blx 0x61c | gettimeofday ();
0x00000778 ldr r3, [r4] | r3 = *(r4);
0x0000077a ldr r3, [r3, 0xc] | r3 = *((r3 + 0xc));
0x0000077c cbz r3, 0x798 |
| while (r2 <= r3) {
0x0000077e movs r0, 0 | r0 = 0;
| label_0:
0x00000780 ldr r2, [pc, 0xcc] |
0x00000782 ldr r3, [pc, 0xc4] | r3 = *(0x84a);
0x00000784 add r2, pc | r2 = 0xfd8;
0x00000786 ldr r3, [r2, r3] | r3 = *(0xfd8);
0x00000788 ldr r2, [r3] | r2 = *(0xfd8);
0x0000078a ldr r3, [sp, 0x14] | r3 = var_14h;
0x0000078c eors r2, r3 | r2 ^= r3;
0x0000078e mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00000792 bne 0x840 | goto label_3;
| }
0x00000794 add sp, 0x18 |
0x00000796 pop {r4, r5, r6, pc} |
0x00000798 add.w r1, r4, 0xc | r1 = r4 + 0xc;
0x0000079c mov r0, r5 | r0 = r5;
0x0000079e blx 0x604 | time_val_diff_in_sec ();
0x000007a2 ldr r3, [r4] | r3 = *(r4);
0x000007a4 ldr r3, [r3, 4] | r3 = *((r3 + 4));
0x000007a6 vmov s15, r3 | __asm ("vmov s15, r3");
0x000007aa vcvt.f64.s32 d16, s15 | __asm ("vcvt.f64.s32 d16, s15");
0x000007ae vcmpe.f64 d0, d16 | __asm ("vcmpe.f64 d0, d16");
0x000007b2 vmrs apsr_nzcv, fpscr | __asm ("vmrs apsr_nzcv, fpscr");
0x000007b6 ble 0x77e |
| }
0x000007b8 blx 0x628 | r0 = get_debug_level ();
| if (r0 != 0) {
0x000007bc cbnz r0, 0x80c | goto label_4;
| }
| do {
| label_1:
0x000007be movs r0, 1 | r0 = 1;
0x000007c0 b 0x780 | goto label_0;
| label_2:
0x000007c2 blx 0x628 | r0 = get_debug_level ();
0x000007c6 cmp r0, 0 |
0x000007c8 beq 0x7be |
| } while (r0 == 0);
0x000007ca ldr r0, [pc, 0x88] |
0x000007cc add r0, pc | r0 = 0x1026;
0x000007ce blx 0x5ec | g_path_get_basename ();
0x000007d2 ldr r3, [pc, 0x84] | r3 = *(0x85a);
0x000007d4 movs r2, 0x28 | r2 = 0x28;
0x000007d6 ldr r1, [pc, 0x84] |
0x000007d8 mov r5, r0 | r5 = r0;
0x000007da ldr r6, [r6, r3] | r6 = *((r6 + r3));
0x000007dc mov r3, r0 | r3 = r0;
0x000007de str r2, [sp, 4] | var_4h_2 = r2;
0x000007e0 add r1, pc |
0x000007e2 ldr r2, [pc, 0x7c] |
0x000007e4 ldr r0, [r6] | r0 = *(r6);
0x000007e6 str r1, [sp] | *(sp) = r1;
0x000007e8 movs r1, 1 | r1 = 1;
0x000007ea add r2, pc | r2 = 0x1050;
0x000007ec blx 0x64c | fprintf_chk ()
0x000007f0 ldr r1, [r4] | r1 = *(r4);
0x000007f2 ldr r2, [pc, 0x70] |
0x000007f4 ldr r0, [r6] | r0 = *(r6);
0x000007f6 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x000007f8 ldr r1, [r1, 8] | r1 = *(0x104a);
0x000007fa add r2, pc | r2 = 0x1064;
| do {
0x000007fc str r1, [sp] | *(sp) = r1;
0x000007fe movs r1, 1 | r1 = 1;
0x00000800 blx 0x64c | fprintf_chk ()
0x00000804 mov r0, r5 | r0 = r5;
0x00000806 blx 0x5e0 | g_free ();
0x0000080a b 0x7be | goto label_1;
| label_4:
0x0000080c ldr r0, [pc, 0x58] |
0x0000080e add r0, pc | r0 = 0x107a;
0x00000810 blx 0x5ec | g_path_get_basename ();
0x00000814 ldr r3, [pc, 0x40] | r3 = *(0x858);
0x00000816 movs r2, 0x33 | r2 = 0x33;
0x00000818 ldr r1, [pc, 0x50] |
0x0000081a mov r5, r0 | r5 = r0;
0x0000081c ldr r6, [r6, r3] | r6 = *((r6 + r3));
0x0000081e mov r3, r0 | r3 = r0;
0x00000820 str r2, [sp, 4] | var_4h_2 = r2;
0x00000822 add r1, pc |
0x00000824 ldr r2, [pc, 0x48] |
0x00000826 ldr r0, [r6] | r0 = *(r6);
0x00000828 str r1, [sp] | *(sp) = r1;
0x0000082a movs r1, 1 | r1 = 1;
0x0000082c add r2, pc | r2 = 0x10a0;
0x0000082e blx 0x64c | fprintf_chk ()
0x00000832 ldr r1, [r4] | r1 = *(r4);
0x00000834 ldr r2, [pc, 0x3c] |
0x00000836 ldr r0, [r6] | r0 = *(r6);
0x00000838 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x0000083a ldr r1, [r1, 4] | r1 = *(0x1096);
0x0000083c add r2, pc | r2 = 0x10b4;
0x0000083e b 0x7fc |
| } while (1);
| label_3:
0x00000840 blx 0x640 | stack_chk_fail ();
0x00000844 lsrs r4, r2, 1 | r4 = r2 >> 1;
0x00000846 movs r1, r0 | r1 = r0;
0x00000848 lsls r4, r1, 1 | r4 = r1 << 1;
0x0000084a movs r0, r0 |
0x0000084c lsrs r4, r1, 1 | r4 = r1 >> 1;
0x0000084e movs r1, r0 | r1 = r0;
0x00000850 lsrs r0, r4, 0x20 | r0 = r4 >> 0x20;
0x00000852 movs r1, r0 | r1 = r0;
0x00000854 lsls r4, r3, 0x14 | r4 = r3 << 0x14;
0x00000856 movs r0, r0 |
0x00000858 lsls r0, r2, 1 | r0 = r2 << 1;
0x0000085a movs r0, r0 |
0x0000085c lsls r0, r0, 0x17 | r0 <<= 0x17;
0x0000085e movs r0, r0 |
0x00000860 lsls r2, r6, 0x14 | r2 = r6 << 0x14;
0x00000862 movs r0, r0 |
0x00000864 lsls r6, r6, 0x14 | r6 <<= 0x14;
0x00000866 movs r0, r0 |
0x00000868 lsls r2, r3, 0x13 | r2 = r3 << 0x13;
0x0000086a movs r0, r0 |
0x0000086c lsls r6, r7, 0x15 | r6 = r7 << 0x15;
0x0000086e movs r0, r0 |
0x00000870 lsls r0, r6, 0x13 | r0 = r6 << 0x13;
0x00000872 movs r0, r0 |
0x00000874 lsls r0, r7, 0x14 | r0 = r7 << 0x14;
0x00000876 movs r0, r0 |
| }
[*] Function fprintf used 4 times libloggen_plugin-3.31.so.0.0.0