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

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


[*] Function sprintf tear down of libglib-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/libglib-2.0.so.0.5600.4 @ 0x60738 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.g_strdup_vprintf ()      | void g_strdup_vprintf (int32_t arg1, int32_t arg2) {
                                         |     int32_t var_4h;
                                         |     int32_t var_8h;
                                         |     int32_t var_ch;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00060738 push {r0, r1, r2, lr}     |     
    0x0006073c mov r2, 0                 |     r2 = 0;
    0x00060740 add r3, sp, 8             |     r3 += var_8h;
    0x00060744 str r2, [r3, -4]!         |     *((r3 -= 4)) = r2;
    0x00060748 mov r2, r1                |     r2 = r1;
    0x0006074c mov r1, r0                |     r1 = r0;
    0x00060750 mov r0, r3                |     r0 = r3;
    0x00060754 bl 0x83c08                |     g_vasprintf ()
    0x00060758 ldr r0, [sp, 4]           |     r0 = var_4h;
    0x0006075c add sp, sp, 0xc           |     
    0x00060760 pop {pc}                  |     
                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libglib-2.0.so.0.5600.4 @ 0x64458 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.g_string_append_vprintf ()       | void g_string_append_vprintf (int32_t arg1, uint32_t arg2) {
                                                 |     void * s2;
                                                 |     int32_t var_1h;
                                                 |     int32_t var_ch;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00064458 push {r0, r1, r2, r4, r5, lr}     |     
    0x0006445c subs r4, r0, 0                    |     r4 = r0 - 0;
                                                 |     if (r4 != r0) {
    0x00064460 beq 0x64490                       |         
    0x00064464 cmp r1, 0                         |         
                                                 |         if (r1 != 0) {
    0x00064468 bne 0x644bc                       |             goto label_1;
                                                 |         }
    0x0006446c ldr r1, [pc, 0x90]                |         
    0x00064470 ldr r2, [pc, 0x90]                |         r2 = *(0x64504);
    0x00064474 ldr r0, [pc, 0x90]                |         r0 = *(0x64508);
    0x00064478 add r1, pc, r1                    |         r1 = pc + r1;
    0x0006447c add r1, r1, 0x190                 |         r1 = 0x64690;
    0x00064480 add r2, pc, r2                    |         r2 = pc + r2;
    0x00064484 add r1, r1, 2                     |         r1 += 2;
    0x00064488 add r0, pc, r0                    |         r0 = pc + r0;
    0x0006448c b 0x644b0                         |         
                                                 |     } else {
    0x00064490 ldr r1, [pc, 0x78]                |         
    0x00064494 ldr r2, [pc, 0x78]                |         r2 = *(0x64510);
    0x00064498 ldr r0, [pc, 0x78]                |         r0 = *(0x64514);
    0x0006449c add r1, pc, r1                    |         r1 = pc + r1;
    0x000644a0 add r1, r1, 0x190                 |         r1 = 0x6469c;
    0x000644a4 add r2, pc, r2                    |         r2 = pc + r2;
    0x000644a8 add r1, r1, 2                     |         r1 += 2;
    0x000644ac add r0, pc, r0                    |         r0 = pc + r0;
                                                 |     }
    0x000644b0 bl 0x4d3f0                        |     g_return_if_fail_warning ();
                                                 |     do {
                                                 | label_0:
    0x000644b4 add sp, sp, 0xc                   |         
    0x000644b8 pop {r4, r5, pc}                  |         
                                                 | label_1:
    0x000644bc add r0, sp, 4                     |         r0 += s2;
    0x000644c0 bl 0x83c08                        |         g_vasprintf ()
    0x000644c4 subs r5, r0, 0                    |         r5 -= s2;
    0x000644c8 blt 0x644b4                       |         
                                                 |     } while (r5 < s2);
    0x000644cc mov r1, r5                        |     r1 = r5;
    0x000644d0 mov r0, r4                        |     r0 = r4;
    0x000644d4 bl 0x63408                        |     fcn_00063408 (r0, r1);
    0x000644d8 ldr r1, [sp, 4]                   |     r1 = s2;
    0x000644dc add r2, r5, 1                     |     r2 += var_1h;
    0x000644e0 ldm r4, {r0, r3}                  |     r0 = *(r4);
                                                 |     r3 = *((r4 + 4));
    0x000644e4 add r0, r0, r3                    |     r0 += r3;
    0x000644e8 bl 0x176fc                        |     memcpy (r0, r1, r2);
    0x000644ec ldr r1, [r4, 4]                   |     r1 = *((r4 + 4));
    0x000644f0 ldr r0, [sp, 4]                   |     r0 = s2;
    0x000644f4 add r1, r1, r5                    |     r1 += r5;
    0x000644f8 str r1, [r4, 4]                   |     *((r4 + 4)) = r1;
    0x000644fc bl 0x4b940                        |     g_free ();
    0x00064500 b 0x644b4                         |     goto label_0;
                                                 | }

[*] Function sprintf used 3 times libglib-2.0.so.0.5600.4