[*] Binary protection state of libportservice-api-handler.so.0.0.1

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


[*] Function system tear down of libportservice-api-handler.so.0.0.1

    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x6e1c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.port_io_proxy_new_finish ()      | void port_io_proxy_new_finish (int16_t arg1, int16_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00006e1c push {r4, r5, r6, lr}             |     
    0x00006e1e mov r6, r1                        |     r6 = r1;
    0x00006e20 mov r5, r0                        |     r5 = r0;
    0x00006e22 blx 0x4e34                        |     r0 = g_set_error ();
    0x00006e26 mov r4, r0                        |     r4 = r0;
    0x00006e28 blx 0x492c                        |     r0 = fcn_0000492c ();
    0x00006e2c mov r1, r0                        |     r1 = r0;
    0x00006e2e mov r0, r4                        |     r0 = r4;
    0x00006e30 blx 0x5018                        |     fcn_00005018 ();
    0x00006e34 mov r1, r5                        |     r1 = r5;
    0x00006e36 mov r2, r6                        |     r2 = r6;
    0x00006e38 blx 0x4974                        |     r0 = fcn_00004974 ();
    0x00006e3c mov r5, r0                        |     r5 = r0;
    0x00006e3e mov r0, r4                        |     r0 = r4;
    0x00006e40 blx 0x49bc                        |     fcn_000049bc ();
                                                 |     if (r5 != 0) {
    0x00006e44 cbz r5, 0x6e56                    |         
    0x00006e46 blx 0x49c8                        |         r0 = fcn_000049c8 ();
    0x00006e4a mov r1, r0                        |         r1 = r0;
    0x00006e4c mov r0, r5                        |         r0 = r5;
    0x00006e4e pop.w {r4, r5, r6, lr}            |         
    0x00006e52 b.w 0x5014                        |         void (*0x5014)() ();
                                                 |     }
    0x00006e56 mov r0, r5                        |     r0 = r5;
    0x00006e58 pop {r4, r5, r6, pc}              |     
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x6f4c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.port_io_proxy_new_for_bus_sync ()            | void port_io_proxy_new_for_bus_sync (int16_t arg_48h, int16_t arg_4ch, int16_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_10h;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_1ch;
                                                             |     int16_t var_20h;
                                                             |     int16_t var_24h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00006f4c push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x00006f50 mov r4, r2                                    |     r4 = r2;
    0x00006f52 sub sp, 0x2c                                  |     
    0x00006f54 mov r5, r1                                    |     r5 = r1;
    0x00006f56 mov r7, r3                                    |     r7 = r3;
    0x00006f58 mov r6, r0                                    |     r6 = r0;
    0x00006f5a blx 0x4cf4                                    |     fcn_00004cf4 ();
    0x00006f5e str r4, [sp, 8]                               |     var_8h = r4;
    0x00006f60 ldr r4, [pc, 0x54]                            |     
    0x00006f62 ldr.w r8, [sp, 0x48]                          |     r8 = *(arg_48h);
    0x00006f66 ldr.w sb, [sp, 0x4c]                          |     sb = *(arg_4ch);
    0x00006f6a add r4, pc                                    |     r4 = 0xdf26;
    0x00006f6c ldr r3, [pc, 0x4c]                            |     
    0x00006f6e str r4, [sp, 4]                               |     var_4h = r4;
    0x00006f70 mov r1, r8                                    |     r1 = r8;
    0x00006f72 ldr r4, [pc, 0x4c]                            |     
    0x00006f74 mov r2, sb                                    |     r2 = sb;
    0x00006f76 add r3, pc                                    |     r3 = 0xdf36;
    0x00006f78 str r7, [sp, 0x18]                            |     var_18h = r7;
    0x00006f7a str r6, [sp, 0x10]                            |     var_10h = r6;
    0x00006f7c add r4, pc                                    |     r4 = 0xdf42;
    0x00006f7e str r5, [sp]                                  |     *(sp) = r5;
    0x00006f80 str r4, [sp, 0x20]                            |     var_20h = r4;
    0x00006f82 ldr r4, [pc, 0x40]                            |     
    0x00006f84 add r4, pc                                    |     r4 = 0xdf4e;
    0x00006f86 str r4, [sp, 0x1c]                            |     var_1ch = r4;
    0x00006f88 ldr r4, [pc, 0x3c]                            |     
    0x00006f8a add r4, pc                                    |     r4 = 0xdf56;
    0x00006f8c str r4, [sp, 0x14]                            |     var_14h = r4;
    0x00006f8e ldr r4, [pc, 0x3c]                            |     
    0x00006f90 add r4, pc                                    |     r4 = 0xdf62;
    0x00006f92 str r4, [sp, 0xc]                             |     var_ch = r4;
    0x00006f94 movs r4, 0                                    |     r4 = 0;
    0x00006f96 str r4, [sp, 0x24]                            |     var_24h = r4;
    0x00006f98 blx 0x4f3c                                    |     r0 = domain_io_get_mode ();
                                                             |     if (r0 != 0) {
    0x00006f9c cbz r0, 0x6fb2                                |         
    0x00006f9e mov r4, r0                                    |         r4 = r0;
    0x00006fa0 blx 0x49c8                                    |         r0 = fcn_000049c8 ();
    0x00006fa4 mov r1, r0                                    |         r1 = r0;
    0x00006fa6 mov r0, r4                                    |         r0 = r4;
    0x00006fa8 add sp, 0x2c                                  |         
    0x00006faa pop.w {r4, r5, r6, r7, r8, sb, lr}            |         
    0x00006fae b.w 0x5014                                    |         void (*0x5014)() ();
                                                             |     }
    0x00006fb2 add sp, 0x2c                                  |     
    0x00006fb4 pop.w {r4, r5, r6, r7, r8, sb, pc}            |     
                                                             | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x6e5c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.port_io_proxy_new_sync ()                | void port_io_proxy_new_sync (int16_t arg_48h, int16_t arg_4ch, int16_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_10h;
                                                         |     int16_t var_14h;
                                                         |     int16_t var_18h;
                                                         |     int16_t var_1ch;
                                                         |     int16_t var_20h;
                                                         |     int16_t var_24h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x00006e5c push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x00006e60 mov r4, r2                                |     r4 = r2;
    0x00006e62 sub sp, 0x2c                              |     
    0x00006e64 mov r5, r1                                |     r5 = r1;
    0x00006e66 mov r7, r3                                |     r7 = r3;
    0x00006e68 mov r6, r0                                |     r6 = r0;
    0x00006e6a blx 0x4cf4                                |     fcn_00004cf4 ();
    0x00006e6e str r4, [sp, 8]                           |     var_8h = r4;
    0x00006e70 ldr r4, [pc, 0x54]                        |     
    0x00006e72 ldr.w r8, [sp, 0x48]                      |     r8 = *(arg_48h);
    0x00006e76 ldr.w sb, [sp, 0x4c]                      |     sb = *(arg_4ch);
    0x00006e7a add r4, pc                                |     r4 = 0xdd46;
    0x00006e7c ldr r3, [pc, 0x4c]                        |     
    0x00006e7e str r4, [sp, 4]                           |     var_4h = r4;
    0x00006e80 mov r1, r8                                |     r1 = r8;
    0x00006e82 ldr r4, [pc, 0x4c]                        |     
    0x00006e84 mov r2, sb                                |     r2 = sb;
    0x00006e86 add r3, pc                                |     r3 = 0xdd56;
    0x00006e88 str r7, [sp, 0x18]                        |     var_18h = r7;
    0x00006e8a str r6, [sp, 0x10]                        |     var_10h = r6;
    0x00006e8c add r4, pc                                |     r4 = 0xdd62;
    0x00006e8e str r5, [sp]                              |     *(sp) = r5;
    0x00006e90 str r4, [sp, 0x20]                        |     var_20h = r4;
    0x00006e92 ldr r4, [pc, 0x40]                        |     
    0x00006e94 add r4, pc                                |     r4 = 0xdd6e;
    0x00006e96 str r4, [sp, 0x1c]                        |     var_1ch = r4;
    0x00006e98 ldr r4, [pc, 0x3c]                        |     
    0x00006e9a add r4, pc                                |     r4 = 0xdd76;
    0x00006e9c str r4, [sp, 0x14]                        |     var_14h = r4;
    0x00006e9e ldr r4, [pc, 0x3c]                        |     
    0x00006ea0 add r4, pc                                |     r4 = 0xdd82;
    0x00006ea2 str r4, [sp, 0xc]                         |     var_ch = r4;
    0x00006ea4 movs r4, 0                                |     r4 = 0;
    0x00006ea6 str r4, [sp, 0x24]                        |     var_24h = r4;
    0x00006ea8 blx 0x4f3c                                |     r0 = domain_io_get_mode ();
                                                         |     if (r0 != 0) {
    0x00006eac cbz r0, 0x6ec2                            |         
    0x00006eae mov r4, r0                                |         r4 = r0;
    0x00006eb0 blx 0x49c8                                |         r0 = fcn_000049c8 ();
    0x00006eb4 mov r1, r0                                |         r1 = r0;
    0x00006eb6 mov r0, r4                                |         r0 = r4;
    0x00006eb8 add sp, 0x2c                              |         
    0x00006eba pop.w {r4, r5, r6, r7, r8, sb, lr}        |         
    0x00006ebe b.w 0x5014                                |         void (*0x5014)() ();
                                                         |     }
    0x00006ec2 add sp, 0x2c                              |     
    0x00006ec4 pop.w {r4, r5, r6, r7, r8, sb, pc}        |     
                                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x7b84 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.port_io_skeleton_new ()          | void port_io_skeleton_new () {
    0x00007b84 push {r4, lr}                     |     
    0x00007b86 blx 0x4950                        |     fcn_00004950 ();
    0x00007b8a movs r1, 0                        |     r1 = 0;
    0x00007b8c blx 0x4c48                        |     r0 = g_object_ref ();
    0x00007b90 mov r4, r0                        |     r4 = r0;
    0x00007b92 blx 0x49c8                        |     r0 = fcn_000049c8 ();
    0x00007b96 mov r1, r0                        |     r1 = r0;
    0x00007b98 mov r0, r4                        |     r0 = r4;
    0x00007b9a pop.w {r4, lr}                    |     
    0x00007b9e b.w 0x5014                        |     return void (*0x5014)() ();
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x7d7c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.port_object_get_io ()        | void port_object_get_io (int16_t arg1) {
                                             |     r0 = arg1;
    0x00007d7c push {r4, lr}                 |     
    0x00007d7e mov r4, r0                    |     r4 = r0;
    0x00007d80 blx 0x48e0                    |     r0 = fcn_000048e0 ();
    0x00007d84 mov r1, r0                    |     r1 = r0;
    0x00007d86 mov r0, r4                    |     r0 = r4;
    0x00007d88 blx 0x5018                    |     fcn_00005018 ();
    0x00007d8c ldr r1, [pc, 0x1c]            |     
    0x00007d8e add r1, pc                    |     r1 = 0xfb3e;
    0x00007d90 blx 0x4b98                    |     r0 = fcn_00004b98 ();
                                             |     if (r0 == 0) {
    0x00007d94 cbz r0, 0x7da8                |         goto label_0;
                                             |     }
    0x00007d96 mov r4, r0                    |     r4 = r0;
    0x00007d98 blx 0x49c8                    |     r0 = fcn_000049c8 ();
    0x00007d9c mov r1, r0                    |     r1 = r0;
    0x00007d9e mov r0, r4                    |     r0 = r4;
    0x00007da0 pop.w {r4, lr}                |     
    0x00007da4 invalid                       |     
                                             |     if (r6 != 0) {
    0x00007da6 cbnz r6, 0x7db6               |         void (*0x7db6)() ();
                                             |     }
                                             | label_0:
    0x00007da8 pop {r4, pc}                  |     
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x82f0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.port_object_manager_client_new_finish ()     | void port_object_manager_client_new_finish (int16_t arg1, int16_t arg2) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x000082f0 push {r4, r5, r6, lr}                         |     
    0x000082f2 mov r6, r1                                    |     r6 = r1;
    0x000082f4 mov r5, r0                                    |     r5 = r0;
    0x000082f6 blx 0x4e34                                    |     r0 = g_set_error ();
    0x000082fa mov r4, r0                                    |     r4 = r0;
    0x000082fc blx 0x492c                                    |     r0 = fcn_0000492c ();
    0x00008300 mov r1, r0                                    |     r1 = r0;
    0x00008302 mov r0, r4                                    |     r0 = r4;
    0x00008304 blx 0x5018                                    |     fcn_00005018 ();
    0x00008308 mov r1, r5                                    |     r1 = r5;
    0x0000830a mov r2, r6                                    |     r2 = r6;
    0x0000830c blx 0x4974                                    |     r0 = fcn_00004974 ();
    0x00008310 mov r5, r0                                    |     r5 = r0;
    0x00008312 mov r0, r4                                    |     r0 = r4;
    0x00008314 blx 0x49bc                                    |     fcn_000049bc ();
    0x00008316 adcs.w r1, r2, sp, ror 12                     |     __asm ("adcs.w r1, r2, sp, ror 12");
    0x0000831a blx 0x4d50                                    |     r0 = g_main_context_ref_thread_default ();
    0x0000831e mov r1, r0                                    |     r1 = r0;
    0x00008320 mov r0, r5                                    |     r0 = r5;
    0x00008322 pop.w {r4, r5, r6, lr}                        |     
    0x00008326 b.w 0x5014                                    |     return void (*0x5014)() ();
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x8430 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.port_object_manager_client_new_for_bus_sync ()       | void port_object_manager_client_new_for_bus_sync (int16_t arg_40h, int16_t arg_44h, int16_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_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_24h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x00008430 push.w {r4, r5, r6, r7, r8, lr}                       |     
    0x00008434 sub sp, 0x28                                          |     
    0x00008436 mov r4, r2                                            |     r4 = r2;
    0x00008438 mov r5, r1                                            |     r5 = r1;
    0x0000843a mov r7, r3                                            |     r7 = r3;
    0x0000843c mov r6, r0                                            |     r6 = r0;
    0x0000843e blx 0x4844                                            |     fcn_00004844 ();
    0x00008442 ldr r2, [pc, 0x5c]                                    |     
    0x00008444 mov.w ip, 0                                           |     
    0x00008448 ldr r3, [pc, 0x58]                                    |     r3 = *(0x84a4);
    0x0000844a str.w ip, [sp, 0x24]                                  |     __asm ("str.w ip, [var_24h]");
    0x0000844e add r2, pc                                            |     r2 = 0x108f4;
    0x00008450 ldr.w r8, [sp, 0x40]                                  |     r8 = *(arg_40h);
    0x00008454 ldr r3, [r2, r3]                                      |     r3 = *(0x108f4);
    0x00008456 ldr r2, [pc, 0x50]                                    |     
    0x00008458 str r4, [sp, 8]                                       |     var_8h = r4;
    0x0000845a mov r1, r8                                            |     r1 = r8;
    0x0000845c ldr r4, [pc, 0x4c]                                    |     
    0x0000845e add r2, pc                                            |     r2 = 0x1090c;
    0x00008460 str r3, [sp, 0x20]                                    |     var_20h = r3;
    0x00008462 str r2, [sp, 0x14]                                    |     var_14h = r2;
    0x00008464 add r4, pc                                            |     r4 = 0x10914;
    0x00008466 ldr r2, [pc, 0x48]                                    |     
    0x00008468 str r4, [sp, 0x1c]                                    |     var_1ch = r4;
    0x0000846a ldr r4, [pc, 0x48]                                    |     
    0x0000846c ldr r3, [pc, 0x48]                                    |     
    0x0000846e add r2, pc                                            |     r2 = 0x10924;
    0x00008470 str r2, [sp, 4]                                       |     var_4h = r2;
    0x00008472 add r4, pc                                            |     r4 = 0x1092c;
    0x00008474 ldr r2, [sp, 0x44]                                    |     r2 = *(arg_44h);
    0x00008476 add r3, pc                                            |     r3 = 0x10932;
    0x00008478 str r7, [sp, 0x18]                                    |     var_18h = r7;
    0x0000847a str r6, [sp, 0x10]                                    |     var_10h = r6;
    0x0000847c str r5, [sp]                                          |     *(sp) = r5;
    0x0000847e str r4, [sp, 0xc]                                     |     var_ch = r4;
    0x00008480 blx 0x4f3c                                            |     r0 = domain_io_get_mode ();
                                                                     |     if (r0 != 0) {
    0x00008484 cbz r0, 0x849a                                        |         
    0x00008486 mov r4, r0                                            |         r4 = r0;
    0x00008488 blx 0x4d50                                            |         r0 = g_main_context_ref_thread_default ();
    0x0000848c mov r1, r0                                            |         r1 = r0;
    0x0000848e mov r0, r4                                            |         r0 = r4;
    0x00008490 add sp, 0x28                                          |         
    0x00008492 pop.w {r4, r5, r6, r7, r8, lr}                        |         
    0x00008496 b.w 0x5014                                            |         void (*0x5014)() ();
                                                                     |     }
    0x0000849a add sp, 0x28                                          |     
    0x0000849c 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-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x8330 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.port_object_manager_client_new_sync ()       | void port_object_manager_client_new_sync (int16_t arg_40h, int16_t arg_44h, int16_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_10h;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_1ch;
                                                             |     int16_t var_20h;
                                                             |     int16_t var_24h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00008330 push.w {r4, r5, r6, r7, r8, lr}               |     
    0x00008334 sub sp, 0x28                                  |     
    0x00008336 mov r4, r2                                    |     r4 = r2;
    0x00008338 mov r5, r1                                    |     r5 = r1;
    0x0000833a mov r7, r3                                    |     r7 = r3;
    0x0000833c mov r6, r0                                    |     r6 = r0;
    0x0000833e blx 0x4844                                    |     fcn_00004844 ();
    0x00008342 ldr r2, [pc, 0x5c]                            |     
    0x00008344 mov.w ip, 0                                   |     
    0x00008348 ldr r3, [pc, 0x58]                            |     r3 = *(0x83a4);
    0x0000834a str.w ip, [sp, 0x24]                          |     __asm ("str.w ip, [var_24h]");
    0x0000834e add r2, pc                                    |     r2 = 0x106f4;
    0x00008350 ldr.w r8, [sp, 0x40]                          |     r8 = *(arg_40h);
    0x00008354 ldr r3, [r2, r3]                              |     r3 = *(0x106f4);
    0x00008356 ldr r2, [pc, 0x50]                            |     
    0x00008358 str r4, [sp, 8]                               |     var_8h = r4;
    0x0000835a mov r1, r8                                    |     r1 = r8;
    0x0000835c ldr r4, [pc, 0x4c]                            |     
    0x0000835e add r2, pc                                    |     r2 = 0x1070c;
    0x00008360 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x00008362 str r2, [sp, 0x14]                            |     var_14h = r2;
    0x00008364 add r4, pc                                    |     r4 = 0x10714;
    0x00008366 ldr r2, [pc, 0x48]                            |     
    0x00008368 str r4, [sp, 0x1c]                            |     var_1ch = r4;
    0x0000836a ldr r4, [pc, 0x48]                            |     
    0x0000836c ldr r3, [pc, 0x48]                            |     
    0x0000836e add r2, pc                                    |     r2 = 0x10724;
    0x00008370 str r2, [sp, 4]                               |     var_4h = r2;
    0x00008372 add r4, pc                                    |     r4 = 0x1072c;
    0x00008374 ldr r2, [sp, 0x44]                            |     r2 = *(arg_44h);
    0x00008376 add r3, pc                                    |     r3 = 0x10732;
    0x00008378 str r7, [sp, 0x18]                            |     var_18h = r7;
    0x0000837a str r6, [sp, 0x10]                            |     var_10h = r6;
    0x0000837c str r5, [sp]                                  |     *(sp) = r5;
    0x0000837e str r4, [sp, 0xc]                             |     var_ch = r4;
    0x00008380 blx 0x4f3c                                    |     r0 = domain_io_get_mode ();
                                                             |     if (r0 != 0) {
    0x00008384 cbz r0, 0x839a                                |         
    0x00008386 mov r4, r0                                    |         r4 = r0;
    0x00008388 blx 0x4d50                                    |         r0 = g_main_context_ref_thread_default ();
    0x0000838c mov r1, r0                                    |         r1 = r0;
    0x0000838e mov r0, r4                                    |         r0 = r4;
    0x00008390 add sp, 0x28                                  |         
    0x00008392 pop.w {r4, r5, r6, r7, r8, lr}                |         
    0x00008396 b.w 0x5014                                    |         void (*0x5014)() ();
                                                             |     }
    0x0000839a add sp, 0x28                                  |     
    0x0000839c 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-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x7db0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.port_object_peek_io ()           | void port_object_peek_io (int16_t arg1) {
                                                 |     r0 = arg1;
    0x00007db0 push {r4, lr}                     |     
    0x00007db2 mov r4, r0                        |     r4 = r0;
    0x00007db4 blx 0x48e0                        |     r0 = fcn_000048e0 ();
    0x00007db8 mov r1, r0                        |     r1 = r0;
    0x00007dba mov r0, r4                        |     r0 = r4;
    0x00007dbc blx 0x5018                        |     fcn_00005018 ();
    0x00007dc0 ldr r1, [pc, 0x20]                |     
    0x00007dc2 add r1, pc                        |     r1 = 0xfbaa;
    0x00007dc4 blx 0x4b98                        |     r0 = fcn_00004b98 ();
                                                 |     if (r0 != 0) {
    0x00007dc8 cbz r0, 0x7de0                    |         
    0x00007dca mov r4, r0                        |         r4 = r0;
    0x00007dcc blx 0x49bc                        |         fcn_000049bc ();
    0x00007dd0 blx 0x49c8                        |         r0 = fcn_000049c8 ();
    0x00007dd4 mov r1, r0                        |         r1 = r0;
    0x00007dd6 mov r0, r4                        |         r0 = r4;
    0x00007dd8 pop.w {r4, lr}                    |         
    0x00007ddc b.w 0x5014                        |         void (*0x5014)() ();
                                                 |     }
    0x00007de0 pop {r4, pc}                      |     
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x7f5c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.port_object_proxy_new ()         | void port_object_proxy_new (int16_t arg1, int16_t arg2) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00007f5c push {r4, r5, r6, lr}             |     
    0x00007f5e sub sp, 8                         |     
                                                 |     if (r0 != 0) {
    0x00007f60 cbz r0, 0x7fc6                    |         
    0x00007f62 mov r4, r0                        |         r4 = r0;
    0x00007f64 mov r6, r1                        |         r6 = r1;
    0x00007f66 blx 0x4f54                        |         domain_io_get_type ();
    0x00007f6a ldr r3, [r4]                      |         r3 = *(r4);
    0x00007f6c mov r1, r0                        |         r1 = r0;
                                                 |         if (r3 != 0) {
    0x00007f6e cbz r3, 0x7f76                    |             
    0x00007f70 ldr r3, [r3]                      |             r3 = *(r3);
    0x00007f72 cmp r3, r0                        |             
                                                 |             if (r3 == r0) {
    0x00007f74 beq 0x7f7e                        |                 goto label_0;
                                                 |             }
                                                 |         }
    0x00007f76 mov r0, r4                        |         r0 = r4;
    0x00007f78 blx 0x4f48                        |         r0 = interface_definition_destroy ();
                                                 |         if (r0 == 0) {
    0x00007f7c cbz r0, 0x7fc6                    |             goto label_1;
                                                 |         }
                                                 | label_0:
    0x00007f7e mov r0, r6                        |         r0 = r6;
    0x00007f80 blx 0x4e28                        |         r0 = fcn_00004e28 ();
                                                 |         if (r0 == 0) {
    0x00007f84 cbnz r0, 0x7fa0                   |             
    0x00007f86 ldr r1, [pc, 0x58]                |             
    0x00007f88 ldr r2, [pc, 0x58]                |             
    0x00007f8a ldr r0, [pc, 0x5c]                |             
    0x00007f8c add r1, pc                        |             
    0x00007f8e add r2, pc                        |             r2 = 0xff76;
    0x00007f90 add.w r1, r1, 0x100               |             r1 = 0x10072;
    0x00007f94 add r0, pc                        |             r0 = 0xff82;
    0x00007f96 blx 0x4e04                        |             g_async_result_get_source_object ();
    0x00007f9a movs r0, 0                        |             r0 = 0;
    0x00007f9c add sp, 8                         |             
    0x00007f9e pop {r4, r5, r6, pc}              |             
                                                 |         }
    0x00007fa0 blx 0x4e44                        |         fcn_00004e44 ();
    0x00007fa4 movs r3, 0                        |         r3 = 0;
    0x00007fa6 ldr r1, [pc, 0x44]                |         
    0x00007fa8 str r3, [sp, 4]                   |         var_4h = r3;
    0x00007faa mov r5, r0                        |         r5 = r0;
    0x00007fac ldr r3, [pc, 0x40]                |         
    0x00007fae mov r2, r4                        |         r2 = r4;
    0x00007fb0 add r1, pc                        |         r1 = 0xffa2;
    0x00007fb2 str r6, [sp]                      |         *(sp) = r6;
    0x00007fb4 add r3, pc                        |         r3 = 0xffa8;
    0x00007fb6 blx 0x4c48                        |         g_object_ref ();
    0x00007fba mov r1, r5                        |         r1 = r5;
    0x00007fbc add sp, 8                         |         
    0x00007fbe pop.w {r4, r5, r6, lr}            |         
    0x00007fc2 b.w 0x5014                        |         void (*0x5014)() ();
                                                 |     }
                                                 | label_1:
    0x00007fc6 ldr r1, [pc, 0x2c]                |     
    0x00007fc8 ldr r2, [pc, 0x2c]                |     
    0x00007fca ldr r0, [pc, 0x30]                |     
    0x00007fcc add r1, pc                        |     
    0x00007fce add r2, pc                        |     r2 = 0xffca;
    0x00007fd0 add.w r1, r1, 0x100               |     r1 = 0x100c6;
    0x00007fd4 add r0, pc                        |     r0 = 0xffd6;
    0x00007fd6 blx 0x4e04                        |     g_async_result_get_source_object ();
    0x00007fda movs r0, 0                        |     r0 = 0;
    0x00007fdc add sp, 8                         |     
    0x00007fde pop {r4, r5, r6, pc}              |     
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x81d0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.port_object_skeleton_new ()      | void port_object_skeleton_new (int16_t arg1) {
                                                 |     r0 = arg1;
    0x000081d0 invalid                           |     
    0x000081d4 blx 0x4e28                        |     r0 = fcn_00004e28 ();
                                                 |     if (r0 == 0) {
    0x000081d8 cbnz r0, 0x81f4                   |         
    0x000081da mov r4, r0                        |         r4 = r0;
    0x000081dc ldr r1, [pc, 0x30]                |         
    0x000081de ldr r2, [pc, 0x34]                |         
    0x000081e0 ldr r0, [pc, 0x34]                |         
    0x000081e2 add r1, pc                        |         
    0x000081e4 add r2, pc                        |         r2 = 0x103fe;
    0x000081e6 add.w r1, r1, 0x13c               |         r1 = 0x10532;
    0x000081ea add r0, pc                        |         r0 = 0x10406;
    0x000081ec blx 0x4e04                        |         g_async_result_get_source_object ();
    0x000081f0 mov r0, r4                        |         r0 = r4;
    0x000081f2 pop {r3, r4, r5, pc}              |         
                                                 |     }
    0x000081f4 blx 0x549c                        |     fcn_0000549c ();
    0x000081f8 ldr r1, [pc, 0x20]                |     
    0x000081fa mov r4, r0                        |     r4 = r0;
    0x000081fc movs r3, 0                        |     r3 = 0;
    0x000081fe mov r2, r5                        |     r2 = r5;
    0x00008200 add r1, pc                        |     r1 = 0x10420;
    0x00008202 blx 0x4c48                        |     g_object_ref ();
    0x00008206 mov r1, r4                        |     r1 = r4;
    0x00008208 pop.w {r3, r4, r5, lr}            |     
    0x0000820c b.w 0x5014                        |     return void (*0x5014)() ();
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x9934 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.request_ps_populate_io_new ()    | void request_ps_populate_io_new (int16_t arg1, int16_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00009934 push {r3, r4, r5, lr}             |     
    0x00009936 mov r5, r1                        |     r5 = r1;
    0x00009938 mov r4, r0                        |     r4 = r0;
    0x0000993a blx 0x53ac                        |     fcn_000053ac ();
    0x0000993e ldr r1, [pc, 0x20]                |     
    0x00009940 movs r3, 0                        |     r3 = 0;
    0x00009942 mov r2, r4                        |     r2 = r4;
    0x00009944 add r1, pc                        |     r1 = 0x132aa;
    0x00009946 blx 0x4c48                        |     r0 = g_object_ref ();
    0x0000994a mov r4, r0                        |     r4 = r0;
    0x0000994c str r5, [r0, 0xc]                 |     *((r0 + 0xc)) = r5;
    0x0000994e blx 0x4d8c                        |     r0 = g_idle_source_new ();
    0x00009952 mov r1, r0                        |     r1 = r0;
    0x00009954 mov r0, r4                        |     r0 = r4;
    0x00009956 pop.w {r3, r4, r5, lr}            |     
    0x0000995a b.w 0x5014                        |     return void (*0x5014)() ();
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libportservice-api-handler.so.0.0.1 @ 0x9cf0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.request_ps_populate_io_state_new ()          | void request_ps_populate_io_state_new (int16_t arg1, int16_t arg2) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00009cf0 push {r3, r4, r5, lr}                         |     
    0x00009cf2 mov r5, r1                                    |     r5 = r1;
    0x00009cf4 mov r4, r0                                    |     r4 = r0;
    0x00009cf6 blx 0x4e1c                                    |     g_object_set ();
    0x00009cfa ldr r1, [pc, 0x20]                            |     
    0x00009cfc movs r3, 0                                    |     r3 = 0;
    0x00009cfe mov r2, r4                                    |     r2 = r4;
    0x00009d00 add r1, pc                                    |     r1 = 0x13a22;
    0x00009d02 blx 0x4c48                                    |     r0 = g_object_ref ();
    0x00009d06 mov r4, r0                                    |     r4 = r0;
    0x00009d08 str r5, [r0, 0xc]                             |     *((r0 + 0xc)) = r5;
    0x00009d0a blx 0x4d8c                                    |     r0 = g_idle_source_new ();
    0x00009d0e mov r1, r0                                    |     r1 = r0;
    0x00009d10 mov r0, r4                                    |     r0 = r4;
    0x00009d12 pop.w {r3, r4, r5, lr}                        |     
    0x00009d16 b.w 0x5014                                    |     return void (*0x5014)() ();
                                                             | }

[*] Function system used 1 times libportservice-api-handler.so.0.0.1