[*] 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