[*] 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 printf 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 printf used 4 times libloggen_plugin-3.31.so.0.0.0