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

  
  	Full RELRO     Canary found      NX enabled   PIE enabled  No RPATH     No RUNPATH   No Symbols


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

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/dbus-cleanup-sockets @ 0x10f4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.000010f4 ()                                  | void fcn_000010f4 (FILE * stream, char * s2, char * path, int16_t arg_14h, int16_t arg_18h, int16_t arg_1ch, char * s, int16_t arg_24h, int16_t arg_28h, int16_t arg_2ch, void * ptr, int16_t arg_34h, int16_t arg_3ch, void * arg_3eh, int16_t arg_ach) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             | label_8:
    0x00000c32 movs r0, 8                                    |     r0 = 8;
    0x00000c34 blx 0xa88                                     |     malloc (r0);
                                                             | label_10:
    0x00000c38 str r0, [sp, 0x30]                            |     *(ptr) = r0;
    0x00000c3a cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00000c3c beq.w 0xfe0                                   |         goto label_11;
                                                             |     }
    0x00000c40 ldr r0, [sp, 0x20]                            |     r0 = *(s);
    0x00000c42 blx 0xa7c                                     |     r0 = opendir ();
    0x00000c46 mov sb, r0                                    |     sb = r0;
    0x00000c48 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00000c4a beq.w 0xff4                                   |         goto label_12;
                                                             |     }
    0x00000c4e ldr.w r3, [pc, 0x408]                         |     r3 = *(0x00001058);
    0x00000c52 mov.w fp, 2                                   |     
    0x00000c56 mov.w sl, 0                                   |     sl = 0;
    0x00000c5a add r3, pc                                    |     r3 += pc;
    0x00000c5c str r3, [sp, 0xc]                             |     *(s2) = r3;
                                                             |     do {
    0x00000c5e mov r0, sb                                    |         r0 = sb;
    0x00000c60 blx 0xb0c                                     |         r0 = readdir64 ();
    0x00000c64 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00000c66 beq 0xcec                                     |             goto label_13;
                                                             |         }
                                                             | label_0:
    0x00000c68 add.w r4, r0, 0x13                            |         r4 = r0 + 0x13;
    0x00000c6c ldr r1, [sp, 0xc]                             |         r1 = *(s2);
    0x00000c6e movs r2, 5                                    |         r2 = 5;
    0x00000c70 mov r0, r4                                    |         r0 = r4;
    0x00000c72 blx 0xb24                                     |         r0 = strncmp (r0, r1, r2);
    0x00000c76 mov r5, r0                                    |         r5 = r0;
    0x00000c78 cmp r0, 0                                     |         
    0x00000c7a bne 0xc5e                                     |         
                                                             |     } while (r0 != 0);
    0x00000c7c movs r0, 0x10                                 |     r0 = 0x10;
    0x00000c7e blx 0xa88                                     |     r0 = malloc (r0);
    0x00000c82 mov r6, r0                                    |     r6 = r0;
    0x00000c84 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00000c86 beq.w 0xfea                                   |         goto label_14;
                                                             |     }
    0x00000c8a ldr r0, [sp, 0x20]                            |     r0 = *(s);
    0x00000c8c blx 0xab8                                     |     r0 = strlen (r0);
    0x00000c90 mov r7, r0                                    |     r7 = r0;
    0x00000c92 mov r0, r4                                    |     r0 = r4;
    0x00000c94 blx 0xab8                                     |     r0 = strlen (r0);
    0x00000c98 add.w r8, r7, r0                              |     r8 = r7 + r0;
    0x00000c9c add.w r8, r8, 2                               |     r8 += 2;
    0x00000ca0 mov r0, r8                                    |     r0 = r8;
    0x00000ca2 blx 0xa88                                     |     r0 = malloc (r0);
    0x00000ca6 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00000ca8 beq.w 0x1038                                  |         goto label_15;
                                                             |     }
    0x00000cac ldr r1, [sp, 0x20]                            |     r1 = *(s);
    0x00000cae mov r2, r7                                    |     r2 = r7;
    0x00000cb0 str r0, [r6]                                  |     *(r6) = r0;
    0x00000cb2 str r0, [sp, 0x10]                            |     *(path) = r0;
    0x00000cb4 blx 0xa28                                     |     memcpy (r0, r1, r2);
    0x00000cb8 ldr r3, [sp, 0x10]                            |     r3 = *(path);
    0x00000cba movs r2, 0x2f                                 |     r2 = 0x2f;
    0x00000cbc adds r0, r7, 1                                |     r0 = r7 + 1;
    0x00000cbe mov r1, r4                                    |     r1 = r4;
    0x00000cc0 add r0, r3                                    |     r0 += r3;
    0x00000cc2 strb r2, [r3, r7]                             |     *((r3 + r7)) = r2;
    0x00000cc4 blx 0xa70                                     |     strcpy (r0, r1);
    0x00000cc8 cmp fp, sl                                    |     
    0x00000cca mov.w r3, -1                                  |     r3 = -1;
    0x00000cce strd r3, r5, [r6, 4]                          |     __asm ("strd r3, r5, [r6, 4]");
    0x00000cd2 str r5, [r6, 0xc]                             |     *((r6 + 0xc)) = r5;
                                                             |     if (fp == sl) {
    0x00000cd4 beq.w 0xed4                                   |         goto label_16;
                                                             |     }
                                                             | label_6:
    0x00000cd8 ldr r3, [sp, 0x30]                            |     r3 = *(ptr);
    0x00000cda mov r0, sb                                    |     r0 = sb;
    0x00000cdc str.w r6, [r3, sl, lsl 2]                     |     __asm ("str.w r6, [r3, sl, lsl 2]");
    0x00000ce0 add.w sl, sl, 1                               |     sl++;
    0x00000ce4 blx 0xb0c                                     |     r0 = readdir64 ();
    0x00000ce8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00000cea bne 0xc68                                     |         goto label_0;
                                                             |     }
                                                             | label_13:
    0x00000cec mov r0, sb                                    |     r0 = sb;
    0x00000cee blx 0xb54                                     |     closedir ();
    0x00000cf2 cmp.w sl, 0                                   |     
                                                             |     if (sl == 0) {
    0x00000cf6 beq.w 0xf7c                                   |         goto label_17;
                                                             |     }
    0x00000cfa ldr r3, [sp, 0x30]                            |     r3 = *(ptr);
    0x00000cfc ldr.w fp, [sp, 0x34]                          |     fp = *(arg_34h);
    0x00000d00 sub.w sb, r3, 4                               |     sb = r3 - 4;
    0x00000d04 ldr r3, [pc, 0x354]                           |     
    0x00000d06 str.w sb, [sp, 0x2c]                          |     __asm ("str.w sb, [arg_2ch]");
    0x00000d0a add r3, pc                                    |     r3 = 0x1d6a;
    0x00000d0c str r3, [sp, 0x18]                            |     *(arg_18h) = r3;
    0x00000d0e ldr r3, [pc, 0x350]                           |     
    0x00000d10 add r3, pc                                    |     r3 = 0x1d76;
    0x00000d12 str r3, [sp, 0x1c]                            |     *(arg_1ch) = r3;
    0x00000d14 ldr r3, [pc, 0x34c]                           |     
    0x00000d16 add r3, pc                                    |     r3 = 0x1d7e;
    0x00000d18 str r3, [sp, 0x24]                            |     *(arg_24h) = r3;
    0x00000d1a ldr r3, [pc, 0x34c]                           |     
    0x00000d1c add r3, pc                                    |     r3 = 0x1d8a;
    0x00000d1e str r3, [sp, 0x28]                            |     *(arg_28h) = r3;
                                                             | label_2:
    0x00000d20 ldr.w r8, [sp, 0x2c]                          |     r8 = *(arg_2ch);
    0x00000d24 movs r2, 0                                    |     r2 = 0;
    0x00000d26 mov r7, r2                                    |     r7 = r2;
    0x00000d28 str r2, [sp, 0xc]                             |     *(s2) = r2;
                                                             | label_1:
    0x00000d2a ldr r4, [r8, 4]!                              |     r4 = *((r8 += 4));
    0x00000d2e adds r7, 1                                    |     r7++;
    0x00000d30 ldrd r3, r6, [r4, 4]                          |     __asm ("ldrd r3, r6, [r4, 4]");
    0x00000d34 cmp r3, 0                                     |     
                                                             |     if (r3 >= 0) {
    0x00000d36 bge.w 0xf9e                                   |         goto label_18;
                                                             |     }
    0x00000d3a cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x00000d3c bne 0xdcc                                     |         goto label_3;
                                                             |     }
    0x00000d3e ldr r3, [r4, 0xc]                             |     r3 = *((r4 + 0xc));
    0x00000d40 cmp r3, 5                                     |     
                                                             |     if (r3 > 5) {
    0x00000d42 bgt 0xe02                                     |         goto label_19;
                                                             |     }
    0x00000d44 adds r3, 1                                    |     r3++;
    0x00000d46 movs r1, 1                                    |     r1 = 1;
    0x00000d48 mov r2, r6                                    |     r2 = r6;
    0x00000d4a mov r0, r1                                    |     r0 = r1;
    0x00000d4c str r3, [r4, 0xc]                             |     *((r4 + 0xc)) = r3;
    0x00000d4e blx 0xb18                                     |     r0 = socket (r0, r1, r2);
    0x00000d52 cmp r0, 0                                     |     
    0x00000d54 mov r5, r0                                    |     r5 = r0;
    0x00000d56 str r0, [r4, 4]                               |     *((r4 + 4)) = r0;
                                                             |     if (r0 < 0) {
    0x00000d58 blt.w 0xe86                                   |         goto label_20;
                                                             |     }
    0x00000d5c mov.w r2, 0x800                               |     r2 = 0x800;
    0x00000d60 movs r1, 4                                    |     r1 = 4;
    0x00000d62 blx 0xb00                                     |     r0 = fcntl64 ();
    0x00000d66 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00000d68 blt.w 0xeaa                                   |         goto label_21;
                                                             |     }
    0x00000d6c add.w r3, sp, 0x3e                            |     r3 += arg_3eh;
    0x00000d70 mov r1, r6                                    |     r1 = r6;
    0x00000d72 movs r2, 0x6c                                 |     r2 = 0x6c;
    0x00000d74 mov r0, r3                                    |     r0 = r3;
    0x00000d76 blx 0xad0                                     |     memset (r0, r1, r2);
    0x00000d7a ldr r3, [r4]                                  |     r3 = *(r4);
    0x00000d7c movs r2, 0x6b                                 |     r2 = 0x6b;
    0x00000d7e add.w sb, sp, 0x3c                            |     sb += arg_3ch;
    0x00000d82 mov r1, r3                                    |     r1 = r3;
    0x00000d84 str r3, [sp, 0x10]                            |     *(path) = r3;
    0x00000d86 movs r3, 1                                    |     r3 = 1;
    0x00000d88 strh.w r3, [sp, 0x3c]                         |     *(arg_3ch) = r3;
    0x00000d8c blx 0xadc                                     |     strncpy (r0, r1, r2);
    0x00000d90 b 0xd9c                                       |     
                                                             |     while (r0 < 0) {
    0x00000d92 blx 0xac4                                     |         r0 = errno_location ();
    0x00000d96 ldr r3, [r0]                                  |         r3 = *(r0);
    0x00000d98 cmp r3, 4                                     |         
                                                             |         if (r3 != 4) {
    0x00000d9a bne 0xe1c                                     |             goto label_22;
                                                             |         }
    0x00000d9c movs r2, 0x6e                                 |         r2 = 0x6e;
    0x00000d9e mov r1, sb                                    |         r1 = sb;
    0x00000da0 mov r0, r5                                    |         r0 = r5;
    0x00000da2 blx 0xb48                                     |         r0 = connect (r0, r1, r2);
    0x00000da6 cmp r0, 0                                     |         
    0x00000da8 blt 0xd92                                     |         
                                                             |     }
    0x00000daa ldr r2, [sp, 0x18]                            |     r2 = *(arg_18h);
    0x00000dac movs r6, 3                                    |     r6 = 3;
    0x00000dae ldr r3, [r2, 4]                               |     r3 = *((r2 + 4));
    0x00000db0 adds r3, 1                                    |     r3++;
    0x00000db2 str r3, [r2, 4]                               |     *((r2 + 4)) = r3;
                                                             | label_4:
    0x00000db4 mov r0, r5                                    |     r0 = r5;
    0x00000db6 str r6, [r4, 8]                               |     *((r4 + 8)) = r6;
    0x00000db8 blx 0xb3c                                     |     close (r0);
    0x00000dbc ldr r3, [r4, 8]                               |     r3 = *((r4 + 8));
    0x00000dbe mov.w r2, -1                                  |     r2 = -1;
    0x00000dc2 str r2, [r4, 4]                               |     *((r4 + 4)) = r2;
                                                             |     if (r3 == 0) {
    0x00000dc4 cbnz r3, 0xdcc                                |         
                                                             | label_5:
    0x00000dc6 ldr r3, [sp, 0xc]                             |         r3 = *(s2);
    0x00000dc8 adds r3, 1                                    |         r3++;
    0x00000dca str r3, [sp, 0xc]                             |         *(s2) = r3;
                                                             |     }
                                                             | label_3:
    0x00000dcc cmp sl, r7                                    |     
                                                             |     if (sl != r7) {
    0x00000dce bne 0xd2a                                     |         goto label_1;
                                                             |     }
    0x00000dd0 ldr r2, [sp, 0xc]                             |     r2 = *(s2);
    0x00000dd2 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00000dd4 beq.w 0xef8                                   |         goto label_23;
                                                             |     }
    0x00000dd8 ldr r3, [pc, 0x290]                           |     
    0x00000dda movs r2, 0x41                                 |     r2 = 0x41;
    0x00000ddc ldr r0, [pc, 0x290]                           |     
    0x00000dde movs r1, 1                                    |     r1 = 1;
    0x00000de0 ldr.w r3, [fp, r3]                            |     r3 = *((fp + r3));
    0x00000de4 add r0, pc                                    |     r0 = 0x1e58;
    0x00000de6 ldr r3, [r3]                                  |     r3 = *(0x106c);
    0x00000de8 blx 0xa64                                     |     fwrite (r0, r1, r2, r3);
    0x00000dec movs r0, 2                                    |     r0 = 2;
    0x00000dee blx 0xa34                                     |     sleep (r0);
    0x00000df2 b 0xd20                                       |     goto label_2;
                                                             | label_19:
    0x00000e02 ldr r3, [pc, 0x268]                           |     r3 = *(0x106e);
    0x00000e04 movs r1, 1                                    |     r1 = 1;
    0x00000e06 ldr r2, [pc, 0x26c]                           |     
    0x00000e08 ldr.w r3, [fp, r3]                            |     r3 = *((fp + r3));
    0x00000e0c add r2, pc                                    |     r2 = 0x1e86;
    0x00000e0e ldr r0, [r3]                                  |     r0 = *(0x106e);
    0x00000e10 ldr r3, [r4]                                  |     r3 = *(r4);
    0x00000e12 blx 0xaf4                                     |     fprintf_chk ()
    0x00000e16 movs r3, 1                                    |     r3 = 1;
    0x00000e18 str r3, [r4, 8]                               |     *((r4 + 8)) = r3;
    0x00000e1a b 0xdcc                                       |     goto label_3;
                                                             | label_22:
    0x00000e1c mov r2, r3                                    |     r2 = r3;
    0x00000e1e mov r3, r0                                    |     r3 = r0;
    0x00000e20 cmp r2, 0x6f                                  |     
    0x00000e22 mov r0, r2                                    |     r0 = r2;
                                                             |     if (r2 == 0x6f) {
    0x00000e24 beq 0xe4c                                     |         goto label_24;
                                                             |     }
    0x00000e26 cmp r2, 0x73                                  |     
                                                             |     if (r2 == 0x73) {
    0x00000e28 beq 0xdb4                                     |         goto label_4;
                                                             |     }
    0x00000e2a cmp r2, 0xb                                   |     
                                                             |     if (r2 == 0xb) {
    0x00000e2c beq 0xdb4                                     |         goto label_4;
                                                             |     }
    0x00000e2e ldr r3, [pc, 0x23c]                           |     r3 = *(0x106e);
    0x00000e30 ldr.w r3, [fp, r3]                            |     r3 = *((fp + r3));
    0x00000e34 ldr r6, [r3]                                  |     r6 = *(0x106e);
    0x00000e36 blx 0xa94                                     |     strerror (r0);
    0x00000e3a ldr r3, [sp, 0x10]                            |     r3 = *(path);
    0x00000e3c movs r1, 1                                    |     r1 = 1;
    0x00000e3e str r0, [sp]                                  |     *(sp) = r0;
    0x00000e40 mov r0, r6                                    |     r0 = r6;
    0x00000e42 ldr r2, [sp, 0x28]                            |     r2 = *(arg_28h);
    0x00000e44 movs r6, 1                                    |     r6 = 1;
    0x00000e46 blx 0xaf4                                     |     fprintf_chk ()
    0x00000e4a b 0xdb4                                       |     goto label_4;
                                                             | label_24:
    0x00000e4c str r3, [sp, 0x14]                            |     *(arg_14h) = r3;
    0x00000e4e ldr r3, [sp, 0x1c]                            |     r3 = *(arg_1ch);
    0x00000e50 ldr r0, [sp, 0x10]                            |     r0 = *(path);
    0x00000e52 ldr r2, [r3]                                  |     r2 = *(r3);
    0x00000e54 adds r2, 1                                    |     r2++;
    0x00000e56 str r2, [r3]                                  |     *(r3) = r2;
    0x00000e58 blx 0xa4c                                     |     r0 = unlink (r0);
    0x00000e5c cmp r0, 0                                     |     
    0x00000e5e ldr r3, [sp, 0x14]                            |     r3 = *(arg_14h);
    0x00000e60 it ge                                         |     
                                                             |     if (r0 >= 0) {
    0x00000e62 movge r6, 4                                   |         r6 = 4;
                                                             |         goto label_25;
                                                             |     }
                                                             |     if (r0 >= 0) {
                                                             | label_25:
    0x00000e64 bge 0xdb4                                     |         goto label_4;
                                                             |     }
    0x00000e66 ldr r0, [r3]                                  |     r0 = *(r3);
    0x00000e68 ldr r3, [pc, 0x200]                           |     r3 = *(0x106c);
    0x00000e6a ldr.w r3, [fp, r3]                            |     r3 = *((fp + r3));
    0x00000e6e ldr r6, [r3]                                  |     r6 = *(0x106c);
    0x00000e70 blx 0xa94                                     |     strerror (r0);
    0x00000e74 str r0, [sp]                                  |     *(sp) = r0;
    0x00000e76 mov r0, r6                                    |     r0 = r6;
    0x00000e78 movs r6, 1                                    |     r6 = 1;
    0x00000e7a ldr r3, [sp, 0x10]                            |     r3 = *(path);
    0x00000e7c mov r1, r6                                    |     r1 = r6;
    0x00000e7e ldr r2, [sp, 0x24]                            |     r2 = *(arg_24h);
    0x00000e80 blx 0xaf4                                     |     fprintf_chk ()
    0x00000e84 b 0xdb4                                       |     goto label_4;
                                                             | label_20:
    0x00000e86 ldr r3, [pc, 0x1e4]                           |     r3 = *(0x106e);
    0x00000e88 ldr.w r3, [fp, r3]                            |     r3 = *((fp + r3));
    0x00000e8c ldr r5, [r3]                                  |     r5 = *(0x106e);
    0x00000e8e blx 0xac4                                     |     r0 = errno_location ();
    0x00000e92 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00000e94 blx 0xa94                                     |     strerror (r0);
    0x00000e98 ldr r2, [pc, 0x1dc]                           |     
    0x00000e9a mov r3, r0                                    |     r3 = r0;
    0x00000e9c movs r1, 1                                    |     r1 = 1;
    0x00000e9e mov r0, r5                                    |     r0 = r5;
    0x00000ea0 add r2, pc                                    |     r2 = 0x1f1c;
    0x00000ea2 blx 0xaf4                                     |     fprintf_chk ()
    0x00000ea6 str r6, [r4, 8]                               |     *((r4 + 8)) = r6;
    0x00000ea8 b 0xdc6                                       |     goto label_5;
                                                             | label_21:
    0x00000eaa ldr r3, [pc, 0x1c0]                           |     r3 = *(0x106e);
    0x00000eac ldr.w r3, [fp, r3]                            |     r3 = *((fp + r3));
    0x00000eb0 ldr.w sb, [r3]                                |     sb = *(0x106e);
    0x00000eb4 ldr r3, [r4]                                  |     r3 = *(r4);
    0x00000eb6 str r3, [sp, 0x10]                            |     *(path) = r3;
    0x00000eb8 blx 0xac4                                     |     r0 = errno_location ();
    0x00000ebc ldr r0, [r0]                                  |     r0 = *(r0);
    0x00000ebe blx 0xa94                                     |     strerror (r0);
    0x00000ec2 ldr r2, [pc, 0x1b8]                           |     
    0x00000ec4 movs r1, 1                                    |     r1 = 1;
    0x00000ec6 str r0, [sp]                                  |     *(sp) = r0;
    0x00000ec8 mov r0, sb                                    |     r0 = sb;
    0x00000eca ldr r3, [sp, 0x10]                            |     r3 = *(path);
    0x00000ecc add r2, pc                                    |     r2 = 0x1f4e;
    0x00000ece blx 0xaf4                                     |     fprintf_chk ()
    0x00000ed2 b 0xdb4                                       |     goto label_4;
                                                             | label_16:
    0x00000ed4 lsl.w fp, fp, 1                               |     
    0x00000ed8 ldr r0, [sp, 0x30]                            |     r0 = *(ptr);
    0x00000eda lsls.w r4, fp, 2                              |     r4 = fp << 2;
                                                             |     if (r4 == fp) {
    0x00000ede beq 0xf96                                     |         goto label_26;
                                                             |     }
    0x00000ee0 mov r1, r4                                    |     r1 = r4;
    0x00000ee2 blx 0xa58                                     |     realloc (r0, r1);
    0x00000ee6 str r0, [sp, 0x30]                            |     *(ptr) = r0;
    0x00000ee8 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00000eea bne.w 0xcd8                                   |         goto label_6;
                                                             |     }
    0x00000eee ldr r2, [pc, 0x190]                           |     
    0x00000ef0 mov r3, r4                                    |     r3 = r4;
    0x00000ef2 ldr r0, [pc, 0x178]                           |     r0 = *(0x106e);
    0x00000ef4 add r2, pc                                    |     r2 = 0x1f7a;
    0x00000ef6 b 0xfa6                                       |     goto label_9;
                                                             | label_23:
    0x00000ef8 ldr r1, [pc, 0x188]                           |     
    0x00000efa mov r5, r2                                    |     r5 = r2;
    0x00000efc ldr.w sb, [sp, 0x2c]                          |     sb = *(arg_2ch);
    0x00000f00 add r1, pc                                    |     r1 = 0x1f88;
    0x00000f02 ldr r3, [r1, 4]                               |     r3 = *(0x1f8c);
    0x00000f04 ldr r0, [r1]                                  |     r0 = *(0x1f88);
    0x00000f06 sub.w r3, sl, r3                              |     r3 = sl - r3;
    0x00000f0a subs r3, r3, r0                               |     r3 -= r0;
    0x00000f0c ldr r0, [r1, 8]                               |     r0 = *(0x1f90);
    0x00000f0e add r3, r0                                    |     r3 += r0;
    0x00000f10 str r3, [r1, 8]                               |     *((r1 + 8)) = r3;
    0x00000f12 ldr r3, [sp, 0x30]                            |     r3 = *(ptr);
                                                             |     if (r3 == 0) {
    0x00000f14 cbz r3, 0xf3e                                 |         goto label_27;
                                                             |     }
                                                             |     do {
    0x00000f16 ldr r4, [sb, 4]!                              |         r4 = *((sb += 4));
                                                             |         if (r4 != 0) {
    0x00000f1a cbz r4, 0xf32                                 |             
    0x00000f1c ldr r0, [r4]                                  |             r0 = *(r4);
    0x00000f1e blx 0xa1c                                     |             free (r0);
    0x00000f22 ldr r0, [r4, 4]                               |             r0 = *((r4 + 4));
    0x00000f24 cmp r0, 0                                     |             
                                                             |             if (r0 >= 0) {
    0x00000f26 blt 0xf2c                                     |                 
    0x00000f28 blx 0xb3c                                     |                 close (r0);
                                                             |             }
    0x00000f2c mov r0, r4                                    |             r0 = r4;
    0x00000f2e blx 0xa1c                                     |             free (r0);
                                                             |         }
    0x00000f32 adds r5, 1                                    |         r5++;
    0x00000f34 cmp sl, r5                                    |         
    0x00000f36 bne 0xf16                                     |         
                                                             |     } while (sl != r5);
                                                             | label_7:
    0x00000f38 ldr r0, [sp, 0x30]                            |     r0 = *(ptr);
    0x00000f3a blx 0xa1c                                     |     free (r0);
                                                             |     do {
                                                             | label_27:
    0x00000f3e ldr r4, [pc, 0x148]                           |         
    0x00000f40 movs r0, 1                                    |         r0 = 1;
    0x00000f42 ldr r1, [pc, 0x148]                           |         
    0x00000f44 ldr r3, [sp, 0x20]                            |         r3 = *(s);
    0x00000f46 add r4, pc                                    |         
    0x00000f48 ldr r5, [r4, 8]                               |         r5 = *(0x1fdc);
    0x00000f4a add r1, pc                                    |         r1 = 0x1fdc;
    0x00000f4c ldr r2, [r4]                                  |         r2 = *(0x1fd4);
    0x00000f4e str r5, [sp, 4]                               |         var_4h = r5;
    0x00000f50 ldr r4, [r4, 4]                               |         r4 = *(0x1fd8);
    0x00000f52 str r4, [sp]                                  |         *(sp) = r4;
    0x00000f54 blx 0xae8                                     |         printf_chk ()
    0x00000f58 ldr r2, [pc, 0x134]                           |         
    0x00000f5a ldr r3, [pc, 0xf0]                            |         r3 = *(0x104e);
    0x00000f5c add r2, pc                                    |         r2 = 0x1ff0;
    0x00000f5e ldr r3, [r2, r3]                              |         r3 = *(0x1ff0);
    0x00000f60 ldr r2, [r3]                                  |         r2 = *(0x1ff0);
    0x00000f62 ldr r3, [sp, 0xac]                            |         r3 = *(arg_ach);
    0x00000f64 eors r2, r3                                   |         r2 ^= r3;
    0x00000f66 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00000f6a bne 0xfdc                                     |             goto label_28;
                                                             |         }
    0x00000f6c movs r0, 0                                    |         r0 = 0;
    0x00000f6e add sp, 0xb4                                  |         
    0x00000f70 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             | label_17:
    0x00000f7c ldr r2, [pc, 0x118]                           |         
    0x00000f7e add r2, pc                                    |         r2 = 0x201a;
    0x00000f80 ldrd r1, r3, [r2]                             |         __asm ("ldrd r1, r3, [r2]");
    0x00000f84 rsbs r3, r3, 0                                |         r3 -= ;
    0x00000f86 subs r3, r3, r1                               |         r3 -= r1;
    0x00000f88 ldr r1, [r2, 8]                               |         r1 = *(0x2022);
    0x00000f8a add r3, r1                                    |         r3 += r1;
    0x00000f8c str r3, [r2, 8]                               |         *((r2 + 8)) = r3;
    0x00000f8e ldr r3, [sp, 0x30]                            |         r3 = *(ptr);
    0x00000f90 cmp r3, 0                                     |         
    0x00000f92 beq 0xf3e                                     |         
                                                             |     } while (r3 == 0);
    0x00000f94 b 0xf38                                       |     goto label_7;
                                                             | label_26:
    0x00000f96 blx 0xa1c                                     |     free (r0);
    0x00000f9a str r4, [sp, 0x30]                            |     *(ptr) = r4;
    0x00000f9c b 0xcd8                                       |     goto label_6;
                                                             | label_18:
    0x00000f9e ldr r2, [pc, 0xfc]                            |     
    0x00000fa0 mov r3, r6                                    |     r3 = r6;
    0x00000fa2 ldr r0, [pc, 0xc8]                            |     r0 = *(0x106e);
    0x00000fa4 add r2, pc                                    |     r2 = 0x2046;
                                                             |     do {
                                                             | label_9:
    0x00000fa6 ldr r4, [sp, 0x34]                            |         r4 = *(arg_34h);
    0x00000fa8 movs r1, 1                                    |         r1 = 1;
    0x00000faa ldr r0, [r4, r0]                              |         r0 = *((r4 + r0));
    0x00000fac ldr r0, [r0]                                  |         r0 = *(r0);
    0x00000fae blx 0xaf4                                     |         fprintf_chk ()
    0x00000fb2 movs r0, 1                                    |         r0 = 1;
    0x00000fb4 blx 0xaac                                     |         exit (r0);
    0x00000fb8 movs r0, 0                                    |         r0 = 0;
    0x00000fba bl 0x11bc                                     |         fcn_000011bc (r0);
    0x00000fbe ldr r2, [pc, 0xe0]                            |         
    0x00000fc0 mov sl, r0                                    |         sl = r0;
    0x00000fc2 ldr r1, [pc, 0xe0]                            |         
    0x00000fc4 movs r0, 1                                    |         r0 = 1;
    0x00000fc6 add r2, pc                                    |         r2 = 0x206c;
    0x00000fc8 add r1, pc                                    |         r1 = 0x2072;
    0x00000fca blx 0xae8                                     |         printf_chk ()
    0x00000fce mov r0, sl                                    |         r0 = sl;
    0x00000fd0 blx 0xaac                                     |         exit (r0);
    0x00000fd4 ldr r3, [pc, 0xd0]                            |         
    0x00000fd6 add r3, pc                                    |         r3 = 0x2082;
    0x00000fd8 str r3, [sp, 0x20]                            |         *(s) = r3;
    0x00000fda b 0xc32                                       |         goto label_8;
                                                             | label_28:
    0x00000fdc blx 0xa40                                     |         stack_chk_fail ();
                                                             | label_11:
    0x00000fe0 ldr r2, [pc, 0xc8]                            |         
    0x00000fe2 movs r3, 8                                    |         r3 = 8;
    0x00000fe4 ldr r0, [pc, 0x84]                            |         r0 = *(0x106c);
    0x00000fe6 add r2, pc                                    |         r2 = 0x2096;
    0x00000fe8 b 0xfa6                                       |         
                                                             |     } while (1);
                                                             | label_14:
    0x00000fea ldr r2, [pc, 0xc4]                            |     
    0x00000fec movs r3, 0x10                                 |     r3 = 0x10;
    0x00000fee ldr r0, [pc, 0x7c]                            |     r0 = *(0x106e);
    0x00000ff0 add r2, pc                                    |     r2 = 0x20a6;
    0x00000ff2 b 0xfa6                                       |     goto label_9;
                                                             | label_12:
    0x00000ff4 ldr r2, [sp, 0x34]                            |     r2 = *(arg_34h);
    0x00000ff6 ldr r3, [pc, 0x74]                            |     r3 = *(0x106e);
    0x00000ff8 ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x00000ffa ldr r5, [r3]                                  |     r5 = *(0x106e);
    0x00000ffc blx 0xac4                                     |     r0 = errno_location ();
    0x00001000 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00001002 blx 0xa94                                     |     strerror (r0);
    0x00001006 ldr r2, [pc, 0xac]                            |     
    0x00001008 mov r4, r0                                    |     r4 = r0;
    0x0000100a ldr r3, [sp, 0x20]                            |     r3 = *(s);
    0x0000100c movs r1, 1                                    |     r1 = 1;
    0x0000100e mov r0, r5                                    |     r0 = r5;
    0x00001010 str r4, [sp]                                  |     *(sp) = r4;
    0x00001012 add r2, pc                                    |     r2 = 0x20cc;
    0x00001014 blx 0xaf4                                     |     fprintf_chk ()
    0x00001018 movs r0, 1                                    |     r0 = 1;
    0x0000101a blx 0xaac                                     |     exit (r0);
    0x0000101e ldr r4, [sp, 0x34]                            |     r4 = *(arg_34h);
    0x00001020 movs r2, 0x3b                                 |     r2 = 0x3b;
    0x00001022 ldr r3, [pc, 0x48]                            |     
    0x00001024 movs r1, 1                                    |     r1 = 1;
    0x00001026 ldr r0, [pc, 0x90]                            |     
    0x00001028 ldr r3, [r4, r3]                              |     r3 = *((r4 + r3));
    0x0000102a add r0, pc                                    |     r0 = 0x20e8;
    0x0000102c ldr r3, [r3]                                  |     r3 = *(0x106e);
    0x0000102e blx 0xa64                                     |     fwrite (r0, r1, r2, r3);
    0x00001032 movs r0, 1                                    |     r0 = 1;
    0x00001034 blx 0xaac                                     |     exit (r0);
                                                             | label_15:
    0x00001038 ldr r2, [pc, 0x80]                            |     
    0x0000103a mov r3, r8                                    |     r3 = r8;
    0x0000103c ldr r0, [pc, 0x2c]                            |     r0 = *(0x106c);
    0x0000103e add r2, pc                                    |     r2 = 0x20fe;
    0x00001040 b 0xfa6                                       |     goto label_9;
    0x000010f4 adds r0, 0x14                                 |     r0 += 0x14;
    0x000010f6 b 0xc38                                       |     goto label_10;
                                                             | }

[*] Function printf used 10 times dbus-cleanup-sockets