[*] Binary protection state of libloggen_plugin-3.38.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.38.so.0.0.0

    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libloggen_plugin-3.38.so.0.0.0 @ 0x7f8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.thread_check_exit_criteria ()    | void thread_check_exit_criteria (int16_t arg1) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h_2;
                                                 |     int16_t var_ch;
                                                 |     int16_t var_14h;
                                                 |     r0 = arg1;
    0x000007f8 blmi 0xfd30f8                     |     __asm ("blmi 0xfd30f8");
    0x000007fc push {r4, r5, r6, lr}             |     
    0x000007fe sub sp, 0x18                      |     
    0x00000800 add r2, pc                        |     r2 += pc;
    0x00000802 ldr r6, [pc, 0xf8]                |     
    0x00000804 mov r4, r0                        |     r4 = r0;
    0x00000806 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x00000808 add r6, pc                        |     r6 = 0x110a;
    0x0000080a ldr r3, [r3]                      |     r3 = *(r3);
    0x0000080c str r3, [sp, 0x14]                |     var_14h = r3;
    0x0000080e mov.w r3, 0                       |     r3 = 0;
    0x00000812 ldr r3, [r0]                      |     r3 = *(r0);
    0x00000814 ldr r3, [r3, 8]                   |     r3 = *((r3 + 8));
                                                 |     if (r3 != 0) {
    0x00000816 cbz r3, 0x81e                     |         
    0x00000818 ldr r2, [r0, 8]                   |         r2 = *((r0 + 8));
    0x0000081a cmp r3, r2                        |         
                                                 |         if (r3 <= r2) {
    0x0000081c ble 0x8b0                         |             goto label_1;
                                                 |         }
                                                 |     }
    0x0000081e add r5, sp, 0xc                   |     r5 += var_ch;
    0x00000820 movs r1, 0                        |     r1 = 0;
    0x00000822 mov r0, r5                        |     r0 = r5;
    0x00000824 blx 0x690                         |     gettimeofday ();
    0x00000828 ldr r3, [r4]                      |     r3 = *(r4);
    0x0000082a ldr r3, [r3, 0xc]                 |     r3 = *((r3 + 0xc));
    0x0000082c cbz r3, 0x848                     |     
                                                 |     while (r2 <= r3) {
    0x0000082e movs r0, 0                        |         r0 = 0;
                                                 | label_0:
    0x00000830 ldr r2, [pc, 0xcc]                |         
    0x00000832 ldr r3, [pc, 0xc4]                |         r3 = *(0x8fa);
    0x00000834 add r2, pc                        |         r2 = 0x1138;
    0x00000836 ldr r3, [r2, r3]                  |         r3 = *(0x1138);
    0x00000838 ldr r2, [r3]                      |         r2 = *(0x1138);
    0x0000083a ldr r3, [sp, 0x14]                |         r3 = var_14h;
    0x0000083c eors r2, r3                       |         r2 ^= r3;
    0x0000083e mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00000842 bne 0x8ee                         |             goto label_2;
                                                 |         }
    0x00000844 add sp, 0x18                      |         
    0x00000846 pop {r4, r5, r6, pc}              |         
    0x00000848 add.w r1, r4, 0xc                 |         r1 = r4 + 0xc;
    0x0000084c mov r0, r5                        |         r0 = r5;
    0x0000084e blx 0x6cc                         |         time_val_diff_in_sec ();
    0x00000852 ldr r3, [r4]                      |         r3 = *(r4);
    0x00000854 ldr r3, [r3, 4]                   |         r3 = *((r3 + 4));
    0x00000856 vmov s15, r3                      |         __asm ("vmov s15, r3");
    0x0000085a vcvt.f64.s32 d16, s15             |         __asm ("vcvt.f64.s32 d16, s15");
    0x0000085e vcmpe.f64 d0, d16                 |         __asm ("vcmpe.f64 d0, d16");
    0x00000862 vmrs apsr_nzcv, fpscr             |         __asm ("vmrs apsr_nzcv, fpscr");
    0x00000866 ble 0x82e                         |         
                                                 |     }
    0x00000868 blx 0x69c                         |     r0 = get_debug_level ();
                                                 |     if (r0 == 0) {
    0x0000086c cbz r0, 0x8b6                     |         goto label_3;
                                                 |     }
    0x0000086e ldr r0, [pc, 0x94]                |     
    0x00000870 add r0, pc                        |     r0 = 0x117a;
    0x00000872 blx 0x6a8                         |     g_path_get_basename ();
    0x00000876 ldr r3, [pc, 0x90]                |     r3 = *(0x90a);
    0x00000878 movs r2, 0x33                     |     r2 = 0x33;
    0x0000087a ldr r1, [pc, 0x90]                |     
    0x0000087c mov r5, r0                        |     r5 = r0;
    0x0000087e ldr r6, [r6, r3]                  |     r6 = *((r6 + r3));
    0x00000880 mov r3, r0                        |     r3 = r0;
    0x00000882 str r2, [sp, 4]                   |     var_4h_2 = r2;
    0x00000884 add r1, pc                        |     
    0x00000886 ldr r2, [pc, 0x88]                |     
    0x00000888 str r1, [sp]                      |     *(sp) = r1;
    0x0000088a movs r1, 1                        |     r1 = 1;
    0x0000088c ldr r0, [r6]                      |     r0 = *(r6);
    0x0000088e add r2, pc                        |     r2 = 0x11a4;
    0x00000890 blx 0x6b4                         |     fprintf_chk ()
    0x00000894 ldr r1, [r4]                      |     r1 = *(r4);
    0x00000896 ldr r2, [pc, 0x7c]                |     
    0x00000898 ldr r0, [r6]                      |     r0 = *(r6);
    0x0000089a ldr r3, [r4, 4]                   |     r3 = *((r4 + 4));
    0x0000089c ldr r1, [r1, 4]                   |     r1 = *(0x119a);
    0x0000089e add r2, pc                        |     r2 = 0x11b8;
                                                 |     do {
    0x000008a0 str r1, [sp]                      |         *(sp) = r1;
    0x000008a2 movs r1, 1                        |         r1 = 1;
    0x000008a4 blx 0x6b4                         |         fprintf_chk ()
    0x000008a8 mov r0, r5                        |         r0 = r5;
    0x000008aa blx 0x6e4                         |         g_free ();
    0x000008ae b 0x8b6                           |         goto label_3;
                                                 | label_1:
    0x000008b0 blx 0x69c                         |         r0 = get_debug_level ();
                                                 |         if (r0 == 0) {
    0x000008b4 cbnz r0, 0x8ba                    |             
                                                 | label_3:
    0x000008b6 movs r0, 1                        |             r0 = 1;
    0x000008b8 b 0x830                           |             goto label_0;
                                                 |         }
    0x000008ba ldr r0, [pc, 0x5c]                |         
    0x000008bc add r0, pc                        |         r0 = 0x11da;
    0x000008be blx 0x6a8                         |         g_path_get_basename ();
    0x000008c2 ldr r3, [pc, 0x44]                |         r3 = *(0x90a);
    0x000008c4 movs r2, 0x28                     |         r2 = 0x28;
    0x000008c6 movs r1, 1                        |         r1 = 1;
    0x000008c8 mov r5, r0                        |         r5 = r0;
    0x000008ca ldr r6, [r6, r3]                  |         r6 = *((r6 + r3));
    0x000008cc mov r3, r0                        |         r3 = r0;
    0x000008ce str r2, [sp, 4]                   |         var_4h_2 = r2;
    0x000008d0 ldr r2, [pc, 0x48]                |         
    0x000008d2 add r2, pc                        |         r2 = 0x11f2;
    0x000008d4 str r2, [sp]                      |         *(sp) = r2;
    0x000008d6 ldr r2, [pc, 0x48]                |         
    0x000008d8 ldr r0, [r6]                      |         r0 = *(r6);
    0x000008da add r2, pc                        |         r2 = 0x1200;
    0x000008dc blx 0x6b4                         |         fprintf_chk ()
    0x000008e0 ldr r1, [r4]                      |         r1 = *(r4);
    0x000008e2 ldr r2, [pc, 0x40]                |         
    0x000008e4 ldr r0, [r6]                      |         r0 = *(r6);
    0x000008e6 ldr r3, [r4, 4]                   |         r3 = *((r4 + 4));
    0x000008e8 ldr r1, [r1, 8]                   |         r1 = *((r1 + 8));
    0x000008ea add r2, pc                        |         r2 = 0x1214;
    0x000008ec b 0x8a0                           |         
                                                 |     } while (1);
                                                 | label_2:
    0x000008ee blx 0x6d8                         |     stack_chk_fail ();
    0x000008f2 nop                               |     
    0x000008f4 asrs r4, r4, 0x1e                 |     r4 >>= 0x1e;
    0x000008f6 movs r0, r0                       |     
    0x000008f8 lsls r0, r0, 1                    |     r0 <<= 1;
    0x000008fa movs r0, r0                       |     
    0x000008fc asrs r4, r3, 0x1e                 |     r4 = r3 >> 0x1e;
    0x000008fe movs r0, r0                       |     
    0x00000900 asrs r0, r6, 0x1d                 |     r0 = r6 >> 0x1d;
    0x00000902 movs r0, r0                       |     
    0x00000904 lsls r0, r3, 0x14                 |     r0 = r3 << 0x14;
    0x00000906 movs r0, r0                       |     
    0x00000908 lsls r4, r0, 1                    |     r4 = r0 << 1;
    0x0000090a movs r0, r0                       |     
    0x0000090c lsls r0, r1, 0x17                 |     r0 = r1 << 0x17;
    0x0000090e movs r0, r0                       |     
    0x00000910 lsls r2, r7, 0x14                 |     r2 = r7 << 0x14;
    0x00000912 movs r0, r0                       |     
    0x00000914 lsls r2, r0, 0x16                 |     r2 = r0 << 0x16;
    0x00000916 movs r0, r0                       |     
    0x00000918 lsls r4, r1, 0x13                 |     r4 = r1 << 0x13;
    0x0000091a movs r0, r0                       |     
    0x0000091c lsls r2, r7, 0x15                 |     r2 = r7 << 0x15;
    0x0000091e movs r0, r0                       |     
    0x00000920 lsls r6, r5, 0x13                 |     r6 = r5 << 0x13;
    0x00000922 movs r0, r0                       |     
    0x00000924 lsls r2, r6, 0x13                 |     r2 = r6 << 0x13;
    0x00000926 movs r0, r0                       |     
                                                 | }

[*] Function printf used 4 times libloggen_plugin-3.38.so.0.0.0