[*] Binary protection state of libglib-2.0.so.0.6800.4

  
  	Full RELRO     No Canary found   NX enabled   DSO          No RPATH     No RUNPATH   No Symbols


[*] Function system tear down of libglib-2.0.so.0.6800.4

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libglib-2.0.so.0.6800.4 @ 0x365fc */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.g_key_file_load_from_data_dirs ()                | void g_key_file_load_from_data_dirs (int16_t arg_4h, int16_t arg_30h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000365fc push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00036600 mov r5, r0                                        |     r5 = r0;
    0x00036602 sub sp, 0xc                                       |     
    0x00036604 cmp r0, 0                                         |     
                                                                 |     if (arg_30h == ) {
    0x00036606 beq 0x366a6                                       |         goto label_0;
                                                                 |     }
    0x00036608 mov r0, r1                                        |     r0 = r1;
    0x0003660a mov r7, r1                                        |     r7 = r1;
    0x0003660c mov r8, r2                                        |     r8 = r2;
    0x0003660e mov sb, r3                                        |     sb = r3;
    0x00036610 bl 0x2e1d0                                        |     r0 = g_path_is_absolute ();
    0x00036614 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00036616 bne 0x36688                                       |         goto label_1;
                                                                 |     }
    0x00036618 bl 0x65244                                        |     r0 = g_get_user_data_dir ();
    0x0003661c mov sl, r0                                        |     sl = r0;
    0x0003661e bl 0x6549c                                        |     r0 = g_get_system_data_dirs ()
    0x00036622 mov r4, r0                                        |     r4 = r0;
    0x00036624 bl 0x5318c                                        |     g_strv_length ();
    0x00036628 movs r1, 4                                        |     r1 = 4;
    0x0003662a adds r0, 2                                        |     r0 += 2;
    0x0003662c bl 0x407e4                                        |     r0 = g_malloc_n ();
    0x00036630 mov r6, r0                                        |     r6 = r0;
    0x00036632 mov r0, sl                                        |     r0 = sl;
    0x00036634 bl 0x51ca8                                        |     g_strdup ();
    0x00036638 str r0, [r6]                                      |     *(r6) = r0;
    0x0003663a ldr r0, [r4]                                      |     r0 = *(r4);
    0x0003663c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003663e beq 0x366c2                                       |         goto label_2;
                                                                 |     }
    0x00036640 mov fp, r6                                        |     
    0x00036642 mov.w sl, 1                                       |     sl = 1;
                                                                 |     do {
    0x00036646 bl 0x51ca8                                        |         g_strdup ();
    0x0003664a str r0, [fp, 4]!                                  |         *(arg_4h) = r0;
    0x0003664e add.w sl, sl, 1                                   |         sl++;
    0x00036652 ldr r0, [r4, 4]!                                  |         r0 = *((r4 += 4));
    0x00036656 cmp r0, 0                                         |         
    0x00036658 bne 0x36646                                       |         
                                                                 |     } while (r0 != 0);
    0x0003665a lsl.w sl, sl, 2                                   |     sl <<= 2;
                                                                 |     do {
    0x0003665e ldr r2, [sp, 0x30]                                |         r2 = *(arg_30h);
    0x00036660 mov r3, r8                                        |         r3 = r8;
    0x00036662 mov r1, r7                                        |         r1 = r7;
    0x00036664 str.w sb, [sp]                                    |         __asm ("str.w sb, [sp]");
    0x00036668 mov r0, r5                                        |         r0 = r5;
    0x0003666a str r2, [sp, 4]                                   |         var_4h = r2;
    0x0003666c movs r2, 0                                        |         r2 = 0;
    0x0003666e str.w r2, [r6, sl]                                |         __asm ("str.w r2, [r6, sl]");
    0x00036672 mov r2, r6                                        |         r2 = r6;
    0x00036674 bl 0x363d8                                        |         r0 = g_key_file_load_from_dirs ();
    0x00036678 mov r5, r0                                        |         r5 = r0;
    0x0003667a mov r0, r6                                        |         r0 = r6;
    0x0003667c bl 0x52cb0                                        |         g_strfreev ();
    0x00036680 mov r0, r5                                        |         r0 = r5;
    0x00036682 add sp, 0xc                                       |         
    0x00036684 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_1:
    0x00036688 ldr r1, [pc, 0x3c]                                |         
    0x0003668a movs r5, 0                                        |         r5 = 0;
    0x0003668c ldr r2, [pc, 0x3c]                                |         
    0x0003668e ldr r0, [pc, 0x40]                                |         
    0x00036690 add r1, pc                                        |         
    0x00036692 add r2, pc                                        |         r2 = 0x6cd62;
    0x00036694 add.w r1, r1, 0x1d0                               |         r1 = 0x6cf2c;
    0x00036698 add r0, pc                                        |         r0 = 0x6cd6e;
    0x0003669a bl 0x41bf8                                        |         g_return_if_fail_warning ();
    0x0003669e mov r0, r5                                        |         r0 = r5;
    0x000366a0 add sp, 0xc                                       |         
    0x000366a2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_0:
    0x000366a6 ldr r1, [pc, 0x2c]                                |         
    0x000366a8 ldr r2, [pc, 0x2c]                                |         
    0x000366aa ldr r0, [pc, 0x30]                                |         
    0x000366ac add r1, pc                                        |         
    0x000366ae add r2, pc                                        |         r2 = 0x6cd8a;
    0x000366b0 add.w r1, r1, 0x1d0                               |         r1 = 0x6cf56;
    0x000366b4 add r0, pc                                        |         r0 = 0x6cd96;
    0x000366b6 bl 0x41bf8                                        |         g_return_if_fail_warning ();
    0x000366ba mov r0, r5                                        |         r0 = r5;
    0x000366bc add sp, 0xc                                       |         
    0x000366be pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_2:
    0x000366c2 mov.w sl, 4                                       |         sl = 4;
    0x000366c6 b 0x3665e                                         |         
                                                                 |     } while (1);
                                                                 | }

[*] Function system used 2 times libglib-2.0.so.0.6800.4