[*] Binary protection state of dbus-cleanup-sockets

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


[*] Function strcat tear down of dbus-cleanup-sockets

    ; 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/dbus-cleanup-sockets @ 0x10844 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) main ()                                          | int32_t main (int32_t argc, char ** argv) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     void * addr;
                                                             |     char * dest;
                                                             |     int32_t var_88h;
                                                             |     int32_t var_8ch;
                                                             |     r0 = argc;
                                                             |     r1 = argv;
                                                             |     /* [10] -r-x section size 1804 named .text */
    0x00010844 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00010848 ldr sl, [pc, 0x550]                           |     sl = "__version";
    0x0001084c ldr fp, [pc, 0x550]                           |     fp = "__version";
    0x00010850 mov r4, 0                                     |     r4 = 0;
    0x00010854 sub sp, sp, 0x8c                              |     
    0x00010858 mov r8, r0                                    |     r8 = r0;
    0x0001085c mov sb, r1                                    |     sb = r1;
    0x00010860 mov r7, r4                                    |     r7 = r4;
    0x00010864 mov r6, 1                                     |     r6 = 1;
                                                             | label_1:
    0x00010868 cmp r6, r8                                    |     
                                                             |     if (r6 >= r8) {
    0x0001086c blt 0x108c4                                   |         
    0x00010870 ldr r3, [pc, 0x530]                           |         r3 = *(0x10da4);
    0x00010874 cmp r4, 0                                     |         
    0x00010878 mov r0, 8                                     |         r0 = 8;
                                                             |         if (r4 != 0) {
    0x0001087c moveq r4, r3                                  |             r4 = r3;
                                                             |         }
    0x00010880 bl 0x10f18                                    |         r0 = fcn_00010f18 (r0);
    0x00010884 mov r5, r0                                    |         r5 = r0;
    0x00010888 mov r0, r4                                    |         r0 = r4;
    0x0001088c bl 0x107cc                                    |         r0 = opendir ();
    0x00010890 subs sb, r0, 0                                |         sb = r0 - 0;
                                                             |         if (sb != r0) {
    0x00010894 bne 0x10b2c                                   |             goto label_10;
                                                             |         }
    0x00010898 ldr r3, [pc, 0x50c]                           |         r3 = "/tmp";
    0x0001089c ldr r5, [r3]                                  |         r5 = "/tmp";
    0x000108a0 bl 0x107e4                                    |         r0 = errno_location ();
    0x000108a4 ldr r0, [r0]                                  |         r0 = *(r0);
    0x000108a8 bl 0x1070c                                    |         strerror (r0);
    0x000108ac mov r2, r4                                    |         r2 = r4;
    0x000108b0 ldr r1, [pc, 0x4f8]                           |         r1 = stderr;
    0x000108b4 mov r3, r0                                    |         r3 = r0;
    0x000108b8 mov r0, r5                                    |         r0 = r5;
    0x000108bc bl 0x10754                                    |         fprintf (r0, r1, r2, r3);
    0x000108c0 b 0x1097c                                     |         goto label_3;
                                                             |     }
    0x000108c4 ldr r5, [sb, r6, lsl 2]                       |     offset_0 = r6 << 2;
                                                             |     r5 = *((sb + offset_0));
    0x000108c8 ldr r1, [pc, 0x4e4]                           |     r1 = "Failed_to_open_directory__s:__s";
    0x000108cc mov r0, r5                                    |     r0 = r5;
    0x000108d0 bl 0x107d8                                    |     r0 = strcmp (r0, "Failed_to_open_directory__s:__s");
    0x000108d4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000108d8 beq 0x10904                                   |         
    0x000108dc ldr r1, [pc, 0x4d4]                           |         r1 = "__help";
    0x000108e0 mov r0, r5                                    |         r0 = r5;
    0x000108e4 bl 0x107d8                                    |         r0 = strcmp (r0, "__help");
    0x000108e8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000108ec beq 0x10904                                   |             goto label_11;
                                                             |         }
    0x000108f0 ldr r1, [pc, 0x4c4]                           |         r1 = *(0x10db8);
    0x000108f4 mov r0, r5                                    |         r0 = r5;
    0x000108f8 bl 0x107d8                                    |         r0 = strcmp (r0, r1);
    0x000108fc cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00010900 bne 0x1091c                                   |             goto label_12;
                                                             |         }
                                                             |     }
                                                             | label_11:
    0x00010904 ldr r3, [pc, 0x4a0]                           |     r3 = "/tmp";
    0x00010908 ldr r0, [pc, 0x4b0]                           |     r0 = "__";
    0x0001090c ldr r1, [r3]                                  |     r1 = "/tmp";
    0x00010910 bl 0x10808                                    |     fputs ("__", "/tmp");
                                                             |     do {
    0x00010914 mov r0, 0                                     |         r0 = 0;
                                                             | label_0:
    0x00010918 bl 0x107f0                                    |         exit (r0);
                                                             | label_12:
    0x0001091c mov r1, sl                                    |         r1 = sl;
    0x00010920 mov r0, r5                                    |         r0 = r5;
    0x00010924 bl 0x107d8                                    |         r0 = strcmp (r0, r1);
    0x00010928 subs r3, r0, 0                                |         r3 = r0 - 0;
                                                             |         if (r3 != r0) {
    0x0001092c bne 0x10944                                   |             goto label_13;
                                                             |         }
    0x00010930 ldr r1, [pc, 0x48c]                           |         r1 = "dbus-cleanup-sockets [--version] [--help] <socketdir>\n";
    0x00010934 ldr r0, [pc, 0x48c]                           |         r0 = "_.12.10";
    0x00010938 str r3, [sp, 0xc]                             |         var_ch = r3;
    0x0001093c bl 0x106f4                                    |         printf ("_.12.10", "dbus-cleanup-sockets [--version] [--help] <socketdir>\n", r2, r3);
    0x00010940 b 0x10914                                     |         
                                                             |     } while (1);
                                                             | label_13:
    0x00010944 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00010948 bne 0x10984                                   |         goto label_14;
                                                             |     }
    0x0001094c mov r1, fp                                    |     r1 = fp;
    0x00010950 mov r0, r5                                    |     r0 = r5;
    0x00010954 bl 0x107d8                                    |     r0 = strcmp (r0, r1);
    0x00010958 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001095c beq 0x1099c                                   |         goto label_15;
                                                             |     }
    0x00010960 ldrb r3, [r5]                                 |     r3 = *(r5);
    0x00010964 cmp r3, 0x2d                                  |     
                                                             |     if (r3 != 0x2d) {
    0x00010968 bne 0x109a0                                   |         goto label_16;
                                                             |     }
    0x0001096c ldr r3, [pc, 0x438]                           |     r3 = "/tmp";
    0x00010970 ldr r0, [pc, 0x448]                           |     r0 = "__";
    0x00010974 ldr r1, [r3]                                  |     r1 = "/tmp";
                                                             |     do {
    0x00010978 bl 0x10808                                    |         fputs ("__", "/tmp");
                                                             | label_3:
    0x0001097c mov r0, 1                                     |         r0 = 1;
    0x00010980 b 0x10918                                     |         goto label_0;
                                                             | label_14:
    0x00010984 cmp r4, 0                                     |         
                                                             |         if (r4 == 0) {
    0x00010988 beq 0x109a8                                   |             goto label_17;
                                                             |         }
    0x0001098c ldr r3, [pc, 0x418]                           |         r3 = "/tmp";
    0x00010990 ldr r0, [pc, 0x434]                           |         r0 = "D_Bus_Socket_Cleanup_Utility__sCopyright__C__2003_Red_Hat__Inc.Copyright__C__2002_Michael_MeeksThis_is_free_software__see_the_source_for_copying_conditions.There_is_NO_warranty__not_even_for_MERCHANTABILITY_or_FITNESS_FOR_A_PARTICULAR_PURPOSE.";
    0x00010994 ldr r1, [r3]                                  |         r1 = "/tmp";
    0x00010998 b 0x10978                                     |         
                                                             |     } while (1);
                                                             | label_15:
    0x0001099c mov r7, 1                                     |     r7 = 1;
                                                             |     do {
                                                             | label_16:
    0x000109a0 add r6, r6, 1                                 |         r6++;
    0x000109a4 b 0x10868                                     |         goto label_1;
                                                             | label_17:
    0x000109a8 mov r4, r5                                    |         r4 = r5;
    0x000109ac b 0x109a0                                     |         
                                                             |     } while (1);
                                                             |     do {
    0x000109b0 add r7, r0, 0x13                              |         r7 = r0 + 0x13;
    0x000109b4 mov r2, 5                                     |         r2 = 5;
    0x000109b8 mov r1, sl                                    |         r1 = sl;
    0x000109bc mov r0, r7                                    |         r0 = r7;
    0x000109c0 bl 0x10778                                    |         r0 = strncmp (r0, r1, r2);
    0x000109c4 subs r2, r0, 0                                |         r2 = r0 - 0;
    0x000109c8 str r2, [sp, 0x10]                            |         var_10h = r2;
                                                             |         if (r2 == r0) {
    0x000109cc bne 0x10a60                                   |             
    0x000109d0 mov r0, 0x10                                  |             r0 = 0x10;
    0x000109d4 bl 0x10f18                                    |             r0 = fcn_00010f18 (r0);
    0x000109d8 mov r6, r0                                    |             r6 = r0;
    0x000109dc mov r0, r4                                    |             r0 = r4;
    0x000109e0 bl 0x107fc                                    |             strlen (r0);
    0x000109e4 str r0, [sp, 0xc]                             |             var_ch = r0;
    0x000109e8 mov r0, r7                                    |             r0 = r7;
    0x000109ec bl 0x107fc                                    |             strlen (r0);
    0x000109f0 ldr r3, [sp, 0xc]                             |             r3 = var_ch;
    0x000109f4 add r0, r3, r0                                |             r0 = r3 + r0;
    0x000109f8 add r0, r0, 2                                 |             r0 += 2;
    0x000109fc bl 0x10f18                                    |             fcn_00010f18 (r0);
    0x00010a00 mov r1, r4                                    |             r1 = r4;
    0x00010a04 str r0, [r6]                                  |             *(r6) = r0;
    0x00010a08 bl 0x106e8                                    |             strcpy (r0, r1);
    0x00010a0c ldr r1, [pc, 0x3bc]                           |             r1 = "dbus_cleanup_sockets_only_supports_a_single_directory_name";
    0x00010a10 ldr r0, [r6]                                  |             r0 = *(r6);
    0x00010a14 bl 0x10760                                    |             strcat (r0, "dbus_cleanup_sockets_only_supports_a_single_directory_name")
    0x00010a18 mov r1, r7                                    |             r1 = r7;
    0x00010a1c ldr r0, [r6]                                  |             r0 = *(r6);
    0x00010a20 bl 0x10760                                    |             strcat (r0, r1)
    0x00010a24 ldr r2, [sp, 0x10]                            |             r2 = var_10h;
    0x00010a28 mvn r3, 0                                     |             r3 = ~0;
    0x00010a2c cmp r8, fp                                    |             
    0x00010a30 str r3, [r6, 4]                               |             *((r6 + 4)) = r3;
    0x00010a34 str r2, [r6, 8]                               |             *((r6 + 8)) = r2;
    0x00010a38 str r2, [r6, 0xc]                             |             *((r6 + 0xc)) = r2;
                                                             |             if (r8 == fp) {
    0x00010a3c bne 0x10a58                                   |                 
    0x00010a40 lsl r8, r8, 1                                 |                 r8 <<= 1;
    0x00010a44 lsls r7, r8, 2                                |                 r7 = r8 << 2;
                                                             |                 if (r7 != r8) {
    0x00010a48 bne 0x10b00                                   |                     goto label_18;
                                                             |                 }
    0x00010a4c mov r0, r5                                    |                 r0 = r5;
    0x00010a50 bl 0x10838                                    |                 free (r0);
    0x00010a54 mov r5, r7                                    |                 r5 = r7;
                                                             |             }
                                                             | label_2:
    0x00010a58 str r6, [r5, fp, lsl 2]                       |             offset_1 = fp << 2;
                                                             |             *((r5 + offset_1)) = r6;
    0x00010a5c add fp, fp, 1                                 |             
                                                             |         }
                                                             | label_4:
    0x00010a60 mov r0, sb                                    |         r0 = sb;
    0x00010a64 bl 0x107a8                                    |         r0 = readdir64 ();
    0x00010a68 cmp r0, 0                                     |         
    0x00010a6c bne 0x109b0                                   |         
                                                             |     } while (r0 != 0);
    0x00010a70 mov r0, sb                                    |     r0 = sb;
    0x00010a74 bl 0x10814                                    |     closedir ();
    0x00010a78 ldr sb, [pc, 0x354]                           |     sb = *(0x00010dd4);
    0x00010a7c ldr r8, [pc, 0x328]                           |     r8 = "/tmp";
                                                             | label_5:
    0x00010a80 mov r3, 0                                     |     r3 = 0;
    0x00010a84 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x00010a88 str r3, [sp, 0xc]                             |     var_ch = r3;
                                                             | label_6:
    0x00010a8c ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00010a90 cmp fp, r3                                    |     
                                                             |     if (fp != r3) {
    0x00010a94 bne 0x10b54                                   |         goto label_19;
                                                             |     }
    0x00010a98 ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x00010a9c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00010aa0 bne 0x10b3c                                   |         goto label_20;
                                                             |     }
    0x00010aa4 ldr r2, [pc, 0x328]                           |     r2 = *(0x10dd0);
    0x00010aa8 cmp r5, 0                                     |     
    0x00010aac ldr r3, [r2, 8]                               |     
    0x00010ab0 ldr r1, [r2]                                  |     r1 = *(0x10dd0);
    0x00010ab4 sub r3, fp, r3                                |     r3 = fp - r3;
    0x00010ab8 sub r3, r3, r1                                |     r3 -= r1;
    0x00010abc ldr r1, [r2, 4]                               |     r1 = *(0x10dd4);
    0x00010ac0 mov r6, r2                                    |     r6 = r2;
    0x00010ac4 add r3, r3, r1                                |     r3 = 0x10dd8;
    0x00010ac8 str r3, [r2, 4]                               |     *((r2 + 4)) = r3;
                                                             |     if (r5 == 0) {
    0x00010acc movne r8, r5                                  |         r8 = r5;
                                                             |     }
                                                             |     if (r5 == 0) {
    0x00010ad0 addne fp, r5, fp, lsl 2                       |         
                                                             |     }
                                                             |     if (r5 != 0) {
    0x00010ad4 bne 0x10d78                                   |         goto label_21;
                                                             |     }
                                                             | label_9:
    0x00010ad8 ldr r3, [r6, 4]                               |     r3 = *((r6 + 4));
    0x00010adc mov r2, r4                                    |     r2 = r4;
    0x00010ae0 str r3, [sp]                                  |     *(sp) = r3;
    0x00010ae4 ldr r0, [pc, 0x2ec]                           |     r0 = *(0x10dd4);
    0x00010ae8 ldr r3, [r6, 8]                               |     r3 = *((r6 + 8));
    0x00010aec ldr r1, [r6]                                  |     r1 = *(r6);
    0x00010af0 bl 0x106f4                                    |     printf (r0, r1, r2, r3);
    0x00010af4 mov r0, 0                                     |     r0 = 0;
    0x00010af8 add sp, sp, 0x8c                              |     
    0x00010afc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             | label_18:
    0x00010b00 mov r0, r5                                    |     r0 = r5;
    0x00010b04 mov r1, r7                                    |     r1 = r7;
    0x00010b08 bl 0x1079c                                    |     r0 = realloc (r0, r1);
    0x00010b0c subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 != r0) {
    0x00010b10 bne 0x10a58                                   |         goto label_2;
                                                             |     }
    0x00010b14 ldr r1, [pc, 0x2c0]                           |     r1 = "Cleaned_up__d_sockets_in__s___d_sockets_are_still_in_use___d_in_unknown_state";
    0x00010b18 mov r2, r7                                    |     r2 = r7;
                                                             |     do {
    0x00010b1c ldr r3, [pc, 0x288]                           |         r3 = "/tmp";
    0x00010b20 ldr r0, [r3]                                  |         r0 = "/tmp";
    0x00010b24 bl 0x10754                                    |         fprintf ("/tmp", "Cleaned_up__d_sockets_in__s___d_sockets_are_still_in_use___d_in_unknown_state", r2, "/tmp");
    0x00010b28 b 0x1097c                                     |         goto label_3;
                                                             | label_10:
    0x00010b2c mov r8, 2                                     |         r8 = 2;
    0x00010b30 mov fp, 0                                     |         
    0x00010b34 ldr sl, [pc, 0x2a4]                           |         sl = "dbus-";
    0x00010b38 b 0x10a60                                     |         goto label_4;
                                                             | label_20:
    0x00010b3c ldr r1, [r8]                                  |         r1 = *(r8);
    0x00010b40 ldr r0, [pc, 0x29c]                           |         r0 = "dbus-";
    0x00010b44 bl 0x10808                                    |         fputs ("dbus-", r1);
    0x00010b48 mov r0, 2                                     |         r0 = 2;
    0x00010b4c bl 0x10730                                    |         sleep (r0);
    0x00010b50 b 0x10a80                                     |         goto label_5;
                                                             | label_19:
    0x00010b54 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00010b58 ldr r6, [r5, r3, lsl 2]                       |         offset_2 = r3 << 2;
                                                             |         r6 = *((r5 + offset_2));
    0x00010b5c add r3, r3, 1                                 |         r3++;
    0x00010b60 str r3, [sp, 0xc]                             |         var_ch = r3;
    0x00010b64 ldmib r6, {r3, r7}                            |         __asm ("ldmib r6, {r3, r7}");
    0x00010b68 cmp r3, 0                                     |         
                                                             |         if (r3 < 0) {
    0x00010b6c movge r2, r7                                  |             r2 = r7;
                                                             |         }
                                                             |         if (r3 < 0) {
    0x00010b70 ldrge r1, [pc, 0x270]                         |             r1 = "Internal error, socket has fd  kept open while status = %d\n";
                                                             |         }
    0x00010b74 bge 0x10b1c                                   |         
                                                             |     } while (r3 >= 0);
    0x00010b78 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00010b7c bne 0x10a8c                                   |         goto label_6;
                                                             |     }
    0x00010b80 ldr r3, [r6, 0xc]                             |     r3 = *((r6 + 0xc));
    0x00010b84 cmp r3, 5                                     |     
                                                             |     if (r3 > 5) {
    0x00010b88 ble 0x10ba4                                   |         
    0x00010b8c ldr r2, [r6]                                  |         r2 = *(r6);
    0x00010b90 ldr r1, [pc, 0x254]                           |         r1 = "Internal error, socket has fd  kept open while status = %d\n";
    0x00010b94 ldr r0, [r8]                                  |         r0 = *(r8);
    0x00010b98 bl 0x10754                                    |         fprintf (r0, "Internal error, socket has fd  kept open while status = %d\n", r2);
                                                             | label_8:
    0x00010b9c mov r7, 1                                     |         r7 = 1;
    0x00010ba0 b 0x10be8                                     |         
                                                             |     } else {
    0x00010ba4 add r3, r3, 1                                 |         r3++;
    0x00010ba8 mov r1, 1                                     |         r1 = 1;
    0x00010bac str r3, [r6, 0xc]                             |         *((r6 + 0xc)) = r3;
    0x00010bb0 mov r2, r7                                    |         r2 = r7;
    0x00010bb4 mov r0, r1                                    |         r0 = r1;
    0x00010bb8 bl 0x1073c                                    |         r0 = socket (r0, r1, r2);
    0x00010bbc cmp r0, 0                                     |         
    0x00010bc0 str r0, [r6, 4]                               |         *((r6 + 4)) = r0;
                                                             |         if (r0 >= 0) {
    0x00010bc4 bge 0x10bf0                                   |             goto label_22;
                                                             |         }
    0x00010bc8 bl 0x107e4                                    |         errno_location ();
    0x00010bcc ldr sl, [r8]                                  |         sl = *(r8);
    0x00010bd0 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00010bd4 bl 0x1070c                                    |         strerror (r0);
    0x00010bd8 ldr r1, [pc, 0x210]                           |         r1 = "Warning:_giving_up_on_socket__s_after_several_retries__unable_to_determine_sockets_status";
    0x00010bdc mov r2, r0                                    |         r2 = r0;
    0x00010be0 mov r0, sl                                    |         r0 = sl;
    0x00010be4 bl 0x10754                                    |         fprintf (r0, "Warning:_giving_up_on_socket__s_after_several_retries__unable_to_determine_sockets_status", r2);
                                                             |     }
                                                             |     do {
                                                             | label_7:
    0x00010be8 str r7, [r6, 8]                               |         *((r6 + 8)) = r7;
    0x00010bec b 0x10d1c                                     |         goto label_23;
                                                             | label_22:
    0x00010bf0 mov r2, 0x800                                 |         r2 = 0x800;
    0x00010bf4 mov r1, 4                                     |         r1 = 4;
    0x00010bf8 bl 0x10718                                    |         r0 = fcntl64 ();
    0x00010bfc cmp r0, 0                                     |         
                                                             |         if (r0 >= 0) {
    0x00010c00 bge 0x10c34                                   |             goto label_24;
                                                             |         }
    0x00010c04 ldr r2, [r6]                                  |         r2 = *(r6);
    0x00010c08 ldr sl, [r8]                                  |         sl = *(r8);
    0x00010c0c str r2, [sp, 0x14]                            |         var_14h = r2;
    0x00010c10 bl 0x107e4                                    |         r0 = errno_location ();
    0x00010c14 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00010c18 bl 0x1070c                                    |         strerror (r0);
    0x00010c1c ldr r2, [sp, 0x14]                            |         r2 = var_14h;
    0x00010c20 ldr r1, [pc, 0x1cc]                           |         r1 = "Warning:_failed_to_open_a_socket_to_use_for_connecting:__s";
    0x00010c24 mov r3, r0                                    |         r3 = r0;
    0x00010c28 mov r0, sl                                    |         r0 = sl;
    0x00010c2c bl 0x10754                                    |         fprintf (r0, "Warning:_failed_to_open_a_socket_to_use_for_connecting:__s", r2, r3);
    0x00010c30 b 0x10be8                                     |         
                                                             |     } while (1);
                                                             | label_24:
    0x00010c34 mov r2, 0x6c                                  |     r2 = 0x6c;
    0x00010c38 mov r1, r7                                    |     r1 = r7;
    0x00010c3c add r0, sp, 0x1a                              |     r0 += dest;
    0x00010c40 bl 0x107c0                                    |     memset (r0, r1, r2);
    0x00010c44 add sl, sp, 0x88                              |     sl += var_88h;
    0x00010c48 mov r3, 1                                     |     r3 = 1;
    0x00010c4c strh r3, [sl, -0x70]!                         |     *((sl -= 0x70)) = r3;
    0x00010c50 mov r2, 0x6b                                  |     r2 = 0x6b;
    0x00010c54 ldr r1, [r6]                                  |     r1 = *(r6);
    0x00010c58 add r0, sp, 0x1a                              |     r0 += dest;
    0x00010c5c bl 0x10784                                    |     strncpy (r0, r1, r2);
                                                             |     do {
    0x00010c60 mov r2, 0x6e                                  |         r2 = 0x6e;
    0x00010c64 mov r1, sl                                    |         r1 = sl;
    0x00010c68 ldr r0, [r6, 4]                               |         r0 = *((r6 + 4));
    0x00010c6c bl 0x10700                                    |         r0 = connect (r0, r1, r2);
    0x00010c70 cmp r0, 0                                     |         
                                                             |         if (r0 >= 0) {
    0x00010c74 bge 0x10d8c                                   |             goto label_25;
                                                             |         }
    0x00010c78 bl 0x107e4                                    |         r0 = errno_location ();
    0x00010c7c mov r1, r0                                    |         r1 = r0;
    0x00010c80 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00010c84 cmp r0, 4                                     |         
    0x00010c88 beq 0x10c60                                   |         
                                                             |     } while (r0 == 4);
    0x00010c8c cmp r0, 0x6f                                  |     
                                                             |     if (r0 == 0x6f) {
    0x00010c90 beq 0x10cc8                                   |         goto label_26;
                                                             |     }
    0x00010c94 cmp r0, 0x73                                  |     
                                                             |     if (r0 == 0x73) {
    0x00010c98 beq 0x10be8                                   |         goto label_7;
                                                             |     }
    0x00010c9c cmp r0, 0xb                                   |     
                                                             |     if (r0 == 0xb) {
    0x00010ca0 beq 0x10be8                                   |         goto label_7;
                                                             |     }
    0x00010ca4 ldr r7, [r8]                                  |     r7 = *(r8);
    0x00010ca8 ldr sl, [r6]                                  |     sl = *(r6);
    0x00010cac bl 0x1070c                                    |     strerror (r0);
    0x00010cb0 ldr r1, [pc, 0x140]                           |     r1 = "Warning:_failed_set_socket__s_nonblocking:__s";
    0x00010cb4 mov r2, sl                                    |     r2 = sl;
    0x00010cb8 mov r3, r0                                    |     r3 = r0;
    0x00010cbc mov r0, r7                                    |     r0 = r7;
    0x00010cc0 bl 0x10754                                    |     fprintf (r0, "Warning:_failed_set_socket__s_nonblocking:__s", r2, r3);
    0x00010cc4 b 0x10b9c                                     |     goto label_8;
                                                             | label_26:
    0x00010cc8 ldr r3, [sb]                                  |     r3 = *(sb);
    0x00010ccc ldr r0, [r6]                                  |     r0 = *(r6);
    0x00010cd0 add r3, r3, 1                                 |     r3++;
    0x00010cd4 str r1, [sp, 0x14]                            |     var_14h = r1;
    0x00010cd8 str r3, [sb]                                  |     *(sb) = r3;
    0x00010cdc bl 0x10790                                    |     unlink (r0);
    0x00010ce0 ldr r1, [sp, 0x14]                            |     r1 = var_14h;
    0x00010ce4 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00010ce8 movge r3, 4                                   |         r3 = 4;
                                                             |     }
                                                             |     if (r0 < 0) {
    0x00010cec bge 0x10d18                                   |         
    0x00010cf0 ldr r0, [r1]                                  |         r0 = *(r1);
    0x00010cf4 ldr r7, [r8]                                  |         r7 = *(r8);
    0x00010cf8 ldr sl, [r6]                                  |         sl = *(r6);
    0x00010cfc bl 0x1070c                                    |         strerror (r0);
    0x00010d00 ldr r1, [pc, 0xf4]                            |         r1 = "Warning: unexpected error connecting to socket %s: %s\n";
    0x00010d04 mov r2, sl                                    |         r2 = sl;
    0x00010d08 mov r3, r0                                    |         r3 = r0;
    0x00010d0c mov r0, r7                                    |         r0 = r7;
    0x00010d10 bl 0x10754                                    |         fprintf (r0, "Warning: unexpected error connecting to socket %s: %s\n", r2, r3);
    0x00010d14 mov r3, 1                                     |         r3 = 1;
                                                             |     }
    0x00010d18 str r3, [r6, 8]                               |     *((r6 + 8)) = r3;
                                                             | label_23:
    0x00010d1c ldr r0, [r6, 4]                               |     r0 = *((r6 + 4));
    0x00010d20 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00010d24 blt 0x10d34                                   |         
    0x00010d28 bl 0x1082c                                    |         close (r0);
    0x00010d2c mvn r3, 0                                     |         r3 = ~0;
    0x00010d30 str r3, [r6, 4]                               |         *((r6 + 4)) = r3;
                                                             |     }
    0x00010d34 ldr r3, [r6, 8]                               |     r3 = *((r6 + 8));
    0x00010d38 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00010d3c ldreq r3, [sp, 0x10]                          |         r3 = var_10h;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00010d40 addeq r3, r3, 1                               |         r3++;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00010d44 streq r3, [sp, 0x10]                          |         var_10h = r3;
                                                             |     }
    0x00010d48 b 0x10a8c                                     |     goto label_6;
                                                             |     do {
    0x00010d4c ldr r7, [r8], 4                               |         r7 = *(r8);
                                                             |         r8 += 4;
    0x00010d50 cmp r7, 0                                     |         
                                                             |         if (r7 != 0) {
    0x00010d54 beq 0x10d78                                   |             
    0x00010d58 ldr r0, [r7]                                  |             r0 = *(r7);
    0x00010d5c bl 0x10838                                    |             free (r0);
    0x00010d60 ldr r0, [r7, 4]                               |             r0 = *((r7 + 4));
    0x00010d64 cmp r0, 0                                     |             
                                                             |             if (r0 >= 0) {
    0x00010d68 blt 0x10d70                                   |                 
    0x00010d6c bl 0x1082c                                    |                 close (r0);
                                                             |             }
    0x00010d70 mov r0, r7                                    |             r0 = r7;
    0x00010d74 bl 0x10838                                    |             free (r0);
                                                             |         }
                                                             | label_21:
    0x00010d78 cmp fp, r8                                    |         
    0x00010d7c bne 0x10d4c                                   |         
                                                             |     } while (fp != r8);
    0x00010d80 mov r0, r5                                    |     r0 = r5;
    0x00010d84 bl 0x10838                                    |     free (r0);
    0x00010d88 b 0x10ad8                                     |     goto label_9;
                                                             | label_25:
    0x00010d8c ldr r3, [sb, 8]                               |     r3 = *((sb + 8));
    0x00010d90 mov r7, 3                                     |     r7 = 3;
    0x00010d94 add r3, r3, 1                                 |     r3++;
    0x00010d98 str r3, [sb, 8]                               |     *((sb + 8)) = r3;
    0x00010d9c b 0x10be8                                     |     goto label_7;
                                                             | }

[*] Function strcat used 3 times dbus-cleanup-sockets