[*] Binary protection state of dbus-cleanup-sockets
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of dbus-cleanup-sockets
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/dbus-cleanup-sockets @ 0xf28 */
| #include <stdint.h>
|
; (fcn) fcn.00000f28 () | void fcn_00000f28 (FILE * stream, char * dest, int16_t arg_ch, int16_t arg_10h, void * s2, int16_t arg_18h, int16_t arg_1ch, void * ptr, int16_t arg_24h, int16_t arg_28h, int16_t arg_2ch, void * s, char * arg_36h, int16_t arg_a4h) {
| int16_t var_0h;
| int16_t var_4h;
| label_8:
0x00000a10 movs r0, 8 | r0 = 8;
0x00000a12 blx 0x85c | malloc (r0);
0x00000a16 str r0, [sp, 0x20] | *(ptr) = r0;
0x00000a18 cmp r0, 0 |
| if (r0 == 0) {
0x00000a1a beq.w 0xe04 | goto label_11;
| }
0x00000a1e ldr r0, [sp, 0x14] | r0 = *(s2);
0x00000a20 blx 0x850 | r0 = opendir ();
0x00000a24 mov r7, r0 | r7 = r0;
0x00000a26 cmp r0, 0 |
| if (r0 == 0) {
0x00000a28 beq.w 0xe0e | goto label_12;
| }
0x00000a2c ldr.w r8, [pc, 0x45c] |
0x00000a30 mov.w sb, 0 | sb = 0;
0x00000a34 movs r3, 2 | r3 = 2;
0x00000a36 str.w fp, [sp, 0x18] | __asm ("str.w fp, [arg_18h]");
0x00000a3a str r3, [sp, 0x10] | *(arg_10h) = r3;
0x00000a3c add r8, pc | r8 = 0x18cc;
| do {
0x00000a3e mov r0, r7 | r0 = r7;
0x00000a40 blx 0x8e0 | r0 = readdir64 ();
0x00000a44 cmp r0, 0 |
| if (r0 == 0) {
0x00000a46 beq 0xad4 | goto label_13;
| }
| label_0:
0x00000a48 add.w r4, r0, 0x13 | r4 = r0 + 0x13;
0x00000a4c movs r2, 5 | r2 = 5;
0x00000a4e mov r1, r8 | r1 = r8;
0x00000a50 mov r0, r4 | r0 = r4;
0x00000a52 blx 0x8f8 | r0 = strncmp (r0, r1, r2);
0x00000a56 mov r6, r0 | r6 = r0;
0x00000a58 cmp r0, 0 |
0x00000a5a bne 0xa3e |
| } while (r0 != 0);
0x00000a5c movs r0, 0x10 | r0 = 0x10;
0x00000a5e blx 0x85c | r0 = malloc (r0);
0x00000a62 mov sl, r0 | sl = r0;
0x00000a64 cmp r0, 0 |
| if (r0 == 0) {
0x00000a66 beq.w 0xe46 | goto label_14;
| }
0x00000a6a ldr r0, [sp, 0x14] | r0 = *(s2);
| label_10:
0x00000a6c blx 0x88c | r0 = strlen (r0);
0x00000a70 mov fp, r0 |
0x00000a72 mov r0, r4 | r0 = r4;
0x00000a74 blx 0x88c | r0 = strlen (r0);
0x00000a78 add.w r1, fp, r0 | r1 = fp + r0;
0x00000a7c adds r5, r1, 2 | r5 = r1 + 2;
0x00000a7e mov r0, r5 | r0 = r5;
0x00000a80 blx 0x85c | r0 = malloc (r0);
0x00000a84 cmp r0, 0 |
| if (r0 == 0) {
0x00000a86 beq.w 0xe38 | goto label_15;
| }
0x00000a8a ldr r1, [sp, 0x14] | r1 = *(s2);
0x00000a8c mov r2, fp | r2 = fp;
0x00000a8e str.w r0, [sl] | __asm ("str.w r0, [sl]");
0x00000a92 str r0, [sp, 0xc] | *(arg_ch) = r0;
0x00000a94 blx 0x7fc | memcpy (r0, r1, r2);
0x00000a98 ldr r3, [sp, 0xc] | r3 = *(arg_ch);
0x00000a9a movs r0, 0x2f | r0 = 0x2f;
0x00000a9c add.w r2, fp, 1 | r2 += dest;
0x00000aa0 mov r1, r4 | r1 = r4;
0x00000aa2 strb.w r0, [r3, fp] | *((r3 + fp)) = r0;
0x00000aa6 adds r0, r3, r2 | r0 = r3 + r2;
0x00000aa8 blx 0x844 | strcpy (r0, r1);
0x00000aac mov.w r3, -1 | r3 = -1;
0x00000ab0 str.w r6, [sl, 0xc] | __asm ("str.w r6, [sl, 0xc]");
0x00000ab4 strd r3, r6, [sl, 4] | __asm ("strd r3, r6, [sl, 4]");
0x00000ab8 ldr r3, [sp, 0x10] | r3 = *(arg_10h);
0x00000aba cmp r3, sb |
| if (r3 == sb) {
0x00000abc beq.w 0xd44 | goto label_16;
| }
| label_6:
0x00000ac0 ldr r3, [sp, 0x20] | r3 = *(ptr);
0x00000ac2 mov r0, r7 | r0 = r7;
0x00000ac4 str.w sl, [r3, sb, lsl 2] | __asm ("str.w sl, [r3, sb, lsl 2]");
0x00000ac8 add.w sb, sb, 1 | sb++;
0x00000acc blx 0x8e0 | r0 = readdir64 ();
0x00000ad0 cmp r0, 0 |
| if (r0 != 0) {
0x00000ad2 bne 0xa48 | goto label_0;
| }
| label_13:
0x00000ad4 mov r0, r7 | r0 = r7;
0x00000ad6 ldr.w fp, [sp, 0x18] | fp = *(arg_18h);
0x00000ada blx 0x928 | closedir ();
0x00000ade ldr r3, [pc, 0x3b0] |
0x00000ae0 add r3, pc | r3 = 0x1976;
0x00000ae2 str r3, [sp, 0x18] | *(arg_18h) = r3;
0x00000ae4 ldr r3, [pc, 0x3ac] |
0x00000ae6 add r3, pc | r3 = 0x197e;
0x00000ae8 str r3, [sp, 0x24] | *(arg_24h) = r3;
0x00000aea ldr r3, [pc, 0x3ac] |
0x00000aec add r3, pc | r3 = 0x198a;
0x00000aee str r3, [sp, 0x1c] | *(arg_1ch) = r3;
0x00000af0 ldr r3, [pc, 0x3a8] |
0x00000af2 add r3, pc | r3 = 0x1992;
0x00000af4 str r3, [sp, 0x28] | *(arg_28h) = r3;
0x00000af6 cmp.w sb, 0 |
| if (sb == 0) {
0x00000afa beq 0xbce | goto label_17;
| }
| label_2:
0x00000afc ldr r3, [sp, 0x20] | r3 = *(ptr);
0x00000afe movs r6, 0 | r6 = 0;
0x00000b00 str r6, [sp, 0xc] | *(arg_ch) = r6;
0x00000b02 subs r7, r3, 4 | r7 = r3 - 4;
0x00000b04 str r7, [sp, 0x2c] | *(arg_2ch) = r7;
| label_1:
0x00000b06 ldr r4, [r7, 4]! | r4 = *((r7 += 4));
0x00000b0a adds r6, 1 | r6++;
0x00000b0c ldrd r3, r8, [r4, 4] | __asm ("ldrd r3, r8, [r4, 4]");
0x00000b10 cmp r3, 0 |
| if (r3 >= 0) {
0x00000b12 bge.w 0xdca | goto label_18;
| }
0x00000b16 cmp.w r8, 0 |
| if (r8 != 0) {
0x00000b1a bne 0xba2 | goto label_3;
| }
0x00000b1c ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x00000b1e cmp r3, 5 |
| if (r3 > 5) {
0x00000b20 bgt.w 0xc30 | goto label_19;
| }
0x00000b24 adds r3, 1 | r3++;
0x00000b26 movs r1, 1 | r1 = 1;
0x00000b28 mov r2, r8 | r2 = r8;
0x00000b2a mov r0, r1 | r0 = r1;
0x00000b2c str r3, [r4, 0xc] | *((r4 + 0xc)) = r3;
0x00000b2e blx 0x8ec | r0 = socket (r0, r1, r2);
0x00000b32 cmp r0, 0 |
0x00000b34 mov r5, r0 | r5 = r0;
0x00000b36 str r0, [r4, 4] | *((r4 + 4)) = r0;
| if (r0 < 0) {
0x00000b38 blt.w 0xc4a | goto label_20;
| }
0x00000b3c mov.w r2, 0x800 | r2 = 0x800;
0x00000b40 movs r1, 4 | r1 = 4;
0x00000b42 blx 0x8d4 | r0 = fcntl64 ();
0x00000b46 cmp r0, 0 |
| if (r0 < 0) {
0x00000b48 blt.w 0xcde | goto label_21;
| }
0x00000b4c mov r1, r8 | r1 = r8;
0x00000b4e add.w r8, sp, 0x34 | r8 += s;
0x00000b52 movs r2, 0x6e | r2 = 0x6e;
0x00000b54 mov r0, r8 | r0 = r8;
0x00000b56 blx 0x8a4 | memset (r0, r1, r2);
0x00000b5a ldr.w sl, [r4] | sl = *(r4);
0x00000b5e movs r3, 1 | r3 = 1;
0x00000b60 movs r2, 0x6b | r2 = 0x6b;
0x00000b62 add.w r0, sp, 0x36 | r0 += arg_36h;
0x00000b66 strh.w r3, [sp, 0x34] | *(s) = r3;
0x00000b6a mov r1, sl | r1 = sl;
0x00000b6c blx 0x8b0 | strncpy (r0, r1, r2);
0x00000b70 b 0xb7c |
| while (r0 < 0) {
0x00000b72 blx 0x898 | r0 = errno_location ();
0x00000b76 ldr r3, [r0] | r3 = *(r0);
0x00000b78 cmp r3, 4 |
| if (r3 != 4) {
0x00000b7a bne 0xc76 | goto label_22;
| }
0x00000b7c movs r2, 0x6e | r2 = 0x6e;
0x00000b7e mov r1, r8 | r1 = r8;
0x00000b80 mov r0, r5 | r0 = r5;
0x00000b82 blx 0x91c | r0 = connect (r0, r1, r2);
0x00000b86 cmp r0, 0 |
0x00000b88 blt 0xb72 |
| }
0x00000b8a ldr r2, [sp, 0x18] | r2 = *(arg_18h);
0x00000b8c mov r0, r5 | r0 = r5;
0x00000b8e ldr r3, [r2, 8] | r3 = *((r2 + 8));
0x00000b90 adds r3, 1 | r3++;
0x00000b92 str r3, [r2, 8] | *((r2 + 8)) = r3;
0x00000b94 movs r3, 3 | r3 = 3;
0x00000b96 str r3, [r4, 8] | *((r4 + 8)) = r3;
0x00000b98 blx 0x910 | close (r0);
0x00000b9c mov.w r3, -1 | r3 = -1;
0x00000ba0 str r3, [r4, 4] | *((r4 + 4)) = r3;
| label_3:
0x00000ba2 cmp sb, r6 |
| if (sb != r6) {
0x00000ba4 bne 0xb06 | goto label_1;
| }
0x00000ba6 ldr r3, [sp, 0xc] | r3 = *(arg_ch);
0x00000ba8 cmp r3, 0 |
| if (r3 == 0) {
0x00000baa beq.w 0xd6a | goto label_23;
| }
0x00000bae ldr r3, [pc, 0x2f0] |
0x00000bb0 movs r2, 0x41 | r2 = 0x41;
0x00000bb2 ldr r0, [pc, 0x2f0] |
0x00000bb4 movs r1, 1 | r1 = 1;
0x00000bb6 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00000bba add r0, pc | r0 = 0x1a64;
0x00000bbc ldr r3, [r3] | r3 = *(0xea2);
0x00000bbe blx 0x838 | fwrite (r0, r1, r2, r3);
0x00000bc2 movs r0, 2 | r0 = 2;
0x00000bc4 blx 0x808 | sleep (r0);
0x00000bc8 cmp.w sb, 0 |
| if (sb != 0) {
0x00000bcc bne 0xafc | goto label_2;
| }
| label_17:
0x00000bce ldr r2, [pc, 0x2d8] |
0x00000bd0 add r2, pc | r2 = 0x1a7e;
0x00000bd2 ldr r3, [r2, 8] | r3 = *(0x1a86);
0x00000bd4 ldr r1, [r2] | r1 = *(0x1a7e);
0x00000bd6 rsbs r3, r3, 0 | r3 -= ;
0x00000bd8 subs r3, r3, r1 | r3 -= r1;
0x00000bda ldr r1, [r2, 4] | r1 = *(0x1a82);
0x00000bdc add r3, r1 | r3 += r1;
0x00000bde str r3, [r2, 4] | *((r2 + 4)) = r3;
0x00000be0 ldr r3, [sp, 0x20] | r3 = *(ptr);
0x00000be2 cmp r3, 0 |
| if (r3 != 0) {
0x00000be4 bne.w 0xdac | goto label_24;
| }
| label_7:
0x00000be8 ldr r4, [pc, 0x2c0] |
0x00000bea movs r0, 1 | r0 = 1;
0x00000bec ldr r1, [pc, 0x2c0] |
0x00000bee ldr r3, [sp, 0x14] | r3 = *(s2);
0x00000bf0 add r4, pc |
0x00000bf2 ldrd r2, r5, [r4] | __asm ("ldrd r2, r5, [r4]");
0x00000bf6 add r1, pc | r1 = 0x1aaa;
0x00000bf8 str r5, [sp, 4] | var_4h = r5;
0x00000bfa ldr r4, [r4, 8] | r4 = *(0x1aa8);
0x00000bfc str r4, [sp] | *(sp) = r4;
0x00000bfe blx 0x8bc | printf_chk ();
0x00000c02 ldr r2, [pc, 0x2b0] |
0x00000c04 ldr r3, [pc, 0x274] | r3 = *(0xe7c);
0x00000c06 add r2, pc | r2 = 0x1ac0;
0x00000c08 ldr r3, [r2, r3] | r3 = *(0x1ac0);
0x00000c0a ldr r2, [r3] | r2 = *(0x1ac0);
0x00000c0c ldr r3, [sp, 0xa4] | r3 = *(arg_a4h);
0x00000c0e eors r2, r3 | r2 ^= r3;
0x00000c10 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00000c14 bne.w 0xe54 | goto label_25;
| }
0x00000c16 strh r6, [r3, 8] | *((r3 + 8)) = r6;
0x00000c18 movs r0, 0 | r0 = 0;
0x00000c1a add sp, 0xac |
0x00000c1c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_19:
0x00000c30 ldr r3, [pc, 0x26c] | r3 = *(0xea0);
0x00000c32 movs r1, 1 | r1 = 1;
0x00000c34 ldr r2, [pc, 0x280] |
0x00000c36 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00000c3a add r2, pc | r2 = 0x1af6;
0x00000c3c ldr r0, [r3] | r0 = *(0xea0);
0x00000c3e ldr r3, [r4] | r3 = *(r4);
0x00000c40 blx 0x8c8 | fprintf_chk ()
0x00000c44 movs r3, 1 | r3 = 1;
0x00000c46 str r3, [r4, 8] | *((r4 + 8)) = r3;
0x00000c48 b 0xba2 | goto label_3;
| label_20:
0x00000c4a ldr r3, [pc, 0x254] | r3 = *(0xea2);
0x00000c4c ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00000c50 ldr r5, [r3] | r5 = *(0xea2);
0x00000c52 blx 0x898 | r0 = errno_location ();
0x00000c56 ldr r0, [r0] | r0 = *(r0);
0x00000c58 blx 0x868 | strerror (r0);
0x00000c5c ldr r2, [pc, 0x25c] |
0x00000c5e mov r3, r0 | r3 = r0;
0x00000c60 movs r1, 1 | r1 = 1;
0x00000c62 mov r0, r5 | r0 = r5;
0x00000c64 add r2, pc | r2 = 0x1b24;
0x00000c66 blx 0x8c8 | fprintf_chk ()
0x00000c6a str.w r8, [r4, 8] | __asm ("str.w r8, [r4, 8]");
| do {
| label_4:
0x00000c6e ldr r3, [sp, 0xc] | r3 = *(arg_ch);
0x00000c70 adds r3, 1 | r3++;
0x00000c72 str r3, [sp, 0xc] | *(arg_ch) = r3;
0x00000c74 b 0xba2 | goto label_3;
| label_22:
0x00000c76 mov r2, r3 | r2 = r3;
0x00000c78 mov r3, r0 | r3 = r0;
0x00000c7a cmp r2, 0x6f |
0x00000c7c mov r0, r2 | r0 = r2;
| if (r2 != 0x6f) {
0x00000c7e beq 0xcb6 |
0x00000c80 cmp r2, 0x73 |
| if (r2 == 0x73) {
0x00000c82 beq 0xd18 | goto label_26;
| }
0x00000c84 cmp r2, 0xb |
| if (r2 == 0xb) {
0x00000c86 beq 0xd18 | goto label_26;
| }
0x00000c88 ldr r3, [pc, 0x214] | r3 = *(0xea0);
0x00000c8a ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00000c8e ldr.w r8, [r3] | r8 = *(0xea0);
0x00000c92 blx 0x868 | strerror (r0);
0x00000c96 ldr r2, [sp, 0x24] | r2 = *(arg_24h);
0x00000c98 mov r3, sl | r3 = sl;
0x00000c9a str r0, [sp] | *(sp) = r0;
0x00000c9c mov r0, r8 | r0 = r8;
| label_5:
0x00000c9e movs r1, 1 | r1 = 1;
0x00000ca0 blx 0x8c8 | fprintf_chk ()
0x00000ca4 movs r3, 1 | r3 = 1;
0x00000ca6 mov r0, r5 | r0 = r5;
0x00000ca8 str r3, [r4, 8] | *((r4 + 8)) = r3;
0x00000caa blx 0x910 | close (r0);
0x00000cae mov.w r3, -1 | r3 = -1;
0x00000cb2 str r3, [r4, 4] | *((r4 + 4)) = r3;
0x00000cb4 b 0xba2 | goto label_3;
| }
0x00000cb6 str r3, [sp, 0x10] | *(arg_10h) = r3;
0x00000cb8 mov r0, sl | r0 = sl;
0x00000cba ldr r3, [sp, 0x1c] | r3 = *(arg_1ch);
0x00000cbc ldr r2, [r3] | r2 = *(r3);
0x00000cbe adds r2, 1 | r2++;
0x00000cc0 str r2, [r3] | *(r3) = r2;
0x00000cc2 blx 0x820 | r0 = unlink (r0);
0x00000cc6 cmp r0, 0 |
0x00000cc8 ldr r3, [sp, 0x10] | r3 = *(arg_10h);
| if (r0 < 0) {
0x00000cca blt 0xd2a | goto label_27;
| }
0x00000ccc movs r3, 4 | r3 = 4;
0x00000cce mov r0, r5 | r0 = r5;
0x00000cd0 str r3, [r4, 8] | *((r4 + 8)) = r3;
0x00000cd2 blx 0x910 | close (r0);
0x00000cd6 mov.w r3, -1 | r3 = -1;
0x00000cda str r3, [r4, 4] | *((r4 + 4)) = r3;
0x00000cdc b 0xba2 | goto label_3;
| label_21:
0x00000cde ldr r3, [pc, 0x1c0] | r3 = *(0xea2);
0x00000ce0 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00000ce4 ldr.w sl, [r3] | sl = *(0xea2);
0x00000ce8 ldr r3, [r4] | r3 = *(r4);
0x00000cea str r3, [sp, 0x10] | *(arg_10h) = r3;
0x00000cec blx 0x898 | r0 = errno_location ();
0x00000cf0 ldr r0, [r0] | r0 = *(r0);
0x00000cf2 blx 0x868 | strerror (r0);
0x00000cf6 ldr r2, [pc, 0x1c8] |
0x00000cf8 movs r1, 1 | r1 = 1;
0x00000cfa ldr r3, [sp, 0x10] | r3 = *(arg_10h);
0x00000cfc str r0, [sp] | *(sp) = r0;
0x00000cfe mov r0, sl | r0 = sl;
0x00000d00 add r2, pc | r2 = 0x1bc6;
0x00000d02 blx 0x8c8 | fprintf_chk ()
0x00000d06 mov r0, r5 | r0 = r5;
0x00000d08 str.w r8, [r4, 8] | __asm ("str.w r8, [r4, 8]");
0x00000d0c blx 0x910 | close (r0);
0x00000d10 mov.w r3, -1 | r3 = -1;
0x00000d14 str r3, [r4, 4] | *((r4 + 4)) = r3;
0x00000d16 b 0xc6e |
| } while (1);
| label_26:
0x00000d18 movs r3, 0 | r3 = 0;
0x00000d1a mov r0, r5 | r0 = r5;
0x00000d1c str r3, [r4, 8] | *((r4 + 8)) = r3;
0x00000d1e blx 0x910 | close (r0);
0x00000d22 mov.w r3, -1 | r3 = -1;
0x00000d26 str r3, [r4, 4] | *((r4 + 4)) = r3;
0x00000d28 b 0xc6e | goto label_4;
| label_27:
0x00000d2a ldr r0, [r3] | r0 = *(r3);
0x00000d2c ldr r3, [pc, 0x170] | r3 = *(0xea0);
0x00000d2e ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00000d32 ldr.w r8, [r3] | r8 = *(0xea0);
0x00000d36 blx 0x868 | strerror (r0);
0x00000d3a ldr r2, [sp, 0x28] | r2 = *(arg_28h);
0x00000d3c mov r3, sl | r3 = sl;
0x00000d3e str r0, [sp] | *(sp) = r0;
0x00000d40 mov r0, r8 | r0 = r8;
0x00000d42 b 0xc9e | goto label_5;
| label_16:
0x00000d44 lsls r3, r3, 1 | r3 <<= 1;
0x00000d46 ldr r0, [sp, 0x20] | r0 = *(ptr);
0x00000d48 lsls r4, r3, 2 | r4 = r3 << 2;
0x00000d4a str r3, [sp, 0x10] | *(arg_10h) = r3;
| if (r4 == r3) {
0x00000d4c beq 0xdbc | goto label_28;
| }
0x00000d4e mov r1, r4 | r1 = r4;
0x00000d50 blx 0x82c | realloc (r0, r1);
0x00000d54 str r0, [sp, 0x20] | *(ptr) = r0;
0x00000d56 cmp r0, 0 |
| if (r0 != 0) {
0x00000d58 bne.w 0xac0 | goto label_6;
| }
0x00000d5c ldr r2, [pc, 0x164] |
0x00000d5e mov r3, r4 | r3 = r4;
0x00000d60 ldr.w fp, [sp, 0x18] | fp = *(arg_18h);
0x00000d64 ldr r0, [pc, 0x138] | r0 = *(0xea0);
0x00000d66 add r2, pc | r2 = 0x1c2e;
0x00000d68 b 0xdd2 | goto label_9;
| label_23:
0x00000d6a ldr r2, [pc, 0x15c] |
0x00000d6c add r2, pc | r2 = 0x1c3a;
0x00000d6e ldr r3, [r2, 8] | r3 = *(0x1c42);
0x00000d70 ldr r1, [r2] | r1 = *(0x1c3a);
0x00000d72 sub.w r3, sb, r3 | r3 = sb - r3;
0x00000d76 subs r3, r3, r1 | r3 -= r1;
0x00000d78 ldr r1, [r2, 4] | r1 = *(0x1c3e);
0x00000d7a add r3, r1 | r3 += r1;
0x00000d7c str r3, [r2, 4] | *((r2 + 4)) = r3;
0x00000d7e ldr r3, [sp, 0x20] | r3 = *(ptr);
0x00000d80 cmp r3, 0 |
| if (r3 == 0) {
0x00000d82 beq.w 0xbe8 | goto label_7;
| }
0x00000d86 ldr r5, [sp, 0x2c] | r5 = *(arg_2ch);
0x00000d88 ldr r6, [sp, 0xc] | r6 = *(arg_ch);
| do {
0x00000d8a ldr r4, [r5, 4]! | r4 = *((r5 += 4));
| if (r4 != 0) {
0x00000d8e cbz r4, 0xda6 |
0x00000d90 ldr r0, [r4] | r0 = *(r4);
0x00000d92 blx 0x7f0 | free (r0);
0x00000d96 ldr r0, [r4, 4] | r0 = *((r4 + 4));
0x00000d98 cmp r0, 0 |
| if (r0 >= 0) {
0x00000d9a blt 0xda0 |
0x00000d9c blx 0x910 | close (r0);
| }
0x00000da0 mov r0, r4 | r0 = r4;
0x00000da2 blx 0x7f0 | free (r0);
| }
0x00000da6 adds r6, 1 | r6++;
0x00000da8 cmp sb, r6 |
0x00000daa bne 0xd8a |
| } while (sb != r6);
| label_24:
0x00000dac ldr r0, [sp, 0x20] | r0 = *(ptr);
0x00000dae blx 0x7f0 | free (r0);
0x00000db2 b 0xbe8 | goto label_7;
| label_28:
0x00000dbc blx 0x7f0 | free (r0);
0x00000dc0 str r4, [sp, 0x20] | *(ptr) = r4;
0x00000dc2 b 0xac0 | goto label_6;
| label_18:
0x00000dca ldr r2, [pc, 0x104] |
0x00000dcc mov r3, r8 | r3 = r8;
0x00000dce ldr r0, [pc, 0xd0] | r0 = *(0xea2);
0x00000dd0 add r2, pc | r2 = 0x1ca6;
| do {
| label_9:
0x00000dd2 ldr.w r0, [fp, r0] | r0 = *((fp + r0));
0x00000dd6 movs r1, 1 | r1 = 1;
0x00000dd8 ldr r0, [r0] | r0 = *(r0);
0x00000dda blx 0x8c8 | fprintf_chk ()
0x00000dde movs r0, 1 | r0 = 1;
0x00000de0 blx 0x880 | exit (r0);
0x00000de4 ldr r3, [pc, 0xec] |
0x00000de6 add r3, pc | r3 = 0x1cbe;
0x00000de8 str r3, [sp, 0x14] | *(s2) = r3;
0x00000dea b 0xa10 | goto label_8;
| label_11:
0x00000e04 ldr r2, [pc, 0xd8] |
0x00000e06 movs r3, 8 | r3 = 8;
0x00000e08 ldr r0, [pc, 0x94] | r0 = *(0xea0);
0x00000e0a add r2, pc | r2 = 0x1cee;
0x00000e0c b 0xdd2 |
| } while (1);
| label_12:
0x00000e0e ldr r3, [pc, 0x90] | r3 = *(0xea2);
0x00000e10 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00000e14 ldr r5, [r3] | r5 = *(0xea2);
0x00000e16 blx 0x898 | r0 = errno_location ();
0x00000e1a ldr r0, [r0] | r0 = *(r0);
0x00000e1c blx 0x868 | strerror (r0);
0x00000e20 ldr r2, [pc, 0xc0] |
0x00000e22 mov r4, r0 | r4 = r0;
0x00000e24 ldr r3, [sp, 0x14] | r3 = *(s2);
0x00000e26 movs r1, 1 | r1 = 1;
0x00000e28 mov r0, r5 | r0 = r5;
0x00000e2a str r4, [sp] | *(sp) = r4;
0x00000e2c add r2, pc | r2 = 0x1d14;
0x00000e2e blx 0x8c8 | fprintf_chk ()
0x00000e32 movs r0, 1 | r0 = 1;
0x00000e34 blx 0x880 | exit (r0);
| label_15:
0x00000e38 ldr r2, [pc, 0xac] |
0x00000e3a mov r3, r5 | r3 = r5;
0x00000e3c ldr.w fp, [sp, 0x18] | fp = *(arg_18h);
0x00000e40 ldr r0, [pc, 0x5c] | r0 = *(0xea0);
0x00000e42 add r2, pc | r2 = 0x1d2e;
0x00000e44 b 0xdd2 | goto label_9;
| label_14:
0x00000e46 ldr r2, [pc, 0xa4] |
0x00000e48 movs r3, 0x10 | r3 = 0x10;
0x00000e4a ldr.w fp, [sp, 0x18] | fp = *(arg_18h);
0x00000e4e ldr r0, [pc, 0x50] | r0 = *(0xea2);
0x00000e50 add r2, pc | r2 = 0x1d42;
0x00000e52 b 0xdd2 | goto label_9;
| label_25:
0x00000e54 blx 0x814 | stack_chk_fail ();
0x00000e58 ldr.w fp, [sp, 0xc] | fp = *(arg_ch);
0x00000e5c movs r2, 0x3b | r2 = 0x3b;
0x00000e5e ldr r3, [pc, 0x40] |
0x00000e60 movs r1, 1 | r1 = 1;
0x00000e62 ldr r0, [pc, 0x8c] |
0x00000e64 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00000e68 add r0, pc | r0 = 0x1d5e;
0x00000e6a ldr r3, [r3] | r3 = *(0xea2);
0x00000e6c blx 0x838 | fwrite (r0, r1, r2, r3);
0x00000e70 movs r0, 1 | r0 = 1;
0x00000e72 blx 0x880 | exit (r0);
0x00000e76 nop |
0x00000e78 asrs r0, r3, 0x18 | r0 = r3 >> 0x18;
0x00000e7a movs r1, r0 | r1 = r0;
0x00000e7c lsls r4, r1, 2 | r4 = r1 << 2;
0x00000e7e movs r0, r0 |
0x00000e80 asrs r0, r2, 0x18 | r0 = r2 >> 0x18;
0x00000e82 movs r1, r0 | r1 = r0;
0x00000e84 lsls r6, r1, 0x1e | r6 = r1 << 0x1e;
0x00000e86 movs r0, r0 |
0x00000e88 lsls r2, r2, 0x1e | r2 <<= 0x1e;
0x00000e8a movs r0, r0 |
0x00000e8c lsrs r4, r2, 1 | r4 = r2 >> 1;
0x00000e8e movs r0, r0 |
0x00000e90 asrs r0, r5, 0x14 | r0 = r5 >> 0x14;
0x00000e92 movs r1, r0 | r1 = r0;
0x00000e94 lsrs r6, r3, 4 | r6 = r3 >> 4;
0x00000e96 movs r0, r0 |
0x00000e98 asrs r4, r3, 0x14 | r4 = r3 >> 0x14;
0x00000e9a movs r1, r0 | r1 = r0;
0x00000e9c lsrs r2, r1, 5 | r2 = r1 >> 5;
0x00000e9e movs r0, r0 |
0x00000ea0 lsls r0, r2, 2 | r0 = r2 << 2;
0x00000ea2 movs r0, r0 |
0x00000ea4 lsls r2, r0, 0x1c | r2 = r0 << 0x1c;
0x00000ea6 movs r0, r0 |
0x00000ea8 asrs r0, r7, 0x10 | r0 = r7 >> 0x10;
0x00000eaa movs r1, r0 | r1 = r0;
0x00000eac asrs r0, r3, 0x10 | r0 = r3 >> 0x10;
0x00000eae movs r1, r0 | r1 = r0;
0x00000eb0 lsrs r2, r5, 1 | r2 = r5 >> 1;
0x00000eb2 movs r0, r0 |
0x00000eb4 asrs r6, r2, 0xd | r6 = r2 >> 0xd;
0x00000eb6 movs r1, r0 | r1 = r0;
0x00000eb8 lsls r2, r0, 0x1c | r2 = r0 << 0x1c;
0x00000eba movs r0, r0 |
0x00000ebc lsls r4, r6, 0x1c | r4 = r6 << 0x1c;
0x00000ebe movs r0, r0 |
0x00000ec0 lsls r4, r2, 0x1b | r4 = r2 << 0x1b;
0x00000ec2 movs r0, r0 |
0x00000ec4 lsls r2, r6, 0x14 | r2 = r6 << 0x14;
0x00000ec6 movs r0, r0 |
0x00000ec8 asrs r4, r3, 0xa | r4 = r3 >> 0xa;
0x00000eca movs r1, r0 | r1 = r0;
0x00000ecc lsls r2, r7, 0xc | r2 = r7 << 0xc;
0x00000ece movs r0, r0 |
0x00000ed0 lsls r0, r6, 0x14 | r0 = r6 << 0x14;
0x00000ed2 movs r0, r0 |
0x00000ed4 lsls r2, r1, 0xc | r2 = r1 << 0xc;
0x00000ed6 movs r0, r0 |
0x00000ed8 lsls r0, r3, 0xc | r0 = r3 << 0xc;
0x00000eda movs r0, r0 |
0x00000edc lsls r6, r3, 0xc | r6 = r3 << 0xc;
0x00000ede movs r0, r0 |
0x00000ee0 lsls r2, r0, 0x11 | r2 = r0 << 0x11;
0x00000ee2 movs r0, r0 |
0x00000ee4 lsls r0, r0, 0x11 | r0 <<= 0x11;
0x00000ee6 movs r0, r0 |
0x00000ee8 lsls r2, r1, 0x10 | r2 = r1 << 0x10;
0x00000eea movs r0, r0 |
0x00000eec lsls r4, r7, 0xf | r4 = r7 << 0xf;
0x00000eee movs r0, r0 |
0x00000ef0 lsls r0, r5, 0xe | r0 = r5 << 0xe;
0x00000ef2 movs r0, r0 |
0x00000f28 adds r0, 0x14 | r0 += 0x14;
0x00000f2a b 0xa6c | goto label_10;
| }
[*] Function fprintf used 7 times dbus-cleanup-sockets