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

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


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

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libgobject-2.0.so.0.5600.4 @ 0x109d4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.g_enum_to_string ()      | void g_enum_to_string (int32_t arg1, int32_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x000109d4 push {r4, r5, r6, lr}     |     
    0x000109d8 mov r5, r0                |     r5 = r0;
    0x000109dc mov r4, r1                |     r4 = r1;
    0x000109e0 bl 0x298b4                |     r0 = g_type_fundamental ();
    0x000109e4 cmp r0, 0x30              |     
                                         |     if (r0 == 0x30) {
    0x000109e8 bne 0x10a10               |         
    0x000109ec mov r0, r5                |         r0 = r5;
    0x000109f0 bl 0x279b4                |         r0 = g_type_class_ref ();
    0x000109f4 subs r5, r0, 0            |         r5 = r0 - 0;
                                         |         if (r5 != r0) {
    0x000109f8 bne 0x10a40               |             goto label_1;
                                         |         }
    0x000109fc ldr r0, [pc, 0x78]        |         r0 = *(0x10a78);
    0x00010a00 mov r1, r4                |         r1 = r4;
    0x00010a04 add r0, pc, r0            |         r0 = pc + r0;
    0x00010a08 pop {r4, r5, r6, lr}      |         
    0x00010a0c b 0x9214                  |         void (*0x9214)() ();
                                         |     }
    0x00010a10 ldr r1, [pc, 0x68]        |     
    0x00010a14 ldr r2, [pc, 0x68]        |     r2 = *(0x10a80);
    0x00010a18 ldr r0, [pc, 0x68]        |     r0 = *(0x10a84);
    0x00010a1c add r1, pc, r1            |     r1 = pc + r1;
    0x00010a20 add r1, r1, 0x130         |     r1 = 0x10bac;
    0x00010a24 add r2, pc, r2            |     r2 = pc + r2;
    0x00010a28 add r1, r1, 2             |     r1 += 2;
    0x00010a2c add r0, pc, r0            |     r0 = pc + r0;
    0x00010a30 bl 0x92ec                 |     g_return_if_fail_warning ();
    0x00010a34 mov r4, 0                 |     r4 = 0;
                                         |     do {
    0x00010a38 mov r0, r4                |         r0 = r4;
    0x00010a3c pop {r4, r5, r6, pc}      |         
                                         | label_1:
    0x00010a40 mov r1, r4                |         r1 = r4;
    0x00010a44 bl 0x1087c                |         r0 = g_enum_get_value ();
    0x00010a48 cmp r0, 0                 |         
                                         |         if (r0 != 0) {
    0x00010a4c bne 0x10a70               |             goto label_2;
                                         |         }
    0x00010a50 ldr r0, [pc, 0x34]        |         r0 = *(0x10a88);
    0x00010a54 mov r1, r4                |         r1 = r4;
    0x00010a58 add r0, pc, r0            |         r0 = pc + r0;
    0x00010a5c bl 0x9214                 |         r0 = g_strdup_printf ()
                                         | label_0:
    0x00010a60 mov r4, r0                |         r4 = r0;
    0x00010a64 mov r0, r5                |         r0 = r5;
    0x00010a68 bl 0x2790c                |         g_type_class_unref ();
    0x00010a6c b 0x10a38                 |         
                                         |     } while (1);
                                         | label_2:
    0x00010a70 ldr r0, [r0, 4]           |     r0 = *((r0 + 4));
    0x00010a74 bl 0x9394                 |     g_strdup ();
    0x00010a78 b 0x10a60                 |     goto label_0;
                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libgobject-2.0.so.0.5600.4 @ 0x30a08 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.g_strdup_value_contents ()           | void g_strdup_value_contents (int32_t arg1) {
                                                     |     void * s;
                                                     |     int32_t var_18h;
                                                     |     r0 = arg1;
    0x00030a08 push {r4, r5, r6, r7, r8, lr}         |     
    0x00030a0c sub sp, sp, 0x18                      |     
    0x00030a10 mov r4, r0                            |     r4 = r0;
    0x00030a14 bl 0x2a798                            |     r0 = g_type_check_value ();
    0x00030a18 subs r5, r0, 0                        |     r5 = r0 - 0;
                                                     |     if (r5 == r0) {
    0x00030a1c beq 0x30a4c                           |         goto label_5;
                                                     |     }
    0x00030a20 ldr r5, [r4]                          |     r5 = *(r4);
    0x00030a24 cmp r5, 0x40                          |     
    0x00030a28 bne 0x30a80                           |     
                                                     |     while (r6 != r0) {
    0x00030a2c mov r0, r4                            |         r0 = r4;
    0x00030a30 bl 0x30660                            |         r0 = g_value_get_string ();
    0x00030a34 cmp r0, 0                             |         
                                                     |         if (r0 != 0) {
    0x00030a38 bne 0x30b5c                           |             goto label_6;
                                                     |         }
    0x00030a3c ldr r0, [pc, 0x344]                   |         r0 = *(0x30d84);
    0x00030a40 add r0, pc, r0                        |         r0 = pc + r0;
                                                     | label_1:
    0x00030a44 bl 0x9394                             |         g_strdup ();
    0x00030a48 b 0x30cbc                             |         goto label_4;
                                                     | label_5:
    0x00030a4c ldr r1, [pc, 0x338]                   |         
    0x00030a50 ldr r2, [pc, 0x338]                   |         r2 = *(0x30d8c);
    0x00030a54 ldr r0, [pc, 0x338]                   |         r0 = *(0x30d90);
    0x00030a58 add r1, pc, r1                        |         r1 = pc + r1;
    0x00030a5c add r1, r1, 0x2a0                     |         r1 = 0x31028;
    0x00030a60 add r2, pc, r2                        |         r2 = pc + r2;
    0x00030a64 add r1, r1, 2                         |         r1 += 2;
    0x00030a68 add r0, pc, r0                        |         r0 = pc + r0;
    0x00030a6c bl 0x92ec                             |         g_return_if_fail_warning ();
    0x00030a70 mov r4, r5                            |         r4 = r5;
                                                     | label_0:
    0x00030a74 mov r0, r4                            |         r0 = r4;
    0x00030a78 add sp, sp, 0x18                      |         
    0x00030a7c pop {r4, r5, r6, r7, r8, pc}          |         
    0x00030a80 mov r1, 0x40                          |         r1 = 0x40;
    0x00030a84 mov r0, r4                            |         r0 = r4;
    0x00030a88 bl 0x2a7b8                            |         r0 = g_type_check_value_holds ();
    0x00030a8c subs r6, r0, 0                        |         r6 = r0 - 0;
    0x00030a90 bne 0x30a2c                           |         
                                                     |     }
    0x00030a94 mov r1, 0x40                          |     r1 = 0x40;
    0x00030a98 mov r0, r5                            |     r0 = r5;
    0x00030a9c bl 0x2d23c                            |     r0 = g_value_type_transformable ();
    0x00030aa0 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x00030aa4 beq 0x30ba0                           |         goto label_7;
                                                     |     }
    0x00030aa8 mov r5, sp                            |     r5 = sp;
    0x00030aac mov r2, 0x18                          |     r2 = 0x18;
    0x00030ab0 mov r1, r6                            |     r1 = r6;
    0x00030ab4 mov r0, r5                            |     r0 = r5;
    0x00030ab8 bl 0x9118                             |     memset (r0, r1, r2);
    0x00030abc mov r1, 0x40                          |     r1 = 0x40;
    0x00030ac0 mov r0, r5                            |     r0 = r5;
    0x00030ac4 bl 0x2c85c                            |     g_value_init ();
    0x00030ac8 mov r1, r5                            |     r1 = r5;
    0x00030acc mov r0, r4                            |     r0 = r4;
    0x00030ad0 bl 0x2d2f4                            |     g_value_transform ();
    0x00030ad4 mov r0, r5                            |     r0 = r5;
    0x00030ad8 bl 0x30660                            |     g_value_get_string ();
    0x00030adc mov r1, r6                            |     r1 = r6;
    0x00030ae0 bl 0x9484                             |     r0 = g_strescape ();
    0x00030ae4 mov r6, r0                            |     r6 = r0;
    0x00030ae8 mov r0, r5                            |     r0 = r5;
    0x00030aec bl 0x2ca38                            |     g_value_unset ();
    0x00030af0 ldr r5, [r4]                          |     r5 = *(r4);
    0x00030af4 cmp r5, 0x30                          |     
                                                     |     if (r5 != 0x30) {
    0x00030af8 beq 0x30b34                           |         
    0x00030afc mov r1, 0x30                          |         r1 = 0x30;
    0x00030b00 mov r0, r4                            |         r0 = r4;
    0x00030b04 bl 0x2a7b8                            |         r0 = g_type_check_value_holds ();
    0x00030b08 adds r0, r0, 0                        |         r0 += 0;
                                                     |         if (r0 == r0) {
    0x00030b0c movne r0, 1                           |             r0 = 1;
                                                     |         }
    0x00030b10 cmp r5, 0x34                          |         
                                                     |         if (r5 != 0x34) {
    0x00030b14 orreq r0, r0, 1                       |             r0 |= 1;
                                                     |         }
    0x00030b18 cmp r0, 0                             |         
                                                     |         if (r0 != 0) {
    0x00030b1c bne 0x30b34                           |             goto label_8;
                                                     |         }
    0x00030b20 mov r1, 0x34                          |         r1 = 0x34;
    0x00030b24 mov r0, r4                            |         r0 = r4;
    0x00030b28 bl 0x2a7b8                            |         r0 = g_type_check_value_holds ();
    0x00030b2c cmp r0, 0                             |         
                                                     |         if (r0 == 0) {
    0x00030b30 beq 0x30b88                           |             goto label_9;
                                                     |         }
                                                     |     }
                                                     | label_8:
    0x00030b34 mov r0, r5                            |     r0 = r5;
    0x00030b38 bl 0x28540                            |     g_type_name ();
    0x00030b3c mov r2, r6                            |     r2 = r6;
    0x00030b40 mov r1, r0                            |     r1 = r0;
    0x00030b44 ldr r0, [pc, 0x24c]                   |     r0 = *(0x30d94);
    0x00030b48 add r0, pc, r0                        |     r0 = pc + r0;
    0x00030b4c bl 0x9214                             |     r0 = g_strdup_printf ()
                                                     |     do {
    0x00030b50 mov r4, r0                            |         r4 = r0;
    0x00030b54 mov r0, r6                            |         r0 = r6;
    0x00030b58 b 0x30b80                             |         goto label_10;
                                                     | label_6:
    0x00030b5c mov r1, 0                             |         r1 = 0;
    0x00030b60 bl 0x9484                             |         r0 = g_strescape ();
    0x00030b64 mov r5, r0                            |         r5 = r0;
    0x00030b68 mov r1, r0                            |         r1 = r0;
    0x00030b6c ldr r0, [pc, 0x228]                   |         r0 = *(0x30d98);
    0x00030b70 add r0, pc, r0                        |         r0 = pc + r0;
    0x00030b74 bl 0x9214                             |         r0 = g_strdup_printf ()
    0x00030b78 mov r4, r0                            |         r4 = r0;
    0x00030b7c mov r0, r5                            |         r0 = r5;
                                                     | label_10:
    0x00030b80 bl 0x937c                             |         g_free ();
    0x00030b84 b 0x30a74                             |         goto label_0;
                                                     | label_9:
    0x00030b88 cmp r6, 0                             |         
                                                     |         if (r6 == 0) {
    0x00030b8c movne r0, r6                          |             r0 = r6;
                                                     |         }
                                                     |         if (r6 != 0) {
    0x00030b90 ldreq r0, [pc, 0x208]                 |             r0 = *((pc + 0x208));
                                                     |         }
                                                     |         if (r6 != 0) {
    0x00030b94 addeq r0, pc, r0                      |             r0 = pc + r0;
                                                     |         }
    0x00030b98 bl 0x9394                             |         g_strdup ();
    0x00030b9c b 0x30b50                             |         
                                                     |     } while (1);
                                                     | label_7:
    0x00030ba0 mov r0, r4                            |     r0 = r4;
    0x00030ba4 bl 0x2cabc                            |     r0 = g_value_fits_pointer ();
    0x00030ba8 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x00030bac beq 0x30d7c                           |         goto label_11;
                                                     |     }
    0x00030bb0 mov r0, r4                            |     r0 = r4;
    0x00030bb4 bl 0x2cb1c                            |     r0 = g_value_peek_pointer ();
    0x00030bb8 subs r5, r0, 0                        |     r5 = r0 - 0;
                                                     |     if (r5 != r0) {
    0x00030bbc ldreq r0, [pc, 0x1e0]                 |         r0 = *((pc + 0x1e0));
                                                     |     }
                                                     |     if (r5 == r0) {
    0x00030bc0 addeq r0, pc, r0                      |         r0 = pc + r0;
                                                     |         goto label_12;
                                                     |     }
                                                     |     if (r5 == r0) {
                                                     | label_12:
    0x00030bc4 beq 0x30a44                           |         goto label_1;
                                                     |     }
    0x00030bc8 ldr r6, [r4]                          |     r6 = *(r4);
    0x00030bcc cmp r6, 0x50                          |     
                                                     |     if (r6 != 0x50) {
    0x00030bd0 beq 0x30be8                           |         
    0x00030bd4 mov r1, 0x50                          |         r1 = 0x50;
    0x00030bd8 mov r0, r4                            |         r0 = r4;
    0x00030bdc bl 0x2a7b8                            |         r0 = g_type_check_value_holds ();
    0x00030be0 cmp r0, 0                             |         
                                                     |         if (r0 == 0) {
    0x00030be4 beq 0x30c0c                           |             goto label_13;
                                                     |         }
                                                     |     }
    0x00030be8 ldr r3, [r5]                          |     r3 = *(r5);
    0x00030bec ldr r0, [r3]                          |     r0 = *(r3);
    0x00030bf0 bl 0x28540                            |     g_type_name ();
    0x00030bf4 mov r2, r5                            |     r2 = r5;
    0x00030bf8 mov r1, r0                            |     r1 = r0;
    0x00030bfc ldr r0, [pc, 0x1a4]                   |     r0 = *(0x30da4);
    0x00030c00 add r0, pc, r0                        |     r0 = pc + r0;
                                                     |     do {
                                                     | label_3:
    0x00030c04 bl 0x9214                             |         g_strdup_printf ()
    0x00030c08 b 0x30cbc                             |         goto label_4;
                                                     | label_13:
    0x00030c0c cmp r6, 0x4c                          |         
                                                     |         if (r6 != 0x4c) {
    0x00030c10 beq 0x30c28                           |             
    0x00030c14 mov r1, 0x4c                          |             r1 = 0x4c;
    0x00030c18 mov r0, r4                            |             r0 = r4;
    0x00030c1c bl 0x2a7b8                            |             r0 = g_type_check_value_holds ();
    0x00030c20 cmp r0, 0                             |             
                                                     |             if (r0 == 0) {
    0x00030c24 beq 0x30c48                           |                 goto label_14;
                                                     |             }
                                                     |         }
    0x00030c28 ldr r3, [r5]                          |         r3 = *(r5);
    0x00030c2c ldr r0, [r3]                          |         r0 = *(r3);
    0x00030c30 bl 0x28540                            |         g_type_name ();
    0x00030c34 mov r2, r5                            |         r2 = r5;
    0x00030c38 mov r1, r0                            |         r1 = r0;
    0x00030c3c ldr r0, [pc, 0x168]                   |         r0 = *(0x30da8);
    0x00030c40 add r0, pc, r0                        |         r0 = pc + r0;
    0x00030c44 b 0x30c04                             |         
                                                     |     } while (1);
                                                     | label_14:
    0x00030c48 bl 0xca8c                             |     r0 = g_strv_get_type ();
    0x00030c4c cmp r6, r0                            |     
    0x00030c50 mov r1, r0                            |     r1 = r0;
                                                     |     if (r6 != r0) {
    0x00030c54 beq 0x30c68                           |         
    0x00030c58 mov r0, r4                            |         r0 = r4;
    0x00030c5c bl 0x2a7b8                            |         r0 = g_type_check_value_holds ();
    0x00030c60 cmp r0, 0                             |         
                                                     |         if (r0 == 0) {
    0x00030c64 beq 0x30d08                           |             goto label_15;
                                                     |         }
                                                     |     }
    0x00030c68 mov r0, r4                            |     r0 = r4;
    0x00030c6c bl 0xcec0                             |     g_value_get_boxed ();
    0x00030c70 ldr r7, [pc, 0x138]                   |     r7 = *(0x30dac);
    0x00030c74 ldr r8, [pc, 0x138]                   |     r8 = *(0x30db0);
    0x00030c78 add r7, pc, r7                        |     r7 = pc + r7;
    0x00030c7c add r8, pc, r8                        |     r8 = pc + r8;
    0x00030c80 mov r6, r0                            |     r6 = r0;
    0x00030c84 ldr r0, [pc, 0x12c]                   |     r0 = *(0x30db4);
    0x00030c88 add r0, pc, r0                        |     r0 = pc + r0;
    0x00030c8c bl 0x94a8                             |     r0 = g_string_new ();
    0x00030c90 mov r4, r0                            |     r4 = r0;
                                                     |     do {
                                                     | label_2:
    0x00030c94 ldr r5, [r6]                          |         r5 = *(r6);
    0x00030c98 cmp r5, 0                             |         
                                                     |         if (r5 == 0) {
    0x00030c9c bne 0x30cc4                           |             
    0x00030ca0 ldr r1, [pc, 0x114]                   |             r1 = *(0x30db8);
    0x00030ca4 mov r0, r4                            |             r0 = r4;
    0x00030ca8 add r1, pc, r1                        |             r1 = pc + r1;
    0x00030cac bl 0x91b4                             |             g_string_append ();
    0x00030cb0 mov r1, r5                            |             r1 = r5;
    0x00030cb4 mov r0, r4                            |             r0 = r4;
    0x00030cb8 bl 0x9268                             |             r0 = g_string_free ();
                                                     | label_4:
    0x00030cbc mov r4, r0                            |             r4 = r0;
    0x00030cc0 b 0x30a74                             |             goto label_0;
                                                     |         }
    0x00030cc4 mov r1, 0                             |         r1 = 0;
    0x00030cc8 mov r0, r5                            |         r0 = r5;
    0x00030ccc bl 0x9484                             |         g_strescape ();
    0x00030cd0 mov r1, r7                            |         r1 = r7;
    0x00030cd4 mov r2, r0                            |         r2 = r0;
    0x00030cd8 mov r5, r0                            |         r5 = r0;
    0x00030cdc mov r0, r4                            |         r0 = r4;
    0x00030ce0 bl 0x9298                             |         g_string_append_printf ()
    0x00030ce4 mov r0, r5                            |         r0 = r5;
    0x00030ce8 bl 0x937c                             |         g_free ();
    0x00030cec ldr r3, [r6, 4]!                      |         r3 = *((r6 += 4));
    0x00030cf0 cmp r3, 0                             |         
    0x00030cf4 beq 0x30c94                           |         
                                                     |     } while (r3 == 0);
    0x00030cf8 mov r1, r8                            |     r1 = r8;
    0x00030cfc mov r0, r4                            |     r0 = r4;
    0x00030d00 bl 0x91b4                             |     g_string_append ();
    0x00030d04 b 0x30c94                             |     goto label_2;
                                                     | label_15:
    0x00030d08 cmp r6, 0x48                          |     
                                                     |     if (r6 != 0x48) {
    0x00030d0c beq 0x30d24                           |         
    0x00030d10 mov r1, 0x48                          |         r1 = 0x48;
    0x00030d14 mov r0, r4                            |         r0 = r4;
    0x00030d18 bl 0x2a7b8                            |         r0 = g_type_check_value_holds ();
    0x00030d1c cmp r0, 0                             |         
                                                     |         if (r0 == 0) {
    0x00030d20 beq 0x30d40                           |             goto label_16;
                                                     |         }
                                                     |     }
    0x00030d24 mov r0, r6                            |     r0 = r6;
    0x00030d28 bl 0x28540                            |     g_type_name ();
    0x00030d2c mov r2, r5                            |     r2 = r5;
    0x00030d30 mov r1, r0                            |     r1 = r0;
    0x00030d34 ldr r0, [pc, 0x84]                    |     r0 = *(0x30dbc);
    0x00030d38 add r0, pc, r0                        |     r0 = pc + r0;
    0x00030d3c b 0x30c04                             |     goto label_3;
                                                     | label_16:
    0x00030d40 cmp r6, 0x44                          |     
                                                     |     if (r6 != 0x44) {
    0x00030d44 beq 0x30d5c                           |         
    0x00030d48 mov r1, 0x44                          |         r1 = 0x44;
    0x00030d4c mov r0, r4                            |         r0 = r4;
    0x00030d50 bl 0x2a7b8                            |         r0 = g_type_check_value_holds ();
    0x00030d54 cmp r0, 0                             |         
                                                     |         if (r0 == 0) {
    0x00030d58 beq 0x30d70                           |             goto label_17;
                                                     |         }
                                                     |     }
    0x00030d5c ldr r0, [pc, 0x60]                    |     r0 = *(0x30dc0);
    0x00030d60 mov r1, r5                            |     r1 = r5;
    0x00030d64 add r0, pc, r0                        |     r0 = pc + r0;
    0x00030d68 bl 0x9214                             |     g_strdup_printf ()
    0x00030d6c b 0x30cbc                             |     goto label_4;
                                                     | label_17:
    0x00030d70 ldr r0, [pc, 0x50]                    |     r0 = *(0x30dc4);
    0x00030d74 add r0, pc, r0                        |     r0 = pc + r0;
    0x00030d78 b 0x30a44                             |     goto label_1;
                                                     | label_11:
    0x00030d7c ldr r0, [pc, 0x48]                    |     r0 = *(0x30dc8);
    0x00030d80 add r0, pc, r0                        |     r0 = pc + r0;
    0x00030d84 b 0x30a44                             |     goto label_1;
                                                     | }

[*] Function printf used 7 times libgobject-2.0.so.0.5600.4