[*] Binary protection state of libavahi-client.so.3.2.9
Partial RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function printf tear down of libavahi-client.so.3.2.9
; 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/libavahi-client.so.3.2.9 @ 0x9ba0 */
| #include <stdint.h>
|
; (fcn) sym.avahi_xdg_config_open () | void avahi_xdg_config_open (int32_t arg1) {
| int32_t var_0h;
| int32_t var_804h;
| char * var_10h;
| char * s;
| int32_t var_1800h;
| int32_t var_14h;
| r0 = arg1;
0x00009ba0 push {r4, r5, r6, r7, r8, sb, lr} |
0x00009ba4 sub sp, sp, 0x1800 |
0x00009ba8 sub sp, sp, 0x14 |
0x00009bac add r4, sp, 0x810 | r4 += s;
0x00009bb0 mov r3, 0 | r3 = 0;
0x00009bb4 subs r6, r0, 0 | r6 = r0 - 0;
0x00009bb8 str r3, [r4, -0x804] | var_804h = r3;
| if (r6 == r0) {
0x00009bbc bne 0x9be0 |
0x00009bc0 ldr r3, [pc, 0x180] | r3 = *(0x9d44);
0x00009bc4 ldr r1, [pc, 0x180] | r1 = *(0x9d48);
0x00009bc8 ldr r0, [pc, 0x180] | r0 = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
0x00009bcc add r3, pc, r3 | r3 = pc + r3;
0x00009bd0 mov r2, 0x29 | r2 = 0x29;
0x00009bd4 add r1, pc, r1 | r1 = pc + r1;
0x00009bd8 add r0, pc, r0 | r0 = pc + r0;
0x00009bdc bl 0x29a4 | assert ();
| }
0x00009be0 ldr r0, [pc, 0x16c] | r0 = *(0x9d50);
0x00009be4 add r0, pc, r0 | r0 = pc + r0;
0x00009be8 bl 0x2a7c | r0 = getenv (r0);
0x00009bec subs r3, r0, 0 | r3 = r0 - 0;
| if (r3 != r0) {
0x00009bf0 beq 0x9c54 |
0x00009bf4 ldrb r2, [r3] | r2 = *(r3);
0x00009bf8 cmp r2, 0 |
| if (r2 == 0) {
0x00009bfc beq 0x9c54 | goto label_5;
| }
0x00009c00 ldr r2, [pc, 0x150] | r2 = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
0x00009c04 str r6, [sp] | *(sp) = r6;
0x00009c08 add r2, pc, r2 | r2 = pc + r2;
| label_0:
0x00009c0c mov r1, 0x1000 | r1 = 0x1000;
0x00009c10 mov r0, r4 | r0 = r4;
0x00009c14 bl 0x26bc | snprintf (r0, r1, r2, r3)
0x00009c18 ldr r1, [pc, 0x13c] | r1 = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
0x00009c1c mov r0, r4 | r0 = r4;
0x00009c20 add r1, pc, r1 | r1 = pc + r1;
0x00009c24 bl 0x2860 | fopen64 ();
0x00009c28 subs r3, r0, 0 | r3 -= s;
| if (r3 == s) {
0x00009c2c bne 0x9c44 |
0x00009c30 bl 0x298c | r0 = errno_location ();
0x00009c34 ldr r3, [r0] | r3 = *(r0);
0x00009c38 cmp r3, 2 |
| if (r3 == 2) {
0x00009c3c beq 0x9c68 | goto label_6;
| }
| label_1:
0x00009c40 mov r3, 0 | r3 = 0;
| }
| label_2:
0x00009c44 mov r0, r3 | r0 = r3;
0x00009c48 add sp, sp, 0x1800 |
0x00009c4c add sp, sp, 0x14 |
0x00009c50 pop {r4, r5, r6, r7, r8, sb, pc} |
| }
| label_5:
0x00009c54 ldr r0, [pc, 0x104] | r0 = *(0x9d5c);
0x00009c58 add r0, pc, r0 | r0 = pc + r0;
0x00009c5c bl 0x2a7c | r0 = getenv (r0);
0x00009c60 subs r3, r0, 0 | r3 = r0 - 0;
0x00009c64 bne 0x9c88 |
| while (r2 == 0) {
| label_6:
0x00009c68 ldr r0, [pc, 0xf4] | r0 = *(0x9d60);
0x00009c6c add r0, pc, r0 | r0 = pc + r0;
0x00009c70 bl 0x2a7c | r0 = getenv (r0);
0x00009c74 subs r3, r0, 0 | r3 = r0 - 0;
| if (r3 != r0) {
0x00009c78 bne 0x9ca4 | goto label_7;
| }
0x00009c7c ldr r3, [pc, 0xe4] | r3 = "libdbus_1.so.3";
0x00009c80 add r3, pc, r3 | r3 = pc + r3;
0x00009c84 b 0x9cb0 | goto label_4;
0x00009c88 ldrb r2, [r3] | r2 = *(r3);
0x00009c8c cmp r2, 0 |
0x00009c90 beq 0x9c68 |
| }
0x00009c94 ldr r2, [pc, 0xd0] | r2 = *(0x9d68);
0x00009c98 str r6, [sp] | *(sp) = r6;
0x00009c9c add r2, pc, r2 | r2 = pc + r2;
0x00009ca0 b 0x9c0c | goto label_0;
| label_7:
0x00009ca4 ldrb r2, [r3] | r2 = *(r3);
0x00009ca8 cmp r2, 0 |
| if (r2 == 0) {
0x00009cac beq 0x9d3c | goto label_8;
| }
| label_4:
0x00009cb0 ldr r2, [pc, 0xb8] | r2 = "on_set_dispatch_status_function";
0x00009cb4 add r5, sp, 0x10 | r5 += var_10h;
0x00009cb8 add r2, pc, r2 | r2 = pc + r2;
0x00009cbc mov r1, 0x800 | r1 = 0x800;
0x00009cc0 mov r0, r5 | r0 = r5;
0x00009cc4 bl 0x26bc | snprintf (r0, r1, r2, r3)
0x00009cc8 ldr r1, [pc, 0xa4] | r1 = *(0x9d70);
0x00009ccc sub r7, r5, 4 | r7 -= var_804h;
0x00009cd0 mov r0, r5 | r0 = r5;
0x00009cd4 mov r2, r7 | r2 = r7;
0x00009cd8 add r1, pc, r1 | r1 = pc + r1;
0x00009cdc bl 0x27b8 | strtok_r ();
0x00009ce0 ldr r5, [pc, 0x90] | r5 = *(0x9d74);
0x00009ce4 ldr r8, [pc, 0x90] | r8 = "meout_set_data";
0x00009ce8 ldr sb, [pc, 0x90] | sb = *(0x9d7c);
0x00009cec add r5, pc, r5 | r5 = pc + r5;
0x00009cf0 add r8, pc, r8 | r8 = pc + r8;
0x00009cf4 add sb, pc, sb | sb = pc + sb;
| label_3:
0x00009cf8 cmp r0, 0 |
| if (r0 == 0) {
0x00009cfc beq 0x9c40 | goto label_1;
| }
0x00009d00 mov r3, r0 | r3 = r0;
0x00009d04 mov r2, r5 | r2 = r5;
0x00009d08 mov r1, 0x1000 | r1 = 0x1000;
0x00009d0c str r6, [sp] | *(sp) = r6;
0x00009d10 mov r0, r4 | r0 = r4;
0x00009d14 bl 0x26bc | snprintf (r0, r1, r2, r3)
0x00009d18 mov r1, r8 | r1 = r8;
0x00009d1c mov r0, r4 | r0 = r4;
0x00009d20 bl 0x2860 | fopen64 ();
0x00009d24 subs r3, r0, 0 | r3 -= s;
| if (r3 != s) {
0x00009d28 bne 0x9c44 | goto label_2;
| }
0x00009d2c mov r2, r7 | r2 = r7;
0x00009d30 mov r1, sb | r1 = sb;
0x00009d34 bl 0x27b8 | strtok_r ();
0x00009d38 b 0x9cf8 | goto label_3;
| label_8:
0x00009d3c ldr r3, [pc, 0x40] | r3 = *(0x9d80);
0x00009d40 add r3, pc, r3 | r3 = pc + r3;
0x00009d44 b 0x9cb0 | goto label_4;
| }
[*] Function printf used 4 times libavahi-client.so.3.2.9