[*] Binary protection state of libcgi_header.so.0.0.13
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function printf tear down of libcgi_header.so.0.0.13
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libcgi_header.so.0.0.13 @ 0xbe8 */
| #include <stdint.h>
|
; (fcn) sym.cgi_header_create_response_header () | void cgi_header_create_response_header (int16_t arg1, int16_t arg2, int16_t arg3) {
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x00000be8 mvnsmi lr, sp, lsr 18 | __asm ("mvnsmi lr, sp, lsr 18");
0x00000bec mov r5, r2 | r5 = r2;
0x00000bee mov r4, r0 | r4 = r0;
0x00000bf0 mov r2, r0 | r2 = r0;
| if (r0 == 0) {
0x00000bf2 cbz r0, 0xc5a | goto label_1;
| }
0x00000bf4 ldr r0, [pc, 0x80] |
0x00000bf6 mov r6, r1 | r6 = r1;
0x00000bf8 ldr r1, [pc, 0x80] |
0x00000bfa add r0, pc | r0 = 0x1876;
0x00000bfc add r1, pc | r1 = 0x187c;
0x00000bfe blx 0x940 | r0 = g_strdup_printf ()
0x00000c02 mov r7, r0 | r7 = r0;
| if (r5 != 0) {
0x00000c04 cbnz r5, 0xc60 | goto label_2;
| }
0x00000c06 cbz r6, 0xc18 |
| while (r6 != 0) {
0x00000c08 ldr r1, [pc, 0x74] |
0x00000c0a mov r2, r6 | r2 = r6;
0x00000c0c ldr r0, [pc, 0x74] |
0x00000c0e add r1, pc | r1 = 0x1892;
0x00000c10 add r0, pc | r0 = 0x1898;
0x00000c12 blx 0x940 | r0 = g_strdup_printf ()
0x00000c16 mov r6, r0 | r6 = r0;
| label_0:
0x00000c18 mov r1, r5 | r1 = r5;
0x00000c1a movs r2, 0 | r2 = 0;
0x00000c1c mov r0, r7 | r0 = r7;
0x00000c1e blx 0x910 | g_strconcat ();
0x00000c22 mov r1, r6 | r1 = r6;
0x00000c24 movs r2, 0 | r2 = 0;
0x00000c26 mov r4, r0 | r4 = r0;
0x00000c28 blx 0x910 | g_strconcat ();
0x00000c2c ldr r1, [pc, 0x58] |
0x00000c2e movs r2, 0 | r2 = 0;
0x00000c30 mov r8, r0 | r8 = r0;
0x00000c32 add r1, pc | r1 = 0x18be;
0x00000c34 blx 0x910 | r0 = g_strconcat ();
0x00000c38 mov r2, r0 | r2 = r0;
0x00000c3a mov r0, r4 | r0 = r4;
0x00000c3c mov r4, r2 | r4 = r2;
0x00000c3e blx 0x898 | g_free ();
0x00000c42 mov r0, r8 | r0 = r8;
0x00000c44 blx 0x898 | g_free ();
0x00000c48 mov r0, r6 | r0 = r6;
0x00000c4a blx 0x898 | g_free ();
0x00000c4e mov r0, r7 | r0 = r7;
0x00000c50 blx 0x898 | g_free ();
0x00000c54 mov r0, r5 | r0 = r5;
0x00000c56 blx 0x898 | g_free ();
| label_1:
0x00000c5a mov r0, r4 | r0 = r4;
0x00000c5c pop.w {r4, r5, r6, r7, r8, pc} |
| label_2:
0x00000c60 ldr r1, [pc, 0x28] |
0x00000c62 mov r2, r5 | r2 = r5;
0x00000c64 ldr r0, [pc, 0x28] |
0x00000c66 add r1, pc | r1 = 0x18f6;
0x00000c68 add r0, pc | r0 = 0x18fc;
0x00000c6a blx 0x940 | r0 = g_strdup_printf ()
0x00000c6e mov r5, r0 | r5 = r0;
0x00000c70 cmp r6, 0 |
0x00000c72 bne 0xc08 |
| }
0x00000c74 b 0xc18 | goto label_0;
| }
[*] Function printf used 4 times libcgi_header.so.0.0.13