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

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


[*] Function fprintf tear down of libgio-2.0.so.0.6800.4



r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x8c6d4).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x8c72c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0008c72c ()                                          | void fcn_0008c72c (int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     if (? > ?) {
    0x0008c72c ldrle r3, [pc, 0xe8]                                  |         r3 = *((pc + 0xe8));
                                                                     |     }
    0x0008c72e pushgt {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     __asm ("pushgt {r4, r5, r6, r7, r8, sb, sl, fp, lr}");
    0x0008c732 sub sp, 0x14                                          |     
    0x0008c734 mov r6, r0                                            |     r6 = r0;
    0x0008c736 lsls r7, r1, 2                                        |     r7 = r1 << 2;
    0x0008c738 add r3, pc                                            |     r3 += pc;
    0x0008c73a str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0008c73c subs r3, r1, 1                                        |     r3 = r1 - 1;
    0x0008c73e str r3, [sp, 8]                                       |     var_8h = r3;
    0x0008c740 mov r8, r1                                            |     r8 = r1;
    0x0008c742 ldr r3, [r6, 0x14]                                    |     r3 = *((r6 + 0x14));
    0x0008c744 ldr r4, [r3, r7]                                      |     r4 = *((r3 + r7));
                                                                     |     if (r4 != 0) {
    0x0008c746 cbnz r4, 0x8c78a                                      |         goto label_0;
                                                                     |     }
    0x0008c748 b 0x8c7e8                                             |     goto label_2;
                                                                     |     do {
    0x0008c74a ldr r3, [r6, 8]                                       |         r3 = *((r6 + 8));
    0x0008c74c mov.w r1, -1                                          |         r1 = -1;
    0x0008c750 mov r0, r5                                            |         r0 = r5;
                                                                     |         if (r3 != 0) {
    0x0008c752 cbz r3, 0x8c780                                       |             
    0x0008c754 blx 0x29290                                           |             g_string_insert ();
    0x0008c758 mov.w r1, -1                                          |             r1 = -1;
    0x0008c75c mov sb, r0                                            |             sb = r0;
    0x0008c75e blx 0x2a6b8                                           |             g_path_skip_root ();
    0x0008c762 ldr r1, [r6, 0x10]                                    |             r1 = *((r6 + 0x10));
    0x0008c764 mov sl, r0                                            |             sl = r0;
    0x0008c766 ldr r1, [r1, r7]                                      |             r1 = *((r1 + r7));
    0x0008c768 blx 0x2b168                                           |             r0 = fcn_0002b168 ();
    0x0008c76c mov fp, r0                                            |             
    0x0008c76e mov r0, sb                                            |             r0 = sb;
    0x0008c770 blx 0x286c0                                           |             g_atomic_ref_count_inc ();
    0x0008c774 mov r0, sl                                            |             r0 = sl;
    0x0008c776 blx 0x286c0                                           |             g_atomic_ref_count_inc ();
    0x0008c77a cmp.w fp, 0                                           |             
                                                                     |             if (fp == 0) {
    0x0008c77e beq 0x8c7aa                                           |                 goto label_3;
                                                                     |             }
                                                                     |         }
    0x0008c780 mov r0, r4                                            |         r0 = r4;
    0x0008c782 blx 0x28d00                                           |         fcn_00028d00 ();
    0x0008c786 ldr r3, [r6, 0x14]                                    |         r3 = *((r6 + 0x14));
    0x0008c788 ldr r4, [r3, r7]                                      |         r4 = *((r3 + r7));
                                                                     | label_0:
    0x0008c78a movs r2, 0                                            |         r2 = 0;
    0x0008c78c mov r0, r4                                            |         r0 = r4;
    0x0008c78e mov r1, r2                                            |         r1 = r2;
    0x0008c790 bl 0x4af24                                            |         r0 = g_file_enumerator_next_file ();
    0x0008c794 mov r4, r0                                            |         r4 = r0;
                                                                     |         if (r0 == 0) {
    0x0008c796 cbz r0, 0x8c7c8                                       |             goto label_4;
                                                                     |         }
    0x0008c798 bl 0x4ee84                                            |         g_file_info_get_name ();
    0x0008c79c ldr r3, [r6, 0xc]                                     |         r3 = *((r6 + 0xc));
    0x0008c79e mov r5, r0                                            |         r5 = r0;
    0x0008c7a0 ldr r1, [r3, r7]                                      |         r1 = *((r3 + r7));
    0x0008c7a2 blx 0x2b168                                           |         r0 = fcn_0002b168 ();
    0x0008c7a6 cmp r0, 0                                             |         
    0x0008c7a8 bne 0x8c74a                                           |         
                                                                     |     } while (r0 != 0);
                                                                     | label_3:
    0x0008c7aa ldr r3, [r6, 0x18]                                    |     r3 = *((r6 + 0x18));
    0x0008c7ac mov r1, r5                                            |     r1 = r5;
    0x0008c7ae ldr.w r0, [r3, r8, lsl 2]                             |     offset_0 = r8 << 2;
                                                                     |     r0 = *((r3 + offset_0));
    0x0008c7b2 bl 0x43e9c                                            |     r0 = g_file_get_child ();
    0x0008c7b6 mov r3, r0                                            |     r3 = r0;
    0x0008c7b8 mov r0, r4                                            |     r0 = r4;
    0x0008c7ba mov r4, r3                                            |     r4 = r3;
    0x0008c7bc blx 0x28d00                                           |     fcn_00028d00 ();
    0x0008c7be invalid                                               |     
                                                                     | label_1:
    0x0008c7c0 mov r0, r4                                            |     r0 = r4;
    0x0008c7c2 add sp, 0x14                                          |     
    0x0008c7c4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_4:
    0x0008c7c8 ldr r3, [r6, 0x14]                                    |     r3 = *((r6 + 0x14));
    0x0008c7ca ldr r0, [r3, r7]                                      |     r0 = *((r3 + r7));
    0x0008c7cc blx 0x28d00                                           |     fcn_00028d00 ();
    0x0008c7d0 ldr r3, [r6, 0x14]                                    |     r3 = *((r6 + 0x14));
    0x0008c7d2 str r4, [r3, r7]                                      |     *((r3 + r7)) = r4;
    0x0008c7d4 ldr r3, [r6, 0x18]                                    |     r3 = *((r6 + 0x18));
    0x0008c7d6 ldr r0, [r3, r7]                                      |     r0 = *((r3 + r7));
    0x0008c7d8 blx 0x28d00                                           |     fcn_00028d00 ();
    0x0008c7dc ldr r3, [r6, 0x18]                                    |     r3 = *((r6 + 0x18));
    0x0008c7de str r4, [r3, r7]                                      |     *((r3 + r7)) = r4;
    0x0008c7e0 ldr r3, [r6, 0x14]                                    |     r3 = *((r6 + 0x14));
    0x0008c7e2 ldr r4, [r3, r7]                                      |     r4 = *((r3 + r7));
    0x0008c7e4 cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0008c7e6 bne 0x8c78a                                           |         goto label_0;
                                                                     |     }
                                                                     | label_2:
    0x0008c7e8 cmp.w r8, 0                                           |     
                                                                     |     if (r8 <= 0) {
    0x0008c7ec ble 0x8c7c0                                           |         goto label_1;
                                                                     |     }
    0x0008c7ee ldr r1, [sp, 8]                                       |     r1 = var_8h;
    0x0008c7f0 mov r0, r6                                            |     r0 = r6;
    0x0008c7f2 bl 0x8c72c                                            |     r0 = fcn_0008c72c (r0, r1);
                                                                     |     if (r0 != 0) {
    0x0008c7f6 cbz r0, 0x8c80c                                       |         
    0x0008c7f8 ldr r2, [r6, 0x18]                                    |         r2 = *((r6 + 0x18));
    0x0008c7fa mov r3, r4                                            |         r3 = r4;
    0x0008c7fc ldr r1, [sp, 0xc]                                     |         r1 = var_ch;
    0x0008c7fe str r0, [r2, r7]                                      |         *((r2 + r7)) = r0;
    0x0008c800 mov r2, r4                                            |         r2 = r4;
    0x0008c802 str r4, [sp]                                          |         *(sp) = r4;
    0x0008c804 ldr r5, [r6, 0x14]                                    |         r5 = *((r6 + 0x14));
    0x0008c806 bl 0x43f14                                            |         g_file_enumerate_children ();
    0x0008c80a str r0, [r5, r7]                                      |         *((r5 + r7)) = r0;
                                                                     |     }
    0x0008c80c ldr r3, [r6, 0x14]                                    |     r3 = *((r6 + 0x14));
    0x0008c80e ldr r3, [r3, r7]                                      |     r3 = *((r3 + r7));
    0x0008c810 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0008c812 beq 0x8c7c0                                           |         goto label_1;
                                                                     |     }
    0x0008c814 mov r4, r3                                            |     r4 = r3;
    0x0008c816 b 0x8c78a                                             |     goto label_0;
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0xc2f48 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000c2f48 ()                                  | void fcn_000c2f48 (int16_t arg1) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_1ch;
                                                             |     int16_t var_20h;
                                                             |     int16_t var_24h;
                                                             |     r0 = arg1;
    0x000c2f48 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x000c2f4c mov r4, r0                                    |     r4 = r0;
    0x000c2f4e vpush {d8}                                    |     __asm ("vpush {d8}");
    0x000c2f52 sub sp, 0x2c                                  |     
    0x000c2f54 ldr r3, [r0]                                  |     r3 = *(r0);
    0x000c2f56 ldr.w sb, [r0, 0x14]                          |     sb = *((r0 + 0x14));
    0x000c2f5a ldr r0, [r3, 0x18]                            |     r0 = *((r3 + 0x18));
    0x000c2f5c bl 0x5961c                                    |     r0 = g_io_stream_get_output_stream ();
    0x000c2f60 mov r5, r0                                    |     r5 = r0;
    0x000c2f62 ldr r0, [r4, 4]                               |     r0 = *((r4 + 4));
    0x000c2f64 bl 0xbbdbc                                    |     r0 = g_dbus_message_get_unix_fd_list ();
    0x000c2f68 mov r8, r0                                    |     r8 = r0;
    0x000c2f6a mov r0, r5                                    |     r0 = r5;
    0x000c2f6c bl 0x63994                                    |     r0 = g_output_stream_has_pending ();
                                                             |     if (r0 != 0) {
    0x000c2f70 cbz r0, 0xc2f8e                               |         
    0x000c2f72 ldr r3, [pc, 0x280]                           |         
    0x000c2f74 movw r2, 0x3ea                                |         r2 = (r2 & 0xFFFF0000) | (case.0x89708.0 & 0xFFFF);
    0x000c2f78 ldr r4, [pc, 0x27c]                           |         
    0x000c2f7a ldr r1, [pc, 0x280]                           |         
    0x000c2f7c ldr r0, [pc, 0x280]                           |         
    0x000c2f7e add r3, pc                                    |         r3 = 0x186178;
    0x000c2f80 add r4, pc                                    |         r4 = 0x18617c;
    0x000c2f82 adds r3, 0x84                                 |         r3 += 0x84;
    0x000c2f84 add r1, pc                                    |         r1 = 0x186186;
    0x000c2f86 str r4, [sp]                                  |         *(sp) = r4;
    0x000c2f88 add r0, pc                                    |         r0 = 0x18618c;
    0x000c2f8a blx 0x29610                                   |         r0 = fcn_00029610 ();
                                                             |     }
    0x000c2f8e mov r6, r0                                    |     r6 = r0;
    0x000c2f90 ldrd r0, r7, [r4, 0xc]                        |     __asm ("ldrd r0, r7, [r4, 0xc]");
    0x000c2f94 cmp r7, r0                                    |     
    0x000c2f96 sbcs.w r3, r6, r6                             |     __asm ("sbcs.w r3, r6, r6");
    0x000c2f9a bge 0xc303e                                   |     
                                                             |     while (1) {
    0x000c2f9c cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x000c2f9e beq 0xc3002                                   |             
    0x000c2fa0 bl 0x76bac                                    |             fcn_00076bac ();
    0x000c2fa4 ldr r3, [r5]                                  |             r3 = *(r5);
    0x000c2fa6 mov r1, r0                                    |             r1 = r0;
                                                             |             if (r3 != 0) {
    0x000c2fa8 cbz r3, 0xc2fb0                               |                 
    0x000c2faa ldr r3, [r3]                                  |                 r3 = *(r3);
    0x000c2fac cmp r3, r0                                    |                 
                                                             |                 if (r3 == r0) {
    0x000c2fae beq 0xc2fb8                                   |                     goto label_3;
                                                             |                 }
                                                             |             }
    0x000c2fb0 mov r0, r5                                    |             r0 = r5;
    0x000c2fb2 blx 0x2a23c                                   |             r0 = fcn_0002a23c ();
                                                             |             if (r0 == 0) {
    0x000c2fb6 cbz r0, 0xc3002                               |                 goto label_4;
                                                             |             }
                                                             | label_3:
    0x000c2fb8 cmp r7, 0                                     |             
                                                             |             if (r7 != 0) {
    0x000c2fba bne 0xc3016                                   |                 goto label_5;
                                                             |             }
    0x000c2fbc ldr r3, [r4, 0xc]                             |             r3 = *((r4 + 0xc));
    0x000c2fbe str r7, [sp, 0x18]                            |             var_18h = r7;
    0x000c2fc0 str r3, [sp, 0x24]                            |             var_24h = r3;
    0x000c2fc2 ldr r3, [r4, 8]                               |             r3 = *((r4 + 8));
    0x000c2fc4 str r3, [sp, 0x20]                            |             var_20h = r3;
    0x000c2fc6 cmp.w r8, 0                                   |             
                                                             |             if (r8 == 0) {
    0x000c2fca beq 0xc30b0                                   |                 goto label_6;
                                                             |             }
    0x000c2fcc mov r0, r8                                    |             r0 = r8;
    0x000c2fce bl 0x90b08                                    |             r0 = g_unix_fd_list_get_length ();
    0x000c2fd2 cmp r0, 0                                     |             
                                                             |             if (r0 <= 0) {
    0x000c2fd4 ble.w 0xc3172                                 |                 goto label_7;
                                                             |             }
    0x000c2fd8 ldr r3, [r4]                                  |             r3 = *(r4);
    0x000c2fda ldr r3, [r3, 0x10]                            |             r3 = *((r3 + 0x10));
    0x000c2fdc lsls r1, r3, 0x1f                             |             r1 = r3 << 0x1f;
                                                             |             if (r1 >= r3) {
    0x000c2fde bpl.w 0xc3158                                 |                 goto label_8;
                                                             |             }
    0x000c2fe2 mov r0, r8                                    |             r0 = r8;
    0x000c2fe4 bl 0x90e7c                                    |             r0 = g_unix_fd_message_new_with_fd_list ();
    0x000c2fe8 subs r6, r0, 0                                |             r6 = r0 - 0;
    0x000c2fea mov r2, r0                                    |             r2 = r0;
    0x000c2fec it ne                                         |             
                                                             |             if (r6 == r0) {
    0x000c2fee movne r6, 1                                   |                 r6 = 1;
                                                             |             }
    0x000c2ff0 str r0, [sp, 0x18]                            |             var_18h = r0;
                                                             | label_1:
    0x000c2ff2 movs r3, 0                                    |             r3 = 0;
    0x000c2ff4 add r5, sp, 0x18                              |             r5 += var_18h;
    0x000c2ff6 str r3, [sp, 0x1c]                            |             var_1ch = r3;
    0x000c2ff8 ldr r3, [r4]                                  |             r3 = *(r4);
    0x000c2ffa ldr r0, [r3, 0x30]                            |             r0 = *((r3 + 0x30));
    0x000c2ffc cmp r2, 0                                     |             
                                                             |             if (r2 != 0) {
    0x000c2ffe bne 0xc30ba                                   |                 goto label_9;
                                                             |             }
    0x000c3000 b 0xc30b8                                     |             goto label_10;
                                                             |         }
                                                             | label_4:
    0x000c3002 clz r3, r7                                    |         r3 &= r7;
    0x000c3006 cmp.w r8, 0                                   |         
    0x000c300a lsr.w r3, r3, 5                               |         r3 >>= 5;
    0x000c300e it eq                                         |         
                                                             |         if (r8 != 0) {
    0x000c3010 moveq r3, 0                                   |             r3 = 0;
                                                             |         }
    0x000c3012 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000c3014 bne 0xc3082                                   |             goto label_11;
                                                             |         }
                                                             | label_5:
    0x000c3016 ldrd r1, r2, [r4, 8]                          |         __asm ("ldrd r1, r2, [r4, 8]");
    0x000c301a mov r0, r5                                    |         r0 = r5;
    0x000c301c str r4, [sp, 8]                               |         var_8h = r4;
    0x000c301e ldr r3, [r4]                                  |         r3 = *(r4);
    0x000c3020 ldr r4, [pc, 0x1e0]                           |         
    0x000c3022 subs r2, r2, r7                               |         r2 -= r7;
    0x000c3024 add r1, r7                                    |         r1 += r7;
    0x000c3026 add r4, pc                                    |         r4 = 0x18622e;
    0x000c3028 str r4, [sp, 4]                               |         var_4h = r4;
    0x000c302a ldr r4, [r3, 0x1c]                            |         r4 = *((r3 + 0x1c));
    0x000c302c movs r3, 0                                    |         r3 = 0;
    0x000c302e str r4, [sp]                                  |         *(sp) = r4;
    0x000c3030 bl 0x63a84                                    |         g_output_stream_write_async ();
                                                             | label_0:
    0x000c3034 add sp, 0x2c                                  |         
    0x000c3036 vpop {d8}                                     |         __asm ("vpop {d8}");
    0x000c303a pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
    0x000c303e mov r1, r6                                    |         r1 = r6;
    0x000c3040 bl 0xe0564                                    |         r0 = fcn_000e0564 (r0, r1, r2);
    0x000c3044 vmov d8, r0, r1                               |         __asm ("vmov d8, r0, r1");
    0x000c3048 mov r0, r7                                    |         r0 = r7;
    0x000c304a mov r1, r6                                    |         r1 = r6;
    0x000c304c bl 0xe0564                                    |         fcn_000e0564 (r0, r1, r2);
    0x000c3050 ldr r2, [pc, 0x1b4]                           |         
    0x000c3052 ldr r3, [pc, 0x1b8]                           |         
    0x000c3054 vmov d0, r0, r1                               |         __asm ("vmov d0, r0, r1");
    0x000c3058 add r2, pc                                    |         r2 = 0x186264;
    0x000c305a ldr r1, [pc, 0x1b4]                           |         
    0x000c305c str r2, [sp, 4]                               |         var_4h = r2;
    0x000c305e add r3, pc                                    |         r3 = 0x186270;
    0x000c3060 ldr r2, [pc, 0x1b0]                           |         
    0x000c3062 adds r3, 0x84                                 |         r3 += 0x84;
    0x000c3064 ldr r0, [pc, 0x1b0]                           |         
    0x000c3066 add r1, pc                                    |         r1 = 0x18627c;
    0x000c3068 vmov.f64 d1, d8                               |         __asm ("vmov.f64 d1, d8");
    0x000c306c add r2, pc                                    |         r2 = 0x186284;
    0x000c306e str r2, [sp]                                  |         *(sp) = r2;
    0x000c3070 movs r2, 0x69                                 |         r2 = 0x69;
    0x000c3072 str r2, [sp, 8]                               |         var_8h = r2;
    0x000c3074 add r0, pc                                    |         r0 = 0x186290;
    0x000c3076 movw r2, 0x3eb                                |         r2 = (r2 & 0xFFFF0000) | (case.0x89708.0 & 0xFFFF);
    0x000c307a blx 0x29fb4                                   |         fcn_00029fb4 ();
    0x000c307e ldr r7, [r4, 0x10]                            |         r7 = *((r4 + 0x10));
    0x000c3080 b 0xc2f9c                                     |         
                                                             |     }
                                                             | label_11:
    0x000c3082 bl 0x57bc8                                    |     g_io_error_quark ();
    0x000c3086 ldr r3, [r5]                                  |     r3 = *(r5);
    0x000c3088 mov r4, r0                                    |     r4 = r0;
    0x000c308a ldr r0, [r3]                                  |     r0 = *(r3);
    0x000c308c blx 0x2a40c                                   |     listxattr ();
    0x000c3090 ldr r3, [pc, 0x188]                           |     
    0x000c3092 movs r2, 0                                    |     r2 = 0;
    0x000c3094 str r0, [sp]                                  |     *(sp) = r0;
    0x000c3096 mov r1, r4                                    |     r1 = r4;
    0x000c3098 mov r0, sb                                    |     r0 = sb;
    0x000c309a add r3, pc                                    |     r3 = 0x1862ba;
    0x000c309c bl 0x7adb0                                    |     g_task_return_new_error ();
    0x000c30a0 mov r0, sb                                    |     r0 = sb;
    0x000c30a2 add sp, 0x2c                                  |     
    0x000c30a4 vpop {d8}                                     |     __asm ("vpop {d8}");
    0x000c30a8 pop.w {r4, r5, r6, r7, r8, sb, lr}            |     
    0x000c30ac b.w 0x28cfc                                   |     void (*0x28cfc)() ();
                                                             | label_6:
    0x000c30b0 ldr r3, [r4]                                  |     r3 = *(r4);
    0x000c30b2 str.w r8, [sp, 0x1c]                          |     __asm ("str.w r8, [var_1ch]");
    0x000c30b6 ldr r0, [r3, 0x30]                            |     r0 = *((r3 + 0x30));
                                                             | label_10:
    0x000c30b8 movs r5, 0                                    |     r5 = 0;
                                                             | label_9:
    0x000c30ba add r2, sp, 0x1c                              |     r2 += var_1ch;
    0x000c30bc movs r1, 0                                    |     r1 = 0;
    0x000c30be str r2, [sp, 0x10]                            |     var_10h = r2;
    0x000c30c0 add r2, sp, 0x20                              |     r2 += var_20h;
    0x000c30c2 ldr r3, [r3, 0x1c]                            |     r3 = *((r3 + 0x1c));
    0x000c30c4 str r5, [sp]                                  |     *(sp) = r5;
    0x000c30c6 str r6, [sp, 4]                               |     var_4h = r6;
    0x000c30c8 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x000c30ca movs r3, 1                                    |     r3 = 1;
    0x000c30cc str r1, [sp, 8]                               |     var_8h = r1;
    0x000c30ce bl 0x705e0                                    |     g_socket_send_message ();
    0x000c30d2 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x000c30d4 mov r5, r0                                    |     r5 = r0;
                                                             |     if (r3 != 0) {
    0x000c30d6 cbz r3, 0xc30de                               |         
    0x000c30d8 mov r0, r3                                    |         r0 = r3;
    0x000c30da blx 0x28d00                                   |         fcn_00028d00 ();
                                                             |     }
    0x000c30de adds r2, r5, 1                                |     r2 = r5 + 1;
                                                             |     if (r2 == r5) {
    0x000c30e0 beq 0xc318c                                   |         goto label_12;
                                                             |     }
    0x000c30e2 cmp r5, 0                                     |     
                                                             |     if (r5 <= 0) {
    0x000c30e4 ble 0xc313c                                   |         goto label_13;
                                                             |     }
    0x000c30e6 ldr r0, [pc, 0x138]                           |     
    0x000c30e8 dmb ish                                       |     __asm ("dmb ish");
    0x000c30ec add r0, pc                                    |     r0 = 0x186312;
    0x000c30ee ldr r3, [r0, 0x10]                            |     r3 = *(0x186322);
    0x000c30f0 dmb ish                                       |     __asm ("dmb ish");
    0x000c30f4 cmp r3, 0                                     |     
    0x000c30f6 beq 0xc317c                                   |     
                                                             |     while (r0 == 0) {
                                                             | label_2:
    0x000c30f8 ldr r3, [pc, 0x128]                           |         
    0x000c30fa add r3, pc                                    |         
    0x000c30fc ldr r3, [r3, 0xc]                             |         r3 = *(0x18632e);
    0x000c30fe lsls r3, r3, 0x1e                             |         r3 <<= 0x1e;
                                                             |         if (r3 < r3) {
    0x000c3100 bpl 0xc310a                                   |             
    0x000c3102 mov r1, r4                                    |             r1 = r4;
    0x000c3104 mov r0, r5                                    |             r0 = r5;
    0x000c3106 bl 0xc2b8c                                    |             fcn_000c2b8c (r0, r1);
                                                             |         }
    0x000c310a ldrd r3, r2, [r4, 0xc]                        |         __asm ("ldrd r3, r2, [r4, 0xc]");
    0x000c310e add r5, r2                                    |         r5 += r2;
    0x000c3110 cmp r5, r3                                    |         
    0x000c3112 str r5, [r4, 0x10]                            |         *((r4 + 0x10)) = r5;
                                                             |         if (r5 >= r3) {
    0x000c3114 bls 0xc3132                                   |             
    0x000c3116 ldr r3, [pc, 0x110]                           |             
    0x000c3118 movw r2, 0x432                                |             r2 = (r2 & 0xFFFF0000) | (case.0x89708.0 & 0xFFFF);
    0x000c311c ldr r4, [pc, 0x10c]                           |             
    0x000c311e ldr r1, [pc, 0x110]                           |             
    0x000c3120 ldr r0, [pc, 0x110]                           |             
    0x000c3122 add r3, pc                                    |             r3 = 0x186350;
    0x000c3124 add r4, pc                                    |             r4 = 0x186354;
    0x000c3126 adds r3, 0x84                                 |             r3 += 0x84;
    0x000c3128 add r1, pc                                    |             r1 = 0x18635e;
    0x000c312a str r4, [sp]                                  |             *(sp) = r4;
    0x000c312c add r0, pc                                    |             r0 = 0x186364;
    0x000c312e blx 0x29610                                   |             fcn_00029610 ();
                                                             |         }
                                                             |         if (r3 == 0x84) {
    0x000c3132 beq 0xc31d2                                   |             goto label_14;
                                                             |         }
    0x000c3134 mov r0, r4                                    |         r0 = r4;
    0x000c3136 bl 0xc2f48                                    |         fcn_000c2f48 (r0);
    0x000c313a b 0xc3034                                     |         goto label_0;
                                                             | label_13:
    0x000c313c ldr r3, [pc, 0xf8]                            |         
    0x000c313e movw r2, 0x42d                                |         r2 = (r2 & 0xFFFF0000) | (case.0x89708.0 & 0xFFFF);
    0x000c3142 ldr r4, [pc, 0xf8]                            |         
    0x000c3144 ldr r1, [pc, 0xf8]                            |         
    0x000c3146 ldr r0, [pc, 0xfc]                            |         
    0x000c3148 add r3, pc                                    |         r3 = 0x186384;
    0x000c314a add r4, pc                                    |         r4 = 0x18638c;
    0x000c314c adds r3, 0x84                                 |         r3 += 0x84;
    0x000c314e add r1, pc                                    |         r1 = 0x186392;
    0x000c3150 str r4, [sp]                                  |         *(sp) = r4;
    0x000c3152 add r0, pc                                    |         r0 = 0x18639c;
    0x000c3154 blx 0x29610                                   |         fcn_00029610 ();
                                                             | label_8:
    0x000c3158 bl 0x57bc8                                    |         g_io_error_quark ();
    0x000c315c ldr r3, [pc, 0xe8]                            |         
    0x000c315e mov r1, r0                                    |         r1 = r0;
    0x000c3160 mov r2, r7                                    |         r2 = r7;
    0x000c3162 mov r0, sb                                    |         r0 = sb;
    0x000c3164 add r3, pc                                    |         r3 = 0x1863b0;
    0x000c3166 bl 0x7adb0                                    |         g_task_return_new_error ();
    0x000c316a mov r0, sb                                    |         r0 = sb;
    0x000c316c blx 0x28d00                                   |         fcn_00028d00 ();
    0x000c3170 b 0xc3034                                     |         goto label_0;
                                                             | label_7:
    0x000c3172 ldr r2, [sp, 0x18]                            |         r2 = var_18h;
    0x000c3174 subs r6, r2, 0                                |         r6 = r2 - 0;
    0x000c3176 it ne                                         |         
                                                             |         if (r6 == r2) {
    0x000c3178 movne r6, 1                                   |             r6 = 1;
                                                             |         }
    0x000c317a b 0xc2ff2                                     |         goto label_1;
    0x000c317c adds r0, 0x10                                 |         r0 += 0x10;
    0x000c317e blx 0x2aafc                                   |         r0 = g_error_free ();
    0x000c3182 cmp r0, 0                                     |         
    0x000c3184 beq 0xc30f8                                   |         
                                                             |     }
    0x000c3186 bl 0xc2dcc                                    |     fcn_000c2dcc ();
    0x000c318a b 0xc30f8                                     |     goto label_2;
                                                             | label_12:
    0x000c318c ldr r5, [sp, 0x1c]                            |     r5 = var_1ch;
    0x000c318e bl 0x57bc8                                    |     g_io_error_quark ();
    0x000c3192 movs r2, 0x1b                                 |     r2 = 0x1b;
    0x000c3194 mov r1, r0                                    |     r1 = r0;
    0x000c3196 mov r0, r5                                    |     r0 = r5;
    0x000c3198 blx 0x2a09c                                   |     r0 = fcn_0002a09c ();
                                                             |     if (r0 != 0) {
    0x000c319c cbz r0, 0xc31e2                               |         
    0x000c319e ldr r3, [r4]                                  |         r3 = *(r4);
    0x000c31a0 movs r1, 0x1c                                 |         r1 = 0x1c;
    0x000c31a2 ldr r2, [r3, 0x1c]                            |         r2 = *((r3 + 0x1c));
    0x000c31a4 ldr r0, [r3, 0x30]                            |         r0 = *((r3 + 0x30));
    0x000c31a6 bl 0x6ec60                                    |         g_socket_create_source ();
    0x000c31aa ldr r1, [pc, 0xa0]                            |         
    0x000c31ac mov r2, r4                                    |         r2 = r4;
    0x000c31ae movs r3, 0                                    |         r3 = 0;
    0x000c31b0 mov r4, r0                                    |         r4 = r0;
    0x000c31b2 add r1, pc                                    |         r1 = 0x186404;
    0x000c31b4 blx 0x28ce4                                   |         g_hash_table_lookup_extended ();
    0x000c31b8 blx 0x2b30c                                   |         r0 = fcn_0002b30c ();
    0x000c31bc mov r1, r0                                    |         r1 = r0;
    0x000c31be mov r0, r4                                    |         r0 = r4;
    0x000c31c0 blx 0x2ac2c                                   |         fcn_0002ac2c ();
    0x000c31c4 mov r0, r4                                    |         r0 = r4;
    0x000c31c6 blx 0x2ab74                                   |         g_variant_get_fixed_array ();
    0x000c31ca ldr r0, [sp, 0x1c]                            |         r0 = var_1ch;
    0x000c31cc blx 0x2ad10                                   |         fcn_0002ad10 ();
    0x000c31d0 b 0xc3034                                     |         goto label_0;
                                                             | label_14:
    0x000c31d2 mov r0, sb                                    |         r0 = sb;
    0x000c31d4 movs r1, 1                                    |         r1 = 1;
    0x000c31d6 bl 0x7ab4c                                    |         g_task_return_boolean ();
    0x000c31da mov r0, sb                                    |         r0 = sb;
    0x000c31dc blx 0x28d00                                   |         fcn_00028d00 ();
    0x000c31e0 b 0xc3034                                     |         goto label_0;
                                                             |     }
    0x000c31e2 mov r0, sb                                    |     r0 = sb;
    0x000c31e4 ldr r1, [sp, 0x1c]                            |     r1 = var_1ch;
    0x000c31e6 bl 0x7ac7c                                    |     g_task_return_error ();
    0x000c31ea mov r0, sb                                    |     r0 = sb;
    0x000c31ec blx 0x28d00                                   |     fcn_00028d00 ();
    0x000c31f0 b 0xc3034                                     |     goto label_0;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x9b7e4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.g_action_group_get_action_state_hint ()          | void g_action_group_get_action_state_hint (int16_t arg1, int16_t arg2) {
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0009b7e4 push.w {r4, r5, r6, r7, r8, lr}                   |     
                                                                 |     if (r0 != 0) {
    0x0009b7e8 cbz r0, 0x9b81c                                   |         
    0x0009b7ea mov r4, r0                                        |         r4 = r0;
    0x0009b7ec mov r7, r1                                        |         r7 = r1;
    0x0009b7ee bl 0x9b3d4                                        |         g_action_group_get_type ();
    0x0009b7f2 ldr r6, [r4]                                      |         r6 = *(r4);
    0x0009b7f4 mov r5, r0                                        |         r5 = r0;
                                                                 |         if (r6 != 0) {
    0x0009b7f6 cbz r6, 0x9b7fe                                   |             
    0x0009b7f8 ldr r3, [r6]                                      |             r3 = *(r6);
    0x0009b7fa cmp r3, r0                                        |             
                                                                 |             if (r3 == r0) {
    0x0009b7fc beq 0x9b808                                       |                 goto label_0;
                                                                 |             }
                                                                 |         }
    0x0009b7fe mov r1, r5                                        |         r1 = r5;
    0x0009b800 mov r0, r4                                        |         r0 = r4;
    0x0009b802 blx 0x2a23c                                       |         r0 = fcn_0002a23c ();
                                                                 |         if (r0 == 0) {
    0x0009b806 cbz r0, 0x9b81c                                   |             goto label_1;
                                                                 |         }
                                                                 | label_0:
    0x0009b808 mov r1, r5                                        |         r1 = r5;
    0x0009b80a mov r0, r6                                        |         r0 = r6;
    0x0009b80c blx 0x286d8                                       |         g_variant_type_is_variant ();
    0x0009b810 mov r1, r7                                        |         r1 = r7;
    0x0009b812 ldr r3, [r0, 0x1c]                                |         r3 = *((r0 + 0x1c));
    0x0009b814 mov r0, r4                                        |         r0 = r4;
    0x0009b816 pop.w {r4, r5, r6, r7, r8, lr}                    |         
    0x0009b81a bx r3                                             |         return uint32_t (*r3)() ();
                                                                 |     }
                                                                 | label_1:
    0x0009b81c ldr r1, [pc, 0x14]                                |     
    0x0009b81e ldr r2, [pc, 0x18]                                |     
    0x0009b820 ldr r0, [pc, 0x18]                                |     
    0x0009b822 add r1, pc                                        |     r1 = 0x13705a;
    0x0009b824 add r2, pc                                        |     r2 = 0x137062;
    0x0009b826 adds r1, 0x8c                                     |     r1 += 0x8c;
    0x0009b828 add r0, pc                                        |     
    0x0009b82a blx 0x29e2c                                       |     r0 = fcn_00029e2c ();
    0x0009b82c add.w r0, r0, r0, lsl 8                           |     r0 = 0x137068;
    0x0009b830 pop.w {r4, r5, r6, r7, r8, pc}                    |     
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x9e01c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.g_action_parse_detailed_name ()          | void g_action_parse_detailed_name (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                         |     int16_t var_0h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x0009e01c mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, case.0x89708.0");
    0x0009e020 mov r4, r3                                |     r4 = r3;
    0x0009e022 ldrb r3, [r0]                             |     r3 = *(r0);
    0x0009e024 sub sp, 0xc                               |     
    0x0009e026 mov r5, r0                                |     r5 = r0;
    0x0009e028 tst.w r3, 0xdf                            |     
                                                         |     if ((r3 & 0xdf) == 0) {
    0x0009e02c beq 0x9e084                               |         goto label_1;
                                                         |     }
    0x0009e02e mov r7, r1                                |     r7 = r1;
    0x0009e030 ldr r1, [pc, 0xd0]                        |     
    0x0009e032 mov r8, r2                                |     r8 = r2;
    0x0009e034 add r1, pc                                |     r1 = 0x13c13c;
    0x0009e036 blx 0x2ae90                               |     r0 = fcn_0002ae90 ();
    0x0009e03a add.w sb, r5, r0                          |     sb = r5 + r0;
    0x0009e03e mov r6, r0                                |     r6 = r0;
    0x0009e040 mov r0, sb                                |     r0 = sb;
    0x0009e042 blx 0x29b5c                               |     fcn_00029b5c ();
    0x0009e046 ldrb r3, [r5, r6]                         |     r3 = *((r5 + r6));
                                                         |     if (r3 == 0) {
    0x0009e048 cbz r3, 0x9e09e                           |         goto label_2;
                                                         |     }
    0x0009e04a subs r3, 0x20                             |     r3 -= 0x20;
    0x0009e04c uxtb r2, r3                               |     r2 = (int8_t) r3;
    0x0009e04e cmp r2, 0x1a                              |     
                                                         |     if (r2 > 0x1a) {
    0x0009e050 bhi 0x9e0a2                               |         goto label_0;
                                                         |     }
    0x0009e052 cmp r3, 0x1a                              |     
                                                         |     if (r3 > 0x1a) {
    0x0009e054 bhi 0x9e0a2                               |         goto label_0;
                                                         |     }
                                                         |     /* switch table (27 cases) at 0x9e05a */
    0x0009e056 tbb [pc, r3]                              |     __asm ("tbb case.0x89708.0");
    0x0009e076 subs r0, 1                                |     r0--;
    0x0009e078 ldrb.w r3, [sb, r0]                       |     r3 = *((sb + r0));
    0x0009e07a adds r0, 0                                |     r0 += 0;
    0x0009e07c add.w r2, sb, r0                          |     r2 = sb + r0;
    0x0009e080 cmp r3, 0x29                              |     
                                                         |     if (r3 == 0x29) {
    0x0009e082 beq 0x9e0ec                               |         goto label_3;
                                                         |     }
                                                         |     do {
                                                         | label_1:
    0x0009e084 mov r0, r4                                |         r0 = r4;
                                                         |         if (r4 != 0) {
    0x0009e086 cbz r4, 0x9e098                           |             
    0x0009e088 ldr r6, [r4]                              |             r6 = *(r4);
                                                         |             if (r6 == 0) {
    0x0009e08a cbz r6, 0x9e0d0                           |                 goto label_4;
                                                         |             }
    0x0009e08c ldr r1, [pc, 0x78]                        |             
    0x0009e08e mov r2, r5                                |             r2 = r5;
    0x0009e090 add r1, pc                                |             r1 = 0x13c19c;
    0x0009e092 blx 0x2b06c                               |             g_strlcpy ();
    0x0009e096 movs r0, 0                                |             r0 = 0;
                                                         |         }
    0x0009e098 add sp, 0xc                               |         
    0x0009e09a pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_2:
    0x0009e09e str.w r3, [r8]                            |         __asm ("str.w r3, [r8]");
                                                         | label_0:
    0x0009e0a2 mov r1, r6                                |         r1 = r6;
    0x0009e0a4 mov r0, r5                                |         r0 = r5;
    0x0009e0a6 blx 0x29460                               |         r0 = fcn_00029460 ();
    0x0009e0aa mov r3, r0                                |         r3 = r0;
    0x0009e0ac movs r0, 1                                |         r0 = 1;
    0x0009e0ae str r3, [r7]                              |         *(r7) = r3;
    0x0009e0b0 add sp, 0xc                               |         
    0x0009e0b2 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
    0x0009e0b6 ldrb.w r3, [sb, 1]                        |         r3 = *((sb + 1));
    0x0009e0ba cmp r3, 0x3a                              |         
    0x0009e0bc bne 0x9e084                               |         
                                                         |     } while (r3 != 0x3a);
    0x0009e0be add.w r0, sb, 2                           |     r0 = sb + 2;
    0x0009e0c2 blx 0x297e8                               |     g_value_copy ();
    0x0009e0c6 blx 0x28a88                               |     fcn_00028a88 ();
    0x0009e0ca str.w r0, [r8]                            |     __asm ("str.w r0, [r8]");
    0x0009e0ce b 0x9e0a2                                 |     goto label_0;
                                                         | label_4:
    0x0009e0d0 blx 0x2b054                               |     g_queue_pop_head ();
    0x0009e0d4 ldr r3, [pc, 0x34]                        |     
    0x0009e0d6 mov r1, r0                                |     r1 = r0;
    0x0009e0d8 mov r2, r6                                |     r2 = r6;
    0x0009e0da mov r0, r4                                |     r0 = r4;
    0x0009e0dc str r5, [sp]                              |     *(sp) = r5;
    0x0009e0de add r3, pc                                |     r3 = 0x13c1ee;
    0x0009e0e0 blx 0x29f08                               |     g_bytes_get_type ();
    0x0009e0e4 mov r0, r6                                |     r0 = r6;
    0x0009e0e6 add sp, 0xc                               |     
    0x0009e0e8 pop.w {r4, r5, r6, r7, r8, sb, pc}        |     
    0x0009e0ea strh r0, [r6, 0x1e]                       |     *((r6 + 0x1e)) = r0;
                                                         | label_3:
    0x0009e0ec movs r3, 0                                |     r3 = 0;
    0x0009e0ee add.w r1, sb, 1                           |     r1 = sb + 1;
    0x0009e0f2 mov r0, r3                                |     r0 = r3;
    0x0009e0f4 str r4, [sp]                              |     *(sp) = r4;
    0x0009e0f6 blx 0x2a1c0                               |     g_unix_fd_source_new ();
    0x0009e0fa str.w r0, [r8]                            |     __asm ("str.w r0, [r8]");
    0x0009e0fe cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0009e100 bne 0x9e0a2                               |         goto label_0;
                                                         |     }
    0x0009e102 b 0x9e084                                 |     goto label_1;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x9a234 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.g_application_command_line_printerr ()           | void g_application_command_line_printerr (int16_t arg1) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     r0 = arg1;
    0x0009a234 push {r1, r2, r3}                                 |     
    0x0009a236 push {r4, r5, lr}                                 |     
    0x0009a238 sub sp, 8                                         |     
    0x0009a23a ldr r5, [sp, 0x14]                                |     r5 = var_14h;
                                                                 |     if (r0 != 0) {
    0x0009a23c cbz r0, 0x9a280                                   |         
    0x0009a23e mov r4, r0                                        |         r4 = r0;
    0x0009a240 bl 0x99d78                                        |         g_application_command_line_get_type ();
    0x0009a244 ldr r3, [r4]                                      |         r3 = *(r4);
    0x0009a246 mov r1, r0                                        |         r1 = r0;
                                                                 |         if (r3 != 0) {
    0x0009a248 cbz r3, 0x9a250                                   |             
    0x0009a24a ldr r3, [r3]                                      |             r3 = *(r3);
    0x0009a24c cmp r3, r0                                        |             
                                                                 |             if (r3 == r0) {
    0x0009a24e beq 0x9a258                                       |                 goto label_0;
                                                                 |             }
                                                                 |         }
    0x0009a250 mov r0, r4                                        |         r0 = r4;
    0x0009a252 blx 0x2a23c                                       |         r0 = fcn_0002a23c ();
                                                                 |         if (r0 == 0) {
    0x0009a256 cbz r0, 0x9a280                                   |             goto label_1;
                                                                 |         }
                                                                 |         if (r5 == 0) {
                                                                 | label_0:
    0x0009a258 cbz r5, 0x9a29c                                   |             goto label_2;
                                                                 |         }
    0x0009a25a add r1, sp, 0x18                                  |         r1 += var_18h;
    0x0009a25c mov r0, r5                                        |         r0 = r5;
    0x0009a25e str r1, [sp, 4]                                   |         var_4h = r1;
    0x0009a260 blx 0x29ce0                                       |         g_utf8_get_char ();
    0x0009a262 ldc p8, c6, [lr, -0x8c]!                          |         __asm ("ldc p8, c6, [lr, -0x8c]!");
    0x0009a264 ldr r3, [r4]                                      |         r3 = *(r4);
    0x0009a266 mov r1, r0                                        |         r1 = r0;
    0x0009a268 mov r5, r0                                        |         r5 = r0;
    0x0009a26a mov r0, r4                                        |         r0 = r4;
    0x0009a26c ldr r3, [r3, 0x48]                                |         r3 = *((r3 + 0x48));
    0x0009a26e blx r3                                            |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x0009a270 mov r0, r5                                        |         r0 = r5;
    0x0009a272 blx 0x286c0                                       |         g_atomic_ref_count_inc ();
    0x0009a276 add sp, 8                                         |         
    0x0009a278 pop.w {r4, r5, lr}                                |         
    0x0009a27c add sp, 0xc                                       |         
    0x0009a27e bx lr                                             |         return;
                                                                 |     }
                                                                 | label_1:
    0x0009a280 ldr r1, [pc, 0x34]                                |     
    0x0009a282 ldr r2, [pc, 0x38]                                |     
    0x0009a284 ldr r0, [pc, 0x38]                                |     
    0x0009a286 add r1, pc                                        |     r1 = 0x134542;
    0x0009a288 add r2, pc                                        |     r2 = 0x13454a;
    0x0009a28a adds r1, 0xcc                                     |     r1 += 0xcc;
    0x0009a28c add r0, pc                                        |     r0 = 0x134550;
    0x0009a28e blx 0x29e2c                                       |     fcn_00029e2c ();
    0x0009a292 add sp, 8                                         |     
    0x0009a294 pop.w {r4, r5, lr}                                |     
    0x0009a298 add sp, 0xc                                       |     
    0x0009a29a bx lr                                             |     return;
                                                                 | label_2:
    0x0009a29c ldr r1, [pc, 0x24]                                |     
    0x0009a29e ldr r2, [pc, 0x28]                                |     
    0x0009a2a0 ldr r0, [pc, 0x28]                                |     
    0x0009a2a2 add r1, pc                                        |     r1 = 0x13456a;
    0x0009a2a4 add r2, pc                                        |     r2 = 0x134572;
    0x0009a2a6 adds r1, 0xcc                                     |     r1 += 0xcc;
    0x0009a2a8 add r0, pc                                        |     r0 = 0x134578;
    0x0009a2aa blx 0x29e2c                                       |     fcn_00029e2c ();
    0x0009a2ae add sp, 8                                         |     
    0x0009a2b0 pop.w {r4, r5, lr}                                |     
    0x0009a2b4 add sp, 0xc                                       |     
    0x0009a2b6 bx lr                                             |     return;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x379b8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.g_buffered_input_stream_fill_async ()        | void g_buffered_input_stream_fill_async (int16_t arg_30h, int16_t arg_34h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_14h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x000379b8 mvnsmi lr, sp, lsr 18                         |     __asm ("mvnsmi lr, sp, lsr 18");
    0x000379bc mov r6, r3                                    |     r6 = r3;
    0x000379be ldr.w r8, [pc, 0x120]                         |     r8 = "Whether this is a site-local address";
    0x000379c2 sub sp, 0x18                                  |     
    0x000379c4 movs r3, 0                                    |     r3 = 0;
    0x000379c6 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x000379c8 add r8, pc                                    |     r8 += pc;
    0x000379ca cmp r0, 0                                     |     
                                                             |     if (arg_30h != ) {
    0x000379cc beq 0x37a36                                   |         
    0x000379ce mov r4, r0                                    |         r4 = r0;
    0x000379d0 mov r5, r1                                    |         r5 = r1;
    0x000379d2 mov r7, r2                                    |         r7 = r2;
    0x000379d4 bl 0x372d8                                    |         g_buffered_input_stream_get_type ();
    0x000379d8 ldr r3, [r4]                                  |         r3 = *(r4);
    0x000379da mov r1, r0                                    |         r1 = r0;
                                                             |         if (r3 != 0) {
    0x000379dc cbz r3, 0x379e4                               |             
    0x000379de ldr r3, [r3]                                  |             r3 = *(r3);
    0x000379e0 cmp r3, r0                                    |             
                                                             |             if (r3 == r0) {
    0x000379e2 beq 0x379ec                                   |                 goto label_0;
                                                             |             }
                                                             |         }
    0x000379e4 mov r0, r4                                    |         r0 = r4;
    0x000379e6 blx 0x2a23c                                   |         r0 = fcn_0002a23c ();
                                                             |         if (r0 == 0) {
    0x000379ea cbz r0, 0x37a36                               |             goto label_1;
                                                             |         }
                                                             | label_0:
    0x000379ec cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x000379ee beq 0x37a9e                                   |             goto label_2;
                                                             |         }
    0x000379f0 adds r3, r5, 1                                |         r3 = r5 + 1;
                                                             |         if (r3 < r5) {
    0x000379f2 blt 0x37a68                                   |             goto label_3;
                                                             |         }
    0x000379f4 bl 0x56718                                    |         r0 = g_input_stream_get_type ();
    0x000379f8 mov r1, r0                                    |         r1 = r0;
    0x000379fa mov r0, r4                                    |         r0 = r4;
    0x000379fc blx 0x2a598                                   |         g_slist_free_1 ();
    0x00037a00 add r1, sp, 0x14                              |         r1 += var_14h;
    0x00037a02 bl 0x56d04                                    |         g_input_stream_set_pending ();
    0x00037a04 invalid                                       |         
    0x00037a08 ldr r3, [r4, 0x14]                            |         r3 = *((r4 + 0x14));
    0x00037a0a mov r0, r4                                    |         r0 = r4;
    0x00037a0c ldr r2, [sp, 0x30]                            |         r2 = *(arg_30h);
    0x00037a0e ldr.w r8, [r4]                                |         r8 = *(r4);
    0x00037a12 str r2, [r3, 0x10]                            |         *((r3 + 0x10)) = r2;
    0x00037a14 blx 0x2970c                                   |         fcn_0002970c ();
    0x00037a16 cdp p6, 7, c4, c10, c0, 1                     |         __asm ("cdp p6, 7, c4, c10, c0, 1");
    0x00037a1a ldr r4, [pc, 0xc8]                            |         
    0x00037a1c ldr r3, [sp, 0x34]                            |         r3 = *(arg_34h);
    0x00037a1e mov r2, r7                                    |         r2 = r7;
    0x00037a20 mov r1, r5                                    |         r1 = r5;
    0x00037a22 add r4, pc                                    |         r4 = 0x6f50c;
    0x00037a24 str r3, [sp, 4]                               |         var_4h = r3;
    0x00037a26 mov r3, r6                                    |         r3 = r6;
    0x00037a28 str r4, [sp]                                  |         *(sp) = r4;
    0x00037a2a ldr.w r4, [r8, 0x8c]                          |         r4 = *((r8 + 0x8c));
    0x00037a2e blx r4                                        |         uint32_t (*r4)(uint32_t, uint32_t, uint32_t) (r1, r2, r3);
    0x00037a30 add sp, 0x18                                  |         
    0x00037a32 pop.w {r4, r5, r6, r7, r8, pc}                |         
                                                             |     }
                                                             | label_1:
    0x00037a36 ldr r1, [pc, 0xb0]                            |     
    0x00037a38 ldr r2, [pc, 0xb0]                            |     
    0x00037a3a ldr r0, [pc, 0xb4]                            |     
    0x00037a3c add r1, pc                                    |     r1 = 0x6f52a;
    0x00037a3e add r2, pc                                    |     r2 = 0x6f52e;
    0x00037a40 adds r1, 0x88                                 |     r1 += 0x88;
    0x00037a42 add r0, pc                                    |     r0 = 0x6f538;
    0x00037a44 blx 0x29e2c                                   |     fcn_00029e2c ();
    0x00037a48 add sp, 0x18                                  |     
    0x00037a4a pop.w {r4, r5, r6, r7, r8, pc}                |     
    0x00037a4e ldr r1, [sp, 0x14]                            |     r1 = var_14h;
    0x00037a50 mov r0, r4                                    |     r0 = r4;
    0x00037a52 ldr r3, [pc, 0xa0]                            |     r3 = *(0x37af6);
    0x00037a54 ldr r2, [sp, 0x34]                            |     r2 = *(arg_34h);
    0x00037a56 ldr.w r3, [r8, r3]                            |     r3 = *((r8 + r3));
    0x00037a5a str r1, [sp]                                  |     *(sp) = r1;
    0x00037a5c ldr r1, [sp, 0x30]                            |     r1 = *(arg_30h);
    0x00037a5e bl 0x7ad20                                    |     g_task_report_error ();
    0x00037a62 add sp, 0x18                                  |     
    0x00037a64 pop.w {r4, r5, r6, r7, r8, pc}                |     
                                                             | label_3:
    0x00037a68 bl 0x57bc8                                    |     r0 = g_io_error_quark ();
    0x00037a6c mov r5, r0                                    |     r5 = r0;
    0x00037a6e ldr r0, [pc, 0x88]                            |     
    0x00037a70 add r0, pc                                    |     r0 = 0x6f56e;
    0x00037a72 blx 0x29604                                   |     fcn_00029604 ();
    0x00037a76 ldr r1, [pc, 0x84]                            |     
    0x00037a78 mov r2, r0                                    |     r2 = r0;
    0x00037a7a ldr r3, [pc, 0x78]                            |     r3 = *(0x37af6);
    0x00037a7c mov r0, r4                                    |     r0 = r4;
    0x00037a7e add r1, pc                                    |     r1 = 0x6f580;
    0x00037a80 ldr.w r3, [r8, r3]                            |     r3 = *((r8 + r3));
    0x00037a84 adds r1, 0x88                                 |     r1 += 0x88;
    0x00037a86 str r2, [sp, 8]                               |     var_8h = r2;
    0x00037a88 movs r2, 0xd                                  |     r2 = 0xd;
    0x00037a8a str r2, [sp, 4]                               |     var_4h = r2;
    0x00037a8c str r1, [sp, 0xc]                             |     var_ch = r1;
    0x00037a8e ldr r2, [sp, 0x34]                            |     r2 = *(arg_34h);
    0x00037a90 ldr r1, [sp, 0x30]                            |     r1 = *(arg_30h);
    0x00037a92 str r5, [sp]                                  |     *(sp) = r5;
    0x00037a94 bl 0x7ad78                                    |     g_task_report_new_error ();
    0x00037a98 add sp, 0x18                                  |     
    0x00037a9a pop.w {r4, r5, r6, r7, r8, pc}                |     
                                                             | label_2:
    0x00037a9e ldrd r2, r3, [sp, 0x30]                       |     __asm ("ldrd r2, r3, [arg_30h]");
    0x00037aa2 mov r1, r6                                    |     r1 = r6;
    0x00037aa4 mov r0, r4                                    |     r0 = r4;
    0x00037aa6 bl 0x79f10                                    |     g_task_new ();
    0x00037aaa ldr r3, [pc, 0x48]                            |     r3 = *(0x37af6);
    0x00037aac mov r4, r0                                    |     r4 = r0;
    0x00037aae ldr.w r1, [r8, r3]                            |     r1 = *((r8 + r3));
    0x00037ab2 bl 0x7a078                                    |     g_task_set_source_tag ();
    0x00037ab6 mov r0, r4                                    |     r0 = r4;
    0x00037ab8 bl 0x7a348                                    |     r0 = g_task_get_name ();
    0x00037abc cbz r0, 0x37ad2                               |     
                                                             |     while (1) {
    0x00037abe movs r1, 0                                    |         r1 = 0;
    0x00037ac0 mov r0, r4                                    |         r0 = r4;
    0x00037ac2 bl 0x7aa14                                    |         g_task_return_int ();
    0x00037ac6 mov r0, r4                                    |         r0 = r4;
    0x00037ac8 blx 0x28d00                                   |         fcn_00028d00 ();
    0x00037acc add sp, 0x18                                  |         
    0x00037ace pop.w {r4, r5, r6, r7, r8, pc}                |         
    0x00037ad2 ldr r1, [pc, 0x2c]                            |         
    0x00037ad4 mov r0, r4                                    |         r0 = r4;
    0x00037ad6 add r1, pc                                    |         r1 = 0x6f5dc;
    0x00037ad8 bl 0x7a0c0                                    |         g_task_set_name ();
    0x00037adc b 0x37abe                                     |         
                                                             |     }
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x38b94 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.g_buffered_output_stream_set_buffer_size ()          | void g_buffered_output_stream_set_buffer_size (int16_t arg1, int16_t arg2) {
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x00038b94 push {r3, r4, r5, r6, r7, lr}                         |     
                                                                     |     if (r0 == 0) {
    0x00038b96 cbz r0, 0x38c00                                       |         goto label_0;
                                                                     |     }
    0x00038b98 mov r5, r0                                            |     r5 = r0;
    0x00038b9a mov r7, r1                                            |     r7 = r1;
    0x00038b9c bl 0x3871c                                            |     g_buffered_output_stream_get_type ();
    0x00038ba0 ldr r3, [r5]                                          |     r3 = *(r5);
    0x00038ba2 mov r1, r0                                            |     r1 = r0;
                                                                     |     if (r3 != 0) {
    0x00038ba4 cbz r3, 0x38bac                                       |         
    0x00038ba6 ldr r3, [r3]                                          |         r3 = *(r3);
    0x00038ba8 cmp r3, r0                                            |         
                                                                     |         if (r3 == r0) {
    0x00038baa beq 0x38bb4                                           |             goto label_1;
                                                                     |         }
                                                                     |     }
    0x00038bac mov r0, r5                                            |     r0 = r5;
    0x00038bae blx 0x2a23c                                           |     r0 = fcn_0002a23c ();
                                                                     |     if (r0 == 0) {
    0x00038bb2 cbz r0, 0x38c00                                       |         goto label_0;
                                                                     |     }
                                                                     | label_1:
    0x00038bb4 ldr r4, [r5, 0x14]                                    |     r4 = *((r5 + 0x14));
    0x00038bb6 ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
    0x00038bb8 cmp r3, r7                                            |     
                                                                     |     if (r3 == r7) {
    0x00038bba beq 0x38c2a                                           |         goto label_2;
                                                                     |     }
    0x00038bbc ldr r3, [r4]                                          |     r3 = *(r4);
                                                                     |     if (r3 == 0) {
    0x00038bbe cbz r3, 0x38c16                                       |         goto label_3;
                                                                     |     }
    0x00038bc0 ldrd r2, r3, [r4, 8]                                  |     __asm ("ldrd r2, r3, [r4, 8]");
    0x00038bc4 cmp r2, 1                                             |     
    0x00038bc6 sbcs r3, r3, 0                                        |     __asm ("sbcs r3, r3, 0");
                                                                     |     if (r2 >= 1) {
    0x00038bca blt 0x38bd2                                           |         
    0x00038bcc cmp r7, r2                                            |         
    0x00038bce it lo                                                 |         
                                                                     |         if (r7 < r2) {
    0x00038bd0 movlo r7, r2                                          |             r7 = r2;
                                                                     |             goto label_4;
                                                                     |         }
                                                                     |     }
                                                                     | label_4:
    0x00038bd2 mov r0, r7                                            |     r0 = r7;
    0x00038bd4 blx 0x29284                                           |     g_spawn_async_with_pipes ();
    0x00038bd8 ldr r2, [r4, 8]                                       |     r2 = *((r4 + 8));
    0x00038bda mov r6, r0                                            |     r6 = r0;
    0x00038bdc ldr r1, [r4]                                          |     r1 = *(r4);
    0x00038bde blx 0x29cf0                                           |     fcn_00029cf0 ();
    0x00038be2 ldr r0, [r4]                                          |     r0 = *(r4);
    0x00038be4 blx 0x286c0                                           |     g_atomic_ref_count_inc ();
    0x00038be8 strd r6, r7, [r4]                                     |     __asm ("strd r6, r7, [r4]");
                                                                     |     do {
    0x00038bec movs r1, 0x50                                         |         r1 = 0x50;
    0x00038bee mov r0, r5                                            |         r0 = r5;
    0x00038bf0 blx 0x2a598                                           |         g_slist_free_1 ();
    0x00038bf4 ldr r1, [pc, 0x34]                                    |         
    0x00038bf6 pop.w {r3, r4, r5, r6, r7, lr}                        |         
    0x00038bfa add r1, pc                                            |         r1 = 0x7182a;
    0x00038bfc b.w 0x293ec                                           |         void (*0x293ec)() ();
                                                                     | label_0:
    0x00038c00 ldr r1, [pc, 0x2c]                                    |         
    0x00038c02 ldr r2, [pc, 0x30]                                    |         
    0x00038c04 ldr r0, [pc, 0x30]                                    |         
    0x00038c06 add r1, pc                                            |         r1 = 0x7183a;
    0x00038c08 pop.w {r3, r4, r5, r6, r7, lr}                        |         
    0x00038c0c add r2, pc                                            |         r2 = 0x71846;
    0x00038c0e adds r1, 0x8c                                         |         r1 += 0x8c;
    0x00038c10 add r0, pc                                            |         r0 = 0x7184c;
    0x00038c12 b.w 0x29e28                                           |         void (*0x29e28)() ();
                                                                     | label_3:
    0x00038c16 mov r0, r7                                            |         r0 = r7;
    0x00038c18 blx 0x29284                                           |         g_spawn_async_with_pipes ();
    0x00038c1c vmov.i32 d16, 0                                       |         __asm ("vmov.i32 d16, 0");
    0x00038c20 strd r0, r7, [r4]                                     |         __asm ("strd r0, r7, [r4]");
    0x00038c24 vstr d16, [r4, 8]                                     |         __asm ("vstr d16, [r4, 8]");
    0x00038c28 b 0x38bec                                             |         
                                                                     |     } while (1);
                                                                     | label_2:
    0x00038c2a pop {r3, r4, r5, r6, r7, pc}                          |     
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0xc9738 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.g_dbus_interface_skeleton_get_connection ()          | void g_dbus_interface_skeleton_get_connection (int16_t arg1) {
                                                                     |     r0 = arg1;
    0x000c9738 push {r4, lr}                                         |     
                                                                     |     if (r0 != 0) {
    0x000c973a cbz r0, 0xc9770                                       |         
    0x000c973c mov r4, r0                                            |         r4 = r0;
    0x000c973e bl 0xc8efc                                            |         g_dbus_interface_skeleton_get_type ();
    0x000c9742 ldr r3, [r4]                                          |         r3 = *(r4);
    0x000c9744 mov r1, r0                                            |         r1 = r0;
                                                                     |         if (r3 != 0) {
    0x000c9746 cbz r3, 0xc974e                                       |             
    0x000c9748 ldr r3, [r3]                                          |             r3 = *(r3);
    0x000c974a cmp r3, r0                                            |             
                                                                     |             if (r3 == r0) {
    0x000c974c beq 0xc9756                                           |                 goto label_0;
                                                                     |             }
                                                                     |         }
    0x000c974e mov r0, r4                                            |         r0 = r4;
    0x000c9750 blx 0x2a23c                                           |         r0 = fcn_0002a23c ();
                                                                     |         if (r0 == 0) {
    0x000c9754 cbz r0, 0xc9770                                       |             goto label_1;
                                                                     |         }
                                                                     | label_0:
    0x000c9756 ldr r0, [r4, 0xc]                                     |         r0 = *((r4 + 0xc));
    0x000c9758 blx 0x2aa04                                           |         fcn_0002aa04 ();
    0x000c975c ldr r0, [r4, 0xc]                                     |         r0 = *((r4 + 0xc));
    0x000c975e ldr r4, [r0, 0x10]                                    |         r4 = *((r0 + 0x10));
                                                                     |         if (r4 != 0) {
    0x000c9760 cbz r4, 0xc9768                                       |             
    0x000c9762 ldr r4, [r4]                                          |             r4 = *(r4);
                                                                     |             if (r4 == 0) {
    0x000c9764 cbz r4, 0xc9768                                       |                 goto label_2;
                                                                     |             }
    0x000c9766 ldr r4, [r4]                                          |             r4 = *(r4);
                                                                     |         }
                                                                     | label_2:
    0x000c9768 blx 0x29ad0                                           |         strtoul (r0, r1, r2);
    0x000c976c mov r0, r4                                            |         r0 = r4;
    0x000c976e pop {r4, pc}                                          |         
                                                                     |     }
                                                                     | label_1:
    0x000c9770 ldr r1, [pc, 0x18]                                    |     
    0x000c9772 movs r4, 0                                            |     r4 = 0;
    0x000c9774 ldr r2, [pc, 0x18]                                    |     
    0x000c9776 ldr r0, [pc, 0x1c]                                    |     
    0x000c9778 add r1, pc                                            |     r1 = 0x192f08;
    0x000c977a add r2, pc                                            |     r2 = 0x192f0e;
    0x000c977c add.w r1, r1, 0x124                                   |     r1 += case.0x89708.0;
    0x000c9780 add r0, pc                                            |     r0 = 0x192f1a;
    0x000c9782 blx 0x29e2c                                           |     fcn_00029e2c ();
    0x000c9786 mov r0, r4                                            |     r0 = r4;
    0x000c9788 pop {r4, pc}                                          |     
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0xc9798 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.g_dbus_interface_skeleton_get_connections ()         | void g_dbus_interface_skeleton_get_connections (int16_t arg1) {
                                                                     |     r0 = arg1;
    0x000c9798 teqlt r8, 112, 10                                     |     __asm ("teqlt r8, 112, 10");
    0x000c979c mov r6, r0                                            |     r6 = r0;
    0x000c979e bl 0xc8efc                                            |     g_dbus_interface_skeleton_get_type ();
    0x000c97a2 ldr r3, [r6]                                          |     r3 = *(r6);
    0x000c97a4 mov r1, r0                                            |     r1 = r0;
                                                                     |     if (r3 != 0) {
    0x000c97a6 cbz r3, 0xc97ae                                       |         
    0x000c97a8 ldr r3, [r3]                                          |         r3 = *(r3);
    0x000c97aa cmp r3, r0                                            |         
                                                                     |         if (r3 == r0) {
    0x000c97ac beq 0xc97b6                                           |             goto label_0;
                                                                     |         }
                                                                     |     }
    0x000c97ae mov r0, r6                                            |     r0 = r6;
    0x000c97b0 blx 0x2a23c                                           |     r0 = fcn_0002a23c ();
                                                                     |     if (r0 == 0) {
    0x000c97b4 cbz r0, 0xc97ec                                       |         goto label_1;
                                                                     |     }
                                                                     | label_0:
    0x000c97b6 ldr r0, [r6, 0xc]                                     |     r0 = *((r6 + 0xc));
    0x000c97b8 blx 0x2aa04                                           |     fcn_0002aa04 ();
    0x000c97bc ldr r0, [r6, 0xc]                                     |     r0 = *((r6 + 0xc));
    0x000c97be ldr r4, [r0, 0x10]                                    |     r4 = *((r0 + 0x10));
                                                                     |     if (r4 == 0) {
    0x000c97c0 cbz r4, 0xc9804                                       |         goto label_2;
                                                                     |     }
    0x000c97c2 movs r5, 0                                            |     r5 = 0;
                                                                     |     do {
    0x000c97c4 ldr r3, [r4]                                          |         r3 = *(r4);
    0x000c97c6 ldr r0, [r3]                                          |         r0 = *(r3);
    0x000c97c8 blx 0x2970c                                           |         r0 = fcn_0002970c ();
    0x000c97cc mov r1, r0                                            |         r1 = r0;
    0x000c97ce mov r0, r5                                            |         r0 = r5;
    0x000c97d0 blx 0x2a9c0                                           |         fcn_0002a9c0 ();
    0x000c97d4 ldr r4, [r4, 4]                                       |         r4 = *((r4 + 4));
    0x000c97d6 mov r5, r0                                            |         r5 = r0;
    0x000c97d8 cmp r4, 0                                             |         
    0x000c97da bne 0xc97c4                                           |         
                                                                     |     } while (r4 != 0);
    0x000c97dc ldr r0, [r6, 0xc]                                     |     r0 = *((r6 + 0xc));
                                                                     |     do {
    0x000c97de blx 0x29ad0                                           |         strtoul (r0, r1, r2);
    0x000c97e2 mov r0, r5                                            |         r0 = r5;
    0x000c97e4 pop.w {r4, r5, r6, lr}                                |         
    0x000c97e8 b.w 0x2a734                                           |         void (*0x2a734)() ();
                                                                     | label_1:
    0x000c97ec ldr r1, [pc, 0x18]                                    |         
    0x000c97ee ldr r2, [pc, 0x1c]                                    |         
    0x000c97f0 ldr r0, [pc, 0x1c]                                    |         
    0x000c97f2 add r1, pc                                            |         r1 = 0x192ffe;
    0x000c97f4 add r2, pc                                            |         r2 = 0x193006;
    0x000c97f6 add.w r1, r1, 0x150                                   |         r1 += case.0x89708.0;
    0x000c97fa add r0, pc                                            |         r0 = 0x19300e;
    0x000c97fc blx 0x29e2c                                           |         fcn_00029e2c ();
    0x000c9800 movs r0, 0                                            |         r0 = 0;
    0x000c9802 pop {r4, r5, r6, pc}                                  |         
                                                                     | label_2:
    0x000c9804 mov r5, r4                                            |         r5 = r4;
    0x000c9806 b 0xc97de                                             |         
                                                                     |     } while (1);
                                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x49a20 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.g_file_attribute_info_list_dup ()        | void g_file_attribute_info_list_dup (uint32_t arg1) {
                                                         |     r0 = arg1;
    0x00049a20 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x00049a24 mov r5, r0                                |     r5 = r0;
    0x00049a26 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00049a28 beq 0x49a9a                               |         goto label_0;
                                                         |     }
    0x00049a2a movs r0, 0x10                             |     r0 = 0x10;
    0x00049a2c blx 0x2a8fc                               |     r0 = fcn_0002a8fc ();
    0x00049a30 mov r6, r0                                |     r6 = r0;
    0x00049a32 movs r0, 1                                |     r0 = 1;
    0x00049a34 movs r2, 0xc                              |     r2 = 0xc;
    0x00049a36 movs r1, 0                                |     r1 = 0;
    0x00049a38 str r0, [r6, 0xc]                         |     *((r6 + 0xc)) = r0;
    0x00049a3a blx 0x28f64                               |     fcn_00028f64 ();
    0x00049a3e ldr r1, [r5, 4]                           |     r1 = *((r5 + 4));
    0x00049a40 str r0, [r6, 8]                           |     *((r6 + 8)) = r0;
    0x00049a42 blx 0x29f2c                               |     g_string_prepend_c ();
    0x00049a46 ldr r3, [r6, 8]                           |     r3 = *((r6 + 8));
    0x00049a48 ldr.w r8, [r3]                            |     r8 = *(r3);
    0x00049a4c str.w r8, [r6]                            |     __asm ("str.w r8, [r6]");
    0x00049a50 ldr r3, [r3, 4]                           |     r3 = *((r3 + 4));
    0x00049a52 str r3, [r6, 4]                           |     *((r6 + 4)) = r3;
    0x00049a54 ldr r3, [r5, 4]                           |     r3 = *((r5 + 4));
    0x00049a56 cmp r3, 0                                 |     
    0x00049a58 itt gt                                    |     
                                                         |     if (r3 <= 0) {
    0x00049a5a movgt r4, 0                               |         r4 = 0;
                                                         |     }
                                                         |     if (r3 <= 0) {
    0x00049a5c movgt r7, r4                              |         r7 = r4;
                                                         |     }
                                                         |     if (r3 > 0) {
    0x00049a5e bgt 0x49a66                               |         goto label_1;
                                                         |     }
    0x00049a60 b 0x49a94                                 |     goto label_2;
                                                         |     do {
    0x00049a62 ldr.w r8, [r6]                            |         r8 = *(r6);
                                                         | label_1:
    0x00049a66 ldr r3, [r5]                              |         r3 = *(r5);
    0x00049a68 adds r7, 1                                |         r7++;
    0x00049a6a ldr r0, [r3, r4]                          |         r0 = *((r3 + r4));
    0x00049a6c blx 0x28dc4                               |         fcn_00028dc4 ();
    0x00049a70 str.w r0, [r8, r4]                        |         __asm ("str.w r0, [r8, r4]");
    0x00049a74 ldr r2, [r5]                              |         r2 = *(r5);
    0x00049a76 ldr r3, [r6]                              |         r3 = *(r6);
    0x00049a78 add r2, r4                                |         r2 += r4;
    0x00049a7a ldr r2, [r2, 4]                           |         r2 = *((r2 + 4));
    0x00049a7c add r3, r4                                |         r3 += r4;
    0x00049a7e str r2, [r3, 4]                           |         *((r3 + 4)) = r2;
    0x00049a80 ldr r2, [r5]                              |         r2 = *(r5);
    0x00049a82 ldr r3, [r6]                              |         r3 = *(r6);
    0x00049a84 add r2, r4                                |         r2 += r4;
    0x00049a86 ldr r2, [r2, 8]                           |         r2 = *((r2 + 8));
    0x00049a88 add r3, r4                                |         r3 += r4;
    0x00049a8a adds r4, 0xc                              |         r4 += 0xc;
    0x00049a8c str r2, [r3, 8]                           |         *((r3 + 8)) = r2;
    0x00049a8e ldr r3, [r5, 4]                           |         r3 = *((r5 + 4));
    0x00049a90 cmp r3, r7                                |         
    0x00049a92 bgt 0x49a62                               |         
                                                         |     } while (r3 > r7);
                                                         | label_2:
    0x00049a94 mov r0, r6                                |     r0 = r6;
    0x00049a96 pop.w {r4, r5, r6, r7, r8, pc}            |     
                                                         | label_0:
    0x00049a9a ldr r2, [pc, 0x18]                        |     
    0x00049a9c mov r6, r5                                |     r6 = r5;
    0x00049a9e ldr r1, [pc, 0x18]                        |     
    0x00049aa0 ldr r0, [pc, 0x18]                        |     
    0x00049aa2 add r2, pc                                |     r2 = 0x9355c;
    0x00049aa4 add r1, pc                                |     r1 = 0x93562;
    0x00049aa6 add r0, pc                                |     r0 = 0x93566;
    0x00049aa8 blx 0x29e2c                               |     fcn_00029e2c ();
    0x00049aac mov r0, r6                                |     r0 = r6;
    0x00049aae pop.w {r4, r5, r6, r7, r8, pc}            |     
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x5e4c4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.g_memory_output_stream_steal_as_bytes ()     | void g_memory_output_stream_steal_as_bytes (int16_t arg1) {
                                                             |     r0 = arg1;
    0x0005e4c4 movwlt fp, 0x8538                             |     __asm ("movwlt fp, case.0x89708.0");
    0x0005e4c8 mov r5, r0                                    |     r5 = r0;
    0x0005e4ca bl 0x5df58                                    |     g_memory_output_stream_get_type ();
    0x0005e4ce ldr r3, [r5]                                  |     r3 = *(r5);
    0x0005e4d0 mov r1, r0                                    |     r1 = r0;
                                                             |     if (r3 != 0) {
    0x0005e4d2 cbz r3, 0x5e4da                               |         
    0x0005e4d4 ldr r3, [r3]                                  |         r3 = *(r3);
    0x0005e4d6 cmp r3, r0                                    |         
                                                             |         if (r3 == r0) {
    0x0005e4d8 beq 0x5e4e2                                   |             goto label_0;
                                                             |         }
                                                             |     }
    0x0005e4da mov r0, r5                                    |     r0 = r5;
    0x0005e4dc blx 0x2a23c                                   |     r0 = fcn_0002a23c ();
                                                             |     if (r0 != 0) {
    0x0005e4e0 cbz r0, 0x5e50c                               |         
                                                             | label_0:
    0x0005e4e2 bl 0x62cec                                    |         r0 = g_output_stream_get_type ();
    0x0005e4e6 mov r1, r0                                    |         r1 = r0;
    0x0005e4e8 mov r0, r5                                    |         r0 = r5;
    0x0005e4ea blx 0x2a598                                   |         g_slist_free_1 ();
    0x0005e4ee bl 0x638fc                                    |         r0 = g_output_stream_is_closed ();
    0x0005e4f2 mov r4, r0                                    |         r4 = r0;
                                                             |         if (r0 == 0) {
    0x0005e4f4 cbz r0, 0x5e522                               |             goto label_1;
                                                             |         }
    0x0005e4f6 ldr r1, [r5, 0x10]                            |         r1 = *((r5 + 0x10));
    0x0005e4f8 ldr r3, [r1]                                  |         r3 = *(r1);
    0x0005e4fa ldr r2, [r1, 0x14]                            |         r2 = *((r1 + 0x14));
    0x0005e4fc ldr r1, [r1, 8]                               |         r1 = *((r1 + 8));
    0x0005e4fe mov r0, r3                                    |         r0 = r3;
    0x0005e500 blx 0x29180                                   |         fcn_00029180 ();
    0x0005e504 ldr r3, [r5, 0x10]                            |         r3 = *((r5 + 0x10));
    0x0005e506 movs r2, 0                                    |         r2 = 0;
    0x0005e508 str r2, [r3]                                  |         *(r3) = r2;
    0x0005e50a pop {r3, r4, r5, pc}                          |         
                                                             |     }
    0x0005e50c ldr r1, [pc, 0x28]                            |     
    0x0005e50e ldr r2, [pc, 0x2c]                            |     
    0x0005e510 ldr r0, [pc, 0x2c]                            |     
    0x0005e512 add r1, pc                                    |     r1 = 0xbca4e;
    0x0005e514 add r2, pc                                    |     r2 = 0xbca56;
    0x0005e516 adds r1, 0xb0                                 |     r1 += 0xb0;
    0x0005e518 add r0, pc                                    |     r0 = 0xbca5c;
    0x0005e51a blx 0x29e2c                                   |     fcn_00029e2c ();
    0x0005e51e movs r0, 0                                    |     r0 = 0;
    0x0005e520 pop {r3, r4, r5, pc}                          |     
                                                             | label_1:
    0x0005e522 ldr r1, [pc, 0x20]                            |     
    0x0005e524 ldr r2, [pc, 0x20]                            |     
    0x0005e526 ldr r0, [pc, 0x24]                            |     
    0x0005e528 add r1, pc                                    |     r1 = 0xbca72;
    0x0005e52a add r2, pc                                    |     r2 = 0xbca76;
    0x0005e52c adds r1, 0xb0                                 |     r1 += 0xb0;
    0x0005e52e add r0, pc                                    |     r0 = 0xbca80;
    0x0005e530 blx 0x29e2c                                   |     fcn_00029e2c ();
    0x0005e534 mov r0, r4                                    |     r0 = r4;
    0x0005e536 pop {r3, r4, r5, pc}                          |     
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0xa28e4 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.g_notification_add_button_with_target_value ()       | void g_notification_add_button_with_target_value (uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
                                                                     |     do {
    0x00029540 invalid                                               |         void (*0x29544)() ();
    0x000a28e4 push.w {r4, r5, r6, r7, r8, lr}                       |         
    0x000a28e8 sub sp, 8                                             |         
    0x000a28ea cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x000a28ec beq 0xa2984                                           |             goto label_0;
                                                                     |         }
    0x000a28ee mov r5, r0                                            |         r5 = r0;
    0x000a28f0 mov r7, r1                                            |         r7 = r1;
    0x000a28f2 mov r8, r3                                            |         r8 = r3;
    0x000a28f4 mov r6, r2                                            |         r6 = r2;
    0x000a28f6 bl 0xa24f0                                            |         g_notification_get_type ();
    0x000a28fa ldr r3, [r5]                                          |         r3 = *(r5);
    0x000a28fc mov r1, r0                                            |         r1 = r0;
                                                                     |         if (r3 != 0) {
    0x000a28fe cbz r3, 0xa2906                                       |             
    0x000a2900 ldr r3, [r3]                                          |             r3 = *(r3);
    0x000a2902 cmp r3, r0                                            |             
                                                                     |             if (r3 == r0) {
    0x000a2904 beq 0xa2910                                           |                 goto label_1;
                                                                     |             }
                                                                     |         }
    0x000a2906 mov r0, r5                                            |         r0 = r5;
    0x000a2908 blx 0x2a23c                                           |         r0 = fcn_0002a23c ();
    0x000a290c cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x000a290e beq 0xa2984                                           |             goto label_0;
                                                                     |         }
                                                                     | label_1:
    0x000a2910 cmp r7, 0                                             |         
                                                                     |         if (r7 == 0) {
    0x000a2912 beq 0xa299e                                           |             goto label_2;
                                                                     |         }
                                                                     |         if (r6 == 0) {
    0x000a2914 cbz r6, 0xa296a                                       |             goto label_3;
                                                                     |         }
    0x000a2916 mov r0, r6                                            |         r0 = r6;
    0x000a2918 bl 0x9dfb8                                            |         r0 = g_action_name_is_valid ();
                                                                     |         if (r0 == 0) {
    0x000a291c cbz r0, 0xa296a                                       |             goto label_3;
                                                                     |         }
    0x000a291e ldr r1, [pc, 0xb4]                                    |         
    0x000a2920 mov r0, r6                                            |         r0 = r6;
    0x000a2922 add r1, pc                                            |         r1 = 0x1452fc;
    0x000a2924 blx 0x2a3c4                                           |         r0 = lseek64 ();
    0x000a2928 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x000a292a beq 0xa29b8                                           |             goto label_4;
                                                                     |         }
    0x000a292c movs r0, 0xc                                          |         r0 = 0xc;
    0x000a292e blx 0x2a0a8                                           |         fcn_0002a0a8 ();
    0x000a2932 movs r3, 0                                            |         r3 = 0;
    0x000a2934 mov r4, r0                                            |         r4 = r0;
    0x000a2936 mov r0, r7                                            |         r0 = r7;
    0x000a2938 str r3, [r4]                                          |         *(r4) = r3;
    0x000a293a str r3, [r4, 4]                                       |         *((r4 + 4)) = r3;
    0x000a293c str r3, [r4, 8]                                       |         *((r4 + 8)) = r3;
    0x000a293e blx 0x28dc4                                           |         r0 = fcn_00028dc4 ();
    0x000a2942 mov r3, r0                                            |         r3 = r0;
    0x000a2944 mov r0, r6                                            |         r0 = r6;
    0x000a2946 str r3, [r4]                                          |         *(r4) = r3;
    0x000a2948 blx 0x28dc4                                           |         fcn_00028dc4 ();
    0x000a294c str r0, [r4, 4]                                       |         *((r4 + 4)) = r0;
    0x000a294e cmp.w r8, 0                                           |         
                                                                     |         if (r8 != 0) {
    0x000a2952 beq 0xa295c                                           |             
    0x000a2954 mov r0, r8                                            |             r0 = r8;
    0x000a2956 blx 0x28a88                                           |             fcn_00028a88 ();
    0x000a295a str r0, [r4, 8]                                       |             *((r4 + 8)) = r0;
                                                                     |         }
    0x000a295c ldr r0, [r5, 0x1c]                                    |         r0 = *((r5 + 0x1c));
    0x000a295e mov r1, r4                                            |         r1 = r4;
    0x000a2960 add sp, 8                                             |         
    0x000a2962 pop.w {r4, r5, r6, r7, r8, lr}                        |         
    0x000a2964 rors r0, r6                                           |         __asm ("rors r0, r6");
    0x000a2966 b.w 0x29540                                           |         
                                                                     |     } while (1);
                                                                     | label_3:
    0x000a296a ldr r1, [pc, 0x6c]                                    |     
    0x000a296c ldr r2, [pc, 0x6c]                                    |     
    0x000a296e ldr r0, [pc, 0x70]                                    |     
    0x000a2970 add r1, pc                                            |     r1 = 0x14534e;
    0x000a2972 add r2, pc                                            |     r2 = 0x145352;
    0x000a2974 add.w r1, r1, 0x100                                   |     r1 += case.0x89708.0;
    0x000a2976 strb r0, [r0, 6]                                      |     *((r0 + 6)) = r0;
    0x000a2978 add r0, pc                                            |     r0 = 0x14535e;
    0x000a297a add sp, 8                                             |     
    0x000a297c pop.w {r4, r5, r6, r7, r8, lr}                        |     
    0x000a2980 b.w 0x29e28                                           |     void (*0x29e28)() ();
    0x000a2982 rev16 r2, r2                                          |     __asm ("rev16 r2, r2");
                                                                     | label_0:
    0x000a2984 ldr r1, [pc, 0x5c]                                    |     
    0x000a2986 ldr r2, [pc, 0x60]                                    |     
    0x000a2988 ldr r0, [pc, 0x60]                                    |     
    0x000a298a add r1, pc                                            |     r1 = 0x145372;
    0x000a298c add r2, pc                                            |     r2 = 0x14537a;
    0x000a298e add.w r1, r1, 0x100                                   |     r1 += case.0x89708.0;
    0x000a2992 add r0, pc                                            |     r0 = 0x145382;
    0x000a2994 add sp, 8                                             |     
    0x000a2996 pop.w {r4, r5, r6, r7, r8, lr}                        |     
    0x000a299a b.w 0x29e28                                           |     void (*0x29e28)() ();
                                                                     | label_2:
    0x000a299e ldr r1, [pc, 0x50]                                    |     
    0x000a29a0 ldr r2, [pc, 0x50]                                    |     
    0x000a29a2 ldr r0, [pc, 0x54]                                    |     
    0x000a29a4 add r1, pc                                            |     r1 = 0x14539a;
    0x000a29a6 add r2, pc                                            |     r2 = 0x14539e;
    0x000a29a8 add.w r1, r1, 0x100                                   |     r1 += case.0x89708.0;
    0x000a29ac add r0, pc                                            |     r0 = 0x1453aa;
    0x000a29ae add sp, 8                                             |     
    0x000a29b0 pop.w {r4, r5, r6, r7, r8, lr}                        |     
    0x000a29b4 b.w 0x29e28                                           |     void (*0x29e28)() ();
                                                                     | label_4:
    0x000a29b8 ldr r3, [pc, 0x40]                                    |     
    0x000a29ba movs r1, 0x10                                         |     r1 = 0x10;
    0x000a29bc ldr r2, [pc, 0x40]                                    |     
    0x000a29be ldr r0, [pc, 0x44]                                    |     
    0x000a29c0 add r3, pc                                            |     r3 = 0x1453c0;
    0x000a29c2 str r6, [sp]                                          |     *(sp) = r6;
    0x000a29c4 add.w r3, r3, 0x100                                   |     r3 += case.0x89708.0;
    0x000a29c8 add r2, pc                                            |     r2 = 0x1453cc;
    0x000a29ca add r0, pc                                            |     r0 = 0x1453d4;
    0x000a29cc blx 0x2b14c                                           |     fcn_0002b14c ();
    0x000a29ce subs.w r7, lr, ip, asr 26                             |     r7 = lr - (ip >> 26);
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x66b84 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.g_proxy_connect_async ()                         | void g_proxy_connect_async (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00066b84 svcmi 0xf0e92d                                    |     __asm ("svcmi case.0x89708.0");
    0x00066b88 sub sp, 4                                         |     
    0x00066b8a ldrd sb, sl, [sp, 0x28]                           |     __asm ("ldrd sb, sl, [arg_28h]");
                                                                 |     if (r0 != 0) {
    0x00066b8e cbz r0, 0x66bda                                   |         
    0x00066b90 mov r4, r0                                        |         r4 = r0;
    0x00066b92 mov r6, r1                                        |         r6 = r1;
    0x00066b94 mov r7, r2                                        |         r7 = r2;
    0x00066b96 mov r8, r3                                        |         r8 = r3;
    0x00066b98 bl 0x66a7c                                        |         g_proxy_get_type ();
    0x00066b9c ldr.w fp, [r4]                                    |         fp = *(r4);
    0x00066ba0 mov r5, r0                                        |         r5 = r0;
    0x00066ba2 cmp.w fp, 0                                       |         
                                                                 |         if (fp != 0) {
    0x00066ba6 beq 0x66bb0                                       |             
    0x00066ba8 ldr.w r3, [fp]                                    |             r3 = *(fp);
    0x00066bac cmp r3, r0                                        |             
                                                                 |             if (r3 == r0) {
    0x00066bae beq 0x66bba                                       |                 goto label_0;
                                                                 |             }
                                                                 |         }
    0x00066bb0 mov r1, r5                                        |         r1 = r5;
    0x00066bb2 mov r0, r4                                        |         r0 = r4;
    0x00066bb4 blx 0x2a23c                                       |         r0 = fcn_0002a23c ();
                                                                 |         if (r0 == 0) {
    0x00066bb8 cbz r0, 0x66bda                                   |             goto label_1;
                                                                 |         }
                                                                 | label_0:
    0x00066bba mov r1, r5                                        |         r1 = r5;
    0x00066bbc mov r0, fp                                        |         r0 = fp;
    0x00066bbe blx 0x286d8                                       |         g_variant_type_is_variant ();
    0x00066bc2 strd sb, sl, [sp, 0x28]                           |         __asm ("strd sb, sl, [sp, 0x28]");
    0x00066bc6 mov r3, r8                                        |         r3 = r8;
    0x00066bc8 ldr r5, [r0, 0xc]                                 |         r5 = *((r0 + 0xc));
    0x00066bca mov r2, r7                                        |         r2 = r7;
    0x00066bcc mov r1, r6                                        |         r1 = r6;
    0x00066bce mov r0, r4                                        |         r0 = r4;
    0x00066bd0 mov ip, r5                                        |         
    0x00066bd2 add sp, 4                                         |         
    0x00066bd4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |         
    0x00066bd8 bx ip                                             |         return void (*ip)() ();
                                                                 |     }
                                                                 | label_1:
    0x00066bda ldr r1, [pc, 0x18]                                |     
    0x00066bdc ldr r2, [pc, 0x18]                                |     
    0x00066bde ldr r0, [pc, 0x1c]                                |     
    0x00066be0 add r1, pc                                        |     r1 = 0xcd7da;
    0x00066be2 add r2, pc                                        |     r2 = 0xcd7de;
    0x00066be4 adds r1, 0x10                                     |     r1 += 0x10;
    0x00066be6 add r0, pc                                        |     r0 = 0xcd7e8;
    0x00066be8 add sp, 4                                         |     
    0x00066bea pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x00066bee b.w 0x29e28                                       |     return void (*0x29e28)() ();
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x68878 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.g_resolver_lookup_by_address ()      | void g_resolver_lookup_by_address (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
                                                     |     r3 = arg4;
    0x00068878 push.w {r4, r5, r6, r7, r8, lr}       |     
                                                     |     if (r0 != 0) {
    0x0006887c cbz r0, 0x688d6                       |         
    0x0006887e mov r4, r0                            |         r4 = r0;
    0x00068880 mov r5, r1                            |         r5 = r1;
    0x00068882 mov r7, r3                            |         r7 = r3;
    0x00068884 mov r6, r2                            |         r6 = r2;
    0x00068886 bl 0x6848c                            |         g_resolver_get_type ();
    0x0006888a ldr r3, [r4]                          |         r3 = *(r4);
    0x0006888c mov r1, r0                            |         r1 = r0;
                                                     |         if (r3 != 0) {
    0x0006888e cbz r3, 0x68896                       |             
    0x00068890 ldr r3, [r3]                          |             r3 = *(r3);
    0x00068892 cmp r3, r0                            |             
                                                     |             if (r3 == r0) {
    0x00068894 beq 0x6889e                           |                 goto label_0;
                                                     |             }
                                                     |         }
    0x00068896 mov r0, r4                            |         r0 = r4;
    0x00068898 blx 0x2a23c                           |         r0 = fcn_0002a23c ();
                                                     |         if (r0 == 0) {
    0x0006889c cbz r0, 0x688d6                       |             goto label_1;
                                                     |         }
                                                     |         if (r5 == 0) {
                                                     | label_0:
    0x0006889e cbz r5, 0x688ee                       |             goto label_2;
                                                     |         }
    0x000688a0 bl 0x54548                            |         g_inet_address_get_type ();
    0x000688a4 ldr r3, [r5]                          |         r3 = *(r5);
    0x000688a6 mov r1, r0                            |         r1 = r0;
                                                     |         if (r3 != 0) {
    0x000688a8 cbz r3, 0x688b0                       |             
    0x000688aa ldr r3, [r3]                          |             r3 = *(r3);
    0x000688ac cmp r3, r0                            |             
                                                     |             if (r3 == r0) {
    0x000688ae beq 0x688b8                           |                 goto label_3;
                                                     |             }
                                                     |         }
    0x000688b0 mov r0, r5                            |         r0 = r5;
    0x000688b2 blx 0x2a23c                           |         r0 = fcn_0002a23c ();
                                                     |         if (r0 == 0) {
    0x000688b6 cbz r0, 0x688ee                       |             goto label_2;
                                                     |         }
                                                     | label_3:
    0x000688b8 mov r0, r4                            |         r0 = r4;
    0x000688ba bl 0x68380                            |         fcn_00068380 (r0);
    0x000688be ldr.w ip, [r4]                        |         ip = *(r4);
    0x000688c2 mov r0, r4                            |         r0 = r4;
    0x000688c4 mov r3, r7                            |         r3 = r7;
    0x000688c6 mov r2, r6                            |         r2 = r6;
    0x000688c8 mov r1, r5                            |         r1 = r5;
    0x000688ca ldr.w r4, [ip, 0x54]                  |         r4 = *((ip + 0x54));
    0x000688ce mov ip, r4                            |         
    0x000688d0 pop.w {r4, r5, r6, r7, r8, lr}        |         
    0x000688d4 bx ip                                 |         return void (*ip)() ();
                                                     |     }
                                                     | label_1:
    0x000688d6 ldr r1, [pc, 0x30]                    |     
    0x000688d8 ldr r2, [pc, 0x30]                    |     
    0x000688da ldr r0, [pc, 0x34]                    |     
    0x000688dc add r1, pc                            |     r1 = 0xd11ea;
    0x000688de add r2, pc                            |     r2 = 0xd11ee;
    0x000688e0 adds r1, 0x50                         |     r1 += 0x50;
    0x000688e2 add r0, pc                            |     r0 = 0xd11f8;
    0x000688e4 blx 0x29e2c                           |     fcn_00029e2c ();
    0x000688e8 movs r0, 0                            |     r0 = 0;
    0x000688ea pop.w {r4, r5, r6, r7, r8, pc}        |     
                                                     | label_2:
    0x000688ee ldr r1, [pc, 0x24]                    |     
    0x000688f0 ldr r2, [pc, 0x24]                    |     
    0x000688f2 ldr r0, [pc, 0x28]                    |     
    0x000688f4 add r1, pc                            |     r1 = 0xd120e;
    0x000688f6 add r2, pc                            |     r2 = 0xd1212;
    0x000688f8 adds r1, 0x50                         |     r1 += 0x50;
    0x000688fa add r0, pc                            |     r0 = 0xd121c;
    0x000688fc blx 0x29e2c                           |     fcn_00029e2c ();
    0x00068900 movs r0, 0                            |     r0 = 0;
    0x00068902 pop.w {r4, r5, r6, r7, r8, pc}        |     
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x68920 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.g_resolver_lookup_by_address_async ()        | void g_resolver_lookup_by_address_async (int16_t arg_18h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00068920 mvnsmi lr, sp, lsr 18                         |     __asm ("mvnsmi lr, sp, lsr 18");
    0x00068924 ldr.w r8, [sp, 0x18]                          |     r8 = *(arg_18h);
                                                             |     if (r0 != 0) {
    0x00068928 cbz r0, 0x68982                               |         
    0x0006892a mov r4, r0                                    |         r4 = r0;
    0x0006892c mov r5, r1                                    |         r5 = r1;
    0x0006892e mov r7, r3                                    |         r7 = r3;
    0x00068930 mov r6, r2                                    |         r6 = r2;
    0x00068932 bl 0x6848c                                    |         g_resolver_get_type ();
    0x00068936 ldr r3, [r4]                                  |         r3 = *(r4);
    0x00068938 mov r1, r0                                    |         r1 = r0;
                                                             |         if (r3 != 0) {
    0x0006893a cbz r3, 0x68942                               |             
    0x0006893c ldr r3, [r3]                                  |             r3 = *(r3);
    0x0006893e cmp r3, r0                                    |             
                                                             |             if (r3 == r0) {
    0x00068940 beq 0x6894a                                   |                 goto label_0;
                                                             |             }
                                                             |         }
    0x00068942 mov r0, r4                                    |         r0 = r4;
    0x00068944 blx 0x2a23c                                   |         r0 = fcn_0002a23c ();
                                                             |         if (r0 == 0) {
    0x00068948 cbz r0, 0x68982                               |             goto label_1;
                                                             |         }
                                                             |         if (r5 == 0) {
                                                             | label_0:
    0x0006894a cbz r5, 0x68998                               |             goto label_2;
                                                             |         }
    0x0006894c bl 0x54548                                    |         g_inet_address_get_type ();
    0x00068950 ldr r3, [r5]                                  |         r3 = *(r5);
    0x00068952 mov r1, r0                                    |         r1 = r0;
                                                             |         if (r3 != 0) {
    0x00068954 cbz r3, 0x6895c                               |             
    0x00068956 ldr r3, [r3]                                  |             r3 = *(r3);
    0x00068958 cmp r3, r0                                    |             
                                                             |             if (r3 == r0) {
    0x0006895a beq 0x68964                                   |                 goto label_3;
                                                             |             }
                                                             |         }
    0x0006895c mov r0, r5                                    |         r0 = r5;
    0x0006895e blx 0x2a23c                                   |         r0 = fcn_0002a23c ();
                                                             |         if (r0 == 0) {
    0x00068962 cbz r0, 0x68998                               |             goto label_2;
                                                             |         }
                                                             | label_3:
    0x00068964 mov r0, r4                                    |         r0 = r4;
    0x00068966 bl 0x68380                                    |         fcn_00068380 (r0);
    0x0006896a str.w r8, [sp, 0x18]                          |         __asm ("str.w r8, [arg_18h]");
    0x0006896e mov r1, r5                                    |         r1 = r5;
    0x00068970 ldr r5, [r4]                                  |         r5 = *(r4);
    0x00068972 mov r0, r4                                    |         r0 = r4;
    0x00068974 mov r3, r7                                    |         r3 = r7;
    0x00068976 mov r2, r6                                    |         r2 = r6;
    0x00068978 ldr r4, [r5, 0x58]                            |         r4 = *((r5 + 0x58));
    0x0006897a mov ip, r4                                    |         
    0x0006897c pop.w {r4, r5, r6, r7, r8, lr}                |         
    0x00068980 bx ip                                         |         return void (*ip)() ();
                                                             |     }
                                                             | label_1:
    0x00068982 ldr r1, [pc, 0x2c]                            |     
    0x00068984 ldr r2, [pc, 0x2c]                            |     
    0x00068986 ldr r0, [pc, 0x30]                            |     
    0x00068988 add r1, pc                                    |     r1 = 0xd133e;
    0x0006898a pop.w {r4, r5, r6, r7, r8, lr}                |     
    0x0006898e add r2, pc                                    |     r2 = 0xd1346;
    0x00068990 adds r1, 0x70                                 |     r1 += 0x70;
    0x00068992 add r0, pc                                    |     r0 = 0xd1350;
    0x00068994 b.w 0x29e28                                   |     void (*0x29e28)() ();
                                                             | label_2:
    0x00068998 ldr r1, [pc, 0x20]                            |     
    0x0006899a ldr r2, [pc, 0x24]                            |     
    0x0006899c ldr r0, [pc, 0x24]                            |     
    0x0006899e add r1, pc                                    |     r1 = 0xd135e;
    0x000689a0 pop.w {r4, r5, r6, r7, r8, lr}                |     
    0x000689a4 add r2, pc                                    |     r2 = 0xd136a;
    0x000689a6 adds r1, 0x70                                 |     r1 += 0x70;
    0x000689a8 add r0, pc                                    |     r0 = 0xd1370;
    0x000689aa b.w 0x29e28                                   |     return void (*0x29e28)() ();
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x689c8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.g_resolver_lookup_by_address_finish ()       | void g_resolver_lookup_by_address_finish (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
    0x000689c8 push {r4, r5, r6, lr}                         |     
                                                             |     if (r0 != 0) {
    0x000689ca cbz r0, 0x68a04                               |         
    0x000689cc mov r4, r0                                    |         r4 = r0;
    0x000689ce mov r5, r1                                    |         r5 = r1;
    0x000689d0 mov r6, r2                                    |         r6 = r2;
    0x000689d2 bl 0x6848c                                    |         g_resolver_get_type ();
    0x000689d6 ldr r3, [r4]                                  |         r3 = *(r4);
    0x000689d8 mov r1, r0                                    |         r1 = r0;
                                                             |         if (r3 != 0) {
    0x000689da cbz r3, 0x689e2                               |             
    0x000689dc ldr r3, [r3]                                  |             r3 = *(r3);
    0x000689de cmp r3, r0                                    |             
                                                             |             if (r3 == r0) {
    0x000689e0 beq 0x689ea                                   |                 goto label_0;
                                                             |             }
                                                             |         }
    0x000689e2 mov r0, r4                                    |         r0 = r4;
    0x000689e4 blx 0x2a23c                                   |         r0 = fcn_0002a23c ();
                                                             |         if (r0 == 0) {
    0x000689e8 cbz r0, 0x68a04                               |             goto label_1;
                                                             |         }
                                                             | label_0:
    0x000689ea mov r1, r6                                    |         r1 = r6;
    0x000689ec mov r0, r5                                    |         r0 = r5;
    0x000689ee bl 0x36ee4                                    |         r0 = g_async_result_legacy_propagate_error ();
                                                             |         if (r0 != 0) {
    0x000689f2 cbnz r0, 0x68a16                              |             goto label_2;
                                                             |         }
    0x000689f4 ldr r3, [r4]                                  |         r3 = *(r4);
    0x000689f6 mov r2, r6                                    |         r2 = r6;
    0x000689f8 mov r1, r5                                    |         r1 = r5;
    0x000689fa mov r0, r4                                    |         r0 = r4;
    0x000689fc pop.w {r4, r5, r6, lr}                        |         
    0x00068a00 ldr r3, [r3, 0x5c]                            |         r3 = *((r3 + 0x5c));
    0x00068a02 bx r3                                         |         return uint32_t (*r3)() ();
                                                             |     }
                                                             | label_1:
    0x00068a04 ldr r1, [pc, 0x14]                            |     
    0x00068a06 ldr r2, [pc, 0x18]                            |     
    0x00068a08 ldr r0, [pc, 0x18]                            |     
    0x00068a0a add r1, pc                                    |     r1 = 0xd142a;
    0x00068a0c add r2, pc                                    |     r2 = 0xd1432;
    0x00068a0e adds r1, 0x94                                 |     r1 += 0x94;
    0x00068a10 add r0, pc                                    |     r0 = 0xd1438;
    0x00068a12 blx 0x29e2c                                   |     fcn_00029e2c ();
                                                             | label_2:
    0x00068a16 movs r0, 0                                    |     r0 = 0;
    0x00068a18 pop {r4, r5, r6, pc}                          |     
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0xa5d20 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.g_settings_backend_keys_changed ()           | void g_settings_backend_keys_changed (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x000a5d20 invalid                                       |     
    0x000a5d24 sub sp, 0xc                                   |     
    0x000a5d26 mov r5, r1                                    |     r5 = r1;
    0x000a5d28 mov r6, r2                                    |     r6 = r2;
    0x000a5d2a mov r7, r3                                    |     r7 = r3;
    0x000a5d2c bl 0xa5bb8                                    |     g_settings_backend_get_type ();
    0x000a5d2e invalid                                       |     
    0x000a5d32 ldr r3, [r4]                                  |     r3 = *(r4);
    0x000a5d34 mov r1, r0                                    |     r1 = r0;
                                                             |     if (r3 != 0) {
    0x000a5d36 cbz r3, 0xa5d3e                               |         
    0x000a5d38 ldr r3, [r3]                                  |         r3 = *(r3);
    0x000a5d3a cmp r3, r0                                    |         
                                                             |         if (r3 == r0) {
    0x000a5d3c beq 0xa5d5e                                   |             goto label_0;
                                                             |         }
                                                             |     }
    0x000a5d3e mov r0, r4                                    |     r0 = r4;
    0x000a5d40 blx 0x2a23c                                   |     r0 = fcn_0002a23c ();
                                                             |     if (r0 == 0) {
    0x000a5d44 cbnz r0, 0xa5d5e                              |         
    0x000a5d46 ldr r1, [pc, 0x64]                            |         
    0x000a5d48 ldr r2, [pc, 0x64]                            |         
    0x000a5d4a ldr r0, [pc, 0x68]                            |         
    0x000a5d4c add r1, pc                                    |         r1 = 0x14bafe;
    0x000a5d4e add r2, pc                                    |         r2 = 0x14bb02;
    0x000a5d50 adds r1, 0x74                                 |         r1 += 0x74;
    0x000a5d52 add r0, pc                                    |         r0 = 0x14bb0c;
    0x000a5d54 add sp, 0xc                                   |         
    0x000a5d56 pop.w {r4, r5, r6, r7, lr}                    |         
    0x000a5d5a b.w 0x29e28                                   |         void (*0x29e28)() ();
                                                             |     }
                                                             | label_0:
    0x000a5d5e mov r0, r5                                    |     r0 = r5;
    0x000a5d60 bl 0xa5af8                                    |     r0 = fcn_000a5af8 (r0);
                                                             |     if (r0 != 0) {
    0x000a5d64 cbz r0, 0xa5d7a                               |         
                                                             |         if (r6 == 0) {
    0x000a5d66 cbz r6, 0xa5d92                               |             goto label_1;
                                                             |         }
    0x000a5d68 mov r3, r7                                    |         r3 = r7;
    0x000a5d6a mov r2, r5                                    |         r2 = r5;
    0x000a5d6c movs r1, 8                                    |         r1 = 8;
    0x000a5d6e mov r0, r4                                    |         r0 = r4;
    0x000a5d70 str r6, [sp]                                  |         *(sp) = r6;
    0x000a5d72 bl 0xa57c8                                    |         fcn_000a57c8 (r0, r1, r2, r3, r4);
    0x000a5d76 add sp, 0xc                                   |         
    0x000a5d78 pop {r4, r5, r6, r7, pc}                      |         
                                                             |     }
    0x000a5d7a ldr r1, [pc, 0x3c]                            |     
    0x000a5d7c ldr r2, [pc, 0x3c]                            |     
    0x000a5d7e ldr r0, [pc, 0x40]                            |     
    0x000a5d80 add r1, pc                                    |     r1 = 0x14bb3e;
    0x000a5d82 add r2, pc                                    |     r2 = 0x14bb42;
    0x000a5d84 adds r1, 0x74                                 |     r1 += 0x74;
    0x000a5d86 add r0, pc                                    |     r0 = 0x14bb4c;
    0x000a5d88 add sp, 0xc                                   |     
    0x000a5d8a pop.w {r4, r5, r6, r7, lr}                    |     
    0x000a5d8e b.w 0x29e28                                   |     void (*0x29e28)() ();
                                                             | label_1:
    0x000a5d92 ldr r1, [pc, 0x30]                            |     
    0x000a5d94 ldr r2, [pc, 0x30]                            |     
    0x000a5d96 ldr r0, [pc, 0x34]                            |     
    0x000a5d98 add r1, pc                                    |     r1 = 0x14bb62;
    0x000a5d9a add r2, pc                                    |     r2 = 0x14bb66;
    0x000a5d9c adds r1, 0x74                                 |     r1 += 0x74;
    0x000a5d9e add r0, pc                                    |     r0 = 0x14bb70;
    0x000a5da0 add sp, 0xc                                   |     
    0x000a5da2 pop.w {r4, r5, r6, r7, lr}                    |     
    0x000a5da6 b.w 0x29e28                                   |     return void (*0x29e28)() ();
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x79754 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.g_subprocess_communicate_utf8_finish ()          | void g_subprocess_communicate_utf8_finish (int16_t arg_28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_0h_3;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00079754 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x00079758 mov r7, r3                                        |     r7 = r3;
    0x0007975a sub sp, 8                                         |     
    0x0007975c movs r3, 0                                        |     r3 = 0;
    0x0007975e ldr.w sb, [sp, 0x28]                              |     sb = *(arg_28h);
    0x00079762 strd r3, r3, [sp]                                 |     __asm ("strd r3, r3, [sp]");
                                                                 |     if (r0 != 0) {
    0x00079766 cbz r0, 0x79786                                   |         
    0x00079768 mov r5, r0                                        |         r5 = r0;
    0x0007976a mov r4, r1                                        |         r4 = r1;
    0x0007976c mov r8, r2                                        |         r8 = r2;
    0x0007976e bl 0x784ec                                        |         g_subprocess_get_type ();
    0x00079772 ldr r3, [r5]                                      |         r3 = *(r5);
    0x00079774 mov r1, r0                                        |         r1 = r0;
                                                                 |         if (r3 != 0) {
    0x00079776 cbz r3, 0x7977e                                   |             
    0x00079778 ldr r3, [r3]                                      |             r3 = *(r3);
    0x0007977a cmp r3, r0                                        |             
                                                                 |             if (r3 == r0) {
    0x0007977c beq 0x797a4                                       |                 goto label_0;
                                                                 |             }
                                                                 |         }
    0x0007977e mov r0, r5                                        |         r0 = r5;
    0x00079780 blx 0x2a23c                                       |         r0 = fcn_0002a23c ();
                                                                 |         if (r0 != 0) {
    0x00079784 cbnz r0, 0x797a4                                  |             goto label_0;
                                                                 |         }
                                                                 |     }
    0x00079786 ldr r1, [pc, 0x10c]                               |     
    0x00079788 movs r5, 0                                        |     r5 = 0;
    0x0007978a ldr r2, [pc, 0x10c]                               |     
    0x0007978c ldr r0, [pc, 0x10c]                               |     
    0x0007978e add r1, pc                                        |     r1 = 0xf3028;
    0x00079790 add r2, pc                                        |     r2 = 0xf302e;
    0x00079792 add.w r1, r1, 0x2e8                               |     r1 += case.0x89708.0;
    0x00079796 add r0, pc                                        |     r0 = 0xf3036;
    0x00079798 blx 0x29e2c                                       |     fcn_00029e2c ();
    0x0007979c mov r0, r5                                        |     r0 = r5;
    0x0007979e add sp, 8                                         |     
    0x000797a0 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |     
                                                                 | label_0:
    0x000797a4 mov r1, r5                                        |     r1 = r5;
    0x000797a6 mov r0, r4                                        |     r0 = r4;
    0x000797a8 bl 0x7b170                                        |     r0 = g_task_is_valid ();
    0x000797ac mov r5, r0                                        |     r5 = r0;
    0x000797ae cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000797b0 beq 0x79854                                       |         
    0x000797b2 cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x000797b6 beq 0x797dc                                       |             
    0x000797b8 ldr.w r3, [sb]                                    |             r3 = *(sb);
                                                                 |             if (r3 == 0) {
    0x000797bc cbz r3, 0x797dc                                   |                 goto label_1;
                                                                 |             }
    0x000797be ldr r1, [pc, 0xe0]                                |             
    0x000797c0 movs r5, 0                                        |             r5 = 0;
    0x000797c2 ldr r2, [pc, 0xe0]                                |             
    0x000797c4 ldr r0, [pc, 0xe0]                                |             
    0x000797c6 add r1, pc                                        |             r1 = 0xf306c;
    0x000797c8 add r2, pc                                        |             r2 = 0xf3072;
    0x000797ca add.w r1, r1, 0x2e8                               |             r1 += case.0x89708.0;
    0x000797ce add r0, pc                                        |             r0 = 0xf307a;
    0x000797d0 blx 0x29e2c                                       |             fcn_00029e2c ();
    0x000797d4 mov r0, r5                                        |             r0 = r5;
    0x000797d6 add sp, 8                                         |             
    0x000797d8 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |             
                                                                 |         }
                                                                 | label_1:
    0x000797dc mov r0, r4                                        |         r0 = r4;
    0x000797de blx 0x2970c                                       |         fcn_0002970c ();
    0x000797e2 mov r0, r4                                        |         r0 = r4;
    0x000797e4 bl 0x7a158                                        |         g_task_get_task_data ();
    0x000797e8 mov r1, sb                                        |         r1 = sb;
    0x000797ea mov r5, r0                                        |         r5 = r0;
    0x000797ec mov r0, r4                                        |         r0 = r4;
    0x000797ee bl 0x7abc8                                        |         g_task_propagate_boolean ();
    0x000797f0 vld3.16 {d20[0], d21[0], d22[0]}, [fp], r6        |         __asm ("vld3.16 {d20[0], d21[0], d22[0]}, [fp], r6");
    0x000797f4 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000797f6 beq 0x79870                                       |             goto label_2;
                                                                 |         }
    0x000797f8 ldr r2, [r5, 0x14]                                |         r2 = *((r5 + 0x14));
                                                                 |         if (r2 != 0) {
    0x000797fa cbz r2, 0x7980e                                   |             
    0x000797fc ldr r0, [pc, 0xac]                                |             
    0x000797fe mov r3, sb                                        |             r3 = sb;
    0x00079800 mov r1, sp                                        |             r1 = sp;
    0x00079802 add r0, pc                                        |             r0 = 0xf30b2;
    0x00079804 bl 0x78494                                        |             r0 = fcn_00078494 (r0, r1, r2, r3);
    0x00079808 mov sl, r0                                        |             sl = r0;
    0x0007980a cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0007980c beq 0x7988e                                       |                 goto label_3;
                                                                 |             }
                                                                 |         }
    0x0007980e ldr.w sl, [r5, 0x18]                              |         sl = *((r5 + 0x18));
    0x00079812 cmp.w sl, 0                                       |         
                                                                 |         if (sl != 0) {
    0x00079816 beq 0x7982c                                       |             
    0x00079818 ldr r0, [pc, 0x94]                                |             
    0x0007981a mov r2, sl                                        |             r2 = sl;
    0x0007981c mov r3, sb                                        |             r3 = sb;
    0x0007981e add r1, sp, 4                                     |             r1 += var_4h;
    0x00079820 add r0, pc                                        |             r0 = 0xf30d4;
    0x00079822 bl 0x78494                                        |             fcn_00078494 (r0, r1, r2, r3);
    0x00079826 ldr.w sl, [sp, 4]                                 |             sl = var_4h;
                                                                 |             if (r0 == 0) {
    0x0007982a cbz r0, 0x7988e                                   |                 goto label_3;
                                                                 |             }
                                                                 |         }
    0x0007982c mov r0, r4                                        |         r0 = r4;
    0x0007982e blx 0x28d00                                       |         fcn_00028d00 ();
    0x00079830 orn r1, r8, r8, ror 30                            |         r1 = r8 | r8;
                                                                 |         r1 = ~r1;
    0x00079834 lsrs r0, r0, 0x1c                                 |         r0 >>= 0x1c;
                                                                 |         if (r0 != r0) {
    0x00079836 beq 0x79842                                       |             
    0x00079838 ldr r3, [sp]                                      |             r3 = *(sp);
    0x0007983a movs r2, 0                                        |             r2 = 0;
    0x0007983c str r2, [sp]                                      |             *(sp) = r2;
    0x0007983e str.w r3, [r8]                                    |             __asm ("str.w r3, [r8]");
                                                                 |         }
    0x00079842 ldr r6, [sp]                                      |         r6 = *(sp);
    0x00079844 movs r5, 1                                        |         r5 = 1;
                                                                 |         if (r7 == 0) {
    0x00079846 cbz r7, 0x7987a                                   |             goto label_4;
                                                                 |         }
    0x00079848 str.w sl, [r7]                                    |         __asm ("str.w sl, [r7]");
    0x0007984c movs r5, 1                                        |         r5 = 1;
    0x0007984e mov.w sl, 0                                       |         sl = 0;
    0x00079852 b 0x7987a                                         |         goto label_4;
                                                                 |     }
    0x00079854 ldr r1, [pc, 0x5c]                                |     
    0x00079856 ldr r2, [pc, 0x60]                                |     
    0x00079858 ldr r0, [pc, 0x60]                                |     
    0x0007985a add r1, pc                                        |     r1 = 0xf3112;
    0x0007985c add r2, pc                                        |     r2 = 0xf311a;
    0x0007985e add.w r1, r1, 0x2e8                               |     r1 += case.0x89708.0;
    0x00079862 add r0, pc                                        |     r0 = 0xf3122;
    0x00079864 blx 0x29e2c                                       |     fcn_00029e2c ();
    0x00079868 mov r0, r5                                        |     r0 = r5;
    0x0007986a add sp, 8                                         |     
    0x0007986c pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |     
                                                                 | label_2:
    0x00079870 mov sl, r0                                        |     sl = r0;
                                                                 |     do {
    0x00079872 mov r0, r4                                        |         r0 = r4;
    0x00079874 movs r5, 0                                        |         r5 = 0;
    0x00079876 blx 0x28d00                                       |         fcn_00028d00 ();
                                                                 | label_4:
    0x0007987a mov r0, sl                                        |         r0 = sl;
    0x0007987c blx 0x286c0                                       |         g_atomic_ref_count_inc ();
    0x00079880 mov r0, r6                                        |         r0 = r6;
    0x00079882 blx 0x286c0                                       |         g_atomic_ref_count_inc ();
    0x00079886 mov r0, r5                                        |         r0 = r5;
    0x00079888 add sp, 8                                         |         
    0x0007988a pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_3:
    0x0007988e ldr r6, [sp]                                      |         r6 = *(sp);
    0x00079890 b 0x79872                                         |         
                                                                 |     } while (1);
                                                                 | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x7bab8 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.g_tcp_wrapper_connection_get_base_io_stream ()           | void g_tcp_wrapper_connection_get_base_io_stream (int16_t arg1) {
                                                                         |     r0 = arg1;
    0x0007bab8 push {r4, lr}                                             |     
                                                                         |     if (r0 != 0) {
    0x0007baba cbz r0, 0x7badc                                           |         
    0x0007babc mov r4, r0                                                |         r4 = r0;
    0x0007babe bl 0x7b818                                                |         g_tcp_wrapper_connection_get_type ();
    0x0007bac2 ldr r3, [r4]                                              |         r3 = *(r4);
    0x0007bac4 mov r1, r0                                                |         r1 = r0;
                                                                         |         if (r3 != 0) {
    0x0007bac6 cbz r3, 0x7bace                                           |             
    0x0007bac8 ldr r3, [r3]                                              |             r3 = *(r3);
    0x0007baca cmp r3, r0                                                |             
                                                                         |             if (r3 == r0) {
    0x0007bacc beq 0x7bad6                                               |                 goto label_0;
                                                                         |             }
                                                                         |         }
    0x0007bace mov r0, r4                                                |         r0 = r4;
    0x0007bad0 blx 0x2a23c                                               |         r0 = fcn_0002a23c ();
                                                                         |         if (r0 == 0) {
    0x0007bad4 cbz r0, 0x7badc                                           |             goto label_1;
                                                                         |         }
                                                                         | label_0:
    0x0007bad6 ldr r3, [r4, 0x18]                                        |         r3 = *((r4 + 0x18));
    0x0007bad8 ldr r0, [r3]                                              |         r0 = *(r3);
    0x0007bada pop {r4, pc}                                              |         
                                                                         |     }
                                                                         | label_1:
    0x0007badc ldr r1, [pc, 0x14]                                        |     
    0x0007bade ldr r2, [pc, 0x18]                                        |     
    0x0007bae0 ldr r0, [pc, 0x18]                                        |     
    0x0007bae2 add r1, pc                                                |     r1 = 0xf75da;
    0x0007bae4 add r2, pc                                                |     r2 = 0xf75e2;
    0x0007bae6 adds r1, 0x20                                             |     r1 += 0x20;
    0x0007bae8 add r0, pc                                                |     r0 = 0xf75e8;
    0x0007baea blx 0x29e2c                                               |     fcn_00029e2c ();
    0x0007baee movs r0, 0                                                |     r0 = 0;
    0x0007baf0 pop {r4, pc}                                              |     
                                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x90dec */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.g_unix_fd_message_get_fd_list ()             | void g_unix_fd_message_get_fd_list (int16_t arg1) {
                                                             |     r0 = arg1;
    0x00090dec ldmdavs r8, {r0, r1, r8, fp, sp, lr}          |     __asm ("ldmdavs r8, {r0, r1, r8, fp, sp, lr}");
    0x00090df0 bx lr                                         |     return;
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgio-2.0.so.0.6800.4 @ 0x95378 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.g_unix_output_stream_get_fd ()       | void g_unix_output_stream_get_fd (int16_t arg1) {
                                                     |     r0 = arg1;
    0x00095378 push {r4, lr}                         |     
                                                     |     if (r0 != 0) {
    0x0009537a cbz r0, 0x9539c                       |         
    0x0009537c mov r4, r0                            |         r4 = r0;
    0x0009537e bl 0x94d90                            |         g_unix_output_stream_get_type ();
    0x00095382 ldr r3, [r4]                          |         r3 = *(r4);
    0x00095384 mov r1, r0                            |         r1 = r0;
                                                     |         if (r3 != 0) {
    0x00095386 cbz r3, 0x9538e                       |             
    0x00095388 ldr r3, [r3]                          |             r3 = *(r3);
    0x0009538a cmp r3, r0                            |             
                                                     |             if (r3 == r0) {
    0x0009538c beq 0x95396                           |                 goto label_0;
                                                     |             }
                                                     |         }
    0x0009538e mov r0, r4                            |         r0 = r4;
    0x00095390 blx 0x2a23c                           |         r0 = fcn_0002a23c ();
                                                     |         if (r0 == 0) {
    0x00095394 cbz r0, 0x9539c                       |             goto label_1;
                                                     |         }
                                                     | label_0:
    0x00095396 ldr r3, [r4, 0x10]                    |         r3 = *((r4 + 0x10));
    0x00095398 ldr r0, [r3]                          |         r0 = *(r3);
    0x0009539a pop {r4, pc}                          |         
                                                     |     }
                                                     | label_1:
    0x0009539c ldr r2, [pc, 0x14]                    |     
    0x0009539e ldr r1, [pc, 0x18]                    |     
    0x000953a0 ldr r0, [pc, 0x18]                    |     
    0x000953a2 add r2, pc                            |     r2 = 0x12a75a;
    0x000953a4 add r1, pc                            |     r1 = 0x12a762;
    0x000953a6 add r0, pc                            |     r0 = 0x12a766;
    0x000953a8 blx 0x29e2c                           |     fcn_00029e2c ();
    0x000953ac mov.w r0, -1                          |     r0 = -1;
    0x000953b0 pop {r4, pc}                          |     
                                                     | }

[*] Function fprintf used 1 times libgio-2.0.so.0.6800.4