[*] Binary protection state of libgmodule-2.0.so.0.5600.4

  
  	Partial RELRO  No Canary found   NX disabled  DSO          No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of libgmodule-2.0.so.0.5600.4

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libgmodule-2.0.so.0.5600.4 @ 0x11e0 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) sym.g_module_open ()                             | void g_module_open (int32_t arg1, int32_t arg2) {
                                                             |     int32_t fildes;
                                                             |     char * s2;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_24h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000011e0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000011e4 ldr r4, [pc, 0x714]                           |     r4 = *(0x18fc);
    0x000011e8 sub sp, sp, 0x24                              |     
    0x000011ec add r4, pc, r4                                |     r4 = pc + r4;
    0x000011f0 mov r5, r0                                    |     r5 = r0;
    0x000011f4 mov r0, 0                                     |     r0 = 0;
    0x000011f8 mov sl, r1                                    |     sl = r1;
    0x000011fc bl 0xe30                                      |     fcn_00000e30 ();
    0x00001200 mov r0, r4                                    |     r0 = r4;
    0x00001204 bl 0xb4c                                      |     g_rec_mutex_lock ();
    0x00001208 ldr r3, [r4, 0x10]                            |     r3 = *(0x190c);
    0x0000120c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00001210 bne 0x1260                                    |         
    0x00001214 ldr r3, [pc, 0x6e8]                           |         r3 = *(0x1900);
    0x00001218 add r4, sp, 0x10                              |         r4 += var_10h;
    0x0000121c add r3, pc, r3                                |         r3 = pc + r3;
    0x00001220 ldm r3, {r0, r1, r2, r3}                      |         r0 = *(r3);
                                                             |         r1 = *((r3 + 4));
                                                             |         r2 = *((r3 + 8));
                                                             |         r3 = *((r3 + 12));
    0x00001224 stm r4, {r0, r1, r2, r3}                      |         *(r4) = r0;
                                                             |         *((r4 + 4)) = r1;
                                                             |         *((r4 + 8)) = r2;
                                                             |         *((r4 + 12)) = r3;
    0x00001228 ldr r0, [pc, 0x6d8]                           |         r0 = *(0x1904);
    0x0000122c add r0, pc, r0                                |         r0 = pc + r0;
    0x00001230 bl 0xc18                                      |         r0 = g_getenv ();
    0x00001234 subs r3, r0, 0                                |         r3 = r0 - 0;
                                                             |         if (r3 != r0) {
    0x00001238 moveq r0, r3                                  |             r0 = r3;
                                                             |         }
                                                             |         if (r3 != r0) {
    0x0000123c beq 0x124c                                    |             
    0x00001240 mov r2, 2                                     |             r2 = 2;
    0x00001244 mov r1, r4                                    |             r1 = r4;
    0x00001248 bl 0xbc4                                      |             g_parse_debug_string ();
                                                             |         }
    0x0000124c ldr r3, [pc, 0x6b8]                           |         r3 = *(0x1908);
    0x00001250 mov r2, 1                                     |         r2 = 1;
    0x00001254 add r3, pc, r3                                |         r3 = pc + r3;
    0x00001258 str r0, [r3, 0x14]                            |         *((r3 + 0x14)) = r0;
    0x0000125c str r2, [r3, 0x10]                            |         *((r3 + 0x10)) = r2;
                                                             |     }
    0x00001260 ldr r3, [pc, 0x6a8]                           |     
    0x00001264 add r3, pc, r3                                |     r3 = pc + r3;
    0x00001268 ldr r3, [r3, 0x14]                            |     r3 = *(0x1920);
    0x0000126c tst r3, 2                                     |     
    0x00001270 bicne sl, sl, 1                               |     __asm ("bicne sl, sl, 1");
    0x00001274 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x00001278 bne 0x12ec                                    |         goto label_15;
                                                             |     }
    0x0000127c ldr r4, [pc, 0x690]                           |     r4 = *(0x1910);
    0x00001280 add r4, pc, r4                                |     r4 = pc + r4;
    0x00001284 ldr r1, [r4, 0x18]                            |     r1 = *(0x1928);
    0x00001288 cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x0000128c bne 0x12d0                                    |         goto label_16;
                                                             |     }
    0x00001290 ldr r1, [pc, 0x680]                           |     r1 = *(0x1914);
    0x00001294 mov r0, r5                                    |     r0 = r5;
    0x00001298 bl 0xaf8                                      |     r0 = dlopen ();
    0x0000129c subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 != r0) {
    0x000012a0 bne 0x1860                                    |         goto label_17;
                                                             |     }
    0x000012a4 mov r0, 1                                     |     r0 = 1;
    0x000012a8 bl 0xe40                                      |     r0 = fcn_00000e40 (r0);
    0x000012ac bl 0xe30                                      |     fcn_00000e30 ();
                                                             |     do {
                                                             | label_12:
    0x000012b0 ldr r4, [pc, 0x664]                           |         
    0x000012b4 add r4, pc, r4                                |         r4 = pc + r4;
    0x000012b8 mov r0, r4                                    |         r0 = r4;
    0x000012bc bl 0xb58                                      |         g_rec_mutex_unlock ();
    0x000012c0 ldr r4, [r4, 0x18]                            |         r4 = *(0x1930);
                                                             | label_1:
    0x000012c4 mov r0, r4                                    |         r0 = r4;
    0x000012c8 add sp, sp, 0x24                              |         
    0x000012cc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_16:
    0x000012d0 ldr r2, [r1, 8]                               |         r2 = *((r1 + 8));
    0x000012d4 add r3, r2, 1                                 |         r3 = r2 + 1;
    0x000012d8 bic r3, r3, 0x80000000                        |         r3 = BIT_MASK (r3, 0x80000000);
    0x000012dc and r2, r2, 0x80000000                        |         r2 &= 0x80000000;
    0x000012e0 orr r3, r3, r2                                |         r3 |= r2;
    0x000012e4 str r3, [r1, 8]                               |         *((r1 + 8)) = r3;
    0x000012e8 b 0x12b0                                      |         
                                                             |     } while (1);
                                                             | label_15:
    0x000012ec ldr r3, [pc, 0x62c]                           |     r3 = *(0x191c);
    0x000012f0 add r3, pc, r3                                |     r3 = pc + r3;
    0x000012f4 ldr r4, [r3, 0xc]                             |     r4 = *(0x1928);
                                                             |     do {
    0x000012f8 cmp r4, 0                                     |         
                                                             |         if (r4 == 0) {
    0x000012fc bne 0x140c                                    |             
    0x00001300 mov r1, 1                                     |             r1 = 1;
    0x00001304 mov r0, r5                                    |             r0 = r5;
    0x00001308 bl 0xbac                                      |             r0 = g_file_test ();
    0x0000130c cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00001310 beq 0x1324                                    |                 
    0x00001314 mov r0, r5                                    |                 r0 = r5;
    0x00001318 bl 0xbd0                                      |                 r0 = g_strdup ();
    0x0000131c subs r4, r0, 0                                |                 r4 = r0 - 0;
                                                             |                 if (r4 != r0) {
    0x00001320 bne 0x1430                                    |                     goto label_3;
                                                             |                 }
                                                             |             }
    0x00001324 ldr r1, [pc, 0x5f8]                           |             r1 = *(0x1920);
    0x00001328 mov r2, 0                                     |             r2 = 0;
    0x0000132c add r1, pc, r1                                |             r1 = pc + r1;
    0x00001330 mov r0, r5                                    |             r0 = r5;
    0x00001334 bl 0xb64                                      |             g_strconcat ();
    0x00001338 mov r1, 1                                     |             r1 = 1;
    0x0000133c mov r4, r0                                    |             r4 = r0;
    0x00001340 bl 0xbac                                      |             r0 = g_file_test ();
    0x00001344 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00001348 bne 0x1428                                    |                 goto label_18;
                                                             |             }
    0x0000134c mov r0, r4                                    |             r0 = r4;
    0x00001350 bl 0xbb8                                      |             g_free ();
                                                             | label_0:
    0x00001354 ldr r1, [pc, 0x5cc]                           |             r1 = *(0x1924);
    0x00001358 mov r2, 0                                     |             r2 = 0;
    0x0000135c add r1, pc, r1                                |             r1 = pc + r1;
    0x00001360 mov r0, r5                                    |             r0 = r5;
    0x00001364 bl 0xb64                                      |             g_strconcat ();
    0x00001368 mov r1, 1                                     |             r1 = 1;
    0x0000136c mov r4, r0                                    |             r4 = r0;
    0x00001370 bl 0xbac                                      |             r0 = g_file_test ();
    0x00001374 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00001378 bne 0x14fc                                    |                 goto label_19;
                                                             |             }
    0x0000137c mov r0, r4                                    |             r0 = r4;
    0x00001380 bl 0xbb8                                      |             g_free ();
                                                             | label_2:
    0x00001384 mov r1, 0x2e                                  |             r1 = 0x2e;
    0x00001388 mov r0, r5                                    |             r0 = r5;
    0x0000138c bl 0xb10                                      |             strrchr (r0, r1);
    0x00001390 mov r1, 0x2f                                  |             r1 = 0x2f;
    0x00001394 mov r4, r0                                    |             r4 = r0;
    0x00001398 mov r0, r5                                    |             r0 = r5;
    0x0000139c bl 0xb10                                      |             r0 = strrchr (r0, r1);
    0x000013a0 cmp r4, r0                                    |             
                                                             |             if (r4 < r0) {
    0x000013a4 movhs r0, 0                                   |                 r0 = 0;
                                                             |             }
                                                             |             if (r4 >= r0) {
    0x000013a8 movlo r0, 1                                   |                 r0 = 1;
                                                             |             }
    0x000013ac cmp r4, 0                                     |             
                                                             |             if (r4 != 0) {
    0x000013b0 moveq r0, 1                                   |                 r0 = 1;
                                                             |             }
    0x000013b4 cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x000013b8 beq 0x1508                                    |                 goto label_20;
                                                             |             }
    0x000013bc ldr r1, [pc, 0x568]                           |             r1 = *(0x1928);
    0x000013c0 mov r2, 0                                     |             r2 = 0;
    0x000013c4 add r1, pc, r1                                |             r1 = pc + r1;
    0x000013c8 mov r0, r5                                    |             r0 = r5;
    0x000013cc bl 0xb64                                      |             r0 = g_strconcat ();
                                                             | label_4:
    0x000013d0 cmp r0, 0                                     |             
    0x000013d4 mov r4, r0                                    |             r4 = r0;
                                                             |             if (r0 != 0) {
    0x000013d8 bne 0x1430                                    |                 goto label_3;
                                                             |             }
    0x000013dc mov r0, r5                                    |             r0 = r5;
    0x000013e0 bl 0xb40                                      |             g_filename_display_name ();
    0x000013e4 mov r7, r4                                    |             r7 = r4;
    0x000013e8 mov r1, r0                                    |             r1 = r0;
    0x000013ec mov r6, r0                                    |             r6 = r0;
    0x000013f0 ldr r0, [pc, 0x538]                           |             r0 = *(0x192c);
    0x000013f4 add r0, pc, r0                                |             r0 = pc + r0;
    0x000013f8 bl 0xb28                                      |             g_strdup_printf ()
    0x000013fc bl 0xe08                                      |             fcn_00000e08 (r0);
    0x00001400 mov r0, r6                                    |             r0 = r6;
    0x00001404 bl 0xbb8                                      |             g_free ();
    0x00001408 b 0x14d8                                      |             goto label_21;
                                                             |         }
    0x0000140c ldr r1, [r4]                                  |         r1 = *(r4);
    0x00001410 mov r0, r5                                    |         r0 = r5;
    0x00001414 bl 0xaec                                      |         r0 = strcmp (r0, r1);
    0x00001418 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0000141c beq 0x1884                                    |             goto label_22;
                                                             |         }
    0x00001420 ldr r4, [r4, 0x10]                            |         r4 = *((r4 + 0x10));
    0x00001424 b 0x12f8                                      |         
                                                             |     } while (1);
                                                             | label_18:
    0x00001428 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x0000142c beq 0x1354                                    |         goto label_0;
                                                             |     }
                                                             | label_3:
    0x00001430 mov r0, r4                                    |     r0 = r4;
    0x00001434 bl 0xc54                                      |     r0 = strlen (r0);
    0x00001438 cmp r0, 2                                     |     
                                                             |     if (r0 >= 2) {
    0x0000143c bls 0x14a0                                    |         
    0x00001440 ldr r1, [pc, 0x4ec]                           |         r1 = *(0x1930);
    0x00001444 sub r0, r0, 3                                 |         r0 -= 3;
    0x00001448 add r1, pc, r1                                |         r1 = pc + r1;
    0x0000144c add r0, r4, r0                                |         r0 = r4 + r0;
    0x00001450 bl 0xaec                                      |         r0 = strcmp (r0, r1);
    0x00001454 subs r6, r0, 0                                |         r6 = r0 - 0;
                                                             |         if (r6 != r0) {
    0x00001458 bne 0x14a0                                    |             goto label_5;
                                                             |         }
    0x0000145c mov r2, r6                                    |         r2 = r6;
    0x00001460 mov r1, r6                                    |         r1 = r6;
    0x00001464 mov r0, r4                                    |         r0 = r4;
    0x00001468 bl 0xc48                                      |         r0 = open64 ();
    0x0000146c subs r3, r0, 0                                |         r3 = r0 - 0;
    0x00001470 str r3, [sp, 8]                               |         fildes = r3;
                                                             |         if (r3 >= r0) {
    0x00001474 bge 0x1514                                    |             goto label_23;
                                                             |         }
    0x00001478 mov r0, r4                                    |         r0 = r4;
    0x0000147c bl 0xb40                                      |         r0 = g_filename_display_name ();
    0x00001480 mov r1, r0                                    |         r1 = r0;
    0x00001484 mov r6, r0                                    |         r6 = r0;
    0x00001488 ldr r0, [pc, 0x4a8]                           |         r0 = *(0x1934);
    0x0000148c add r0, pc, r0                                |         r0 = pc + r0;
    0x00001490 bl 0xb28                                      |         g_strdup_printf ()
    0x00001494 bl 0xe08                                      |         fcn_00000e08 (r0);
    0x00001498 mov r0, r6                                    |         r0 = r6;
    0x0000149c bl 0xbb8                                      |         g_free ();
                                                             |     }
                                                             | label_5:
    0x000014a0 tst sl, 2                                     |     
                                                             |     if ((sl & 2) == 0) {
    0x000014a4 movne r1, 0                                   |         r1 = 0;
                                                             |     }
                                                             |     if ((sl & 2) != 0) {
    0x000014a8 moveq r1, 0x100                               |         r1 = 0x100;
                                                             |     }
    0x000014ac tst sl, 1                                     |     
                                                             |     if ((sl & 1) != 0) {
    0x000014b0 moveq r3, 2                                   |         r3 = 2;
                                                             |     }
                                                             |     if ((sl & 1) == 0) {
    0x000014b4 movne r3, 1                                   |         r3 = 1;
                                                             |     }
    0x000014b8 orr r1, r1, r3                                |     r1 |= r3;
    0x000014bc mov r0, r4                                    |     r0 = r4;
    0x000014c0 bl 0xaf8                                      |     r0 = dlopen ();
    0x000014c4 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 == r0) {
    0x000014c8 bne 0x14d8                                    |         
    0x000014cc mov r0, 1                                     |         r0 = 1;
    0x000014d0 bl 0xe40                                      |         r0 = fcn_00000e40 (r0);
    0x000014d4 bl 0xe30                                      |         fcn_00000e30 ();
                                                             |     }
                                                             | label_21:
    0x000014d8 mov r0, r4                                    |     r0 = r4;
    0x000014dc bl 0xbb8                                      |     g_free ();
    0x000014e0 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x000014e4 bne 0x1700                                    |         goto label_24;
                                                             |     }
                                                             | label_7:
    0x000014e8 mov r4, 0                                     |     r4 = 0;
                                                             | label_8:
    0x000014ec ldr r0, [pc, 0x448]                           |     r0 = *(0x1938);
    0x000014f0 add r0, pc, r0                                |     r0 = pc + r0;
                                                             | label_13:
    0x000014f4 bl 0xb58                                      |     g_rec_mutex_unlock ();
    0x000014f8 b 0x12c4                                      |     goto label_1;
                                                             | label_19:
    0x000014fc cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00001500 beq 0x1384                                    |         goto label_2;
                                                             |     }
    0x00001504 b 0x1430                                      |     goto label_3;
                                                             | label_20:
    0x00001508 mov r0, r5                                    |     r0 = r5;
    0x0000150c bl 0xbd0                                      |     g_strdup ();
    0x00001510 b 0x13d0                                      |     goto label_4;
                                                             | label_23:
    0x00001514 mov r0, r6                                    |     r0 = r6;
    0x00001518 bl 0xb1c                                      |     g_scanner_new ();
    0x0000151c ldr r1, [sp, 8]                               |     r1 = fildes;
    0x00001520 mov sb, 1                                     |     sb = 1;
    0x00001524 mov r8, r6                                    |     r8 = r6;
    0x00001528 mov r7, r0                                    |     r7 = r0;
    0x0000152c bl 0xc60                                      |     g_scanner_input_file ();
    0x00001530 ldr r2, [r7, 0x14]                            |     r2 = *((r7 + 0x14));
    0x00001534 mov r1, r6                                    |     r1 = r6;
    0x00001538 ldrb r3, [r2, 0x12]                           |     r3 = *((r2 + 0x12));
    0x0000153c mov r0, r7                                    |     r0 = r7;
    0x00001540 orr r3, r3, 8                                 |     r3 |= 8;
    0x00001544 strb r3, [r2, 0x12]                           |     *((r2 + 0x12)) = r3;
    0x00001548 ldr r2, [pc, 0x3f0]                           |     r2 = *(0x193c);
    0x0000154c ldr r3, [pc, 0x3f0]                           |     r3 = *(0x1940);
    0x00001550 add r2, pc, r2                                |     r2 = pc + r2;
    0x00001554 bl 0xb34                                      |     g_scanner_scope_add_symbol ();
    0x00001558 ldr r2, [pc, 0x3e8]                           |     r2 = *(0x1944);
    0x0000155c mov r3, 0x110                                 |     r3 = 0x110;
    0x00001560 add r2, pc, r2                                |     r2 = pc + r2;
    0x00001564 mov r1, r6                                    |     r1 = r6;
    0x00001568 mov r0, r7                                    |     r0 = r7;
    0x0000156c bl 0xb34                                      |     g_scanner_scope_add_symbol ();
    0x00001570 ldr r2, [pc, 0x3d4]                           |     r2 = "g_private_get";
    0x00001574 ldr r3, [pc, 0x3d4]                           |     r3 = "_module_error";
    0x00001578 add r2, pc, r2                                |     r2 = pc + r2;
    0x0000157c mov r1, r6                                    |     r1 = r6;
    0x00001580 mov r0, r7                                    |     r0 = r7;
    0x00001584 bl 0xb34                                      |     g_scanner_scope_add_symbol ();
    0x00001588 ldr r3, [pc, 0x3c4]                           |     r3 = *(0x1950);
    0x0000158c add r3, pc, r3                                |     r3 = pc + r3;
    0x00001590 str r3, [sp, 0xc]                             |     s2 = r3;
                                                             | label_6:
    0x00001594 mov r0, r7                                    |     r0 = r7;
    0x00001598 bl 0xc0c                                      |     r0 = g_scanner_eof ();
    0x0000159c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000015a0 beq 0x1634                                    |         goto label_25;
                                                             |     }
    0x000015a4 cmp sb, 0                                     |     
                                                             |     if (sb == 0) {
    0x000015a8 bne 0x15e0                                    |         
    0x000015ac mov r0, r4                                    |         r0 = r4;
    0x000015b0 bl 0xc30                                      |         r0 = g_path_get_dirname ();
    0x000015b4 mov fp, r0                                    |         
    0x000015b8 mov r0, r6                                    |         r0 = r6;
    0x000015bc bl 0xbb8                                      |         g_free ();
    0x000015c0 ldr r1, [pc, 0x390]                           |         r1 = "get";
    0x000015c4 mov r2, sb                                    |         r2 = sb;
    0x000015c8 add r1, pc, r1                                |         r1 = pc + r1;
    0x000015cc mov r0, fp                                    |         r0 = fp;
    0x000015d0 bl 0xb64                                      |         r0 = g_strconcat ();
    0x000015d4 mov r6, r0                                    |         r6 = r0;
    0x000015d8 mov r0, fp                                    |         r0 = fp;
    0x000015dc bl 0xbb8                                      |         g_free ();
                                                             |     }
    0x000015e0 ldr r1, [pc, 0x374]                           |     r1 = "ident";
    0x000015e4 mov r3, 0                                     |     r3 = 0;
    0x000015e8 mov r2, r8                                    |     r2 = r8;
    0x000015ec add r1, pc, r1                                |     r1 = pc + r1;
    0x000015f0 mov r0, r6                                    |     r0 = r6;
    0x000015f4 bl 0xb64                                      |     r0 = g_strconcat ();
    0x000015f8 mov sb, r0                                    |     sb = r0;
    0x000015fc mov r0, r8                                    |     r0 = r8;
    0x00001600 bl 0xbb8                                      |     g_free ();
    0x00001604 mov r0, r6                                    |     r0 = r6;
    0x00001608 bl 0xbb8                                      |     g_free ();
    0x0000160c mov r0, r7                                    |     r0 = r7;
    0x00001610 bl 0xc00                                      |     g_scanner_destroy ();
    0x00001614 ldr r0, [sp, 8]                               |     r0 = fildes;
    0x00001618 bl 0xbdc                                      |     close (r0);
    0x0000161c cmp sb, 0                                     |     
                                                             |     if (sb == 0) {
    0x00001620 beq 0x14a0                                    |         goto label_5;
                                                             |     }
    0x00001624 mov r0, r4                                    |     r0 = r4;
    0x00001628 bl 0xbb8                                      |     g_free ();
    0x0000162c mov r4, sb                                    |     r4 = sb;
    0x00001630 b 0x14a0                                      |     goto label_5;
                                                             | label_25:
    0x00001634 mov r0, r7                                    |     r0 = r7;
    0x00001638 bl 0xbf4                                      |     r0 = g_scanner_get_next_token ();
    0x0000163c sub r2, r0, 0x10c                             |     r2 = r0 - 0x10c;
    0x00001640 sub r2, r2, 3                                 |     r2 -= 3;
    0x00001644 cmp r2, 2                                     |     
    0x00001648 mov fp, r0                                    |     
                                                             |     if (r2 > 2) {
    0x0000164c bhi 0x1594                                    |         goto label_6;
                                                             |     }
    0x00001650 mov r0, r7                                    |     r0 = r7;
    0x00001654 bl 0xbf4                                      |     r0 = g_scanner_get_next_token ();
    0x00001658 cmp r0, 0x3d                                  |     
    0x0000165c beq 0x16ac                                    |     
                                                             |     while (r0 != 0x108) {
                                                             | label_14:
    0x00001660 mov r0, r4                                    |         r0 = r4;
    0x00001664 bl 0xb40                                      |         r0 = g_filename_display_name ();
    0x00001668 mov r1, r0                                    |         r1 = r0;
    0x0000166c mov sb, r0                                    |         sb = r0;
    0x00001670 ldr r0, [pc, 0x2e8]                           |         r0 = *(0x195c);
    0x00001674 add r0, pc, r0                                |         r0 = pc + r0;
    0x00001678 bl 0xb28                                      |         g_strdup_printf ()
    0x0000167c bl 0xe08                                      |         fcn_00000e08 (r0);
    0x00001680 mov r0, sb                                    |         r0 = sb;
    0x00001684 bl 0xbb8                                      |         g_free ();
    0x00001688 mov r0, r8                                    |         r0 = r8;
    0x0000168c bl 0xbb8                                      |         g_free ();
    0x00001690 mov r0, r6                                    |         r0 = r6;
    0x00001694 bl 0xbb8                                      |         g_free ();
    0x00001698 mov r0, r7                                    |         r0 = r7;
    0x0000169c bl 0xc00                                      |         g_scanner_destroy ();
    0x000016a0 ldr r0, [sp, 8]                               |         r0 = fildes;
    0x000016a4 bl 0xbdc                                      |         close (r0);
    0x000016a8 b 0x14a0                                      |         goto label_5;
    0x000016ac mov r0, r7                                    |         r0 = r7;
    0x000016b0 bl 0xbf4                                      |         g_scanner_get_next_token ();
    0x000016b4 cmp fp, 0x110                                 |         
                                                             |         if (fp == 0x110) {
    0x000016b8 beq 0x18dc                                    |             goto label_26;
                                                             |         }
    0x000016bc cmp r0, 0x108                                 |         
    0x000016c0 bne 0x1660                                    |         
                                                             |     }
    0x000016c4 ldr r3, [pc, 0x278]                           |     r3 = *(0x1940);
    0x000016c8 cmp fp, r3                                    |     
                                                             |     if (fp == r3) {
    0x000016cc bne 0x16e8                                    |         
    0x000016d0 mov r0, r8                                    |         r0 = r8;
    0x000016d4 bl 0xbb8                                      |         g_free ();
    0x000016d8 ldr r0, [r7, 0x20]                            |         r0 = *((r7 + 0x20));
    0x000016dc bl 0xbd0                                      |         r0 = g_strdup ();
    0x000016e0 mov r8, r0                                    |         r8 = r0;
    0x000016e4 b 0x1594                                      |         goto label_6;
                                                             |     }
    0x000016e8 mov r0, r6                                    |     r0 = r6;
    0x000016ec bl 0xbb8                                      |     g_free ();
    0x000016f0 ldr r0, [r7, 0x20]                            |     r0 = *((r7 + 0x20));
    0x000016f4 bl 0xbd0                                      |     r0 = g_strdup ();
    0x000016f8 mov r6, r0                                    |     r6 = r0;
    0x000016fc b 0x1594                                      |     goto label_6;
                                                             | label_24:
    0x00001700 ldr r3, [pc, 0x25c]                           |     r3 = *(0x1960);
    0x00001704 add r3, pc, r3                                |     r3 = pc + r3;
    0x00001708 ldr r4, [r3, 0x18]                            |     r4 = *(0x1978);
    0x0000170c cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00001710 beq 0x1720                                    |         
    0x00001714 ldr r3, [r4, 4]                               |         r3 = *((r4 + 4));
    0x00001718 cmp r7, r3                                    |         
                                                             |         if (r7 == r3) {
    0x0000171c beq 0x18a8                                    |             goto label_27;
                                                             |         }
                                                             |     }
    0x00001720 ldr r3, [pc, 0x240]                           |     r3 = *(0x1964);
    0x00001724 add r3, pc, r3                                |     r3 = pc + r3;
    0x00001728 ldr r4, [r3, 0xc]                             |     r4 = *(0x1970);
                                                             | label_9:
    0x0000172c cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00001730 bne 0x17f8                                    |         goto label_28;
                                                             |     }
    0x00001734 bl 0xee4                                      |     g_module_error ();
    0x00001738 bl 0xbd0                                      |     r0 = g_strdup ();
    0x0000173c mov r8, r0                                    |     r8 = r0;
    0x00001740 mov r0, r4                                    |     r0 = r4;
    0x00001744 bl 0xe30                                      |     fcn_00000e30 ();
    0x00001748 mov r0, 0x14                                  |     r0 = 0x14;
    0x0000174c bl 0xad4                                      |     r0 = g_malloc ();
    0x00001750 mov r6, r0                                    |     r6 = r0;
    0x00001754 mov r0, r5                                    |     r0 = r5;
    0x00001758 bl 0xbd0                                      |     g_strdup ();
    0x0000175c mov r3, 1                                     |     r3 = 1;
    0x00001760 str r3, [r6, 8]                               |     *((r6 + 8)) = r3;
    0x00001764 ldr r3, [pc, 0x200]                           |     r3 = *(0x1968);
    0x00001768 ldr r1, [pc, 0x200]                           |     r1 = *(0x196c);
    0x0000176c add r3, pc, r3                                |     r3 = pc + r3;
    0x00001770 ldr r2, [r3, 0xc]                             |     r2 = "_";
    0x00001774 str r4, [r6, 0xc]                             |     *((r6 + 0xc)) = r4;
    0x00001778 str r2, [r6, 0x10]                            |     *((r6 + 0x10)) = r2;
    0x0000177c add r1, pc, r1                                |     r1 = pc + r1;
    0x00001780 add r2, sp, 0x10                              |     r2 += var_10h;
    0x00001784 str r6, [r3, 0xc]                             |     *((r3 + 0xc)) = r6;
    0x00001788 stm r6, {r0, r7}                              |     *(r6) = r0;
                                                             |     *((r6 + 4)) = r7;
    0x0000178c mov r0, r6                                    |     r0 = r6;
    0x00001790 bl 0x105c                                     |     r0 = g_module_symbol ();
    0x00001794 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00001798 beq 0x17a8                                    |         
    0x0000179c ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x000017a0 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000017a4 bne 0x180c                                    |             goto label_29;
                                                             |         }
                                                             |     }
                                                             | label_10:
    0x000017a8 ldr r1, [pc, 0x1c4]                           |     r1 = *(0x1970);
    0x000017ac add r2, r6, 0xc                               |     r2 = r6 + 0xc;
    0x000017b0 add r1, pc, r1                                |     r1 = pc + r1;
    0x000017b4 mov r0, r6                                    |     r0 = r6;
    0x000017b8 bl 0x105c                                     |     g_module_symbol ();
    0x000017bc mov r0, r8                                    |     r0 = r8;
    0x000017c0 bl 0xe30                                      |     fcn_00000e30 ();
    0x000017c4 mov r4, r6                                    |     r4 = r6;
                                                             | label_11:
    0x000017c8 mov r0, r8                                    |     r0 = r8;
    0x000017cc bl 0xbb8                                      |     g_free ();
    0x000017d0 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x000017d4 beq 0x14e8                                    |         goto label_7;
                                                             |     }
    0x000017d8 ldr r3, [pc, 0x198]                           |     
    0x000017dc add r3, pc, r3                                |     r3 = pc + r3;
    0x000017e0 ldr r3, [r3, 0x14]                            |     r3 = *(0x1988);
    0x000017e4 tst r3, 1                                     |     
                                                             |     if ((r3 & 1) == 0) {
    0x000017e8 beq 0x14ec                                    |         goto label_8;
                                                             |     }
    0x000017ec mov r0, r4                                    |     r0 = r4;
    0x000017f0 bl 0xea4                                      |     g_module_make_resident ();
    0x000017f4 b 0x14ec                                      |     goto label_8;
                                                             | label_28:
    0x000017f8 ldr r3, [r4, 4]                               |     r3 = *((r4 + 4));
    0x000017fc cmp r7, r3                                    |     
                                                             |     if (r7 == r3) {
    0x00001800 beq 0x18a8                                    |         goto label_27;
                                                             |     }
    0x00001804 ldr r4, [r4, 0x10]                            |     r4 = *((r4 + 0x10));
    0x00001808 b 0x172c                                      |     goto label_9;
                                                             | label_29:
    0x0000180c mov r0, r6                                    |     r0 = r6;
    0x00001810 blx r3                                        |     r0 = uint32_t (*r3)(uint32_t) (r0);
    0x00001814 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00001818 beq 0x17a8                                    |         goto label_10;
                                                             |     }
    0x0000181c stm sp, {r0, r4}                              |     *(sp) = r0;
                                                             |     *((sp + 4)) = r4;
    0x00001820 ldr r3, [pc, 0x154]                           |     r3 = *(0x1978);
    0x00001824 ldr r2, [pc, 0x154]                           |     r2 = *(0x197c);
    0x00001828 ldr r0, [pc, 0x154]                           |     r0 = *(0x1980);
    0x0000182c mov r1, r5                                    |     r1 = r5;
    0x00001830 add r3, pc, r3                                |     r3 = pc + r3;
    0x00001834 add r2, pc, r2                                |     r2 = pc + r2;
    0x00001838 add r0, pc, r0                                |     r0 = pc + r0;
    0x0000183c bl 0xb64                                      |     r0 = g_strconcat ();
    0x00001840 mov r5, r0                                    |     r5 = r0;
    0x00001844 mov r0, r6                                    |     r0 = r6;
    0x00001848 bl 0xef4                                      |     g_module_close ();
    0x0000184c mov r0, r5                                    |     r0 = r5;
    0x00001850 bl 0xe30                                      |     fcn_00000e30 ();
    0x00001854 mov r0, r5                                    |     r0 = r5;
    0x00001858 bl 0xbb8                                      |     g_free ();
    0x0000185c b 0x17c8                                      |     goto label_11;
                                                             | label_17:
    0x00001860 mov r0, 0x14                                  |     r0 = 0x14;
    0x00001864 bl 0xad4                                      |     g_malloc ();
    0x00001868 mov r3, 0x80000001                            |     r3 = 0x80000001;
    0x0000186c str r0, [r4, 0x18]                            |     *((r4 + 0x18)) = r0;
    0x00001870 stm r0, {r5, r6}                              |     *(r0) = r5;
                                                             |     *((r0 + 4)) = r6;
    0x00001874 str r3, [r0, 8]                               |     *((r0 + 8)) = r3;
    0x00001878 str r5, [r0, 0xc]                             |     *((r0 + 0xc)) = r5;
    0x0000187c str r5, [r0, 0x10]                            |     *((r0 + 0x10)) = r5;
    0x00001880 b 0x12b0                                      |     goto label_12;
                                                             | label_22:
    0x00001884 ldr r2, [r4, 8]                               |     r2 = *((r4 + 8));
    0x00001888 ldr r0, [pc, 0xf8]                            |     r0 = *(0x1984);
    0x0000188c add r3, r2, 1                                 |     r3 = r2 + 1;
    0x00001890 bic r3, r3, 0x80000000                        |     r3 = BIT_MASK (r3, 0x80000000);
    0x00001894 and r2, r2, 0x80000000                        |     r2 &= 0x80000000;
    0x00001898 orr r3, r3, r2                                |     r3 |= r2;
    0x0000189c str r3, [r4, 8]                               |     *((r4 + 8)) = r3;
    0x000018a0 add r0, pc, r0                                |     r0 = pc + r0;
    0x000018a4 b 0x14f4                                      |     goto label_13;
                                                             | label_27:
    0x000018a8 ldr r0, [r4, 4]                               |     r0 = *((r4 + 4));
    0x000018ac bl 0xe70                                      |     fcn_00000e70 ();
    0x000018b0 ldr r2, [r4, 8]                               |     r2 = *((r4 + 8));
    0x000018b4 mov r0, 0                                     |     r0 = 0;
    0x000018b8 add r3, r2, 1                                 |     r3 = r2 + 1;
    0x000018bc bic r3, r3, 0x80000000                        |     r3 = BIT_MASK (r3, 0x80000000);
    0x000018c0 and r2, r2, 0x80000000                        |     r2 &= 0x80000000;
    0x000018c4 orr r3, r3, r2                                |     r3 |= r2;
    0x000018c8 str r3, [r4, 8]                               |     *((r4 + 8)) = r3;
    0x000018cc bl 0xe30                                      |     fcn_00000e30 ();
    0x000018d0 ldr r0, [pc, 0xb4]                            |     r0 = *(0x1988);
    0x000018d4 add r0, pc, r0                                |     r0 = pc + r0;
    0x000018d8 b 0x14f4                                      |     goto label_13;
                                                             | label_26:
    0x000018dc ldr r3, [pc, 0xac]                            |     r3 = *(0x198c);
    0x000018e0 cmp r0, r3                                    |     
                                                             |     if (r0 != r3) {
    0x000018e4 bne 0x1660                                    |         goto label_14;
                                                             |     }
    0x000018e8 ldr r1, [sp, 0xc]                             |     r1 = s2;
    0x000018ec ldr r0, [r7, 0x20]                            |     r0 = *((r7 + 0x20));
    0x000018f0 bl 0xaec                                      |     r0 = strcmp (r0, r1);
    0x000018f4 clz sb, r0                                    |     sb &= r0;
    0x000018f8 lsr sb, sb, 5                                 |     sb >>= 5;
    0x000018fc b 0x1594                                      |     goto label_6;
                                                             | }

[*] Function printf used 4 times libgmodule-2.0.so.0.5600.4