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

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


[*] Function popen tear down of libgio-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/libgio-2.0.so.0.5600.4 @ 0x2e594 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) entry.fini0 ()               | void entry_fini0 () {
    0x0002e594 ldr r3, [pc, 0x68]        |     r3 = *(0x2e600);
    0x0002e598 push {r4, lr}             |     
    0x0002e59c ldr r4, [pc, 0x64]        |     r4 = "_get_drive";
    0x0002e5a0 add r3, pc, r3            |     r3 = pc + r3;
    0x0002e5a4 ldrb r3, [r3]             |     r3 = *(r3);
    0x0002e5a8 add r4, pc, r4            |     r4 = pc + r4;
    0x0002e5ac cmp r3, 0                 |     
    0x0002e5b0 popne {r4, pc}            |     
    0x0002e5b4 ldr r3, [pc, 0x50]        |     r3 = "se_lookup_certificates_issued_by_async";
    0x0002e5b8 ldr r3, [r4, r3]          |     r3 = "_get_drive";
    0x0002e5bc cmp r3, 0                 |     
                                         |     if (r3 != 0) {
    0x0002e5c0 beq 0x2e5d0               |         
    0x0002e5c4 ldr r3, [pc, 0x44]        |         r3 = *(0x2e60c);
    0x0002e5c8 ldr r0, [pc, r3]          |         r0 = *(0x0002e5d0);
    0x0002e5cc bl 0x2bd6c                |         cxa_finalize ();
                                         |     }
    0x0002e5d0 bl 0x2e4d8                |     entry0 ();
    0x0002e5d4 ldr r3, [pc, 0x38]        |     r3 = "_server_identity";
    0x0002e5d8 ldr r3, [r4, r3]          |     r3 = *((r4 + r3));
    0x0002e5dc cmp r3, 0                 |     
                                         |     if (r3 != 0) {
    0x0002e5e0 beq 0x2e5f0               |         
    0x0002e5e4 ldr r0, [pc, 0x2c]        |         r0 = *(0x2e614);
    0x0002e5e8 add r0, pc, r0            |         r0 = pc + r0;
    0x0002e5ec bl 0x2d62c                |         loc_imp_deregister_frame_info ();
                                         |     }
    0x0002e5f0 ldr r3, [pc, 0x24]        |     r3 = *(0x2e618);
    0x0002e5f4 mov r2, 1                 |     r2 = 1;
    0x0002e5f8 add r3, pc, r3            |     r3 = pc + r3;
    0x0002e5fc strb r2, [r3]             |     *(r3) = r2;
    0x0002e600 pop {r4, pc}              |     
                                         | }
    ; 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/libgio-2.0.so.0.5600.4 @ 0x688b4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000688b4 ()                      | void fcn_000688b4 (int32_t arg1) {
                                                 |     r0 = arg1;
    0x000688b4 push {r4, r5, r6, r7, r8, lr}     |     
    0x000688b8 mov r5, r0                        |     r5 = r0;
    0x000688bc bl 0x87e98                        |     g_task_get_source_object ();
    0x000688c0 ldr r3, [r0, 0x14]                |     r3 = *((r0 + 0x14));
    0x000688c4 mov r4, r0                        |     r4 = r0;
    0x000688c8 cmp r3, 0                         |     
                                                 |     if (r3 != 0) {
    0x000688cc bne 0x68928                       |         goto label_0;
                                                 |     }
    0x000688d0 ldr r3, [r0, 0x18]                |     r3 = *((r0 + 0x18));
    0x000688d4 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x000688d8 beq 0x68928                       |         goto label_0;
                                                 |     }
    0x000688dc ldr r6, [r3]                      |     r6 = *(r3);
    0x000688e0 ldr r3, [r3, 4]                   |     r3 = *((r3 + 4));
    0x000688e4 str r3, [r0, 0x18]                |     *((r0 + 0x18)) = r3;
    0x000688e8 mov r0, r6                        |     r0 = r6;
    0x000688ec bl 0x866b8                        |     r0 = g_srv_target_get_hostname ();
    0x000688f0 mov r7, r0                        |     r7 = r0;
    0x000688f4 mov r0, r6                        |     r0 = r6;
    0x000688f8 bl 0x866c0                        |     r0 = g_srv_target_get_port ();
    0x000688fc mov r1, r0                        |     r1 = r0;
    0x00068900 mov r0, r7                        |     r0 = r7;
    0x00068904 bl 0x66910                        |     g_network_address_new ();
    0x00068908 ldr r3, [r4, 0x1c]                |     r3 = *((r4 + 0x1c));
    0x0006890c cmp r3, 0                         |     
    0x00068910 mov r6, r0                        |     r6 = r0;
                                                 |     if (r3 == 0) {
    0x00068914 beq 0x68958                       |         goto label_1;
                                                 |     }
    0x00068918 bl 0x7f5d4                        |     g_socket_connectable_proxy_enumerate ();
                                                 |     do {
    0x0006891c str r0, [r4, 0x14]                |         *((r4 + 0x14)) = r0;
    0x00068920 mov r0, r6                        |         r0 = r6;
    0x00068924 bl 0x2bec8                        |         g_object_unref ();
                                                 | label_0:
    0x00068928 ldr r6, [r4, 0x14]                |         r6 = *((r4 + 0x14));
    0x0006892c cmp r6, 0                         |         
                                                 |         if (r6 == 0) {
    0x00068930 beq 0x68960                       |             goto label_2;
                                                 |         }
    0x00068934 mov r0, r5                        |         r0 = r5;
    0x00068938 bl 0x88088                        |         g_task_get_cancellable ();
    0x0006893c ldr r2, [pc, 0x4c]                |         r2 = *(0x6898c);
    0x00068940 mov r3, r5                        |         r3 = r5;
    0x00068944 add r2, pc, r2                    |         r2 = pc + r2;
    0x00068948 mov r1, r0                        |         r1 = r0;
    0x0006894c mov r0, r6                        |         r0 = r6;
    0x00068950 pop {r4, r5, r6, r7, r8, lr}      |         
    0x00068954 b 0x7d44c                         |         void (*0x7d44c)() ();
                                                 | label_1:
    0x00068958 bl 0x7f544                        |         g_socket_connectable_enumerate ();
    0x0006895c b 0x6891c                         |         
                                                 |     } while (1);
                                                 | label_2:
    0x00068960 ldr r2, [r4, 0x20]                |     r2 = *((r4 + 0x20));
    0x00068964 mov r0, r5                        |     r0 = r5;
    0x00068968 cmp r2, 0                         |     
    0x0006896c mov r1, r2                        |     r1 = r2;
                                                 |     if (r2 == 0) {
    0x00068970 beq 0x68988                       |         goto label_3;
                                                 |     }
    0x00068974 bl 0x88e4c                        |     g_task_return_error ();
    0x00068978 str r6, [r4, 0x20]                |     *((r4 + 0x20)) = r6;
                                                 |     do {
    0x0006897c mov r0, r5                        |         r0 = r5;
    0x00068980 pop {r4, r5, r6, r7, r8, lr}      |         
    0x00068984 b 0x2bec8                         |         void (*0x2bec8)() ();
                                                 | label_3:
    0x00068988 bl 0x88970                        |         g_task_return_pointer ();
    0x0006898c b 0x6897c                         |         
                                                 |     } while (1);
                                                 | }
    ; 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/libgio-2.0.so.0.5600.4 @ 0xa6388 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000a6388 ()                                      | void fcn_000a6388 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_24h;
                                                                 |     int32_t var_2ch;
                                                                 |     int32_t var_34h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000a6388 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x000a638c ldr r5, [r0, 0x18]                                |     r5 = *((r0 + 0x18));
    0x000a6390 ldr r7, [pc, 0x1b8]                               |     r7 = *(0xa654c);
    0x000a6394 cmp r5, 0                                         |     
    0x000a6398 add r7, pc, r7                                    |     r7 = pc + r7;
    0x000a639c sub sp, sp, 0x34                                  |     
                                                                 |     if (r5 == 0) {
    0x000a63a0 bne 0xa6470                                       |         
    0x000a63a4 ldr r3, [pc, 0x1a8]                               |         r3 = *(0xa6550);
    0x000a63a8 str r5, [sp, 0x14]                                |         var_14h = r5;
    0x000a63ac add r3, pc, r3                                    |         r3 = pc + r3;
    0x000a63b0 str r5, [sp, 8]                                   |         var_8h = r5;
    0x000a63b4 str r5, [sp, 4]                                   |         var_4h = r5;
    0x000a63b8 str r0, [sp, 0x10]                                |         var_10h = r0;
    0x000a63bc str r3, [sp, 0xc]                                 |         var_ch = r3;
    0x000a63c0 ldr r3, [r0, 0x14]                                |         r3 = *((r0 + 0x14));
    0x000a63c4 ldr r6, [pc, 0x18c]                               |         r6 = *(0xa6554);
    0x000a63c8 str r3, [sp]                                      |         *(sp) = r3;
    0x000a63cc ldr r3, [pc, 0x188]                               |         r3 = *(0xa6558);
    0x000a63d0 add r6, pc, r6                                    |         r6 = pc + r6;
    0x000a63d4 mov r4, r0                                        |         r4 = r0;
    0x000a63d8 add r3, pc, r3                                    |         r3 = pc + r3;
    0x000a63dc mov sl, r1                                        |         sl = r1;
    0x000a63e0 mov fp, r2                                        |         
    0x000a63e4 ldr r1, [r0, 0x10]                                |         r1 = *((r0 + 0x10));
    0x000a63e8 mov r2, r6                                        |         r2 = r6;
    0x000a63ec ldr r0, [r0, 0xc]                                 |         r0 = *((r0 + 0xc));
    0x000a63f0 bl 0xc0598                                        |         g_dbus_connection_signal_subscribe ();
    0x000a63f4 ldr r8, [pc, 0x164]                               |         r8 = *(0xa655c);
    0x000a63f8 ldr r1, [r4, 0x10]                                |         r1 = *((r4 + 0x10));
    0x000a63fc ldr r2, [r4, 0x14]                                |         r2 = *((r4 + 0x14));
    0x000a6400 add r8, pc, r8                                    |         r8 = pc + r8;
    0x000a6404 ldr sb, [r4, 0xc]                                 |         sb = *((r4 + 0xc));
    0x000a6408 str r1, [sp, 0x24]                                |         var_24h = r1;
    0x000a640c str r2, [sp, 0x20]                                |         var_20h = r2;
    0x000a6410 str r0, [r4, 0x18]                                |         *((r4 + 0x18)) = r0;
    0x000a6414 mov r0, r8                                        |         r0 = r8;
    0x000a6418 bl 0x2bd48                                        |         g_variant_type_checked_ ();
    0x000a641c mvn r3, 0                                         |         r3 = ~0;
    0x000a6420 str r3, [sp, 0x10]                                |         var_10h = r3;
    0x000a6424 ldr r3, [pc, 0x138]                               |         r3 = *(0xa6560);
    0x000a6428 str r5, [sp, 0xc]                                 |         var_ch = r5;
    0x000a642c add r3, pc, r3                                    |         r3 = pc + r3;
    0x000a6430 str r5, [sp, 4]                                   |         var_4h = r5;
    0x000a6434 str r3, [sp]                                      |         *(sp) = r3;
    0x000a6438 str fp, [sp, 0x18]                                |         var_18h = fp;
    0x000a643c str sl, [sp, 0x14]                                |         var_14h = sl;
    0x000a6440 mov r3, r6                                        |         r3 = r6;
    0x000a6444 ldr r2, [sp, 0x20]                                |         r2 = var_20h;
    0x000a6448 ldr r1, [sp, 0x24]                                |         r1 = var_24h;
    0x000a644c str r0, [sp, 8]                                   |         var_8h = r0;
    0x000a6450 mov r0, sb                                        |         r0 = sb;
    0x000a6454 bl 0xc1808                                        |         r0 = g_dbus_connection_call_sync ();
    0x000a6458 subs r5, r0, 0                                    |         r5 = r0 - 0;
                                                                 |         if (r5 != r0) {
    0x000a645c bne 0xa64a0                                       |             goto label_1;
                                                                 |         }
                                                                 | label_0:
    0x000a6460 adds r0, r5, 0                                    |         r0 = r5 + 0;
                                                                 |         if (r0 == r5) {
    0x000a6464 movne r0, 1                                       |             r0 = 1;
                                                                 |         }
    0x000a6468 add sp, sp, 0x34                                  |         
    0x000a646c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 |     }
    0x000a6470 ldr r3, [pc, 0xf0]                                |     r3 = *(0xa6564);
    0x000a6474 ldr r1, [pc, 0xf0]                                |     r1 = *(0xa6568);
    0x000a6478 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000a647c str r3, [sp]                                      |     *(sp) = r3;
    0x000a6480 ldr r3, [pc, 0xe8]                                |     
    0x000a6484 ldr r0, [pc, 0xe8]                                |     r0 = *(0xa6570);
    0x000a6488 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000a648c add r3, r3, 0x5f                                  |     r3 = 0xa65cb;
    0x000a6490 mov r2, 0x20c                                     |     r2 = 0x20c;
    0x000a6494 add r1, pc, r1                                    |     r1 = pc + r1;
    0x000a6498 add r0, pc, r0                                    |     r0 = pc + r0;
                                                                 |     do {
    0x000a649c bl 0x2c84c                                        |         g_assertion_message_expr ();
                                                                 | label_1:
    0x000a64a0 ldr r2, [r4, 0x1c]                                |         r2 = *((r4 + 0x1c));
    0x000a64a4 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x000a64a8 beq 0xa64dc                                       |             goto label_2;
                                                                 |         }
    0x000a64ac ldr r3, [pc, 0xc4]                                |         r3 = *(0xa6574);
    0x000a64b0 ldr r1, [pc, 0xc4]                                |         r1 = *(0xa6578);
    0x000a64b4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x000a64b8 str r3, [sp]                                      |         *(sp) = r3;
    0x000a64bc ldr r3, [pc, 0xbc]                                |         
    0x000a64c0 ldr r0, [pc, 0xbc]                                |         r0 = *(0xa6580);
    0x000a64c4 add r3, pc, r3                                    |         r3 = pc + r3;
    0x000a64c8 add r3, r3, 0x5f                                  |         r3 = 0xa65db;
    0x000a64cc ldr r2, [pc, 0xb4]                                |         r2 = *(0xa6584);
    0x000a64d0 add r1, pc, r1                                    |         r1 = pc + r1;
    0x000a64d4 add r0, pc, r0                                    |         r0 = pc + r0;
    0x000a64d8 b 0xa649c                                         |         
                                                                 |     } while (1);
                                                                 | label_2:
    0x000a64dc ldr r3, [pc, 0xa8]                                |     r3 = *(0xa6588);
    0x000a64e0 ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x000a64e4 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x000a64e8 ldr r3, [pc, 0xa0]                                |     r3 = *(0xa658c);
    0x000a64ec ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x000a64f0 ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x000a64f4 str r3, [sp, 0x24]                                |     var_24h = r3;
    0x000a64f8 ldr r3, [pc, 0x94]                                |     r3 = *(0xa6590);
    0x000a64fc ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x000a6500 add r3, pc, r3                                    |     r3 = pc + r3;
    0x000a6504 bl 0x2ceb8                                        |     g_hash_table_new_full ();
    0x000a6508 add r2, sp, 0x2c                                  |     r2 += var_2ch;
    0x000a650c mov r1, r8                                        |     r1 = r8;
    0x000a6510 str r0, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r0;
    0x000a6514 mov r0, r5                                        |     r0 = r5;
    0x000a6518 bl 0x2dca4                                        |     g_variant_get ();
                                                                 |     do {
    0x000a651c ldr r0, [sp, 0x2c]                                |         r0 = var_2ch;
    0x000a6520 bl 0xa5998                                        |         r0 = fcn_000a5998 ();
    0x000a6524 subs r2, r0, 0                                    |         r2 = r0 - 0;
                                                                 |         if (r2 == r0) {
    0x000a6528 bne 0xa6540                                       |             
    0x000a652c ldr r0, [sp, 0x2c]                                |             r0 = var_2ch;
    0x000a6530 bl 0x2d830                                        |             g_variant_iter_free ();
    0x000a6534 mov r0, r5                                        |             r0 = r5;
    0x000a6538 bl 0x2c1bc                                        |             g_variant_unref ();
    0x000a653c b 0xa6460                                         |             goto label_0;
                                                                 |         }
    0x000a6540 ldr r1, [r2]                                      |         r1 = *(r2);
    0x000a6544 ldr r0, [r4, 0x1c]                                |         r0 = *((r4 + 0x1c));
    0x000a6548 bl 0x2d500                                        |         g_hash_table_insert ();
    0x000a654c b 0xa651c                                         |         
                                                                 |     } while (1);
                                                                 | }
    ; 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/libgio-2.0.so.0.5600.4 @ 0xaec94 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.000aec94 ()                              | void fcn_000aec94 (int32_t arg1) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_ch;
                                                         |     int32_t var_10h;
                                                         |     int32_t var_14h;
                                                         |     int32_t var_1ch;
                                                         |     r0 = arg1;
    0x000aec94 push {r4, r5, r6, r7, r8, sb, lr}         |     
    0x000aec98 mov r4, 0                                 |     r4 = 0;
    0x000aec9c sub sp, sp, 0x1c                          |     
    0x000aeca0 mov r7, r0                                |     r7 = r0;
    0x000aeca4 str r4, [sp, 0xc]                         |     var_ch = r4;
    0x000aeca8 str r4, [sp, 0x10]                        |     var_10h = r4;
    0x000aecac bl 0x2dc8c                                |     glib_private_ ();
    0x000aecb0 ldr r3, [r0, 0x18]                        |     r3 = *((r0 + 0x18));
    0x000aecb4 blx r3                                    |     r0 = uint32_t (*r3)(uint32_t) (r3);
    0x000aecb8 cmp r0, r4                                |     
                                                         |     if (r0 == r4) {
    0x000aecbc beq 0xaecfc                               |         goto label_4;
                                                         |     }
    0x000aecc0 bl 0x5e264                                |     g_io_error_quark ();
    0x000aecc4 mov r6, r4                                |     r6 = r4;
    0x000aecc8 mov r8, r4                                |     r8 = r4;
    0x000aeccc mov sb, r4                                |     sb = r4;
    0x000aecd0 mov r5, r0                                |     r5 = r0;
    0x000aecd4 ldr r0, [pc, 0x27c]                       |     r0 = *(0xaef54);
    0x000aecd8 add r0, pc, r0                            |     r0 = pc + r0;
    0x000aecdc bl 0x2ce04                                |     glib_gettext ();
    0x000aece0 mov r2, r4                                |     r2 = r4;
    0x000aece4 mov r1, r5                                |     r1 = r5;
    0x000aece8 mov r3, r0                                |     r3 = r0;
    0x000aecec mov r0, r7                                |     r0 = r7;
    0x000aecf0 bl 0x2c72c                                |     g_set_error ();
                                                         |     do {
    0x000aecf4 mov r5, r4                                |         r5 = r4;
    0x000aecf8 b 0xaed34                                 |         goto label_0;
                                                         | label_4:
    0x000aecfc mov r0, r7                                |         r0 = r7;
    0x000aed00 bl 0xd02a4                                |         r0 = fcn_000d02a4 (r0);
    0x000aed04 subs sb, r0, 0                            |         sb = r0 - 0;
                                                         |         if (sb == r0) {
    0x000aed08 bne 0xaee10                               |             
    0x000aed0c ldr r0, [pc, 0x248]                       |             r0 = *(0xaef58);
    0x000aed10 mov r6, sb                                |             r6 = sb;
    0x000aed14 add r0, pc, r0                            |             r0 = pc + r0;
    0x000aed18 bl 0x2ce04                                |             glib_gettext ();
    0x000aed1c mov r8, sb                                |             r8 = sb;
    0x000aed20 mov r5, sb                                |             r5 = sb;
    0x000aed24 mov r4, sb                                |             r4 = sb;
    0x000aed28 mov r1, r0                                |             r1 = r0;
    0x000aed2c mov r0, r7                                |             r0 = r7;
    0x000aed30 bl 0x2c318                                |             g_prefix_error ();
                                                         | label_0:
    0x000aed34 bl 0xd01d0                                |             r0 = fcn_000d01d0 ();
    0x000aed38 cmp r0, 0                                 |             
                                                         |             if (r0 != 0) {
    0x000aed3c beq 0xaedb8                               |                 
    0x000aed40 bl 0xcebc4                                |                 fcn_000cebc4 ();
    0x000aed44 ldr r0, [pc, 0x214]                       |                 r0 = *(0xaef5c);
    0x000aed48 add r0, pc, r0                            |                 r0 = pc + r0;
    0x000aed4c bl 0x2c27c                                |                 g_print ();
    0x000aed50 ldr r7, [sp, 0xc]                         |                 r7 = var_ch;
    0x000aed54 cmp r7, 0                                 |                 
                                                         |                 if (r7 == 0) {
    0x000aed58 beq 0xaef28                               |                     goto label_5;
                                                         |                 }
    0x000aed5c mov r0, r7                                |                 r0 = r7;
    0x000aed60 bl 0x2e064                                |                 strlen (r0);
    0x000aed64 mov r2, 2                                 |                 r2 = 2;
    0x000aed68 add r1, r0, 9                             |                 r1 = r0 + 9;
    0x000aed6c mov r0, r7                                |                 r0 = r7;
    0x000aed70 bl 0xce3d8                                |                 r0 = fcn_000ce3d8 (r0, r1);
    0x000aed74 mov r7, r0                                |                 r7 = r0;
    0x000aed78 mov r1, r0                                |                 r1 = r0;
    0x000aed7c ldr r0, [pc, 0x1e0]                       |                 r0 = *(0xaef60);
    0x000aed80 add r0, pc, r0                            |                 r0 = pc + r0;
    0x000aed84 bl 0x2c27c                                |                 g_print ();
    0x000aed88 mov r0, r7                                |                 r0 = r7;
    0x000aed8c bl 0x2bf4c                                |                 g_free ();
                                                         | label_1:
    0x000aed90 ldr r0, [pc, 0x1d0]                       |                 r0 = *(0xaef64);
    0x000aed94 add r0, pc, r0                            |                 r0 = pc + r0;
    0x000aed98 bl 0x2c27c                                |                 g_print ();
    0x000aed9c ldr r1, [sp, 0x10]                        |                 r1 = var_10h;
    0x000aeda0 cmp r1, 0                                 |                 
                                                         |                 if (r1 == 0) {
    0x000aeda4 beq 0xaef38                               |                     goto label_6;
                                                         |                 }
    0x000aeda8 ldr r0, [pc, 0x1bc]                       |                 r0 = *(0xaef68);
    0x000aedac add r0, pc, r0                            |                 r0 = pc + r0;
    0x000aedb0 bl 0x2c27c                                |                 g_print ();
                                                         | label_2:
    0x000aedb4 bl 0xcebd8                                |                 fcn_000cebd8 ();
                                                         |             }
    0x000aedb8 mov r0, sb                                |             r0 = sb;
    0x000aedbc bl 0x2bf4c                                |             g_free ();
    0x000aedc0 mov r0, r8                                |             r0 = r8;
    0x000aedc4 bl 0x2bf4c                                |             g_free ();
    0x000aedc8 ldr r0, [sp, 0xc]                         |             r0 = var_ch;
    0x000aedcc bl 0x2bf4c                                |             g_free ();
    0x000aedd0 ldr r0, [sp, 0x10]                        |             r0 = var_10h;
    0x000aedd4 bl 0x2bf4c                                |             g_free ();
    0x000aedd8 cmp r4, 0                                 |             
                                                         |             if (r4 != 0) {
    0x000aeddc beq 0xaedfc                               |                 
    0x000aede0 cmp r6, 0                                 |                 
                                                         |                 if (r6 == 0) {
    0x000aede4 beq 0xaef48                               |                     goto label_7;
                                                         |                 }
    0x000aede8 ldr r0, [pc, 0x180]                       |                 r0 = *(0xaef6c);
    0x000aedec mov r2, 1                                 |                 r2 = 1;
    0x000aedf0 mov r1, r6                                |                 r1 = r6;
    0x000aedf4 add r0, pc, r0                            |                 r0 = pc + r0;
    0x000aedf8 bl 0x2bb80                                |                 g_setenv ();
                                                         |             }
                                                         | label_3:
    0x000aedfc mov r0, r6                                |             r0 = r6;
    0x000aee00 bl 0x2bf4c                                |             g_free ();
    0x000aee04 mov r0, r5                                |             r0 = r5;
    0x000aee08 add sp, sp, 0x1c                          |             
    0x000aee0c pop {r4, r5, r6, r7, r8, sb, pc}          |             
                                                         |         }
    0x000aee10 ldr r0, [pc, 0x15c]                       |         r0 = *(0xaef70);
    0x000aee14 add r0, pc, r0                            |         r0 = pc + r0;
    0x000aee18 bl 0x2df20                                |         r0 = g_getenv ();
    0x000aee1c subs r4, r0, 0                            |         r4 = r0 - 0;
                                                         |         if (r4 != r0) {
    0x000aee20 bne 0xaee58                               |             goto label_8;
                                                         |         }
    0x000aee24 bl 0x5e264                                |         g_io_error_quark ();
    0x000aee28 mov r6, r4                                |         r6 = r4;
    0x000aee2c mov r8, r4                                |         r8 = r4;
    0x000aee30 mov r5, r0                                |         r5 = r0;
    0x000aee34 ldr r0, [pc, 0x13c]                       |         r0 = *(0xaef74);
    0x000aee38 add r0, pc, r0                            |         r0 = pc + r0;
    0x000aee3c bl 0x2ce04                                |         glib_gettext ();
    0x000aee40 mov r2, r4                                |         r2 = r4;
    0x000aee44 mov r1, r5                                |         r1 = r5;
    0x000aee48 mov r3, r0                                |         r3 = r0;
    0x000aee4c mov r0, r7                                |         r0 = r7;
    0x000aee50 bl 0x2c72c                                |         g_set_error ();
    0x000aee54 b 0xaecf4                                 |         
                                                         |     } while (1);
                                                         | label_8:
    0x000aee58 ldr r0, [pc, 0x11c]                       |     r0 = "_5";
    0x000aee5c mov r1, sb                                |     r1 = sb;
    0x000aee60 add r0, pc, r0                            |     r0 = pc + r0;
    0x000aee64 bl 0x2cde0                                |     r0 = g_strdup_printf ();
    0x000aee68 mov r8, r0                                |     r8 = r0;
    0x000aee6c bl 0xd01d0                                |     r0 = fcn_000d01d0 ();
    0x000aee70 subs r4, r0, 0                            |     r4 = r0 - 0;
                                                         |     if (r4 != r0) {
    0x000aee74 moveq r6, r4                              |         r6 = r4;
                                                         |     }
                                                         |     if (r4 != r0) {
    0x000aee78 beq 0xaeec4                               |         
    0x000aee7c bl 0xcebc4                                |         fcn_000cebc4 ();
    0x000aee80 ldr r4, [pc, 0xf8]                        |         r4 = *(0xaef7c);
    0x000aee84 ldr r0, [pc, 0xf8]                        |         r0 = *(0xaef80);
    0x000aee88 mov r1, r8                                |         r1 = r8;
    0x000aee8c add r4, pc, r4                            |         r4 = pc + r4;
    0x000aee90 add r0, pc, r0                            |         r0 = pc + r0;
    0x000aee94 bl 0x2c27c                                |         g_print ();
    0x000aee98 mov r0, r4                                |         r0 = r4;
    0x000aee9c bl 0x2df20                                |         g_getenv ();
    0x000aeea0 bl 0x2dddc                                |         g_strdup ();
    0x000aeea4 ldr r1, [pc, 0xdc]                        |         r1 = *(0xaef84);
    0x000aeea8 mov r2, 1                                 |         r2 = 1;
    0x000aeeac add r1, pc, r1                            |         r1 = pc + r1;
    0x000aeeb0 mov r6, r0                                |         r6 = r0;
    0x000aeeb4 mov r0, r4                                |         r0 = r4;
    0x000aeeb8 bl 0x2bb80                                |         g_setenv ();
    0x000aeebc bl 0xcebd8                                |         fcn_000cebd8 ();
    0x000aeec0 mov r4, 1                                 |         r4 = 1;
                                                         |     }
    0x000aeec4 str r7, [sp]                              |     *(sp) = r7;
    0x000aeec8 add r3, sp, 0x14                          |     r3 += var_14h;
    0x000aeecc add r2, sp, 0x10                          |     r2 += var_10h;
    0x000aeed0 add r1, sp, 0xc                           |     r1 += var_ch;
    0x000aeed4 mov r0, r8                                |     r0 = r8;
    0x000aeed8 bl 0x2dfc8                                |     r0 = g_spawn_command_line_sync ();
    0x000aeedc subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 == r0) {
    0x000aeee0 beq 0xaed34                               |         goto label_0;
                                                         |     }
    0x000aeee4 mov r1, r7                                |     r1 = r7;
    0x000aeee8 ldr r0, [sp, 0x14]                        |     r0 = var_14h;
    0x000aeeec bl 0x2be74                                |     r0 = g_spawn_check_exit_status ();
    0x000aeef0 subs r5, r0, 0                            |     r5 = r0 - 0;
                                                         |     if (r5 == r0) {
    0x000aeef4 bne 0xaef18                               |         
    0x000aeef8 ldr r0, [pc, 0x8c]                        |         r0 = *(0xaef88);
    0x000aeefc add r0, pc, r0                            |         r0 = pc + r0;
    0x000aef00 bl 0x2ce04                                |         glib_gettext ();
    0x000aef04 mov r2, r8                                |         r2 = r8;
    0x000aef08 mov r1, r0                                |         r1 = r0;
    0x000aef0c mov r0, r7                                |         r0 = r7;
    0x000aef10 bl 0x2c318                                |         g_prefix_error ();
    0x000aef14 b 0xaed34                                 |         goto label_0;
                                                         |     }
    0x000aef18 ldr r0, [sp, 0xc]                         |     r0 = var_ch;
    0x000aef1c bl 0x2dddc                                |     r0 = g_strdup ();
    0x000aef20 mov r5, r0                                |     r5 = r0;
    0x000aef24 b 0xaed34                                 |     goto label_0;
                                                         | label_5:
    0x000aef28 ldr r0, [pc, 0x60]                        |     r0 = "_5";
    0x000aef2c add r0, pc, r0                            |     r0 = pc + r0;
    0x000aef30 bl 0x2c27c                                |     g_print ();
    0x000aef34 b 0xaed90                                 |     goto label_1;
                                                         | label_6:
    0x000aef38 ldr r0, [pc, 0x54]                        |     r0 = *(0xaef90);
    0x000aef3c add r0, pc, r0                            |     r0 = pc + r0;
    0x000aef40 bl 0x2c27c                                |     g_print ();
    0x000aef44 b 0xaedb4                                 |     goto label_2;
                                                         | label_7:
    0x000aef48 ldr r0, [pc, 0x48]                        |     r0 = *(0xaef94);
    0x000aef4c add r0, pc, r0                            |     r0 = pc + r0;
    0x000aef50 bl 0x2cab0                                |     g_unsetenv ();
    0x000aef54 b 0xaedfc                                 |     goto label_3;
                                                         | }
    ; 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/libgio-2.0.so.0.5600.4 @ 0xc8c88 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000c8c88 ()                  | void fcn_000c8c88 (int32_t arg1, int32_t arg2) {
                                             |     int32_t var_0h;
                                             |     int32_t var_ch;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x000c8c88 cmp r3, 0                     |     
    0x000c8c8c push {r0, r1, r2, lr}         |     
    0x000c8c90 mov ip, r0                    |     
    0x000c8c94 mov r0, r1                    |     r0 = r1;
                                             |     if (r3 != 0) {
    0x000c8c98 beq 0xc8ccc                   |         
    0x000c8c9c cmp r3, 1                     |         
                                             |         if (r3 == 1) {
    0x000c8ca0 beq 0xc8cf0                   |             goto label_0;
                                             |         }
    0x000c8ca4 mov r3, 0                     |         r3 = 0;
    0x000c8ca8 str r3, [sp]                  |         *(sp) = r3;
    0x000c8cac ldr r1, [pc, 0x64]            |         r1 = *(0xc8d14);
    0x000c8cb0 ldr r3, [pc, 0x64]            |         r3 = *(0xc8d18);
    0x000c8cb4 ldr r0, [pc, 0x64]            |         r0 = *(0xc8d1c);
    0x000c8cb8 add r3, pc, r3                |         r3 = pc + r3;
    0x000c8cbc mov r2, 0xad                  |         r2 = 0xad;
    0x000c8cc0 add r1, pc, r1                |         r1 = pc + r1;
    0x000c8cc4 add r0, pc, r0                |         r0 = pc + r0;
    0x000c8cc8 bl 0x2c84c                    |         g_assertion_message_expr ();
                                             |     }
    0x000c8ccc ldr lr, [ip, 0x14]            |     
    0x000c8cd0 cmp lr, 0                     |     
                                             |     if (lr != 0) {
    0x000c8cd4 beq 0xc8d10                   |         
    0x000c8cd8 ldr r3, [ip, 0x1c]            |         r3 = *((ip + 0x1c));
    0x000c8cdc ldr r1, [ip, 8]               |         r1 = *((ip + 8));
    0x000c8ce0 mov ip, lr                    |         
    0x000c8ce4 add sp, sp, 0xc               |         
    0x000c8ce8 pop {lr}                      |         
    0x000c8cec bx ip                         |         return void (*ip)() ();
                                             | label_0:
    0x000c8cf0 ldr r3, [ip, 0x18]            |         r3 = *((ip + 0x18));
    0x000c8cf4 cmp r3, 0                     |         
                                             |         if (r3 == 0) {
    0x000c8cf8 beq 0xc8d10                   |             goto label_1;
                                             |         }
    0x000c8cfc ldr r2, [ip, 0x1c]            |         r2 = *((ip + 0x1c));
    0x000c8d00 ldr r1, [ip, 8]               |         r1 = *((ip + 8));
    0x000c8d04 add sp, sp, 0xc               |         
    0x000c8d08 pop {lr}                      |         
    0x000c8d0c bx r3                         |         return uint32_t (*r3)() ();
                                             |     }
                                             | label_1:
    0x000c8d10 add sp, sp, 0xc               |     
    0x000c8d14 pop {pc}                      |     
                                             | }
    ; 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/libgio-2.0.so.0.5600.4 @ 0xd4864 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000d4864 ()                                      | void fcn_000d4864 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_24h;
                                                                 |     int32_t var_2ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000d4864 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x000d4868 mov r6, r1                                        |     r6 = r1;
    0x000d486c mov r8, r3                                        |     r8 = r3;
    0x000d4870 ldr r1, [pc, 0x318]                               |     r1 = *(0xd4b8c);
    0x000d4874 ldr r3, [pc, 0x318]                               |     r3 = *(0xd4b90);
    0x000d4878 sub sp, sp, 0x2c                                  |     
    0x000d487c add r3, pc, r3                                    |     r3 = pc + r3;
    0x000d4880 add r1, pc, r1                                    |     r1 = pc + r1;
    0x000d4884 mov r5, r0                                        |     r5 = r0;
    0x000d4888 mov r0, r6                                        |     r0 = r6;
    0x000d488c str r2, [sp, 0x18]                                |     var_18h = r2;
    0x000d4890 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x000d4894 bl 0x2c4b0                                        |     g_hash_table_lookup ();
    0x000d4898 ldr r1, [pc, 0x2f8]                               |     r1 = *(0xd4b94);
    0x000d489c add r1, pc, r1                                    |     r1 = pc + r1;
    0x000d48a0 mov sb, r0                                        |     sb = r0;
    0x000d48a4 mov r0, r6                                        |     r0 = r6;
    0x000d48a8 bl 0x2c4b0                                        |     g_hash_table_lookup ();
    0x000d48ac ldr r1, [pc, 0x2e8]                               |     r1 = *(0xd4b98);
    0x000d48b0 add r1, pc, r1                                    |     r1 = pc + r1;
    0x000d48b4 mov r4, r0                                        |     r4 = r0;
    0x000d48b8 mov r0, r6                                        |     r0 = r6;
    0x000d48bc bl 0x2c4b0                                        |     r0 = g_hash_table_lookup ();
    0x000d48c0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000d48c4 beq 0xd4900                                       |         goto label_3;
                                                                 |     }
    0x000d48c8 bl 0x5e264                                        |     g_io_error_quark ();
    0x000d48cc mov r7, 0                                         |     r7 = 0;
    0x000d48d0 mov fp, r7                                        |     
    0x000d48d4 mov r4, r0                                        |     r4 = r0;
    0x000d48d8 ldr r0, [pc, 0x2c0]                               |     r0 = *(0xd4b9c);
    0x000d48dc add r0, pc, r0                                    |     r0 = pc + r0;
    0x000d48e0 bl 0x2ce04                                        |     glib_gettext ();
    0x000d48e4 mov r2, 0xd                                       |     r2 = 0xd;
    0x000d48e8 mov r1, r4                                        |     r1 = r4;
    0x000d48ec mov r3, r0                                        |     r3 = r0;
    0x000d48f0 mov r0, r8                                        |     r0 = r8;
    0x000d48f4 bl 0x2e0f4                                        |     g_set_error_literal ();
                                                                 |     do {
    0x000d48f8 mov r4, r7                                        |         r4 = r7;
    0x000d48fc b 0xd49ac                                         |         goto label_2;
                                                                 | label_3:
    0x000d4900 cmp sb, 0                                         |         
                                                                 |         if (sb != 0) {
    0x000d4904 ldreq sb, [pc, 0x298]                             |             sb = *((pc + 0x298));
                                                                 |         }
                                                                 |         if (sb != 0) {
    0x000d4908 addeq sb, pc, sb                                  |             sb = pc + sb;
                                                                 |         }
    0x000d490c cmp r4, 0                                         |         
                                                                 |         if (r4 != 0) {
    0x000d4910 ldreq r4, [pc, 0x290]                             |             r4 = *((pc + 0x290));
                                                                 |         }
                                                                 |         if (r4 != 0) {
    0x000d4914 addeq r4, pc, r4                                  |             r4 = pc + r4;
                                                                 |         }
    0x000d4918 mov r2, 0xa                                       |         r2 = 0xa;
    0x000d491c mov r1, 0                                         |         r1 = 0;
    0x000d4920 mov r0, r4                                        |         r0 = r4;
    0x000d4924 bl 0x2e0d0                                        |         r0 = strtol (r0, r1, r2);
    0x000d4928 mov sl, r0                                        |         sl = r0;
    0x000d492c bl 0x70bc8                                        |         g_resolver_get_default ();
    0x000d4930 mov r3, r8                                        |         r3 = r8;
    0x000d4934 mov r2, 0                                         |         r2 = 0;
    0x000d4938 mov r1, sb                                        |         r1 = sb;
    0x000d493c mov fp, r0                                        |         
    0x000d4940 bl 0x71694                                        |         r0 = g_resolver_lookup_by_name ();
    0x000d4944 subs r7, r0, 0                                    |         r7 = r0 - 0;
    0x000d4948 beq 0xd48f8                                       |         
                                                                 |     } while (r7 == r0);
    0x000d494c add r3, sp, 0x24                                  |     r3 += var_24h;
    0x000d4950 mov r6, r7                                        |     r6 = r7;
    0x000d4954 str r3, [sp, 0x1c]                                |     var_1ch = r3;
                                                                 |     do {
    0x000d4958 lsl r1, sl, 0x10                                  |         r1 = sl << 0x10;
    0x000d495c lsr r1, r1, 0x10                                  |         r1 >>= 0x10;
    0x000d4960 ldr r0, [r6]                                      |         r0 = *(r6);
    0x000d4964 bl 0x5b650                                        |         g_inet_socket_address_new ();
    0x000d4968 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x000d496c str r8, [sp, 8]                                   |         var_8h = r8;
    0x000d4970 str r3, [sp, 4]                                   |         var_4h = r3;
    0x000d4974 mov r3, 0                                         |         r3 = 0;
    0x000d4978 str r3, [sp]                                      |         *(sp) = r3;
    0x000d497c mov r2, 1                                         |         r2 = 1;
    0x000d4980 mov r3, 6                                         |         r3 = 6;
    0x000d4984 mov r1, r0                                        |         r1 = r0;
    0x000d4988 mov r4, r0                                        |         r4 = r0;
    0x000d498c ldr r0, [r5, 0x24]                                |         r0 = *((r5 + 0x24));
    0x000d4990 bl 0x81384                                        |         r0 = g_socket_listener_add_address ();
    0x000d4994 subs r3, r0, 0                                    |         r3 = r0 - 0;
                                                                 |         if (r3 == r0) {
    0x000d4998 bne 0xd49e4                                       |             
    0x000d499c mov r0, r4                                        |             r0 = r4;
    0x000d49a0 str r3, [sp, 0x18]                                |             var_18h = r3;
    0x000d49a4 bl 0x2bec8                                        |             g_object_unref ();
                                                                 | label_0:
    0x000d49a8 mov r4, 0                                         |             r4 = 0;
                                                                 | label_2:
    0x000d49ac ldr r2, [sp, 0x14]                                |             r2 = var_14h;
    0x000d49b0 ldr r3, [pc, 0x1f4]                               |             r3 = *(0xd4ba8);
    0x000d49b4 mov r0, r7                                        |             r0 = r7;
    0x000d49b8 ldr r3, [r2, r3]                                  |             r3 = *((r2 + r3));
    0x000d49bc mov r1, r3                                        |             r1 = r3;
    0x000d49c0 str r3, [sp, 0x14]                                |             var_14h = r3;
    0x000d49c4 bl 0x2bf7c                                        |             g_list_free_full ();
    0x000d49c8 cmp fp, 0                                         |             
                                                                 |             if (fp != 0) {
    0x000d49cc beq 0xd49d8                                       |                 
    0x000d49d0 mov r0, fp                                        |                 r0 = fp;
    0x000d49d4 bl 0x2bec8                                        |                 g_object_unref ();
                                                                 |             }
    0x000d49d8 mov r0, r4                                        |             r0 = r4;
    0x000d49dc add sp, sp, 0x2c                                  |             
    0x000d49e0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |             
                                                                 |         }
    0x000d49e4 cmp sl, 0                                         |         
                                                                 |         if (sl == 0) {
    0x000d49e8 bne 0xd49f8                                       |             
    0x000d49ec ldr r0, [sp, 0x24]                                |             r0 = var_24h;
    0x000d49f0 bl 0x5b890                                        |             r0 = g_inet_socket_address_get_port ();
    0x000d49f4 mov sl, r0                                        |             sl = r0;
                                                                 |         }
    0x000d49f8 ldr r0, [sp, 0x24]                                |         r0 = var_24h;
    0x000d49fc bl 0x2bec8                                        |         g_object_unref ();
    0x000d4a00 mov r0, r4                                        |         r0 = r4;
    0x000d4a04 bl 0x2bec8                                        |         g_object_unref ();
    0x000d4a08 ldr r6, [r6, 4]                                   |         r6 = *((r6 + 4));
    0x000d4a0c cmp r6, 0                                         |         
    0x000d4a10 bne 0xd4958                                       |         
                                                                 |     } while (r6 != 0);
    0x000d4a14 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x000d4a18 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000d4a1c beq 0xd4b74                                       |         goto label_4;
                                                                 |     }
    0x000d4a20 mov r0, 0x10                                      |     r0 = 0x10;
    0x000d4a24 bl 0x2dd28                                        |     g_malloc0 ();
    0x000d4a28 str r0, [r5, 0x18]                                |     *((r5 + 0x18)) = r0;
                                                                 |     do {
    0x000d4a2c mov r1, 0x100                                     |         r1 = 0x100;
    0x000d4a30 mov r0, 0                                         |         r0 = 0;
    0x000d4a34 bl 0x2da88                                        |         g_random_int_range ();
    0x000d4a38 ldr r3, [r5, 0x18]                                |         r3 = *((r5 + 0x18));
    0x000d4a3c strb r0, [r3, r6]                                 |         *((r3 + r6)) = r0;
    0x000d4a40 add r6, r6, 1                                     |         r6++;
    0x000d4a44 cmp r6, 0x10                                      |         
    0x000d4a48 bne 0xd4a2c                                       |         
                                                                 |     } while (r6 != 0x10);
    0x000d4a4c ldr r0, [pc, 0x15c]                               |     r0 = *(0xd4bac);
    0x000d4a50 mov r2, r8                                        |     r2 = r8;
    0x000d4a54 add r1, r5, 0x1c                                  |     r1 = r5 + 0x1c;
    0x000d4a58 add r0, pc, r0                                    |     r0 = pc + r0;
    0x000d4a5c bl 0x2d398                                        |     r0 = g_file_open_tmp ();
    0x000d4a60 cmn r0, 1                                         |     
    0x000d4a64 mov r6, r0                                        |     r6 = r0;
                                                                 |     if (r0 != 1) {
    0x000d4a68 bne 0xd4a78                                       |         goto label_5;
                                                                 |     }
    0x000d4a6c ldr r0, [r5, 0x24]                                |     r0 = *((r5 + 0x24));
    0x000d4a70 bl 0x81cbc                                        |     g_socket_listener_close ();
    0x000d4a74 b 0xd49a8                                         |     goto label_0;
                                                                 |     do {
                                                                 | label_5:
    0x000d4a78 mov r4, 0x10                                      |         r4 = 0x10;
    0x000d4a7c mov r3, 0                                         |         r3 = 0;
                                                                 | label_1:
    0x000d4a80 ldr r1, [r5, 0x18]                                |         r1 = *((r5 + 0x18));
    0x000d4a84 mov r2, r4                                        |         r2 = r4;
    0x000d4a88 add r1, r1, r3                                    |         r1 += r3;
    0x000d4a8c mov r0, r6                                        |         r0 = r6;
    0x000d4a90 str r3, [sp, 0x1c]                                |         var_1ch = r3;
    0x000d4a94 bl 0x2d8c0                                        |         write (r0, r1, r2);
    0x000d4a98 str r0, [sp, 0x18]                                |         var_18h = r0;
    0x000d4a9c bl 0x2e3b8                                        |         errno_location ();
    0x000d4aa0 ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x000d4aa4 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x000d4aa8 cmn r2, 1                                         |         
                                                                 |         if (r2 != 1) {
    0x000d4aac bne 0xd4b0c                                       |             goto label_6;
                                                                 |         }
    0x000d4ab0 ldr r4, [r0]                                      |         r4 = *(r0);
    0x000d4ab4 cmp r4, 4                                         |         
    0x000d4ab8 beq 0xd4a78                                       |         
                                                                 |     } while (r4 == 4);
    0x000d4abc bl 0x5e264                                        |     r0 = g_io_error_quark ();
    0x000d4ac0 mov r6, r0                                        |     r6 = r0;
    0x000d4ac4 mov r0, r4                                        |     r0 = r4;
    0x000d4ac8 bl 0x5e2a4                                        |     r0 = g_io_error_from_errno ();
    0x000d4acc mov sb, r0                                        |     sb = r0;
    0x000d4ad0 ldr r0, [pc, 0xdc]                                |     r0 = *(0xd4bb0);
    0x000d4ad4 add r0, pc, r0                                    |     r0 = pc + r0;
    0x000d4ad8 bl 0x2ce04                                        |     r0 = glib_gettext ();
    0x000d4adc mov sl, r0                                        |     sl = r0;
    0x000d4ae0 mov r0, r4                                        |     r0 = r4;
    0x000d4ae4 bl 0x2c9b4                                        |     g_strerror ();
    0x000d4ae8 ldr r3, [r5, 0x1c]                                |     r3 = *((r5 + 0x1c));
    0x000d4aec mov r2, sb                                        |     r2 = sb;
    0x000d4af0 str r3, [sp]                                      |     *(sp) = r3;
    0x000d4af4 mov r1, r6                                        |     r1 = r6;
    0x000d4af8 mov r3, sl                                        |     r3 = sl;
    0x000d4afc str r0, [sp, 4]                                   |     var_4h = r0;
    0x000d4b00 mov r0, r8                                        |     r0 = r8;
    0x000d4b04 bl 0x2c72c                                        |     g_set_error ();
    0x000d4b08 b 0xd49a8                                         |     goto label_0;
                                                                 | label_6:
    0x000d4b0c subs r4, r4, r2                                   |     r4 -= r2;
    0x000d4b10 add r3, r3, r2                                    |     r3 += r2;
                                                                 |     if (r4 != r4) {
    0x000d4b14 bne 0xd4a80                                       |         goto label_1;
                                                                 |     }
    0x000d4b18 mov r1, r8                                        |     r1 = r8;
    0x000d4b1c mov r0, r6                                        |     r0 = r6;
    0x000d4b20 bl 0x2d950                                        |     r0 = g_close ();
    0x000d4b24 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000d4b28 beq 0xd49ac                                       |         goto label_2;
                                                                 |     }
    0x000d4b2c ldr r1, [pc, 0x84]                                |     r1 = *(0xd4bb4);
    0x000d4b30 mov r2, r4                                        |     r2 = r4;
    0x000d4b34 add r1, pc, r1                                    |     r1 = pc + r1;
    0x000d4b38 ldr r0, [r5, 0x1c]                                |     r0 = *((r5 + 0x1c));
    0x000d4b3c bl 0x2d6ec                                        |     g_uri_escape_string ();
    0x000d4b40 mov r2, sl                                        |     r2 = sl;
    0x000d4b44 mov r1, sb                                        |     r1 = sb;
    0x000d4b48 mov r4, r0                                        |     r4 = r0;
    0x000d4b4c mov r3, r0                                        |     r3 = r0;
    0x000d4b50 ldr r0, [pc, 0x64]                                |     r0 = *(0xd4bb8);
    0x000d4b54 add r0, pc, r0                                    |     r0 = pc + r0;
    0x000d4b58 bl 0x2cde0                                        |     g_strdup_printf ();
    0x000d4b5c str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x000d4b60 mov r0, r4                                        |     r0 = r4;
    0x000d4b64 bl 0x2bf4c                                        |     g_free ();
                                                                 |     do {
    0x000d4b68 mov r4, 1                                         |         r4 = 1;
    0x000d4b6c str r4, [r5, 0x28]                                |         *((r5 + 0x28)) = r4;
    0x000d4b70 b 0xd49ac                                         |         goto label_2;
                                                                 | label_4:
    0x000d4b74 ldr r0, [pc, 0x44]                                |         r0 = *(0xd4bbc);
    0x000d4b78 mov r2, sl                                        |         r2 = sl;
    0x000d4b7c mov r1, sb                                        |         r1 = sb;
    0x000d4b80 add r0, pc, r0                                    |         r0 = pc + r0;
    0x000d4b84 bl 0x2cde0                                        |         g_strdup_printf ();
    0x000d4b88 str r0, [r5, 0x20]                                |         *((r5 + 0x20)) = r0;
    0x000d4b8c b 0xd4b68                                         |         
                                                                 |     } while (1);
                                                                 | }
    ; 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/libgio-2.0.so.0.5600.4 @ 0x113764 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00113764 ()                  | void fcn_00113764 (int32_t arg1) {
                                             |     r0 = arg1;
    0x00113764 push {r4, r5, r6, lr}         |     
    0x00113768 ldr r4, [pc, 0x80]            |     r4 = *(0x1137ec);
    0x0011376c mov r1, r0                    |     r1 = r0;
    0x00113770 add r4, pc, r4                |     r4 = pc + r4;
    0x00113774 mov r5, r0                    |     r5 = r0;
    0x00113778 ldr r0, [r4]                  |     r0 = *(0x1137ec);
    0x0011377c bl 0x2ca68                    |     r0 = g_list_find ();
    0x00113780 cmp r0, 0                     |     
    0x00113784 popne {r4, r5, r6, pc}        |     
    0x00113788 mov r1, r5                    |     r1 = r5;
    0x0011378c ldr r0, [r4]                  |     r0 = *(0x1137ec);
    0x00113790 bl 0x2c570                    |     g_list_prepend ();
    0x00113794 ldr r5, [r4, 8]               |     r5 = *(0x1137f4);
    0x00113798 cmp r5, 0                     |     
    0x0011379c str r0, [r4]                  |     *(r4) = r0;
    0x001137a0 popne {r4, r5, r6, pc}        |     
    0x001137a4 mov r3, 1                     |     r3 = 1;
    0x001137a8 mov r0, 4                     |     r0 = 4;
    0x001137ac str r3, [r4, 8]               |     *((r4 + 8)) = r3;
    0x001137b0 bl 0x2d4dc                    |     g_timeout_source_new_seconds ();
    0x001137b4 ldr r1, [pc, 0x38]            |     r1 = *(0x1137f0);
    0x001137b8 mov r2, r5                    |     r2 = r5;
    0x001137bc mov r3, r5                    |     r3 = r5;
    0x001137c0 add r1, pc, r1                |     r1 = pc + r1;
    0x001137c4 mov r4, r0                    |     r4 = r0;
    0x001137c8 bl 0x2d3f8                    |     g_source_set_callback ();
    0x001137cc bl 0x2dc8c                    |     glib_private_ ();
    0x001137d0 ldr r3, [r0, 0x14]            |     r3 = *((r0 + 0x14));
    0x001137d4 blx r3                        |     r0 = uint32_t (*r3)(uint32_t) (r3);
    0x001137d8 mov r1, r0                    |     r1 = r0;
    0x001137dc mov r0, r4                    |     r0 = r4;
    0x001137e0 bl 0x2cae0                    |     g_source_attach ();
    0x001137e4 mov r0, r4                    |     r0 = r4;
    0x001137e8 pop {r4, r5, r6, lr}          |     
    0x001137ec b 0x2ceac                     |     return void (*0x2ceac)() ();
                                             | }
    ; 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/libgio-2.0.so.0.5600.4 @ 0x11491c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0011491c ()                                      | void fcn_0011491c (int32_t arg_0h, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_4h_2;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_1ch;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_24h;
                                                                 |     int32_t var_20h_2;
                                                                 |     int32_t var_24h_2;
                                                                 |     int32_t var_2ch;
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_8h_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0011491c push {r0, r1, r4, r5, r6, lr}                     |     
    0x00114920 mov r4, r0                                        |     r4 = r0;
    0x00114924 mov r5, r1                                        |     r5 = r1;
    0x00114928 mov r6, r2                                        |     r6 = r2;
    0x0011492c bl 0x1147d0                                       |     fcn_001147d0 ();
    0x00114930 ldr lr, [pc, 0x58]                                |     lr = *(0x11498c);
    0x00114934 add lr, pc, lr                                    |     lr = pc + lr;
    0x00114938 ldr ip, [lr, 8]                                   |     ip = *(0x114994);
    0x0011493c cmp ip, 0                                         |     
                                                                 |     if (ip != 0) {
    0x00114940 beq 0x11495c                                      |         
    0x00114944 mov r2, r6                                        |         r2 = r6;
    0x00114948 mov r1, r5                                        |         r1 = r5;
    0x0011494c mov r0, r4                                        |         r0 = r4;
    0x00114950 add sp, sp, 8                                     |         
    0x00114954 pop {r4, r5, r6, lr}                              |         
    0x00114958 b 0x1157a4                                        |         
                                                                 |     } else {
    0x0011495c str ip, [sp, 4]                                   |         var_4h = ip;
    0x00114960 str ip, [sp]                                      |         *(sp) = ip;
    0x00114964 mov r3, r6                                        |         r3 = r6;
    0x00114968 mov r2, r5                                        |         r2 = r5;
    0x0011496c mov r1, r4                                        |         r1 = r4;
    0x00114970 ldr r0, [lr, 0x10]                                |         r0 = *((lr + 0x10));
    0x00114974 bl 0x1170e8                                       |         r0 = fcn_001170e8 (r0, r1, r2, r3);
    0x00114978 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0011497c ldreq r0, [pc, 0x10]                              |             r0 = *((pc + 0x10));
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x00114980 addeq r0, pc, r0                                  |             r0 = pc + r0;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x00114984 addeq r0, r0, 0x2b                                |             r0 += 0x2b;
                                                                 |         }
    0x00114988 add sp, sp, 8                                     |         
    0x0011498c pop {r4, r5, r6, pc}                              |         
                                                                 |     }
    0x001157a4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x001157a8 ldr fp, [pc, 0x14c]                               |     fp = *(0x1158f8);
    0x001157ac ldr r3, [pc, 0x14c]                               |     r3 = *(0x1158fc);
    0x001157b0 sub sp, sp, 0x2c                                  |     
    0x001157b4 add fp, pc, fp                                    |     
    0x001157b8 str r0, [sp, 0x18]                                |     var_18h = r0;
    0x001157bc str r1, [sp, 0x1c]                                |     var_1ch = r1;
    0x001157c0 str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x001157c4 ldr r3, [fp, r3]                                  |     
    0x001157c8 mov r6, 0                                         |     r6 = 0;
    0x001157cc ldr r3, [r3]                                      |     r3 = *(0x1158f8);
    0x001157d0 mov sl, r6                                        |     sl = r6;
    0x001157d4 sub r3, r3, 4                                     |     r3 -= 4;
    0x001157d8 str r3, [sp, 8]                                   |     var_8h = r3;
                                                                 |     do {
                                                                 | label_1:
    0x001157dc ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x001157e0 ldr r2, [r3, 4]!                                  |         r2 = *((r3 += 4));
    0x001157e4 cmp r2, 0                                         |         
    0x001157e8 str r2, [sp]                                      |         *(sp) = r2;
    0x001157ec str r3, [sp, 8]                                   |         var_8h = r3;
                                                                 |         if (r2 == 0) {
    0x001157f0 bne 0x115818                                      |             
    0x001157f4 ldr r3, [sp, 0xc]                                 |             r3 = var_ch;
    0x001157f8 cmp r3, 0                                         |             
                                                                 |             if (r3 == 0) {
    0x001157fc strne r6, [r3]                                    |                 *(r3) = r6;
                                                                 |             }
    0x00115800 cmp r6, 0                                         |             
                                                                 |             if (r6 > 0) {
    0x00115804 ldrle r3, [pc, 0xf8]                              |                 r3 = *((pc + 0xf8));
                                                                 |             }
                                                                 |             if (r6 > 0) {
    0x00115808 ldrle sl, [fp, r3]                                |                 sl = *((fp + r3));
                                                                 |             }
    0x0011580c mov r0, sl                                        |             r0 = sl;
    0x00115810 add sp, sp, 0x2c                                  |             
    0x00115814 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |             
                                                                 |         }
    0x00115818 ldr r3, [sp]                                      |         r3 = *(sp);
    0x0011581c ldr r4, [r3, 0xc]                                 |         r4 = *((r3 + 0xc));
    0x00115820 cmp r4, 0                                         |         
    0x00115824 beq 0x1157dc                                      |         
                                                                 |     } while (r4 == 0);
    0x00115828 ldr r0, [r4, 0x18]                                |     r0 = *((r4 + 0x18));
    0x0011582c bl 0x118968                                       |     fcn_00118968 (r0);
    0x00115830 mov r5, r4                                        |     r5 = r4;
    0x00115834 mov r8, 0                                         |     r8 = 0;
    0x00115838 ldr r0, [r5, r0]!                                 |     r0 = *((r5 += r0));
    0x0011583c bl 0x118968                                       |     fcn_00118968 (r0);
    0x00115840 str r0, [sp, 0x20]                                |     var_20h = r0;
    0x00115844 ldr r0, [r5, 8]                                   |     r0 = *((r5 + 8));
    0x00115848 bl 0x118968                                       |     fcn_00118968 (r0);
    0x0011584c str r8, [sp, 4]                                   |     var_ch = r8;
    0x00115850 add r5, r4, r0                                    |     r5 = r4 + r0;
                                                                 |     do {
    0x00115854 ldr r3, [sp, 0x20]                                |         r3 = var_20h;
    0x00115858 ldr r2, [sp, 4]                                   |         r2 = var_ch;
    0x0011585c cmp r3, r2                                        |         
                                                                 |         if (r3 != r2) {
    0x00115860 moveq r7, 0                                       |             r7 = 0;
                                                                 |         }
                                                                 |         if (r3 == r2) {
    0x00115864 beq 0x1158e4                                      |             goto label_3;
                                                                 |         }
    0x00115868 ldr r0, [r5]                                      |         r0 = *(r5);
    0x0011586c bl 0x118968                                       |         fcn_00118968 (r0);
    0x00115870 mov sb, 0                                         |         sb = 0;
    0x00115874 str r0, [sp, 0x10]                                |         var_18h = r0;
    0x00115878 ldr r0, [r5, 4]                                   |         r0 = *((r5 + 4));
    0x0011587c bl 0x118968                                       |         r0 = fcn_00118968 (r0);
    0x00115880 mov r7, r0                                        |         r7 = r0;
    0x00115884 ldr r0, [r5, 8]                                   |         r0 = *((r5 + 8));
    0x00115888 bl 0x118968                                       |         fcn_00118968 (r0);
    0x0011588c str r0, [sp, 0x24]                                |         var_24h = r0;
    0x00115890 ldr r0, [r5, 0xc]                                 |         r0 = *((r5 + 0xc));
    0x00115894 bl 0x118968                                       |         fcn_00118968 (r0);
    0x00115898 str r0, [sp, 0x14]                                |         var_1ch = r0;
                                                                 | label_2:
    0x0011589c ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x001158a0 cmp sb, r3                                        |         
                                                                 |         if (sb != r3) {
    0x001158a4 bne 0x1158bc                                      |             goto label_4;
                                                                 |         }
                                                                 | label_0:
    0x001158a8 ldr r3, [sp, 4]                                   |         r3 = var_ch;
    0x001158ac add r5, r5, 0x10                                  |         r5 += 0x10;
    0x001158b0 add r3, r3, 1                                     |         r3++;
    0x001158b4 str r3, [sp, 4]                                   |         var_ch = r3;
    0x001158b8 b 0x115854                                        |         
                                                                 |     } while (1);
                                                                 | label_4:
    0x001158bc add r1, sp, 0x14                                  |     r1 += var_1ch;
    0x001158c0 ldm r1, {r1, r2, r3}                              |     r1 = *(r1);
                                                                 |     r2 = *((r1 + 4));
                                                                 |     r3 = *((r1 + 8));
    0x001158c4 ldr r0, [sp]                                      |     r0 = *(sp);
    0x001158c8 add r1, r1, sb, lsl 5                             |     r1 += (sb << 5);
    0x001158cc bl 0x115378                                       |     r0 = fcn_00115378 (r0, r1);
    0x001158d0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x001158d4 beq 0x1158f4                                      |         goto label_5;
                                                                 |     }
    0x001158d8 adds r7, r4, r7                                   |     r7 = r4 + r7;
    0x001158dc ldr r8, [sp, 0x10]                                |     r8 = var_18h;
                                                                 |     if (r7 == r4) {
    0x001158e0 beq 0x1158a8                                      |         goto label_0;
                                                                 |     }
                                                                 | label_3:
    0x001158e4 cmp r6, r8                                        |     
                                                                 |     if (r6 >= r8) {
    0x001158e8 movlt r6, r8                                      |         r6 = r8;
                                                                 |     }
                                                                 |     if (r6 >= r8) {
    0x001158ec movlt sl, r7                                      |         sl = r7;
                                                                 |     }
    0x001158f0 b 0x1157dc                                        |     goto label_1;
                                                                 | label_5:
    0x001158f4 add sb, sb, 1                                     |     sb++;
    0x001158f8 b 0x11589c                                        |     goto label_2;
                                                                 | }
    ; 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/libgio-2.0.so.0.5600.4 @ 0x4afcc */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.g_file_attribute_info_list_dup ()            | void g_file_attribute_info_list_dup (int32_t arg1) {
                                                             |     r0 = arg1;
    0x0004afcc push {r4, r5, r6, r7, r8, sb, sl, lr}         |     
    0x0004afd0 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 == r0) {
    0x0004afd4 beq 0x4b07c                                   |         goto label_0;
                                                             |     }
    0x0004afd8 mov r0, 0x10                                  |     r0 = 0x10;
    0x0004afdc bl 0x2dd28                                    |     g_malloc0 ();
    0x0004afe0 mov r2, 0xc                                   |     r2 = 0xc;
    0x0004afe4 mov r1, 0                                     |     r1 = 0;
    0x0004afe8 mov r7, 0                                     |     r7 = 0;
    0x0004afec mov r8, 0xc                                   |     r8 = 0xc;
    0x0004aff0 mov r4, r0                                    |     r4 = r0;
    0x0004aff4 mov r0, 1                                     |     r0 = 1;
    0x0004aff8 str r0, [r4, 0xc]                             |     *((r4 + 0xc)) = r0;
    0x0004affc bl 0x2c924                                    |     g_array_new ();
    0x0004b000 ldr r1, [r5, 4]                               |     r1 = *((r5 + 4));
    0x0004b004 str r0, [r4, 8]                               |     *((r4 + 8)) = r0;
    0x0004b008 bl 0x2c360                                    |     g_array_set_size ();
    0x0004b00c ldr r3, [r4, 8]                               |     r3 = *((r4 + 8));
    0x0004b010 ldr r2, [r3]                                  |     r2 = *(r3);
    0x0004b014 str r2, [r4]                                  |     *(r4) = r2;
    0x0004b018 ldr r3, [r3, 4]                               |     r3 = *((r3 + 4));
    0x0004b01c str r3, [r4, 4]                               |     *((r4 + 4)) = r3;
                                                             |     do {
    0x0004b020 ldr r3, [r5, 4]                               |         r3 = *((r5 + 4));
    0x0004b024 cmp r3, r7                                    |         
                                                             |         if (r3 <= r7) {
    0x0004b028 ble 0x4b0a0                                   |             goto label_1;
                                                             |         }
    0x0004b02c mul r6, r8, r7                                |         r6 = r8 * r7;
    0x0004b030 ldr r3, [r5]                                  |         r3 = *(r5);
    0x0004b034 ldr sb, [r4]                                  |         sb = *(r4);
    0x0004b038 ldr r0, [r3, r6]                              |         r0 = *((r3 + r6));
    0x0004b03c bl 0x2dddc                                    |         g_strdup ();
    0x0004b040 add r7, r7, 1                                 |         r7++;
    0x0004b044 str r0, [sb, r6]                              |         *((sb + r6)) = r0;
    0x0004b048 ldr r3, [r5]                                  |         r3 = *(r5);
    0x0004b04c add r3, r3, r6                                |         r3 += r6;
    0x0004b050 ldr r2, [r3, 4]                               |         r2 = *((r3 + 4));
    0x0004b054 ldr r3, [r4]                                  |         r3 = *(r4);
    0x0004b058 add r3, r3, r6                                |         r3 += r6;
    0x0004b05c str r2, [r3, 4]                               |         *((r3 + 4)) = r2;
    0x0004b060 ldr r3, [r5]                                  |         r3 = *(r5);
    0x0004b064 add r3, r3, r6                                |         r3 += r6;
    0x0004b068 ldr r2, [r3, 8]                               |         r2 = *((r3 + 8));
    0x0004b06c ldr r3, [r4]                                  |         r3 = *(r4);
    0x0004b070 add r6, r3, r6                                |         r6 = r3 + r6;
    0x0004b074 str r2, [r6, 8]                               |         *((r6 + 8)) = r2;
    0x0004b078 b 0x4b020                                     |         
                                                             |     } while (1);
                                                             | label_0:
    0x0004b07c ldr r1, [pc, 0x24]                            |     
    0x0004b080 ldr r2, [pc, 0x24]                            |     r2 = *(0x4b0a8);
    0x0004b084 ldr r0, [pc, 0x24]                            |     r0 = *(0x4b0ac);
    0x0004b088 add r1, pc, r1                                |     r1 = pc + r1;
    0x0004b08c add r2, pc, r2                                |     r2 = pc + r2;
    0x0004b090 add r1, r1, 0x21                              |     r1 = 0x4b0c5;
    0x0004b094 add r0, pc, r0                                |     r0 = pc + r0;
    0x0004b098 bl 0x2c8f4                                    |     g_return_if_fail_warning ();
    0x0004b09c mov r4, r5                                    |     r4 = r5;
                                                             | label_1:
    0x0004b0a0 mov r0, r4                                    |     r0 = r4;
    0x0004b0a4 pop {r4, r5, r6, r7, r8, sb, sl, pc}          |     
                                                             | }
    ; 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/libgio-2.0.so.0.5600.4 @ 0x9c2b4 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.g_list_store_insert ()               | void g_list_store_insert (int32_t arg1, int32_t arg2) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0009c2b4 push {r4, r5, r6, r7, r8, lr}         |     
    0x0009c2b8 mov r4, r0                            |     r4 = r0;
    0x0009c2bc mov r5, r1                            |     r5 = r1;
    0x0009c2c0 mov r6, r2                            |     r6 = r2;
    0x0009c2c4 bl 0x9c200                            |     r0 = fcn_0009c200 (r0);
    0x0009c2c8 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x0009c2cc beq 0x9c308                           |         
    0x0009c2d0 ldr r3, [r6]                          |         r3 = *(r6);
    0x0009c2d4 ldr r1, [r4, 0xc]                     |         r1 = *((r4 + 0xc));
    0x0009c2d8 ldr r0, [r3]                          |         r0 = *(r3);
    0x0009c2dc bl 0x2d50c                            |         r0 = g_type_is_a ();
    0x0009c2e0 cmp r0, 0                             |         
                                                     |         if (r0 != 0) {
    0x0009c2e4 bne 0x9c32c                           |             goto label_0;
                                                     |         }
    0x0009c2e8 ldr r1, [pc, 0xa8]                    |         
    0x0009c2ec ldr r2, [pc, 0xa8]                    |         r2 = *(0x9c398);
    0x0009c2f0 ldr r0, [pc, 0xa8]                    |         r0 = *(0x9c39c);
    0x0009c2f4 add r1, pc, r1                        |         r1 = pc + r1;
    0x0009c2f8 add r2, pc, r2                        |         r2 = pc + r2;
    0x0009c2fc add r1, r1, 0x11                      |         r1 = 0x9c3a5;
    0x0009c300 add r0, pc, r0                        |         r0 = pc + r0;
    0x0009c304 b 0x9c324                             |         
                                                     |     } else {
    0x0009c308 ldr r1, [pc, 0x94]                    |         
    0x0009c30c ldr r2, [pc, 0x94]                    |         r2 = *(0x9c3a4);
    0x0009c310 ldr r0, [pc, 0x94]                    |         r0 = *(0x9c3a8);
    0x0009c314 add r1, pc, r1                        |         r1 = pc + r1;
    0x0009c318 add r2, pc, r2                        |         r2 = pc + r2;
    0x0009c31c add r1, r1, 0x11                      |         r1 = 0x9c3b1;
    0x0009c320 add r0, pc, r0                        |         r0 = pc + r0;
                                                     |     }
                                                     |     do {
    0x0009c324 pop {r4, r5, r6, r7, r8, lr}          |         
    0x0009c328 b 0x2c8f4                             |         void (*0x2c8f4)() ();
                                                     | label_0:
    0x0009c32c ldr r0, [r4, 0x10]                    |         r0 = *((r4 + 0x10));
    0x0009c330 bl 0x2cad4                            |         r0 = g_sequence_get_length ();
    0x0009c334 cmp r0, r5                            |         
                                                     |         if (r0 >= r5) {
    0x0009c338 bhs 0x9c35c                           |             goto label_1;
                                                     |         }
    0x0009c33c ldr r1, [pc, 0x6c]                    |         
    0x0009c340 ldr r2, [pc, 0x6c]                    |         r2 = *(0x9c3b0);
    0x0009c344 ldr r0, [pc, 0x6c]                    |         r0 = *(0x9c3b4);
    0x0009c348 add r1, pc, r1                        |         r1 = pc + r1;
    0x0009c34c add r2, pc, r2                        |         r2 = pc + r2;
    0x0009c350 add r1, r1, 0x11                      |         r1 = 0x9c3bd;
    0x0009c354 add r0, pc, r0                        |         r0 = pc + r0;
    0x0009c358 b 0x9c324                             |         
                                                     |     } while (1);
                                                     | label_1:
    0x0009c35c mov r1, r5                            |     r1 = r5;
    0x0009c360 ldr r0, [r4, 0x10]                    |     r0 = *((r4 + 0x10));
    0x0009c364 bl 0x2e130                            |     r0 = g_sequence_get_iter_at_pos ();
    0x0009c368 mov r7, r0                            |     r7 = r0;
    0x0009c36c mov r0, r6                            |     r0 = r6;
    0x0009c370 bl 0x2cf00                            |     r0 = g_object_ref ();
    0x0009c374 mov r1, r0                            |     r1 = r0;
    0x0009c378 mov r0, r7                            |     r0 = r7;
    0x0009c37c bl 0x2d11c                            |     g_sequence_insert_before ();
    0x0009c380 mov r1, r5                            |     r1 = r5;
    0x0009c384 mov r0, r4                            |     r0 = r4;
    0x0009c388 mov r3, 1                             |     r3 = 1;
    0x0009c38c mov r2, 0                             |     r2 = 0;
    0x0009c390 pop {r4, r5, r6, r7, r8, lr}          |     
    0x0009c394 b 0x9bf90                             |     return void (*0x9bf90)() ();
                                                     | }
    ; 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/libgio-2.0.so.0.5600.4 @ 0x9c3bc */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.g_list_store_insert_sorted ()        | void g_list_store_insert_sorted (int32_t arg1, int32_t arg2) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0009c3bc push {r4, r5, r6, r7, r8, lr}         |     
    0x0009c3c0 mov r5, r0                            |     r5 = r0;
    0x0009c3c4 mov r6, r1                            |     r6 = r1;
    0x0009c3c8 mov r4, r2                            |     r4 = r2;
    0x0009c3cc mov r8, r3                            |     r8 = r3;
    0x0009c3d0 bl 0x9c200                            |     r0 = fcn_0009c200 (r0);
    0x0009c3d4 subs r7, r0, 0                        |     r7 = r0 - 0;
                                                     |     if (r7 != r0) {
    0x0009c3d8 beq 0x9c414                           |         
    0x0009c3dc ldr r3, [r6]                          |         r3 = *(r6);
    0x0009c3e0 ldr r1, [r5, 0xc]                     |         r1 = *((r5 + 0xc));
    0x0009c3e4 ldr r0, [r3]                          |         r0 = *(r3);
    0x0009c3e8 bl 0x2d50c                            |         r0 = g_type_is_a ();
    0x0009c3ec subs r7, r0, 0                        |         r7 = r0 - 0;
                                                     |         if (r7 != r0) {
    0x0009c3f0 bne 0x9c43c                           |             goto label_1;
                                                     |         }
    0x0009c3f4 ldr r1, [pc, 0xb0]                    |         
    0x0009c3f8 ldr r2, [pc, 0xb0]                    |         r2 = *(0x9c4ac);
    0x0009c3fc ldr r0, [pc, 0xb0]                    |         r0 = *(0x9c4b0);
    0x0009c400 add r1, pc, r1                        |         r1 = pc + r1;
    0x0009c404 add r2, pc, r2                        |         r2 = pc + r2;
    0x0009c408 add r1, r1, 0x25                      |         r1 = 0x9c4cd;
    0x0009c40c add r0, pc, r0                        |         r0 = pc + r0;
    0x0009c410 b 0x9c430                             |         
                                                     |     } else {
    0x0009c414 ldr r1, [pc, 0x9c]                    |         
    0x0009c418 ldr r2, [pc, 0x9c]                    |         r2 = *(0x9c4b8);
    0x0009c41c ldr r0, [pc, 0x9c]                    |         r0 = *(0x9c4bc);
    0x0009c420 add r1, pc, r1                        |         r1 = pc + r1;
    0x0009c424 add r2, pc, r2                        |         r2 = pc + r2;
    0x0009c428 add r1, r1, 0x25                      |         r1 = 0x9c4d9;
    0x0009c42c add r0, pc, r0                        |         r0 = pc + r0;
                                                     |     }
    0x0009c430 bl 0x2c8f4                            |     g_return_if_fail_warning ();
                                                     |     do {
                                                     | label_0:
    0x0009c434 mov r0, r7                            |         r0 = r7;
    0x0009c438 pop {r4, r5, r6, r7, r8, pc}          |         
                                                     | label_1:
    0x0009c43c cmp r4, 0                             |         
                                                     |         if (r4 != 0) {
    0x0009c440 bne 0x9c46c                           |             goto label_2;
                                                     |         }
    0x0009c444 ldr r1, [pc, 0x78]                    |         
    0x0009c448 ldr r2, [pc, 0x78]                    |         r2 = *(0x9c4c4);
    0x0009c44c ldr r0, [pc, 0x78]                    |         r0 = *(0x9c4c8);
    0x0009c450 add r1, pc, r1                        |         r1 = pc + r1;
    0x0009c454 add r2, pc, r2                        |         r2 = pc + r2;
    0x0009c458 add r1, r1, 0x25                      |         r1 = 0x9c4e5;
    0x0009c45c add r0, pc, r0                        |         r0 = pc + r0;
    0x0009c460 bl 0x2c8f4                            |         g_return_if_fail_warning ();
    0x0009c464 mov r7, r4                            |         r7 = r4;
    0x0009c468 b 0x9c434                             |         
                                                     |     } while (1);
                                                     | label_2:
    0x0009c46c mov r0, r6                            |     r0 = r6;
    0x0009c470 ldr r7, [r5, 0x10]                    |     r7 = *((r5 + 0x10));
    0x0009c474 bl 0x2cf00                            |     g_object_ref ();
    0x0009c478 mov r3, r8                            |     r3 = r8;
    0x0009c47c mov r2, r4                            |     r2 = r4;
    0x0009c480 mov r1, r0                            |     r1 = r0;
    0x0009c484 mov r0, r7                            |     r0 = r7;
    0x0009c488 bl 0x2c7f8                            |     g_sequence_insert_sorted ();
    0x0009c48c bl 0x2c990                            |     g_sequence_iter_get_position ();
    0x0009c490 mov r3, 1                             |     r3 = 1;
    0x0009c494 mov r2, 0                             |     r2 = 0;
    0x0009c498 mov r7, r0                            |     r7 = r0;
    0x0009c49c mov r1, r0                            |     r1 = r0;
    0x0009c4a0 mov r0, r5                            |     r0 = r5;
    0x0009c4a4 bl 0x9bf90                            |     fcn_0009bf90 (r0, r1);
    0x0009c4a8 b 0x9c434                             |     goto label_0;
                                                     | }
    ; 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/libgio-2.0.so.0.5600.4 @ 0x1116b4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.g_settings_bind_with_mapping ()                  | void g_settings_bind_with_mapping (int32_t arg_40h, int32_t arg_44h, int32_t arg_48h, int32_t arg_4ch, int32_t arg_50h, int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x001116b4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x001116b8 ldr fp, [pc, 0x570]                               |     fp = sym.g_file_make_directory_finish;
    0x001116bc sub sp, sp, 0x1c                                  |     
    0x001116c0 mov sl, r3                                        |     sl = r3;
    0x001116c4 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x001116c8 mov r7, r0                                        |     r7 = r0;
    0x001116cc str r3, [sp, 8]                                   |     var_8h = r3;
    0x001116d0 ldr r3, [sp, 0x4c]                                |     r3 = *(arg_4ch);
    0x001116d4 mov sb, r1                                        |     sb = r1;
    0x001116d8 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x001116dc ldr r3, [sp, 0x50]                                |     r3 = *(arg_50h);
    0x001116e0 mov r6, r2                                        |     r6 = r2;
    0x001116e4 ldr r5, [sp, 0x40]                                |     r5 = *(arg_40h);
    0x001116e8 ldr r8, [sp, 0x44]                                |     r8 = *(arg_44h);
    0x001116ec str r3, [sp, 0x14]                                |     var_14h = r3;
    0x001116f0 bl 0x10f2c0                                       |     g_settings_get_type ();
    0x001116f4 cmp r7, 0                                         |     
    0x001116f8 add fp, pc, fp                                    |     
                                                                 |     if (r7 != 0) {
    0x001116fc beq 0x11172c                                      |         
    0x00111700 ldr r3, [r7]                                      |         r3 = *(r7);
    0x00111704 mov r1, r0                                        |         r1 = r0;
    0x00111708 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0011170c beq 0x11171c                                      |             
    0x00111710 ldr r3, [r3]                                      |             r3 = *(r3);
    0x00111714 cmp r3, r0                                        |             
                                                                 |             if (r3 == r0) {
    0x00111718 beq 0x111758                                      |                 goto label_3;
                                                                 |             }
                                                                 |         }
    0x0011171c mov r0, r7                                        |         r0 = r7;
    0x00111720 bl 0x2db0c                                        |         r0 = g_type_check_instance_is_a ();
    0x00111724 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00111728 bne 0x111758                                      |             goto label_3;
                                                                 |         }
                                                                 |     }
    0x0011172c ldr r1, [pc, 0x500]                               |     
    0x00111730 ldr r2, [pc, 0x500]                               |     r2 = *(0x111c34);
    0x00111734 ldr r0, [pc, 0x500]                               |     r0 = *(0x111c38);
    0x00111738 add r1, pc, r1                                    |     r1 = pc + r1;
    0x0011173c add r1, r1, 0x2c4                                 |     r1 = 0x111ef4;
    0x00111740 add r2, pc, r2                                    |     r2 = pc + r2;
    0x00111744 add r1, r1, 1                                     |     r1++;
    0x00111748 add r0, pc, r0                                    |     r0 = pc + r0;
                                                                 |     do {
                                                                 | label_0:
    0x0011174c add sp, sp, 0x1c                                  |         
    0x00111750 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}          |         
    0x00111754 b 0x2c8f4                                         |         void (*0x2c8f4)() ();
                                                                 | label_3:
    0x00111758 cmp sb, 0                                         |         
                                                                 |         if (sb != 0) {
    0x0011175c bne 0x111784                                      |             goto label_4;
                                                                 |         }
    0x00111760 ldr r1, [pc, 0x4d8]                               |         
    0x00111764 ldr r2, [pc, 0x4d8]                               |         r2 = *(0x111c40);
    0x00111768 ldr r0, [pc, 0x4d8]                               |         r0 = *(0x111c44);
    0x0011176c add r1, pc, r1                                    |         r1 = pc + r1;
    0x00111770 add r1, r1, 0x2c4                                 |         r1 = 0x111f00;
    0x00111774 add r2, pc, r2                                    |         r2 = pc + r2;
    0x00111778 add r1, r1, 1                                     |         r1++;
    0x0011177c add r0, pc, r0                                    |         r0 = pc + r0;
    0x00111780 b 0x11174c                                        |         
                                                                 |     } while (1);
                                                                 | label_4:
    0x00111784 mov r1, 0x50                                      |     r1 = 0x50;
    0x00111788 mov r0, r6                                        |     r0 = r6;
    0x0011178c bl 0x2d968                                        |     r0 = g_type_check_instance_is_fundamentally_a ();
    0x00111790 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00111794 bne 0x1117bc                                      |         
    0x00111798 ldr r1, [pc, 0x4ac]                               |         
    0x0011179c ldr r2, [pc, 0x4ac]                               |         r2 = *(0x111c4c);
    0x001117a0 ldr r0, [pc, 0x4ac]                               |         r0 = *(0x111c50);
    0x001117a4 add r1, pc, r1                                    |         r1 = pc + r1;
    0x001117a8 add r1, r1, 0x2c4                                 |         r1 = 0x111f0c;
    0x001117ac add r2, pc, r2                                    |         r2 = pc + r2;
    0x001117b0 add r1, r1, 1                                     |         r1++;
    0x001117b4 add r0, pc, r0                                    |         r0 = pc + r0;
    0x001117b8 b 0x11174c                                        |         goto label_0;
                                                                 |     }
    0x001117bc cmp sl, 0                                         |     
                                                                 |     if (sl == 0) {
    0x001117c0 bne 0x1117e8                                      |         
    0x001117c4 ldr r1, [pc, 0x48c]                               |         
    0x001117c8 ldr r2, [pc, 0x48c]                               |         r2 = *(0x111c58);
    0x001117cc ldr r0, [pc, 0x48c]                               |         r0 = *(0x111c5c);
    0x001117d0 add r1, pc, r1                                    |         r1 = pc + r1;
    0x001117d4 add r1, r1, 0x2c4                                 |         r1 = 0x111f18;
    0x001117d8 add r2, pc, r2                                    |         r2 = pc + r2;
    0x001117dc add r1, r1, 1                                     |         r1++;
    0x001117e0 add r0, pc, r0                                    |         r0 = pc + r0;
    0x001117e4 b 0x11174c                                        |         goto label_0;
                                                                 |     }
    0x001117e8 tst r5, 0x10                                      |     
                                                                 |     if ((r5 & 0x10) != 0) {
    0x001117ec beq 0x111814                                      |         
    0x001117f0 ldr r1, [pc, 0x46c]                               |         
    0x001117f4 ldr r2, [pc, 0x46c]                               |         r2 = *(0x111c64);
    0x001117f8 ldr r0, [pc, 0x46c]                               |         r0 = *(0x111c68);
    0x001117fc add r1, pc, r1                                    |         r1 = pc + r1;
    0x00111800 add r1, r1, 0x2c4                                 |         r1 = 0x111f24;
    0x00111804 add r2, pc, r2                                    |         r2 = pc + r2;
    0x00111808 add r1, r1, 1                                     |         r1++;
    0x0011180c add r0, pc, r0                                    |         r0 = pc + r0;
    0x00111810 b 0x11174c                                        |         goto label_0;
                                                                 |     }
    0x00111814 ldr r3, [r6]                                      |     r3 = *(r6);
    0x00111818 mov r0, 0x5c                                      |     r0 = 0x5c;
    0x0011181c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00111820 bl 0x2db6c                                        |     g_slice_alloc0 ();
    0x00111824 ldr r3, [r7, 0xc]                                 |     r3 = *((r7 + 0xc));
    0x00111828 mov r2, sb                                        |     r2 = sb;
    0x0011182c ldr r1, [r3, 8]                                   |     r1 = *((r3 + 8));
    0x00111830 mov r4, r0                                        |     r4 = r0;
    0x00111834 bl 0x10c0dc                                       |     fcn_0010c0dc (r0, r1);
    0x00111838 mov r0, r7                                        |     r0 = r7;
    0x0011183c bl 0x2cf00                                        |     g_object_ref ();
    0x00111840 str r6, [r4, 0x34]                                |     *((r4 + 0x34)) = r6;
    0x00111844 mov r1, sl                                        |     r1 = sl;
    0x00111848 str r0, [r4, 0x30]                                |     *((r4 + 0x30)) = r0;
    0x0011184c ldr r0, [sp, 0xc]                                 |     r0 = var_ch;
    0x00111850 bl 0x2c48c                                        |     g_object_class_find_property ();
    0x00111854 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00111858 cmp r8, 0                                         |     
    0x0011185c str r3, [r4, 0x40]                                |     *((r4 + 0x40)) = r3;
    0x00111860 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00111864 str r3, [r4, 0x44]                                |     *((r4 + 0x44)) = r3;
                                                                 |     if (r8 == 0) {
    0x00111868 movne r3, r8                                      |         r3 = r8;
                                                                 |     }
    0x0011186c str r0, [r4, 0x50]                                |     *((r4 + 0x50)) = r0;
                                                                 |     if (r8 != 0) {
    0x00111870 ldreq r3, [pc, 0x3f8]                             |         r3 = *((pc + 0x3f8));
                                                                 |     }
                                                                 |     if (r8 != 0) {
    0x00111874 ldreq r3, [fp, r3]                                |         r3 = *((fp + r3));
                                                                 |     }
    0x00111878 str r3, [r4, 0x38]                                |     *((r4 + 0x38)) = r3;
    0x0011187c ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x00111880 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00111884 ldrne r3, [sp, 8]                                 |         r3 = var_8h;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x00111888 ldreq r3, [pc, 0x3e4]                             |         r3 = *((pc + 0x3e4));
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x0011188c ldreq r3, [fp, r3]                                |         r3 = *((fp + r3));
                                                                 |     }
    0x00111890 tst r5, 3                                         |     
                                                                 |     if ((r5 & 3) != 0) {
    0x00111894 orreq r5, r5, 3                                   |         r5 |= 3;
                                                                 |     }
    0x00111898 cmp r0, 0                                         |     
    0x0011189c str r3, [r4, 0x3c]                                |     *((r4 + 0x3c)) = r3;
                                                                 |     if (r0 != 0) {
    0x001118a0 bne 0x1118d8                                      |         goto label_5;
                                                                 |     }
    0x001118a4 ldr r3, [r6]                                      |     r3 = *(r6);
    0x001118a8 ldr r0, [r3]                                      |     r0 = *(r3);
    0x001118ac bl 0x2c564                                        |     g_type_name ();
    0x001118b0 ldr r2, [pc, 0x3c0]                               |     r2 = *(0x111c74);
    0x001118b4 mov r3, sl                                        |     r3 = sl;
    0x001118b8 add r2, pc, r2                                    |     r2 = pc + r2;
    0x001118bc mov r1, 8                                         |     r1 = 8;
    0x001118c0 str r0, [sp, 0x40]                                |     *(arg_40h) = r0;
    0x001118c4 ldr r0, [pc, 0x3b0]                               |     r0 = *(0x111c78);
    0x001118c8 add r0, pc, r0                                    |     r0 = pc + r0;
                                                                 |     do {
                                                                 | label_1:
    0x001118cc add sp, sp, 0x1c                                  |         
    0x001118d0 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}          |         
    0x001118d4 b 0x2d638                                         |         void (*0x2d638)() ();
                                                                 | label_5:
    0x001118d8 ands sl, r5, 1                                    |         sl = r5 & 1;
                                                                 |         if (sl == r5) {
    0x001118dc beq 0x11191c                                      |             goto label_6;
                                                                 |         }
    0x001118e0 ldr r3, [r0, 8]                                   |         r3 = *((r0 + 8));
    0x001118e4 tst r3, 2                                         |         
                                                                 |         if ((r3 & 2) != 0) {
    0x001118e8 bne 0x11191c                                      |             goto label_6;
                                                                 |         }
    0x001118ec ldr r3, [r6]                                      |         r3 = *(r6);
    0x001118f0 ldr r4, [r0, 4]                                   |         r4 = *((r0 + 4));
    0x001118f4 ldr r0, [r3]                                      |         r0 = *(r3);
    0x001118f8 bl 0x2c564                                        |         g_type_name ();
    0x001118fc ldr r2, [pc, 0x37c]                               |         r2 = *(0x111c7c);
    0x00111900 mov r3, r4                                        |         r3 = r4;
    0x00111904 add r2, pc, r2                                    |         r2 = pc + r2;
    0x00111908 mov r1, 8                                         |         r1 = 8;
    0x0011190c str r0, [sp, 0x40]                                |         *(arg_40h) = r0;
    0x00111910 ldr r0, [pc, 0x36c]                               |         r0 = *(0x111c80);
    0x00111914 add r0, pc, r0                                    |         r0 = pc + r0;
    0x00111918 b 0x1118cc                                        |         
                                                                 |     } while (1);
                                                                 | label_6:
    0x0011191c ands fp, r5, 2                                    |     
                                                                 |     if (fp != r5) {
    0x00111920 beq 0x111960                                      |         
    0x00111924 ldr r3, [r0, 8]                                   |         r3 = *((r0 + 8));
    0x00111928 tst r3, 1                                         |         
                                                                 |         if ((r3 & 1) != 0) {
    0x0011192c bne 0x111960                                      |             goto label_7;
                                                                 |         }
    0x00111930 ldr r3, [r6]                                      |         r3 = *(r6);
    0x00111934 ldr r4, [r0, 4]                                   |         r4 = *((r0 + 4));
    0x00111938 ldr r0, [r3]                                      |         r0 = *(r3);
    0x0011193c bl 0x2c564                                        |         g_type_name ();
    0x00111940 ldr r2, [pc, 0x340]                               |         r2 = *(0x111c84);
    0x00111944 mov r3, r4                                        |         r3 = r4;
    0x00111948 add r2, pc, r2                                    |         r2 = pc + r2;
    0x0011194c mov r1, 8                                         |         r1 = 8;
    0x00111950 str r0, [sp, 0x40]                                |         *(arg_40h) = r0;
    0x00111954 ldr r0, [pc, 0x330]                               |         r0 = *(0x111c88);
    0x00111958 add r0, pc, r0                                    |         r0 = pc + r0;
    0x0011195c b 0x1118cc                                        |         goto label_1;
                                                                 |     }
                                                                 | label_7:
    0x00111960 ldr r3, [pc, 0x328]                               |     r3 = *(0x111c8c);
    0x00111964 add r3, pc, r3                                    |     r3 = pc + r3;
    0x00111968 cmp r8, r3                                        |     
                                                                 |     if (r8 != r3) {
    0x0011196c bne 0x111a1c                                      |         goto label_8;
                                                                 |     }
    0x00111970 ldr r3, [r0, 0xc]                                 |     r3 = *((r0 + 0xc));
    0x00111974 cmp r3, 0x14                                      |     
                                                                 |     if (r3 == 0x14) {
    0x00111978 beq 0x1119c8                                      |         goto label_9;
                                                                 |     }
    0x0011197c ldr r3, [r6]                                      |     r3 = *(r6);
    0x00111980 ldr r5, [r0, 4]                                   |     r5 = *((r0 + 4));
    0x00111984 ldr r0, [r3]                                      |     r0 = *(r3);
    0x00111988 bl 0x2c564                                        |     g_type_name ();
    0x0011198c ldr r3, [r4, 0x50]                                |     r3 = *((r4 + 0x50));
    0x00111990 mov r6, r0                                        |     r6 = r0;
    0x00111994 ldr r0, [r3, 0xc]                                 |     r0 = *((r3 + 0xc));
    0x00111998 bl 0x2c564                                        |     g_type_name ();
    0x0011199c ldr r2, [pc, 0x2f0]                               |     r2 = *(0x111c90);
    0x001119a0 mov r3, r5                                        |     r3 = r5;
    0x001119a4 add r2, pc, r2                                    |     r2 = pc + r2;
    0x001119a8 mov r1, 8                                         |     r1 = 8;
    0x001119ac str r6, [sp, 0x40]                                |     *(arg_40h) = r6;
    0x001119b0 str r0, [sp, 0x44]                                |     *(arg_44h) = r0;
    0x001119b4 ldr r0, [pc, 0x2dc]                               |     r0 = *(0x111c94);
    0x001119b8 add r0, pc, r0                                    |     r0 = pc + r0;
                                                                 |     do {
    0x001119bc add sp, sp, 0x1c                                  |         
    0x001119c0 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}          |         
    0x001119c4 b 0x2d638                                         |         void (*0x2d638)() ();
                                                                 | label_9:
    0x001119c8 ldr r1, [pc, 0x2cc]                               |         r1 = *(0x111c98);
    0x001119cc ldr r0, [r4, 0x1c]                                |         r0 = *((r4 + 0x1c));
    0x001119d0 add r1, pc, r1                                    |         r1 = pc + r1;
    0x001119d4 bl 0x2cdf8                                        |         r0 = g_variant_type_equal ();
    0x001119d8 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x001119dc bne 0x111ad8                                      |             goto label_10;
                                                                 |         }
    0x001119e0 ldr r3, [r7, 0xc]                                 |         r3 = *((r7 + 0xc));
    0x001119e4 ldr r0, [r3, 8]                                   |         r0 = *((r3 + 8));
    0x001119e8 bl 0x10c0d4                                       |         r0 = g_settings_schema_get_id ();
    0x001119ec mov r5, r0                                        |         r5 = r0;
    0x001119f0 ldr r0, [r4, 0x1c]                                |         r0 = *((r4 + 0x1c));
    0x001119f4 bl 0x2c4bc                                        |         g_variant_type_dup_string ();
    0x001119f8 ldr r2, [pc, 0x2a0]                               |         r2 = *(0x111c9c);
    0x001119fc str r5, [sp, 0x40]                                |         *(arg_40h) = r5;
    0x00111a00 mov r3, sb                                        |         r3 = sb;
    0x00111a04 add r2, pc, r2                                    |         r2 = pc + r2;
    0x00111a08 mov r1, 8                                         |         r1 = 8;
    0x00111a0c str r0, [sp, 0x44]                                |         *(arg_44h) = r0;
    0x00111a10 ldr r0, [pc, 0x28c]                               |         r0 = *(0x111ca0);
    0x00111a14 add r0, pc, r0                                    |         r0 = pc + r0;
    0x00111a18 b 0x1119bc                                        |         
                                                                 |     } while (1);
                                                                 | label_8:
    0x00111a1c cmp r8, 0                                         |     
                                                                 |     if (r8 != 0) {
    0x00111a20 moveq r8, sl                                      |         r8 = sl;
                                                                 |     }
                                                                 |     if (r8 == 0) {
    0x00111a24 movne r8, 0                                       |         r8 = 0;
                                                                 |     }
    0x00111a28 cmp r8, 0                                         |     
                                                                 |     if (r8 == 0) {
    0x00111a2c bne 0x111a4c                                      |         
    0x00111a30 ldr r2, [sp, 8]                                   |         r2 = var_8h;
    0x00111a34 adds r3, fp, 0                                    |         r3 += arg_40h;
                                                                 |         if (r3 == arg_40h) {
    0x00111a38 movne r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x00111a3c cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x00111a40 movne r3, 0                                       |             r3 = 0;
                                                                 |         }
    0x00111a44 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00111a48 beq 0x111ad8                                      |             goto label_10;
                                                                 |         }
                                                                 |     }
    0x00111a4c ldr r1, [r4, 0x1c]                                |     r1 = *((r4 + 0x1c));
    0x00111a50 ldr r0, [r0, 0xc]                                 |     r0 = *((r0 + 0xc));
    0x00111a54 bl 0x10def0                                       |     r0 = fcn_0010def0 (r0, r1);
    0x00111a58 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00111a5c bne 0x111ad8                                      |         
    0x00111a60 ldr r3, [r4, 0x50]                                |         r3 = *((r4 + 0x50));
    0x00111a64 ldr r5, [r3, 4]                                   |         r5 = *((r3 + 4));
    0x00111a68 ldr r3, [r6]                                      |         r3 = *(r6);
    0x00111a6c ldr r0, [r3]                                      |         r0 = *(r3);
    0x00111a70 bl 0x2c564                                        |         g_type_name ();
    0x00111a74 ldr r3, [r4, 0x50]                                |         r3 = *((r4 + 0x50));
    0x00111a78 mov r6, r0                                        |         r6 = r0;
    0x00111a7c ldr r0, [r3, 0xc]                                 |         r0 = *((r3 + 0xc));
    0x00111a80 bl 0x2c564                                        |         r0 = g_type_name ();
    0x00111a84 mov r8, r0                                        |         r8 = r0;
    0x00111a88 ldr r0, [r4, 0x1c]                                |         r0 = *((r4 + 0x1c));
    0x00111a8c bl 0x2c4bc                                        |         g_variant_type_dup_string ();
    0x00111a90 ldr r3, [r7, 0xc]                                 |         r3 = *((r7 + 0xc));
    0x00111a94 mov r4, r0                                        |         r4 = r0;
    0x00111a98 ldr r0, [r3, 8]                                   |         r0 = *((r3 + 8));
    0x00111a9c bl 0x10c0d4                                       |         g_settings_schema_get_id ();
    0x00111aa0 ldr r2, [pc, 0x200]                               |         r2 = *(0x111ca4);
    0x00111aa4 mov r3, r5                                        |         r3 = r5;
    0x00111aa8 add r2, pc, r2                                    |         r2 = pc + r2;
    0x00111aac mov r1, 8                                         |         r1 = 8;
    0x00111ab0 str sb, [sp, 0x4c]                                |         *(arg_4ch) = sb;
    0x00111ab4 str r4, [sp, 0x48]                                |         *(arg_48h) = r4;
    0x00111ab8 str r8, [sp, 0x44]                                |         *(arg_44h) = r8;
    0x00111abc str r6, [sp, 0x40]                                |         *(arg_40h) = r6;
    0x00111ac0 str r0, [sp, 0x50]                                |         *(arg_50h) = r0;
    0x00111ac4 ldr r0, [pc, 0x1e0]                               |         r0 = *(0x111ca8);
    0x00111ac8 add r0, pc, r0                                    |         r0 = pc + r0;
    0x00111acc add sp, sp, 0x1c                                  |         
    0x00111ad0 pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}          |         
    0x00111ad4 b 0x2d638                                         |         void (*0x2d638)() ();
                                                                 |     }
                                                                 | label_10:
    0x00111ad8 and r3, r5, 6                                     |     r3 = r5 & 6;
    0x00111adc cmp r3, 2                                         |     
                                                                 |     if (r3 == 2) {
    0x00111ae0 bne 0x111b34                                      |         
    0x00111ae4 ldr r8, [pc, 0x1c4]                               |         r8 = *(0x111cac);
    0x00111ae8 ldr r0, [sp, 0xc]                                 |         r0 = var_ch;
    0x00111aec add r8, pc, r8                                    |         r8 = pc + r8;
    0x00111af0 mov r1, r8                                        |         r1 = r8;
    0x00111af4 bl 0x2c48c                                        |         r0 = g_object_class_find_property ();
    0x00111af8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00111afc beq 0x111b34                                      |             goto label_11;
                                                                 |         }
    0x00111b00 ldr r3, [r0, 0xc]                                 |         r3 = *((r0 + 0xc));
    0x00111b04 cmp r3, 0x14                                      |         
                                                                 |         if (r3 != 0x14) {
    0x00111b08 bne 0x111b34                                      |             goto label_11;
                                                                 |         }
    0x00111b0c ldr r3, [r0, 8]                                   |         r3 = *((r0 + 8));
    0x00111b10 tst r3, 2                                         |         
                                                                 |         if ((r3 & 2) == 0) {
    0x00111b14 beq 0x111b34                                      |             goto label_11;
                                                                 |         }
    0x00111b18 mov r3, 0                                         |         r3 = 0;
    0x00111b1c str r3, [sp]                                      |         *(sp) = r3;
    0x00111b20 mov r2, r6                                        |         r2 = r6;
    0x00111b24 mov r3, r8                                        |         r3 = r8;
    0x00111b28 ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x00111b2c mov r0, r7                                        |         r0 = r7;
    0x00111b30 bl 0x1114e4                                       |         g_settings_bind_writable ();
                                                                 |     }
                                                                 | label_11:
    0x00111b34 cmp fp, 0                                         |     
                                                                 |     if (fp == 0) {
    0x00111b38 beq 0x111c24                                      |         goto label_12;
                                                                 |     }
    0x00111b3c ldr r3, [r4, 0x50]                                |     r3 = *((r4 + 0x50));
    0x00111b40 ldr r0, [pc, 0x16c]                               |     r0 = *(0x111cb0);
    0x00111b44 ldr r1, [r3, 4]                                   |     r1 = *((r3 + 4));
    0x00111b48 add r0, pc, r0                                    |     r0 = pc + r0;
    0x00111b4c bl 0x2cde0                                        |     g_strdup_printf ();
    0x00111b50 ldr r2, [pc, 0x160]                               |     r2 = *(0x111cb4);
    0x00111b54 mov r3, 0                                         |     r3 = 0;
    0x00111b58 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00111b5c str r3, [sp]                                      |     *(sp) = r3;
    0x00111b60 add r2, pc, r2                                    |     r2 = pc + r2;
    0x00111b64 mov r3, r4                                        |     r3 = r4;
    0x00111b68 mov r1, r0                                        |     r1 = r0;
    0x00111b6c mov r8, r0                                        |     r8 = r0;
    0x00111b70 mov r0, r6                                        |     r0 = r6;
    0x00111b74 bl 0x2de6c                                        |     g_signal_connect_data ();
    0x00111b78 str r0, [r4, 0x4c]                                |     *((r4 + 0x4c)) = r0;
    0x00111b7c mov r0, r8                                        |     r0 = r8;
    0x00111b80 bl 0x2bf4c                                        |     g_free ();
    0x00111b84 cmp sl, 0                                         |     
                                                                 |     if (sl != 0) {
    0x00111b88 beq 0x111be8                                      |         
                                                                 | label_2:
    0x00111b8c ands r5, r5, 8                                    |         r5 &= 8;
                                                                 |         if (r5 == r5) {
    0x00111b90 bne 0x111bd4                                      |             
    0x00111b94 ldr r0, [pc, 0x120]                               |             r0 = *(0x111cb8);
    0x00111b98 mov r1, sb                                        |             r1 = sb;
    0x00111b9c add r0, pc, r0                                    |             r0 = pc + r0;
    0x00111ba0 bl 0x2cde0                                        |             g_strdup_printf ();
    0x00111ba4 ldr r2, [pc, 0x114]                               |             r2 = *(0x111cbc);
    0x00111ba8 str r5, [sp, 4]                                   |             var_4h = r5;
    0x00111bac str r5, [sp]                                      |             *(sp) = r5;
    0x00111bb0 mov r3, r4                                        |             r3 = r4;
    0x00111bb4 add r2, pc, r2                                    |             r2 = pc + r2;
    0x00111bb8 mov r8, r0                                        |             r8 = r0;
    0x00111bbc mov r1, r0                                        |             r1 = r0;
    0x00111bc0 mov r0, r7                                        |             r0 = r7;
    0x00111bc4 bl 0x2de6c                                        |             g_signal_connect_data ();
    0x00111bc8 str r0, [r4, 0x54]                                |             *((r4 + 0x54)) = r0;
    0x00111bcc mov r0, r8                                        |             r0 = r8;
    0x00111bd0 bl 0x2bf4c                                        |             g_free ();
                                                                 |         }
    0x00111bd4 mov r2, r4                                        |         r2 = r4;
    0x00111bd8 ldr r1, [r4, 4]                                   |         r1 = *((r4 + 4));
    0x00111bdc mov r0, r7                                        |         r0 = r7;
    0x00111be0 bl 0x10ead8                                       |         fcn_0010ead8 (r0, r1);
    0x00111be4 b 0x111bf8                                        |         
                                                                 |     } else {
    0x00111be8 mov r2, r4                                        |         r2 = r4;
    0x00111bec ldr r1, [r4, 0x50]                                |         r1 = *((r4 + 0x50));
    0x00111bf0 mov r0, r6                                        |         r0 = r6;
    0x00111bf4 bl 0x10f064                                       |         fcn_0010f064 (r0, r1);
                                                                 |     }
                                                                 |     do {
    0x00111bf8 ldr r3, [r4, 0x50]                                |         r3 = *((r4 + 0x50));
    0x00111bfc ldr r0, [r3, 4]                                   |         r0 = *((r3 + 4));
    0x00111c00 bl 0x10e9a0                                       |         fcn_0010e9a0 (r0);
    0x00111c04 ldr r3, [pc, 0xb8]                                |         r3 = *(0x111cc0);
    0x00111c08 mov r2, r4                                        |         r2 = r4;
    0x00111c0c add r3, pc, r3                                    |         r3 = pc + r3;
    0x00111c10 mov r1, r0                                        |         r1 = r0;
    0x00111c14 mov r0, r6                                        |         r0 = r6;
    0x00111c18 add sp, sp, 0x1c                                  |         
    0x00111c1c pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}          |         
    0x00111c20 b 0x2d614                                         |         void (*0x2d614)() ();
                                                                 | label_12:
    0x00111c24 cmp sl, 0                                         |         
    0x00111c28 beq 0x111bf8                                      |         
                                                                 |     } while (sl == 0);
    0x00111c2c b 0x111b8c                                        |     goto label_2;
                                                                 | }
    ; 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/libgio-2.0.so.0.5600.4 @ 0x87c4c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.g_task_set_task_data ()          | void g_task_set_task_data (int32_t arg1, int32_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00087c4c push {r4, r5, r6, lr}             |     
    0x00087c50 mov r4, r0                        |     r4 = r0;
    0x00087c54 mov r6, r1                        |     r6 = r1;
    0x00087c58 mov r5, r2                        |     r5 = r2;
    0x00087c5c bl 0x87a18                        |     g_task_get_type ();
    0x00087c60 cmp r4, 0                         |     
                                                 |     if (r4 != 0) {
    0x00087c64 beq 0x87c94                       |         
    0x00087c68 ldr r3, [r4]                      |         r3 = *(r4);
    0x00087c6c mov r1, r0                        |         r1 = r0;
    0x00087c70 cmp r3, 0                         |         
                                                 |         if (r3 != 0) {
    0x00087c74 beq 0x87c84                       |             
    0x00087c78 ldr r3, [r3]                      |             r3 = *(r3);
    0x00087c7c cmp r3, r0                        |             
                                                 |             if (r3 == r0) {
    0x00087c80 beq 0x87cb8                       |                 goto label_0;
                                                 |             }
                                                 |         }
    0x00087c84 mov r0, r4                        |         r0 = r4;
    0x00087c88 bl 0x2db0c                        |         r0 = g_type_check_instance_is_a ();
    0x00087c8c cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x00087c90 bne 0x87cb8                       |             goto label_0;
                                                 |         }
                                                 |     }
    0x00087c94 ldr r1, [pc, 0x3c]                |     
    0x00087c98 ldr r2, [pc, 0x3c]                |     r2 = *(0x87cd8);
    0x00087c9c ldr r0, [pc, 0x3c]                |     r0 = *(0x87cdc);
    0x00087ca0 add r1, pc, r1                    |     r1 = pc + r1;
    0x00087ca4 add r2, pc, r2                    |     r2 = pc + r2;
    0x00087ca8 add r1, r1, 0x18                  |     r1 = 0x87cec;
    0x00087cac add r0, pc, r0                    |     r0 = pc + r0;
    0x00087cb0 pop {r4, r5, r6, lr}              |     
    0x00087cb4 b 0x2c8f4                         |     void (*0x2c8f4)() ();
                                                 | label_0:
    0x00087cb8 ldr r3, [r4, 0x18]                |     r3 = *((r4 + 0x18));
    0x00087cbc cmp r3, 0                         |     
                                                 |     if (r3 != 0) {
    0x00087cc0 beq 0x87ccc                       |         
    0x00087cc4 ldr r0, [r4, 0x14]                |         r0 = *((r4 + 0x14));
    0x00087cc8 blx r3                            |         uint32_t (*r3)(uint32_t) (r0);
                                                 |     }
    0x00087ccc str r6, [r4, 0x14]                |     *((r4 + 0x14)) = r6;
    0x00087cd0 str r5, [r4, 0x18]                |     *((r4 + 0x18)) = r5;
    0x00087cd4 pop {r4, r5, r6, pc}              |     
                                                 | }

[*] Function popen used 1 times libgio-2.0.so.0.5600.4