[*] Binary protection state of avahi-resolve

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


[*] Function fprintf tear down of avahi-resolve

    ; 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/bin/avahi-resolve @ 0x116f0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000116f0 ()                      | void fcn_000116f0 (int32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_ch;
                                                 |     int32_t var_10h;
                                                 |     int32_t var_14h;
                                                 |     int32_t var_18h;
                                                 |     int32_t var_1ch;
                                                 |     int32_t var_20h;
                                                 |     r0 = arg1;
    0x000116f0 push {r4, r5, r6, r7, r8, lr}     |     
    0x000116f4 subs r8, r0, 0                    |     r8 = r0 - 0;
    0x000116f8 sub sp, sp, 0x20                  |     
                                                 |     if (r8 != r0) {
    0x000116fc bne 0x11714                       |         goto label_3;
                                                 |     }
    0x00011700 ldr r3, [pc, 0x180]               |     r3 = *(0x11884);
    0x00011704 ldr r1, [pc, 0x180]               |     r1 = "sigint_install";
    0x00011708 ldr r0, [pc, 0x180]               |     r0 = "sigint.c";
    0x0001170c mov r2, 0x56                      |     r2 = 0x56;
                                                 |     do {
                                                 | label_0:
    0x00011710 bl 0x10cf8                        |         assert ();
                                                 | label_3:
    0x00011714 ldr r5, [pc, 0x178]               |         r5 = "spoll";
    0x00011718 ldr r4, [r5]                      |         r4 = "spoll";
    0x0001171c cmp r4, 0                         |         
                                                 |         if (r4 == 0) {
    0x00011720 ldrne r3, [pc, 0x160]             |             r3 = "sigint_install";
                                                 |         }
                                                 |         if (r4 == 0) {
    0x00011724 movne r2, 0x57                    |             r2 = 0x57;
                                                 |         }
                                                 |         if (r4 == 0) {
    0x00011728 ldrne r1, [pc, 0x15c]             |             r1 = "sigint.c";
                                                 |         }
                                                 |         if (r4 == 0) {
    0x0001172c ldrne r0, [pc, 0x164]             |             r0 = "!simple_poll";
                                                 |         }
    0x00011730 bne 0x11710                       |         
                                                 |     } while (r4 != 0);
    0x00011734 ldr r6, [pc, 0x160]               |     r6 = "!simple_poll";
    0x00011738 ldr r3, [r6]                      |     r3 = "!simple_poll";
    0x0001173c cmn r3, 1                         |     
                                                 |     if (r3 == 1) {
    0x00011740 bne 0x11750                       |         
    0x00011744 ldr r7, [r6, 4]                   |         r7 = *((r6 + 4));
    0x00011748 cmn r7, 1                         |         
                                                 |         if (r7 == 1) {
    0x0001174c beq 0x11764                       |             goto label_4;
                                                 |         }
                                                 |     }
    0x00011750 ldr r3, [pc, 0x130]               |     r3 = *(0x11884);
    0x00011754 mov r2, 0x58                      |     r2 = 0x58;
    0x00011758 ldr r1, [pc, 0x12c]               |     r1 = "sigint_install";
    0x0001175c ldr r0, [pc, 0x13c]               |     r0 = *(0x1189c);
    0x00011760 b 0x11710                         |     goto label_0;
                                                 | label_4:
    0x00011764 mov r0, r6                        |     r0 = r6;
    0x00011768 bl 0x10bcc                        |     r0 = pipe ();
    0x0001176c cmp r0, 0                         |     
                                                 |     if (r0 >= 0) {
    0x00011770 bge 0x117a4                       |         goto label_5;
                                                 |     }
    0x00011774 ldr r3, [pc, 0x128]               |     r3 = "pipe_fds_0____1__pipe_fds_1____1";
    0x00011778 ldr r4, [r3]                      |     r4 = "pipe_fds_0____1__pipe_fds_1____1";
    0x0001177c bl 0x10ce0                        |     r0 = errno_location ();
    0x00011780 ldr r0, [r0]                      |     r0 = *(r0);
    0x00011784 bl 0x10d28                        |     strerror (r0);
    0x00011788 ldr r1, [pc, 0x118]               |     r1 = stderr;
    0x0001178c mov r2, r0                        |     r2 = r0;
    0x00011790 mov r0, r4                        |     r0 = r4;
    0x00011794 bl 0x10c74                        |     fprintf (r0, r1, r2)
                                                 |     do {
                                                 | label_2:
    0x00011798 mov r0, r7                        |         r0 = r7;
    0x0001179c add sp, sp, 0x20                  |         
    0x000117a0 pop {r4, r5, r6, r7, r8, pc}      |         
                                                 | label_5:
    0x000117a4 ldr r0, [r6]                      |         r0 = *(r6);
    0x000117a8 bl 0x11688                        |         fcn_00011688 (r0);
    0x000117ac ldr r0, [r6, 4]                   |         r0 = *((r6 + 4));
    0x000117b0 bl 0x11688                        |         fcn_00011688 (r0);
    0x000117b4 ldr r3, [pc, 0xf0]                |         r3 = "pipe() failed: %s\n";
    0x000117b8 add r2, r5, 4                     |         r2 = r5 + 4;
    0x000117bc str r3, [sp, 0xc]                 |         var_ch = r3;
    0x000117c0 add r1, sp, 0xc                   |         r1 += var_ch;
    0x000117c4 mov r3, 0x10000000                |         r3 = 0x10000000;
    0x000117c8 mov r0, 2                         |         r0 = 2;
    0x000117cc str r4, [sp, 0x14]                |         var_14h = r4;
    0x000117d0 str r4, [sp, 0x18]                |         var_18h = r4;
    0x000117d4 str r4, [sp, 0x1c]                |         var_1ch = r4;
    0x000117d8 str r3, [sp, 0x10]                |         var_10h = r3;
    0x000117dc bl 0x10d40                        |         r0 = sigaction ();
    0x000117e0 cmp r0, 0                         |         
                                                 |         if (r0 >= 0) {
    0x000117e4 bge 0x11814                       |             goto label_6;
                                                 |         }
                                                 | label_1:
    0x000117e8 ldr r3, [pc, 0xb4]                |         r3 = "pipe_fds_0____1__pipe_fds_1____1";
    0x000117ec ldr r4, [r3]                      |         r4 = "pipe_fds_0____1__pipe_fds_1____1";
    0x000117f0 bl 0x10ce0                        |         r0 = errno_location ();
    0x000117f4 ldr r0, [r0]                      |         r0 = *(r0);
    0x000117f8 bl 0x10d28                        |         strerror (r0);
    0x000117fc ldr r1, [pc, 0xac]                |         r1 = *(0x118ac);
    0x00011800 mov r2, r0                        |         r2 = r0;
    0x00011804 mov r0, r4                        |         r0 = r4;
    0x00011808 bl 0x10c74                        |         r0 = fprintf (r0, r1, r2)
    0x0001180c bl 0x1164c                        |         fcn_0001164c ();
    0x00011810 b 0x11798                         |         
                                                 |     } while (1);
                                                 | label_6:
    0x00011814 add r2, r5, 0x18                  |     r2 = r5 + 0x18;
    0x00011818 add r1, sp, 0xc                   |     r1 += var_ch;
    0x0001181c mov r0, 0xf                       |     r0 = 0xf;
    0x00011820 bl 0x10d40                        |     r0 = sigaction ();
    0x00011824 cmp r0, 0                         |     
                                                 |     if (r0 < 0) {
    0x00011828 bge 0x11840                       |         
    0x0001182c mov r2, r4                        |         r2 = r4;
    0x00011830 add r1, r5, 4                     |         r1 = r5 + 4;
    0x00011834 mov r0, 2                         |         r0 = 2;
    0x00011838 bl 0x10d40                        |         sigaction ();
    0x0001183c b 0x117e8                         |         goto label_1;
                                                 |     }
    0x00011840 mov r0, r8                        |     r0 = r8;
    0x00011844 bl 0x10c98                        |     avahi_simple_poll_get ();
    0x00011848 str r4, [sp]                      |     *(sp) = r4;
    0x0001184c ldr r3, [pc, 0x60]                |     r3 = "sigaction___failed:__s";
    0x00011850 mov r2, 1                         |     r2 = 1;
    0x00011854 ldr r1, [r6]                      |     r1 = *(r6);
    0x00011858 ldr r7, [r0, 4]                   |     r7 = *((r0 + 4));
    0x0001185c blx r7                            |     r0 = uint32_t (*r7)(uint32_t, uint32_t, char*) (r1, r2, "sigaction___failed:__s");
    0x00011860 cmp r0, 0                         |     
    0x00011864 str r0, [r5, 0x2c]                |     *((r5 + 0x2c)) = r0;
                                                 |     if (r0 == 0) {
    0x00011868 strne r8, [r5]                    |         *(r5) = r8;
                                                 |     }
                                                 |     if (r0 != 0) {
    0x0001186c movne r7, r4                      |         r7 = r4;
                                                 |         goto label_7;
                                                 |     }
                                                 |     if (r0 != 0) {
                                                 | label_7:
    0x00011870 bne 0x11798                       |         goto label_2;
                                                 |     }
    0x00011874 ldr r3, [pc, 0xc]                 |     r3 = *(0x11884);
    0x00011878 mov r2, 0x75                      |     r2 = 0x75;
    0x0001187c ldr r1, [pc, 8]                   |     r1 = "sigint.c";
    0x00011880 ldr r0, [pc, 0x30]                |     r0 = *(0x118b4);
    0x00011884 b 0x11710                         |     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/bin/avahi-resolve @ 0x10d64 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) main ()                                          | int32_t main (char ** stream, int32_t argc, char ** argv) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_34h;
                                                             |     r0 = argc;
                                                             |     r1 = argv;
                                                             |     /* [10] -r-x section size 3060 named .text */
    0x00010d64 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00010d68 sub sp, sp, 0x34                              |     
    0x00010d6c mov r5, r1                                    |     r5 = r1;
    0x00010d70 mov r8, r0                                    |     r8 = r0;
    0x00010d74 bl 0x10c50                                    |     avahi_init_i18n ();
    0x00010d78 ldr r1, [pc, 0x40c]                           |     r1 = *(0x11188);
    0x00010d7c mov r0, 6                                     |     r0 = 6;
    0x00010d80 bl 0x10ca4                                    |     setlocale (r0, r1);
    0x00010d84 ldr r6, [r5]                                  |     r6 = *(r5);
    0x00010d88 mov r1, 0x2f                                  |     r1 = 0x2f;
    0x00010d8c mov r0, r6                                    |     r0 = r6;
    0x00010d90 bl 0x10bf0                                    |     strrchr (r0, r1);
    0x00010d94 ldr r1, [pc, 0x3f4]                           |     r1 = *(0x1118c);
    0x00010d98 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010d9c addne r6, r0, 1                               |         r6 = r0 + 1;
                                                             |     }
    0x00010da0 mov r0, r6                                    |     r0 = r6;
    0x00010da4 bl 0x10c08                                    |     r0 = strstr (r0, r1);
    0x00010da8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010dac movne r7, 4                                   |         r7 = 4;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00010db0 bne 0x10dcc                                   |         
    0x00010db4 ldr r1, [pc, 0x3d8]                           |         r1 = "address";
    0x00010db8 mov r0, r6                                    |         r0 = r6;
    0x00010dbc bl 0x10c08                                    |         r0 = strstr (r0, "address");
    0x00010dc0 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00010dc4 movne r7, 3                                   |             r7 = 3;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00010dc8 moveq r7, 0                                   |             r7 = 0;
                                                             |             goto label_5;
                                                             |         }
                                                             |     }
                                                             | label_5:
    0x00010dcc ldr sl, [pc, 0x3c4]                           |     sl = "help";
    0x00010dd0 mov r4, 0                                     |     r4 = 0;
    0x00010dd4 mvn sb, 0                                     |     sb = ~0;
    0x00010dd8 mov fp, r4                                    |     
                                                             | label_0:
    0x00010ddc str fp, [sp]                                  |     *(sp) = fp;
    0x00010de0 mov r3, sl                                    |     r3 = sl;
    0x00010de4 ldr r2, [pc, 0x3b0]                           |     r2 = "help";
    0x00010de8 mov r1, r5                                    |     r1 = r5;
    0x00010dec mov r0, r8                                    |     r0 = r8;
    0x00010df0 bl 0x10d58                                    |     r0 = getopt_long ();
    0x00010df4 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00010df8 bge 0x10e30                                   |         goto label_6;
                                                             |     }
    0x00010dfc sub r3, r7, 3                                 |     r3 = r7 - 3;
    0x00010e00 cmp r3, 1                                     |     
                                                             |     if (r3 > 1) {
    0x00010e04 bhi 0x10ea4                                   |         goto label_7;
                                                             |     }
    0x00010e08 ldr r3, [pc, 0x390]                           |     
    0x00010e0c ldr r3, [r3]                                  |     r3 = "hVnav46";
    0x00010e10 cmp r8, r3                                    |     
                                                             |     if (r8 > r3) {
    0x00010e14 bgt 0x10f4c                                   |         goto label_8;
                                                             |     }
    0x00010e18 ldr r3, [pc, 0x384]                           |     r3 = optind;
    0x00010e1c ldr r0, [pc, 0x384]                           |     r0 = stderr;
    0x00010e20 ldr r1, [r3]                                  |     r1 = optind;
                                                             | label_2:
    0x00010e24 bl 0x10cec                                    |     fputs (r0, r1);
                                                             |     do {
                                                             | label_1:
    0x00010e28 mov r4, 1                                     |         r4 = 1;
    0x00010e2c b 0x11000                                     |         goto label_9;
                                                             | label_6:
    0x00010e30 cmp r0, 0x61                                  |         
                                                             |         if (r0 == 0x61) {
    0x00010e34 beq 0x10e8c                                   |             goto label_10;
                                                             |         }
                                                             |         if (r0 > 0x61) {
    0x00010e38 bgt 0x10e5c                                   |             goto label_11;
                                                             |         }
    0x00010e3c cmp r0, 0x36                                  |         
                                                             |         if (r0 == 0x36) {
    0x00010e40 beq 0x10e9c                                   |             goto label_12;
                                                             |         }
    0x00010e44 cmp r0, 0x56                                  |         
                                                             |         if (r0 == 0x56) {
    0x00010e48 beq 0x10e7c                                   |             goto label_13;
                                                             |         }
    0x00010e4c cmp r0, 0x34                                  |         
    0x00010e50 bne 0x10e28                                   |         
                                                             |     } while (r0 != 0x34);
    0x00010e54 mov sb, 0                                     |     sb = 0;
    0x00010e58 b 0x10ddc                                     |     goto label_0;
                                                             | label_11:
    0x00010e5c cmp r0, 0x6e                                  |     
                                                             |     if (r0 == 0x6e) {
    0x00010e60 beq 0x10e84                                   |         goto label_14;
                                                             |     }
    0x00010e64 cmp r0, 0x76                                  |     
                                                             |     if (r0 == 0x76) {
    0x00010e68 beq 0x10e94                                   |         goto label_15;
                                                             |     }
    0x00010e6c cmp r0, 0x68                                  |     
                                                             |     if (r0 != 0x68) {
    0x00010e70 bne 0x10e28                                   |         goto label_1;
                                                             |     }
    0x00010e74 mov r7, 1                                     |     r7 = 1;
    0x00010e78 b 0x10ddc                                     |     goto label_0;
                                                             | label_13:
    0x00010e7c mov r7, 2                                     |     r7 = 2;
    0x00010e80 b 0x10ddc                                     |     goto label_0;
                                                             | label_14:
    0x00010e84 mov r7, 3                                     |     r7 = 3;
    0x00010e88 b 0x10ddc                                     |     goto label_0;
                                                             | label_10:
    0x00010e8c mov r7, 4                                     |     r7 = 4;
    0x00010e90 b 0x10ddc                                     |     goto label_0;
                                                             | label_15:
    0x00010e94 mov r4, 1                                     |     r4 = 1;
    0x00010e98 b 0x10ddc                                     |     goto label_0;
                                                             | label_12:
    0x00010e9c mov sb, 1                                     |     sb = 1;
    0x00010ea0 b 0x10ddc                                     |     goto label_0;
                                                             | label_7:
    0x00010ea4 sub r3, r7, 1                                 |     r3 = r7 - 1;
    0x00010ea8 cmp r3, 3                                     |     
                                                             |     if (r3 > 3) {
                                                             |         /* switch table (4 cases) at 0x10eb4 */
    0x00010eac ldrls pc, [pc, r3, lsl 2]                     |         offset_0 = r3 << 2;
                                                             |         pc = *((pc + offset_0));
                                                             |     }
    0x00010eb0 b 0x10ec4                                     |     
    0x00010ec4 ldr r3, [pc, 0x2d8]                           |     r3 = optind;
    0x00010ec8 ldr r0, [pc, 0x2dc]                           |     r0 = "Too_few_arguments";
    0x00010ecc ldr r1, [r3]                                  |     r1 = optind;
    0x00010ed0 b 0x10e24                                     |     goto label_2;
    0x00010ed4 ldr r3, [pc, 0x2d4]                           |     r3 = "No command specified.\n";
    0x00010ed8 ldr r1, [pc, 0x2b4]                           |     r1 = "address";
    0x00010edc mov r0, r6                                    |     r0 = r6;
    0x00010ee0 ldr r5, [r3]                                  |     r5 = "No command specified.\n";
    0x00010ee4 bl 0x10c08                                    |     strstr (r0, r1);
    0x00010ee8 ldr r3, [pc, 0x2c4]                           |     r3 = stdout;
    0x00010eec ldr r1, [pc, 0x29c]                           |     r1 = *(0x1118c);
    0x00010ef0 ldr r4, [pc, 0x2c0]                           |     r4 = *(0x111b4);
    0x00010ef4 cmp r0, 0                                     |     
    0x00010ef8 mov r0, r6                                    |     r0 = r6;
                                                             |     if (r0 != 0) {
    0x00010efc moveq r4, r3                                  |         r4 = r3;
                                                             |     }
    0x00010f00 bl 0x10c08                                    |     strstr (r0, r1);
    0x00010f04 ldr r3, [pc, 0x2b0]                           |     r3 = "__n_";
    0x00010f08 ldr r2, [pc, 0x2b0]                           |     r2 = "__a_";
    0x00010f0c str r6, [sp]                                  |     *(sp) = r6;
    0x00010f10 ldr r1, [pc, 0x2ac]                           |     r1 = *(0x111c0);
    0x00010f14 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010f18 movne r0, r3                                  |         r0 = r3;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00010f1c moveq r0, r2                                  |         r0 = r2;
                                                             |     }
    0x00010f20 str r0, [sp, 4]                               |     var_4h = r0;
    0x00010f24 mov r3, r4                                    |     r3 = r4;
    0x00010f28 mov r2, r6                                    |     r2 = r6;
    0x00010f2c mov r0, r5                                    |     r0 = r5;
    0x00010f30 bl 0x10c74                                    |     fprintf (r0, r1, "__a_", "__n_", r4, r5, r6)
                                                             |     do {
                                                             | label_3:
    0x00010f34 mov r4, 0                                     |         r4 = 0;
    0x00010f38 b 0x11000                                     |         goto label_9;
    0x00010f3c mov r1, r6                                    |         r1 = r6;
    0x00010f40 ldr r0, [pc, 0x280]                           |         r0 = "_s__options___s__host_name_...__s__options___s__address_..._______h___help____________Show_this_help_____V___version_________Show_version_____n___name____________Resolve_host_name_____a___address_________Resolve_address_____v___verbose_________Enab";
    0x00010f44 bl 0x10c44                                    |         printf ("_s__options___s__host_name_...__s__options___s__address_..._______h___help____________Show_this_help_____V___version_________Show_version_____n___name____________Resolve_host_name_____a___address_________Resolve_address_____v___verbose_________Enab", r1);
    0x00010f48 b 0x10f34                                     |         
                                                             |     } while (1);
                                                             | label_8:
    0x00010f4c bl 0x10c2c                                    |     avahi_simple_poll_new ();
    0x00010f50 ldr sl, [pc, 0x274]                           |     sl = *(0x000111cc);
    0x00010f54 mov r6, sl                                    |     r6 = sl;
    0x00010f58 cmp r0, 0                                     |     
    0x00010f5c str r0, [sl, 8]                               |     *((sl + 8)) = r0;
                                                             |     if (r0 != 0) {
    0x00010f60 ldreq r3, [pc, 0x23c]                         |         r3 = obj.stderr;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00010f64 ldreq r0, [pc, 0x264]                         |         r0 = "Failed to create simple poll object.\n";
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00010f68 ldreq r1, [r3]                                |         r1 = *(r3);
                                                             |         goto label_16;
                                                             |     }
                                                             |     if (r0 == 0) {
                                                             | label_16:
    0x00010f6c beq 0x10e24                                   |         goto label_2;
                                                             |     }
    0x00010f70 bl 0x116f0                                    |     r0 = fcn_000116f0 (r0);
    0x00010f74 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00010f78 blt 0x10e28                                   |         goto label_1;
                                                             |     }
    0x00010f7c ldr r0, [sl, 8]                               |     r0 = *((sl + 8));
    0x00010f80 bl 0x10c98                                    |     avahi_simple_poll_get ();
    0x00010f84 add r3, sp, 0x18                              |     r3 += var_18h;
    0x00010f88 str r3, [sp]                                  |     *(sp) = r3;
    0x00010f8c mov r3, 0                                     |     r3 = 0;
    0x00010f90 ldr r2, [pc, 0x23c]                           |     r2 = "Failed to create simple poll object.\n";
    0x00010f94 mov r1, r3                                    |     r1 = r3;
    0x00010f98 bl 0x10c38                                    |     r0 = avahi_client_new ();
    0x00010f9c cmp r0, 0                                     |     
    0x00010fa0 str r0, [sl]                                  |     *(sl) = r0;
                                                             |     if (r0 == 0) {
    0x00010fa4 bne 0x10fc8                                   |         
    0x00010fa8 ldr r3, [pc, 0x1f4]                           |         r3 = optind;
    0x00010fac ldr r0, [sp, 0x18]                            |         r0 = var_18h;
    0x00010fb0 ldr r4, [r3]                                  |         r4 = optind;
    0x00010fb4 bl 0x10bfc                                    |         avahi_strerror ();
    0x00010fb8 ldr r1, [pc, 0x218]                           |         r1 = *(0x111d4);
    0x00010fbc mov r2, r0                                    |         r2 = r0;
                                                             | label_4:
    0x00010fc0 mov r0, r4                                    |         r0 = r4;
    0x00010fc4 b 0x11124                                     |         goto label_17;
                                                             |     }
    0x00010fc8 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00010fcc beq 0x11078                                   |         goto label_18;
                                                             |     }
    0x00010fd0 bl 0x10c80                                    |     avahi_client_get_version_string ();
    0x00010fd4 ldr fp, [pc, 0x1c8]                           |     fp = obj.stderr;
    0x00010fd8 subs r2, r0, 0                                |     r2 = r0 - 0;
                                                             |     if (r2 != r0) {
    0x00010fdc bne 0x11038                                   |         goto label_19;
                                                             |     }
    0x00010fe0 ldr r0, [sl]                                  |     r0 = *(sl);
    0x00010fe4 ldr r5, [fp]                                  |     r5 = *(fp);
    0x00010fe8 bl 0x10d34                                    |     avahi_client_errno ();
    0x00010fec bl 0x10bfc                                    |     avahi_strerror ();
    0x00010ff0 ldr r1, [pc, 0x1e4]                           |     r1 = "Failed_to_create_client_object:__s";
    0x00010ff4 mov r2, r0                                    |     r2 = r0;
                                                             |     do {
    0x00010ff8 mov r0, r5                                    |         r0 = r5;
    0x00010ffc bl 0x10c74                                    |         fprintf (r0, "Failed_to_create_client_object:__s", r2)
                                                             | label_9:
    0x00011000 ldr r3, [pc, 0x1c4]                           |         r3 = "_s_0.7";
    0x00011004 ldr r0, [r3]                                  |         r0 = "_s_0.7";
    0x00011008 mov r5, r3                                    |         r5 = r3;
    0x0001100c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011010 beq 0x11018                                   |             
    0x00011014 bl 0x10bc0                                    |             avahi_client_free ();
                                                             |         }
    0x00011018 bl 0x118bc                                    |         fcn_000118bc ();
    0x0001101c ldr r0, [r5, 8]                               |         r0 = *((r5 + 8));
    0x00011020 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011024 beq 0x1102c                                   |             
    0x00011028 bl 0x10cc8                                    |             avahi_simple_poll_free ();
                                                             |         }
    0x0001102c mov r0, r4                                    |         r0 = r4;
    0x00011030 add sp, sp, 0x34                              |         
    0x00011034 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_19:
    0x00011038 ldr r0, [sl]                                  |         r0 = *(sl);
    0x0001103c str r2, [sp, 0x14]                            |         var_14h = r2;
    0x00011040 bl 0x10d04                                    |         avahi_client_get_host_name_fqdn ();
    0x00011044 ldr r2, [sp, 0x14]                            |         r2 = var_14h;
    0x00011048 subs r3, r0, 0                                |         r3 = r0 - 0;
                                                             |         if (r3 != r0) {
    0x0001104c bne 0x1106c                                   |             goto label_20;
                                                             |         }
    0x00011050 ldr r0, [sl]                                  |         r0 = *(sl);
    0x00011054 ldr r5, [fp]                                  |         r5 = *(fp);
    0x00011058 bl 0x10d34                                    |         avahi_client_errno ();
    0x0001105c bl 0x10bfc                                    |         avahi_strerror ();
    0x00011060 ldr r1, [pc, 0x178]                           |         r1 = "Failed_to_query_version_string:__s";
    0x00011064 mov r2, r0                                    |         r2 = r0;
    0x00011068 b 0x10ff8                                     |         
                                                             |     } while (1);
                                                             | label_20:
    0x0001106c ldr r1, [pc, 0x170]                           |     r1 = "Failed_to_query_host_name:__s";
    0x00011070 ldr r0, [fp]                                  |     r0 = *(fp);
    0x00011074 bl 0x10c74                                    |     fprintf (r0, "Failed_to_query_host_name:__s")
                                                             | label_18:
    0x00011078 mov r3, 0                                     |     r3 = 0;
    0x0001107c str r3, [r6, 4]                               |     *((r6 + 4)) = r3;
    0x00011080 ldr r3, [pc, 0x118]                           |     r3 = "hVnav46";
    0x00011084 ldr sl, [pc, 0x15c]                           |     sl = "Server version: %s; Host name: %s\n";
    0x00011088 ldr r4, [r3]                                  |     r4 = "hVnav46";
    0x0001108c ldr fp, [pc, 0x158]                           |     fp = *(0x111e8);
    0x00011090 add r5, r5, r4, lsl 2                         |     r5 += (r4 << 2);
                                                             |     do {
    0x00011094 cmp r4, r8                                    |         
                                                             |         if (r4 >= r8) {
    0x00011098 blt 0x110a8                                   |             
    0x0001109c ldr r0, [r6, 8]                               |             r0 = *((r6 + 8));
    0x000110a0 bl 0x10d4c                                    |             avahi_simple_poll_loop ();
    0x000110a4 b 0x10f34                                     |             goto label_3;
                                                             |         }
    0x000110a8 cmp r7, 3                                     |         
                                                             |         if (r7 == 3) {
    0x000110ac bne 0x110fc                                   |             
    0x000110b0 mov r3, 0                                     |             r3 = 0;
    0x000110b4 mvn r2, 0                                     |             r2 = ~0;
    0x000110b8 str r3, [sp, 0xc]                             |             var_ch = r3;
    0x000110bc stmib sp, {r3, fp}                            |             __asm ("stmib sp, {r3, fp}");
    0x000110c0 str sb, [sp]                                  |             *(sp) = sb;
    0x000110c4 mov r1, r2                                    |             r1 = r2;
    0x000110c8 ldr r3, [r5]                                  |             r3 = *(r5);
    0x000110cc ldr r0, [r6]                                  |             r0 = *(r6);
    0x000110d0 bl 0x10cb0                                    |             r0 = avahi_host_name_resolver_new ();
    0x000110d4 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000110d8 bne 0x11174                                   |                 goto label_21;
                                                             |             }
    0x000110dc ldr r3, [pc, 0xc0]                            |             r3 = optind;
    0x000110e0 ldr r0, [r6]                                  |             r0 = *(r6);
    0x000110e4 ldr r4, [r3]                                  |             r4 = optind;
    0x000110e8 bl 0x10d34                                    |             avahi_client_errno ();
    0x000110ec bl 0x10bfc                                    |             avahi_strerror ();
    0x000110f0 ldr r1, [pc, 0xf8]                            |             r1 = *(0x111ec);
    0x000110f4 mov r2, r0                                    |             r2 = r0;
    0x000110f8 b 0x10fc0                                     |             goto label_4;
                                                             |         }
    0x000110fc add r2, sp, 0x1c                              |         r2 += var_1ch;
    0x00011100 mvn r1, 0                                     |         r1 = ~0;
    0x00011104 ldr r0, [r5]                                  |         r0 = *(r5);
    0x00011108 bl 0x10d10                                    |         r0 = avahi_address_parse ();
    0x0001110c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00011110 bne 0x1112c                                   |             
    0x00011114 ldr r3, [pc, 0x88]                            |             r3 = optind;
    0x00011118 ldr r2, [r5]                                  |             r2 = *(r5);
    0x0001111c ldr r1, [pc, 0xd0]                            |             r1 = "Failed_to_create_host_name_resolver:__s";
    0x00011120 ldr r0, [r3]                                  |             r0 = optind;
                                                             | label_17:
    0x00011124 bl 0x10c74                                    |             fprintf (r0, "Failed_to_create_host_name_resolver:__s", r2, r3)
    0x00011128 b 0x10e28                                     |             goto label_1;
                                                             |         }
    0x0001112c mov r3, 0                                     |         r3 = 0;
    0x00011130 mvn r2, 0                                     |         r2 = ~0;
    0x00011134 str r3, [sp, 8]                               |         var_8h = r3;
    0x00011138 stm sp, {r3, sl}                              |         *(sp) = r3;
                                                             |         *((sp + 4)) = sl;
    0x0001113c ldr r0, [r6]                                  |         r0 = *(r6);
    0x00011140 add r3, sp, 0x1c                              |         r3 += var_1ch;
    0x00011144 mov r1, r2                                    |         r1 = r2;
    0x00011148 bl 0x10cd4                                    |         r0 = avahi_address_resolver_new ();
    0x0001114c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00011150 bne 0x11174                                   |             
    0x00011154 ldr r3, [pc, 0x48]                            |             r3 = optind;
    0x00011158 ldr r0, [r6]                                  |             r0 = *(r6);
    0x0001115c ldr r4, [r3]                                  |             r4 = optind;
    0x00011160 bl 0x10d34                                    |             avahi_client_errno ();
    0x00011164 bl 0x10bfc                                    |             avahi_strerror ();
    0x00011168 ldr r1, [pc, 0x88]                            |             r1 = "Failed to parse address '%s'\n";
    0x0001116c mov r2, r0                                    |             r2 = r0;
    0x00011170 b 0x10fc0                                     |             goto label_4;
                                                             |         }
                                                             | label_21:
    0x00011174 ldr r3, [r6, 4]                               |         r3 = *((r6 + 4));
    0x00011178 add r4, r4, 1                                 |         r4++;
    0x0001117c add r3, r3, 1                                 |         r3++;
    0x00011180 str r3, [r6, 4]                               |         *((r6 + 4)) = r3;
    0x00011184 add r5, r5, 4                                 |         r5 += 4;
    0x00011188 b 0x11094                                     |         
                                                             |     } while (1);
                                                             | }

[*] Function fprintf used 7 times avahi-resolve