[*] Binary protection state of liblifecycle-machine.so.0.1.36

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


[*] Function printf tear down of liblifecycle-machine.so.0.1.36

    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/liblifecycle-machine.so.0.1.36 @ 0x6ff4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.op_controller_internal_new ()    | void op_controller_internal_new (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_0h_2;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
                                                 |     r3 = arg4;
    0x00006ff4 mvnsmi lr, sp, lsr 18             |     __asm ("mvnsmi lr, sp, lsr 18");
    0x00006ff8 sub sp, 8                         |     
    0x00006ffa mov r7, r2                        |     r7 = r2;
    0x00006ffc mov r6, r3                        |     r6 = r3;
    0x00006ffe mov r5, r1                        |     r5 = r1;
    0x00007000 mov r8, r0                        |     r8 = r0;
    0x00007002 blx 0x55ac                        |     fcn_000055ac ();
    0x00007006 movs r1, 0                        |     r1 = 0;
    0x00007008 blx 0x5024                        |     r0 = fcn_00005024 ();
    0x0000700c mov r4, r0                        |     r4 = r0;
    0x0000700e mov r0, r8                        |     r0 = r8;
    0x00007010 blx 0x5018                        |     g_strdup_printf ()
    0x00007014 str r0, [r4, 0x44]                |     *((r4 + 0x44)) = r0;
    0x00007016 mov r0, r5                        |     r0 = r5;
    0x00007018 blx 0x5070                        |     fcn_00005070 ();
    0x0000701c str r0, [r4, 0x48]                |     *((r4 + 0x48)) = r0;
    0x0000701e mov r0, r7                        |     r0 = r7;
    0x00007020 blx 0x5070                        |     fcn_00005070 ();
    0x00007024 str r0, [r4, 0x4c]                |     *((r4 + 0x4c)) = r0;
    0x00007026 mov r0, r5                        |     r0 = r5;
    0x00007028 blx 0x56c8                        |     fcn_000056c8 ();
    0x0000702c str r0, [r4, 0x50]                |     *((r4 + 0x50)) = r0;
    0x0000702e mov r0, r6                        |     r0 = r6;
    0x00007030 blx 0x5070                        |     fcn_00005070 ();
    0x00007034 ldr r2, [pc, 0x44]                |     
    0x00007036 movs r5, 0                        |     r5 = 0;
    0x00007038 ldr r1, [pc, 0x44]                |     
    0x0000703a mov r3, r4                        |     r3 = r4;
    0x0000703c str r0, [r4, 0x54]                |     *((r4 + 0x54)) = r0;
    0x0000703e add r2, pc                        |     r2 = 0xe0be;
    0x00007040 strd r5, r5, [sp]                 |     __asm ("strd r5, r5, [sp]");
    0x00007044 add r1, pc                        |     r1 = 0xe0c8;
    0x00007046 blx 0x5400                        |     fcn_00005400 ();
    0x0000704a ldr r2, [pc, 0x38]                |     
    0x0000704c mov r3, r4                        |     r3 = r4;
    0x0000704e ldr r1, [pc, 0x38]                |     
    0x00007050 ldr r0, [r4, 0x54]                |     r0 = *((r4 + 0x54));
    0x00007052 add r2, pc                        |     r2 = 0xe0dc;
    0x00007054 strd r5, r5, [sp]                 |     __asm ("strd r5, r5, [sp]");
    0x00007058 add r1, pc                        |     r1 = 0xe0e6;
    0x0000705a blx 0x5400                        |     fcn_00005400 ();
    0x0000705e ldr r2, [pc, 0x2c]                |     
    0x00007060 mov r3, r4                        |     r3 = r4;
    0x00007062 ldr r1, [pc, 0x2c]                |     
    0x00007064 ldr r0, [r4, 0x54]                |     r0 = *((r4 + 0x54));
    0x00007066 add r2, pc                        |     r2 = 0xe0f8;
    0x00007068 strd r5, r5, [sp]                 |     __asm ("strd r5, r5, [sp]");
    0x0000706c add r1, pc                        |     r1 = 0xe102;
    0x0000706e blx 0x5400                        |     fcn_00005400 ();
    0x00007070 strd r4, r6, [r8, 0x80]           |     __asm ("strd r4, r6, [r8, 0x80]");
    0x00007074 add sp, 8                         |     
    0x00007076 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/liblifecycle-machine.so.0.1.36 @ 0x7ca8 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.op_tracker_new ()                    | void op_tracker_new (int16_t arg_20h, int16_t arg_24h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                     |     int16_t var_0h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
                                                     |     r3 = arg4;
    0x00007ca8 mvnsmi lr, sp, lsr 18                 |     __asm ("mvnsmi lr, sp, lsr 18");
    0x00007cac mov r5, r1                            |     r5 = r1;
    0x00007cae sub sp, 8                             |     
    0x00007cb0 mov r7, r0                            |     r7 = r0;
    0x00007cb2 mov r8, r2                            |     r8 = r2;
    0x00007cb4 mov r6, r3                            |     r6 = r3;
    0x00007cb6 blx 0x52cc                            |     fcn_000052cc ();
    0x00007cba cmp r5, 0                             |     
                                                     |     if (r5 != 0) {
    0x00007cbc beq 0x7d6a                            |         
    0x00007cbe ldr r3, [r5]                          |         r3 = *(r5);
    0x00007cc0 mov r1, r0                            |         r1 = r0;
                                                     |         if (r3 != 0) {
    0x00007cc2 cbz r3, 0x7cca                        |             
    0x00007cc4 ldr r3, [r3]                          |             r3 = *(r3);
    0x00007cc6 cmp r0, r3                            |             
                                                     |             if (r0 == r3) {
    0x00007cc8 beq 0x7cd4                            |                 goto label_0;
                                                     |             }
                                                     |         }
    0x00007cca mov r0, r5                            |         r0 = r5;
    0x00007ccc blx 0x5374                            |         r0 = fcn_00005374 ();
    0x00007cd0 cmp r0, 0                             |         
                                                     |         if (r0 == 0) {
    0x00007cd2 beq 0x7d6a                            |             goto label_1;
                                                     |         }
                                                     | label_0:
    0x00007cd4 blx 0x5654                            |         fcn_00005654 ();
    0x00007cd8 movs r1, 0                            |         r1 = 0;
    0x00007cda blx 0x5024                            |         r0 = fcn_00005024 ();
    0x00007cde mov r4, r0                            |         r4 = r0;
    0x00007ce0 blx 0x52cc                            |         r0 = fcn_000052cc ();
    0x00007ce4 mov r1, r0                            |         r1 = r0;
    0x00007ce6 mov r0, r5                            |         r0 = r5;
    0x00007ce8 blx 0x5440                            |         fcn_00005440 ();
    0x00007cec blx 0x54ac                            |         fcn_000054ac ();
    0x00007cf0 blx 0x4dbc                            |         fcn_00004dbc ();
    0x00007cf4 ldr r3, [sp, 0x20]                    |         r3 = *(arg_20h);
    0x00007cf6 str r0, [r4, 0x54]                    |         *((r4 + 0x54)) = r0;
    0x00007cf8 mov r0, r7                            |         r0 = r7;
    0x00007cfa str r3, [r4, 0x58]                    |         *((r4 + 0x58)) = r3;
    0x00007cfc blx 0x5018                            |         g_strdup_printf ()
    0x00007d00 str r0, [r4, 0x44]                    |         *((r4 + 0x44)) = r0;
    0x00007d02 mov r0, r8                            |         r0 = r8;
    0x00007d04 blx 0x5070                            |         fcn_00005070 ();
    0x00007d08 str r0, [r4, 0x48]                    |         *((r4 + 0x48)) = r0;
    0x00007d0a mov r0, r6                            |         r0 = r6;
    0x00007d0c blx 0x5070                            |         fcn_00005070 ();
    0x00007d10 str r0, [r4, 0x50]                    |         *((r4 + 0x50)) = r0;
    0x00007d12 ldr r0, [r4, 0x48]                    |         r0 = *((r4 + 0x48));
    0x00007d14 blx 0x4f24                            |         fcn_00004f24 ();
    0x00007d16 invalid                               |         
    0x00007d1a str r0, [r4, 0x4c]                    |         *((r4 + 0x4c)) = r0;
    0x00007d1c mov r0, r4                            |         r0 = r4;
    0x00007d1e str.w r3, [r4, 0x94]                  |         __asm ("str.w r3, [r4, 0x94]");
    0x00007d22 bl 0x7a24                             |         r0 = fcn_00007a24 (r0);
    0x00007d26 ldrd r1, r0, [r4, 0x54]               |         __asm ("ldrd r1, r0, [r4, 0x54]");
    0x00007d2a blx 0x4ca0                            |         r0 = condition_base_set_fulfilled ();
    0x00007d2e mov r5, r0                            |         r5 = r0;
                                                     |         if (r0 != 0) {
    0x00007d30 cbz r0, 0x7d62                        |             
    0x00007d32 ldr r2, [pc, 0x50]                    |             
    0x00007d34 movs r3, 2                            |             r3 = 2;
    0x00007d36 ldrd r0, r1, [r4, 0x4c]               |             __asm ("ldrd r0, r1, [r4, 0x4c]");
    0x00007d3a add r2, pc                            |             r2 = 0xfac4;
    0x00007d3c blx 0x53e8                            |             fcn_000053e8 ();
    0x00007d40 ldr r7, [r4, 0x74]                    |             r7 = *((r4 + 0x74));
    0x00007d42 mov r6, r0                            |             r6 = r0;
    0x00007d44 str.w r0, [r4, 0x9c]                  |             __asm ("str.w r0, [r4, 0x9c]");
    0x00007d48 blx 0x5338                            |             r0 = fcn_00005338 ();
    0x00007d4c mov r1, r0                            |             r1 = r0;
    0x00007d4e mov r0, r6                            |             r0 = r6;
    0x00007d50 blx 0x5440                            |             r0 = fcn_00005440 ();
    0x00007d54 mov r1, r0                            |             r1 = r0;
    0x00007d56 mov r0, r7                            |             r0 = r7;
    0x00007d58 blx 0x4f4c                            |             fcn_00004f4c ();
    0x00007d5c mov r0, r5                            |             r0 = r5;
    0x00007d5e blx 0x4d8c                            |             fcn_00004d8c ();
                                                     |         }
    0x00007d62 mov r0, r4                            |         r0 = r4;
    0x00007d64 add sp, 8                             |         
    0x00007d66 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     |     }
                                                     | label_1:
    0x00007d6a ldr r4, [pc, 0x1c]                    |     
    0x00007d6c mov.w r2, 0x2d8                       |     r2 = 0x2d8;
    0x00007d70 ldr r3, [pc, 0x18]                    |     
    0x00007d72 movs r0, 0                            |     r0 = 0;
    0x00007d74 ldr r1, [pc, 0x18]                    |     
    0x00007d76 add r4, pc                            |     r4 = 0xfb04;
    0x00007d78 add r3, pc                            |     r3 = 0xfb08;
    0x00007d7a str r4, [sp]                          |     *(sp) = r4;
    0x00007d7c add r1, pc                            |     r1 = 0xfb10;
    0x00007d7e blx 0x500c                            |     domain_contract_load_from_definition ();
    0x00007d82 nop                                   |     
    0x00007d84 movs r2, 0x6a                         |     r2 = 0x6a;
    0x00007d86 movs r0, r0                           |     
    0x00007d88 movs r2, 0x12                         |     r2 = 0x12;
    0x00007d8a movs r0, r0                           |     
    0x00007d8c movs r3, 0x30                         |     r3 = 0x30;
    0x00007d8e movs r0, r0                           |     
    0x00007d90 movs r1, 0xc4                         |     r1 = 0xc4;
    0x00007d92 movs r0, r0                           |     
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/liblifecycle-machine.so.0.1.36 @ 0x9060 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.resource_lifecycle_new ()        | void resource_lifecycle_new (int16_t arg_20h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_0h_2;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
                                                 |     r3 = arg4;
    0x00009060 mvnsmi lr, sp, lsr 18             |     __asm ("mvnsmi lr, sp, lsr 18");
    0x00009064 sub sp, 8                         |     
    0x00009066 mov r5, r1                        |     r5 = r1;
    0x00009068 mov r6, r3                        |     r6 = r3;
    0x0000906a mov r7, r2                        |     r7 = r2;
    0x0000906c mov r8, r0                        |     r8 = r0;
    0x0000906e blx 0x51cc                        |     fcn_000051cc ();
    0x00009072 movs r1, 0                        |     r1 = 0;
    0x00009074 blx 0x5024                        |     r0 = fcn_00005024 ();
    0x00009078 mov r4, r0                        |     r4 = r0;
    0x0000907a mov r0, r5                        |     r0 = r5;
    0x0000907c blx 0x5018                        |     g_strdup_printf ()
    0x00009080 mov r2, r7                        |     r2 = r7;
    0x00009082 mov r3, r6                        |     r3 = r6;
    0x00009084 mov r1, r5                        |     r1 = r5;
    0x00009086 str r0, [r4, 0x44]                |     *((r4 + 0x44)) = r0;
    0x00009088 mov r0, r8                        |     r0 = r8;
    0x0000908a blx 0x5720                        |     fcn_00005720 ();
    0x0000908e ldr r1, [r4, 0x5c]                |     r1 = *((r4 + 0x5c));
    0x00009090 str r0, [r4, 0x48]                |     *((r4 + 0x48)) = r0;
    0x00009092 blx 0x5054                        |     g_type_check_class_cast ();
    0x00009096 ldr r0, [r4, 0x48]                |     r0 = *((r4 + 0x48));
    0x00009098 blx 0x5768                        |     r0 = fcn_00005768 ();
    0x0000909c mov r7, r0                        |     r7 = r0;
    0x0000909e blx 0x5678                        |     comm_manager_get_channel ();
    0x000090a2 ldrd ip, r2, [r4, 0x44]           |     __asm ("ldrd ip, r2, [r4, 0x44]");
    0x000090a6 mov r3, r0                        |     r3 = r0;
    0x000090a8 str r0, [r4, 0x54]                |     *((r4 + 0x54)) = r0;
    0x000090aa mov r1, r8                        |     r1 = r8;
    0x000090ac ldr r0, [sp, 0x20]                |     r0 = *(arg_20h);
    0x000090ae strd r6, r0, [sp]                 |     __asm ("strd r6, r0, [sp]");
    0x000090b2 mov r0, ip                        |     r0 = ip;
    0x000090b4 blx 0x4e98                        |     r0 = ipc_data_create ();
    0x000090b8 mov r3, r0                        |     r3 = r0;
    0x000090ba ldr r2, [r4, 0x54]                |     r2 = *((r4 + 0x54));
    0x000090bc mov r1, r7                        |     r1 = r7;
    0x000090be mov r0, r5                        |     r0 = r5;
    0x000090c0 str r3, [r4, 0x4c]                |     *((r4 + 0x4c)) = r3;
    0x000090c2 blx 0x4c6c                        |     fcn_00004c6c ();
    0x000090c6 str r0, [r4, 0x50]                |     *((r4 + 0x50)) = r0;
    0x000090c8 mov r0, r4                        |     r0 = r4;
    0x000090ca add sp, 8                         |     
    0x000090cc pop.w {r4, r5, r6, r7, r8, pc}    |     
                                                 | }

[*] Function printf used 4 times liblifecycle-machine.so.0.1.36