[*] Binary protection state of dbus-launch
Partial RELRO No Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of dbus-launch
; 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-launch @ 0x11d4c */
| #include <stdint.h>
|
; (fcn) fcn.00011d4c () | void fcn_00011d4c (int32_t arg1, char * arg2) {
| r0 = arg1;
| r1 = arg2;
0x00011d4c push {r4, r5, r6, r7, r8, lr} |
0x00011d50 mov r6, r0 | r6 = r0;
0x00011d54 mov r7, r1 | r7 = r1;
0x00011d58 mov r5, r2 | r5 = r2;
0x00011d5c mov r4, 0 | r4 = 0;
| do {
| label_0:
0x00011d60 sub r2, r5, r4 | r2 = r5 - r4;
0x00011d64 add r1, r7, r4 | r1 = r7 + r4;
0x00011d68 mov r0, r6 | r0 = r6;
0x00011d6c bl 0x10be0 | r0 = write (r0, r1, r2);
0x00011d70 cmp r0, 0 |
| if (r0 >= 0) {
0x00011d74 bge 0x11dac | goto label_1;
| }
0x00011d78 bl 0x10d3c | r0 = errno_location ();
0x00011d7c ldr r0, [r0] | r0 = *(r0);
0x00011d80 cmp r0, 4 |
0x00011d84 beq 0x11d60 |
| } while (r0 == 4);
0x00011d88 ldr r3, [pc, 0x2c] | r3 = *(0x11db8);
0x00011d8c ldr r4, [r3] | r4 = *(0x11db8);
0x00011d90 bl 0x10d84 | strerror (r0);
0x00011d94 ldr r1, [pc, 0x24] | r1 = stderr;
0x00011d98 mov r2, r0 | r2 = r0;
0x00011d9c mov r0, r4 | r0 = r4;
0x00011da0 bl 0x10ce8 | fprintf (r0, r1, r2)
0x00011da4 mov r0, 1 | r0 = 1;
0x00011da8 bl 0x10cdc | r0 = exit (r0);
| label_1:
0x00011dac add r4, r4, r0 | r4 += r0;
0x00011db0 cmp r5, r4 |
| if (r5 > r4) {
0x00011db4 bhi 0x11d60 | goto label_0;
| }
0x00011db8 pop {r4, r5, r6, r7, r8, pc} |
| }
; 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-launch @ 0x11eb4 */
| #include <stdint.h>
|
; (fcn) fcn.00011eb4 () | void fcn_00011eb4 (int32_t arg1) {
| r0 = arg1;
0x00011eb4 push {r4, lr} |
0x00011eb8 mov r4, r0 | r4 = r0;
0x00011ebc bl 0x10dcc | r0 = strlen (r0);
0x00011ec0 cmp r0, 0x20 |
| if (r0 != 0x20) {
0x00011ec4 beq 0x11ee4 |
0x00011ec8 ldr r3, [pc, 0x28] | r3 = *(0x11ef4);
0x00011ecc mov r2, r4 | r2 = r4;
0x00011ed0 ldr r1, [pc, 0x24] | r1 = stderr;
0x00011ed4 ldr r0, [r3] | r0 = *(0x11ef4);
0x00011ed8 bl 0x10ce8 | fprintf (r0, r1, r2, r3)
0x00011edc mov r0, 1 | r0 = 1;
0x00011ee0 bl 0x10cdc | exit (r0);
| }
0x00011ee4 mov r0, r4 | r0 = r4;
0x00011ee8 bl 0x10d30 | dbus_strdup ();
0x00011eec ldr r3, [pc, 0xc] | r3 = "machine_ID__s_looks_like_its_the_wrong_length__should_be_32_hex_digits";
0x00011ef0 str r0, [r3, 4] | *((r3 + 4)) = r0;
0x00011ef4 pop {r4, pc} |
| }
; 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-launch @ 0x10df0 */
| #include <stdint.h>
|
; (fcn) main () | int32_t main (int32_t argc, char ** argv) {
| int32_t var_0h;
| int32_t var_4h;
| int32_t var_8h;
| int32_t var_ch;
| int32_t var_10h;
| int32_t var_14h;
| int32_t var_18h;
| FILE * stream;
| int32_t var_24h;
| int32_t var_28h;
| char ** var_2ch;
| int32_t var_30h;
| int32_t var_34h;
| int32_t var_38h;
| int32_t var_3ch;
| int32_t var_44h;
| char * * endptr;
| int32_t var_4ch;
| int32_t fildes;
| int32_t var_54h;
| int32_t var_58h;
| int32_t errnum;
| int32_t var_60h;
| int32_t var_64h;
| int32_t var_6ch;
| int32_t var_70h;
| int32_t var_78h;
| int32_t var_80h;
| char * str;
| char * buf;
| int32_t var_1h;
| size_t dest;
| int32_t var_380h;
| int32_t var_384h;
| r0 = argc;
| r1 = argv;
| /* [12] -r-x section size 4684 named .text */
0x00010df0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00010df4 sub sp, sp, 0x384 |
0x00010df8 str r0, [sp, 0x38] | var_38h = r0;
0x00010dfc str r1, [sp, 0x2c] | var_2ch = r1;
0x00010e00 mov r0, 0 | r0 = 0;
0x00010e04 add r1, sp, 0x44 | r1 += var_44h;
0x00010e08 bl 0x10d18 | r0 = dbus_ensure_standard_fds ();
0x00010e0c cmp r0, 0 |
| if (r0 != 0) {
0x00010e10 bne 0x1117c | goto label_22;
| }
0x00010e14 ldr r3, [pc, 0xcd4] | r3 = *(0x11aec);
0x00010e18 ldr r5, [sp, 0x44] | r5 = var_44h;
0x00010e1c ldr r4, [r3] | r4 = *(0x11aec);
0x00010e20 bl 0x10d3c | r0 = errno_location ();
0x00010e24 ldr r0, [r0] | r0 = *(r0);
0x00010e28 bl 0x10de4 | dbus_strerror ();
0x00010e2c mov r2, r5 | r2 = r5;
0x00010e30 ldr r1, [pc, 0xcbc] | r1 = stderr;
0x00010e34 mov r3, r0 | r3 = r0;
0x00010e38 mov r0, r4 | r0 = r4;
0x00010e3c bl 0x10ce8 | fprintf (r0, r1, r2, r3)
0x00010e40 mov r0, 1 | r0 = 1;
0x00010e44 add sp, sp, 0x384 |
0x00010e48 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_0:
0x00010e4c ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x00010e50 ldr r1, [pc, 0xca0] | r1 = "dbus-launch: fatal error setting up standard fds: %s: %s\n";
0x00010e54 ldr r4, [r3, r5, lsl 2] | offset_0 = r5 << 2;
| r4 = *((r3 + offset_0));
0x00010e58 mov r0, r4 | r0 = r4;
0x00010e5c bl 0x10c04 | r0 = strcmp (r0, r1);
0x00010e60 cmp r0, 0 |
| if (r0 != 0) {
0x00010e64 beq 0x10e90 |
0x00010e68 ldr r1, [pc, 0xc8c] | r1 = "--help";
0x00010e6c mov r0, r4 | r0 = r4;
0x00010e70 bl 0x10c04 | r0 = strcmp (r0, "--help");
0x00010e74 cmp r0, 0 |
| if (r0 == 0) {
0x00010e78 beq 0x10e90 | goto label_23;
| }
0x00010e7c ldr r1, [pc, 0xc7c] | r1 = "_h";
0x00010e80 mov r0, r4 | r0 = r4;
0x00010e84 bl 0x10c04 | r0 = strcmp (r0, "_h");
0x00010e88 cmp r0, 0 |
| if (r0 != 0) {
0x00010e8c bne 0x10ea8 | goto label_24;
| }
| }
| label_23:
0x00010e90 ldr r3, [pc, 0xc58] | r3 = *(0x11aec);
0x00010e94 ldr r0, [pc, 0xc68] | r0 = *(0x11b00);
0x00010e98 ldr r1, [r3] | r1 = *(0x11aec);
0x00010e9c bl 0x10d48 | fputs (r0, r1);
| do {
| label_11:
0x00010ea0 mov r0, 0 | r0 = 0;
| label_5:
0x00010ea4 bl 0x10cdc | exit (r0);
| label_24:
0x00010ea8 ldr r1, [pc, 0xc58] | r1 = "dbus_launch____version_____help_____sh_syntax_____csh_syntax_____auto_syntax_____binary_syntax_____close_stderr_____exit_with_session__exit_with_x11_____autolaunchMACHINEID_____config_fileFILENAME___PROGRAM___ARGS..._";
0x00010eac mov r0, r4 | r0 = r4;
0x00010eb0 bl 0x10c04 | r0 = strcmp (r0, "dbus_launch____version_____help_____sh_syntax_____csh_syntax_____auto_syntax_____binary_syntax_____close_stderr_____exit_with_session__exit_with_x11_____autolaunchMACHINEID_____config_fileFILENAME___PROGRAM___ARGS..._");
0x00010eb4 cmp r0, 0 |
| if (r0 == 0) {
0x00010eb8 beq 0x11128 | goto label_25;
| }
0x00010ebc ldr r1, [pc, 0xc48] | r1 = "__auto_syntax";
0x00010ec0 mov r0, r4 | r0 = r4;
0x00010ec4 bl 0x10c04 | r0 = strcmp (r0, "__auto_syntax");
0x00010ec8 cmp r0, 0 |
| if (r0 == 0) {
0x00010ecc beq 0x11130 | goto label_26;
| }
0x00010ed0 ldr r1, [pc, 0xc38] | r1 = "_c";
0x00010ed4 mov r0, r4 | r0 = r4;
0x00010ed8 bl 0x10c04 | r0 = strcmp (r0, "_c");
0x00010edc cmp r0, 0 |
| if (r0 == 0) {
0x00010ee0 beq 0x11130 | goto label_26;
| }
0x00010ee4 ldr r1, [pc, 0xc28] | r1 = "--csh-syntax";
0x00010ee8 mov r0, r4 | r0 = r4;
0x00010eec bl 0x10c04 | r0 = strcmp (r0, "--csh-syntax");
0x00010ef0 cmp r0, 0 |
| if (r0 == 0) {
0x00010ef4 beq 0x11138 | goto label_27;
| }
0x00010ef8 ldr r1, [pc, 0xc18] | r1 = "_s";
0x00010efc mov r0, r4 | r0 = r4;
0x00010f00 bl 0x10c04 | r0 = strcmp (r0, "_s");
0x00010f04 cmp r0, 0 |
| if (r0 == 0) {
0x00010f08 beq 0x11138 | goto label_27;
| }
0x00010f0c ldr r1, [pc, 0xc08] | r1 = "--sh-syntax";
0x00010f10 mov r0, r4 | r0 = r4;
0x00010f14 bl 0x10c04 | r0 = strcmp (r0, "--sh-syntax");
0x00010f18 cmp r0, 0 |
| if (r0 == 0) {
0x00010f1c beq 0x11144 | goto label_28;
| }
0x00010f20 ldr r1, [pc, 0xbf8] | r1 = "--binary-syntax";
0x00010f24 mov r0, r4 | r0 = r4;
0x00010f28 bl 0x10c04 | r0 = strcmp (r0, "--binary-syntax");
0x00010f2c subs r3, r0, 0 | r3 = r0 - 0;
| if (r3 != r0) {
0x00010f30 bne 0x10f48 | goto label_29;
| }
0x00010f34 ldr r1, [pc, 0xbe8] | r1 = "--version";
0x00010f38 ldr r0, [pc, 0xbe8] | r0 = "1.12.10";
0x00010f3c str r3, [sp, 0x20] | stream = r3;
0x00010f40 bl 0x10ca0 | printf ("1.12.10", "--version", r2, r3);
0x00010f44 b 0x10ea0 |
| } while (1);
| label_29:
0x00010f48 ldr r1, [pc, 0xbdc] | r1 = "D-Bus Message Bus Launcher %s\nCopyright (C) 2003 Red Hat, Inc.\nThis is free software; see the source for copying conditions.\nThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n";
0x00010f4c mov r0, r4 | r0 = r4;
0x00010f50 bl 0x10c04 | r0 = strcmp (r0, "D-Bus Message Bus Launcher %s\nCopyright (C) 2003 Red Hat, Inc.\nThis is free software; see the source for copying conditions.\nThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n");
0x00010f54 cmp r0, 0 |
| if (r0 == 0) {
0x00010f58 beq 0x11150 | goto label_30;
| }
0x00010f5c ldr r1, [pc, 0xbcc] | r1 = "--exit-with-session";
0x00010f60 mov r0, r4 | r0 = r4;
0x00010f64 bl 0x10c04 | r0 = strcmp (r0, "--exit-with-session");
0x00010f68 cmp r0, 0 |
| if (r0 == 0) {
0x00010f6c beq 0x1115c | goto label_31;
| }
0x00010f70 ldr r1, [pc, 0xbbc] | r1 = "--exit-with-x11";
0x00010f74 mov r0, r4 | r0 = r4;
0x00010f78 bl 0x10c04 | r0 = strcmp (r0, "--exit-with-x11");
0x00010f7c cmp r0, 0 |
| if (r0 == 0) {
0x00010f80 beq 0x11168 | goto label_32;
| }
0x00010f84 ldr r1, [pc, 0xbac] | r1 = "--close-stderr";
0x00010f88 mov r0, r4 | r0 = r4;
0x00010f8c bl 0x10c7c | r0 = strstr (r0, "--close-stderr");
0x00010f90 cmp r4, r0 |
| if (r4 != r0) {
0x00010f94 bne 0x10fe8 | goto label_33;
| }
0x00010f98 cmp r7, 0 |
| if (r7 != 0) {
0x00010f9c beq 0x10fb4 |
| label_1:
0x00010fa0 ldr r3, [pc, 0xb48] | r3 = *(0x11aec);
0x00010fa4 ldr r0, [pc, 0xb90] | r0 = "__autolaunch";
0x00010fa8 ldr r1, [r3] | r1 = *(0x11aec);
| label_3:
0x00010fac bl 0x10d48 | fputs ("__autolaunch", r1);
0x00010fb0 b 0x11120 | goto label_10;
| }
0x00010fb4 mov r1, 0x3d | r1 = 0x3d;
0x00010fb8 bl 0x10c94 | r0 = strchr (r0, r1);
0x00010fbc add r0, r0, 1 | r0++;
0x00010fc0 bl 0x11eb4 | fcn_00011eb4 (r0);
| label_2:
0x00010fc4 mov r7, 1 | r7 = 1;
| label_4:
0x00010fc8 add r5, r5, 1 | r5++;
0x00010fcc mov r8, r4 | r8 = r4;
| label_6:
0x00010fd0 ldr r3, [sp, 0x38] | r3 = var_38h;
0x00010fd4 cmp r5, r3 |
| if (r5 < r3) {
0x00010fd8 blt 0x10e4c | goto label_0;
| }
0x00010fdc mov r5, 0 | r5 = 0;
0x00010fe0 mov r4, r5 | r4 = r5;
0x00010fe4 b 0x11104 | goto label_34;
| label_33:
0x00010fe8 cmp r8, 0 |
| if (r8 == 0) {
0x00010fec beq 0x1101c | goto label_35;
| }
0x00010ff0 ldr r1, [pc, 0xb48] | r1 = "__autolaunch_given_twice";
0x00010ff4 mov r0, r8 | r0 = r8;
0x00010ff8 bl 0x10c04 | r0 = strcmp (r0, "__autolaunch_given_twice");
0x00010ffc cmp r0, 0 |
| if (r0 != 0) {
0x00011000 bne 0x1101c | goto label_35;
| }
0x00011004 cmp r7, 0 |
| if (r7 != 0) {
0x00011008 bne 0x10fa0 | goto label_1;
| }
0x0001100c mov r0, r4 | r0 = r4;
0x00011010 bl 0x11eb4 | fcn_00011eb4 (r0);
0x00011014 mov sb, r7 | sb = r7;
0x00011018 b 0x10fc4 | goto label_2;
| label_35:
0x0001101c ldr r1, [pc, 0xb1c] | r1 = "__autolaunch_given_twice";
0x00011020 mov r0, r4 | r0 = r4;
0x00011024 bl 0x10c04 | r0 = strcmp (r0, "__autolaunch_given_twice");
0x00011028 cmp r0, 0 |
| if (r0 == 0) {
0x0001102c beq 0x11174 | goto label_36;
| }
0x00011030 ldr r1, [pc, 0xb0c] | r1 = "__autolaunch";
0x00011034 mov r0, r4 | r0 = r4;
0x00011038 bl 0x10c7c | r0 = strstr (r0, "__autolaunch");
0x0001103c cmp r4, r0 |
| if (r4 != r0) {
0x00011040 bne 0x11074 | goto label_37;
| }
0x00011044 cmp sl, 0 |
0x00011048 beq 0x1105c |
| while (sl != 0) {
0x0001104c ldr r3, [pc, 0xa9c] | r3 = *(0x11aec);
0x00011050 ldr r0, [pc, 0xaf0] | r0 = "--config-file=";
0x00011054 ldr r1, [r3] | r1 = *(0x11aec);
0x00011058 b 0x10fac | goto label_3;
0x0001105c mov r1, 0x3d | r1 = 0x3d;
0x00011060 bl 0x10c94 | r0 = strchr (r0, r1);
0x00011064 add r0, r0, 1 | r0++;
0x00011068 bl 0x11f20 | r0 = fcn_00011f20 (r0);
0x0001106c mov sl, r0 | sl = r0;
0x00011070 b 0x10fc8 | goto label_4;
| label_37:
0x00011074 cmp r8, 0 |
| if (r8 == 0) {
0x00011078 beq 0x110b4 | goto label_38;
| }
0x0001107c ldr r1, [pc, 0xac8] | r1 = "__config_file_given_twice";
0x00011080 mov r0, r8 | r0 = r8;
0x00011084 bl 0x10c04 | r0 = strcmp (r0, "__config_file_given_twice");
0x00011088 subs r3, r0, 0 | r3 = r0 - 0;
0x0001108c str r3, [sp, 0x3c] | var_3ch = r3;
| if (r3 != r0) {
0x00011090 bne 0x110b4 | goto label_38;
| }
0x00011094 cmp sl, 0 |
0x00011098 bne 0x1104c |
| }
0x0001109c mov r0, r4 | r0 = r4;
0x000110a0 bl 0x11f20 | fcn_00011f20 (r0);
0x000110a4 ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x000110a8 mov sb, r3 | sb = r3;
0x000110ac mov sl, r0 | sl = r0;
0x000110b0 b 0x10fc8 | goto label_4;
| label_38:
0x000110b4 ldr r1, [pc, 0xa90] | r1 = "__config_file_given_twice";
0x000110b8 mov r0, r4 | r0 = r4;
0x000110bc bl 0x10c04 | r0 = strcmp (r0, "__config_file_given_twice");
0x000110c0 cmp r0, 0 |
| if (r0 != 0) {
0x000110c4 beq 0x11174 |
0x000110c8 ldrb r3, [r4] | r3 = *(r4);
0x000110cc cmp r3, 0x2d |
| if (r3 == 0x2d) {
0x000110d0 addne r5, r5, 1 | r5++;
| }
| if (r3 == 0x2d) {
0x000110d4 bne 0x11104 |
0x000110d8 ldr r1, [pc, 0xa70] | r1 = "--config-file";
0x000110dc mov r0, r4 | r0 = r4;
0x000110e0 bl 0x10c04 | r0 = strcmp (r0, "--config-file");
0x000110e4 cmp r0, 0 |
| if (r0 == 0) {
0x000110e8 movne r2, r4 | r2 = r4;
| }
| if (r0 == 0) {
0x000110ec ldrne r1, [pc, 0xa60] | r1 = "Option___s_is_unknown.";
| }
| if (r0 != 0) {
0x000110f0 bne 0x11114 | goto label_39;
| }
0x000110f4 ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x000110f8 add r3, r5, 1 | r3 = r5 + 1;
0x000110fc ldr r4, [r2, r3, lsl 2] | offset_1 = r3 << 2;
| r4 = *((r2 + offset_1));
0x00011100 add r5, r5, 2 | r5 += 2;
| }
| label_34:
0x00011104 cmp sb, 0 |
| if (sb == 0) {
0x00011108 beq 0x111b0 | goto label_40;
| }
0x0001110c ldr r1, [pc, 0xa44] | r1 = "Option___s_is_unknown.";
0x00011110 mov r2, r8 | r2 = r8;
| label_39:
0x00011114 ldr r3, [pc, 0x9d4] | r3 = *(0x11aec);
0x00011118 ldr r0, [r3] | r0 = *(0x11aec);
| label_7:
0x0001111c bl 0x10ce8 | fprintf (r0, "Option___s_is_unknown.", r2, r3)
| label_10:
0x00011120 mov r0, 1 | r0 = 1;
0x00011124 b 0x10ea4 | goto label_5;
| label_25:
0x00011128 mov r6, 1 | r6 = 1;
0x0001112c b 0x10fc8 | goto label_4;
| label_26:
0x00011130 mov fp, 1 |
0x00011134 b 0x10fc8 | goto label_4;
| label_27:
0x00011138 mov r3, 1 | r3 = 1;
0x0001113c str r3, [sp, 0x20] | stream = r3;
0x00011140 b 0x10fc8 | goto label_4;
| label_28:
0x00011144 mov r3, 1 | r3 = 1;
0x00011148 str r3, [sp, 0x34] | var_34h = r3;
0x0001114c b 0x10fc8 | goto label_4;
| label_30:
0x00011150 mov r3, 1 | r3 = 1;
0x00011154 str r3, [sp, 0x24] | var_24h = r3;
0x00011158 b 0x10fc8 | goto label_4;
| label_31:
0x0001115c mov r3, 1 | r3 = 1;
0x00011160 str r3, [sp, 0x30] | var_30h = r3;
0x00011164 b 0x10fc8 | goto label_4;
| label_32:
0x00011168 mov r3, 1 | r3 = 1;
0x0001116c str r3, [sp, 0x28] | var_28h = r3;
0x00011170 b 0x10fc8 | goto label_4;
| }
| label_36:
0x00011174 mov sb, 1 | sb = 1;
0x00011178 b 0x10fc8 | goto label_4;
| label_22:
0x0001117c mov sl, 0 | sl = 0;
0x00011180 mov r5, 1 | r5 = 1;
0x00011184 str sl, [sp, 0x28] | var_28h = sl;
0x00011188 mov sb, sl | sb = sl;
0x0001118c mov r7, sl | r7 = sl;
0x00011190 mov r6, sl | r6 = sl;
0x00011194 str sl, [sp, 0x20] | stream = sl;
0x00011198 mov fp, sl |
0x0001119c str sl, [sp, 0x34] | var_34h = sl;
0x000111a0 str sl, [sp, 0x30] | var_30h = sl;
0x000111a4 str sl, [sp, 0x24] | var_24h = sl;
0x000111a8 mov r8, sl | r8 = sl;
0x000111ac b 0x10fd0 | goto label_6;
| label_40:
0x000111b0 cmp r6, 0 |
| if (r6 != 0) {
0x000111b4 beq 0x111ec |
0x000111b8 ldr r0, [pc, 0x99c] | r0 = "Option `%s' requires an argument.\n";
0x000111bc bl 0x10da8 | r0 = getenv ("Option `%s' requires an argument.\n");
0x000111c0 subs r8, r0, 0 | r8 = r0 - 0;
| if (r8 == r0) {
0x000111c4 beq 0x111f0 | goto label_41;
| }
0x000111c8 bl 0x10dcc | strlen (r0);
0x000111cc mov r2, 3 | r2 = 3;
0x000111d0 ldr r1, [pc, 0x988] | r1 = "SHELL";
0x000111d4 sub r0, r0, 3 | r0 -= 3;
0x000111d8 add r0, r8, r0 | r0 = r8 + r0;
0x000111dc bl 0x10c58 | r0 = strncmp (r0, "SHELL", r2);
0x000111e0 cmp r0, 0 |
| if (r0 != 0) {
0x000111e4 bne 0x111f0 | goto label_41;
| }
0x000111e8 mov fp, r6 |
| }
0x000111ec ldr r6, [sp, 0x20] | r6 = stream;
| label_41:
0x000111f0 cmp r7, 0 |
| if (r7 == 0) {
0x000111f4 ldrne r3, [pc, 0x8f4] | r3 = obj.stderr;
| }
| if (r7 == 0) {
0x000111f8 ldrne r0, [pc, 0x964] | r0 = "Autolaunch requested, but X11 support not compiled in.\nCannot continue.\n";
| }
| if (r7 != 0) {
0x000111fc ldrne r1, [r3] | r1 = *(r3);
| goto label_42;
| }
| if (r7 != 0) {
| label_42:
0x00011200 bne 0x10fac | goto label_3;
| }
0x00011204 ldr r3, [sp, 0x30] | r3 = var_30h;
0x00011208 cmp r3, 0 |
| if (r3 == 0) {
0x0001120c ldrne r3, [pc, 0x8dc] | r3 = obj.stderr;
| }
| if (r3 == 0) {
0x00011210 ldrne r0, [pc, 0x950] | r0 = "Session lifetime based on X11 requested, but X11 support not compiled in.\n";
| }
| if (r3 != 0) {
0x00011214 ldrne r1, [r3] | r1 = *(r3);
| goto label_43;
| }
| if (r3 != 0) {
| label_43:
0x00011218 bne 0x10fac | goto label_3;
| }
0x0001121c add r0, sp, 0x4c | r0 += var_4ch;
0x00011220 bl 0x10bec | r0 = pipe ();
0x00011224 cmp r0, 0 |
0x00011228 bge 0x11250 |
| while (r0 < 0) {
| label_8:
0x0001122c ldr r3, [pc, 0x8bc] | r3 = *(0x11aec);
0x00011230 ldr r4, [r3] | r4 = *(0x11aec);
0x00011234 bl 0x10d3c | r0 = errno_location ();
0x00011238 ldr r0, [r0] | r0 = *(r0);
0x0001123c bl 0x10d84 | strerror (r0);
0x00011240 ldr r1, [pc, 0x924] | r1 = "Session lifetime based on X11 requested, but X11 support not compiled in.\n";
0x00011244 mov r2, r0 | r2 = r0;
| label_9:
0x00011248 mov r0, r4 | r0 = r4;
0x0001124c b 0x1111c | goto label_7;
0x00011250 add r0, sp, 0x5c | r0 += errnum;
0x00011254 bl 0x10bec | r0 = pipe ();
0x00011258 cmp r0, 0 |
0x0001125c blt 0x1122c |
| }
0x00011260 add r0, sp, 0x54 | r0 += var_54h;
0x00011264 bl 0x10bec | r0 = pipe ();
0x00011268 cmp r0, 0 |
| if (r0 < 0) {
0x0001126c blt 0x1122c | goto label_8;
| }
0x00011270 bl 0x10c34 | fork ();
0x00011274 subs r7, r0, 0 | r7 -= var_54h;
0x00011278 bge 0x1129c |
| while (r8 < var_54h) {
0x0001127c ldr r3, [pc, 0x86c] | r3 = *(0x11aec);
0x00011280 ldr r4, [r3] | r4 = *(0x11aec);
0x00011284 bl 0x10d3c | r0 = errno_location ();
0x00011288 ldr r0, [r0] | r0 = *(r0);
0x0001128c bl 0x10d84 | strerror (r0);
0x00011290 ldr r1, [pc, 0x8d8] | r1 = "Failed_to_create_pipe:__s";
0x00011294 mov r2, r0 | r2 = r0;
0x00011298 b 0x11248 | goto label_9;
| if (r7 != var_54h) {
0x0001129c bne 0x11700 | goto label_44;
| }
0x000112a0 ldr r3, [sp, 0x28] | r3 = var_28h;
0x000112a4 cmp r3, 0 |
| if (r3 != 0) {
0x000112a8 beq 0x112d4 |
0x000112ac ldr r4, [pc, 0x83c] | r4 = *(0x11aec);
0x000112b0 ldr r0, [r4] | r0 = *(0x11aec);
0x000112b4 bl 0x10c4c | fflush (r0);
0x000112b8 add r1, sp, 0x180 | r1 += buf;
0x000112bc mov r0, 4 | r0 = 4;
0x000112c0 bl 0x10d18 | r0 = dbus_ensure_standard_fds ();
0x000112c4 cmp r0, 0 |
| if (r0 != 0) {
0x000112c8 ldreq r4, [r4] | r4 = *(r4);
| }
| if (r0 != 0) {
0x000112cc ldreq r5, [sp, 0x180] | r5 = buf;
| }
| if (r0 == 0) {
0x000112d0 beq 0x11394 | goto label_45;
| }
| }
0x000112d4 bl 0x10c34 | fork ();
0x000112d8 subs r8, r0, 0 | r8 -= var_54h;
0x000112dc blt 0x1127c |
| }
0x000112e0 ldr r0, [sp, 0x4c] | r0 = var_4ch;
| if (r8 == var_54h) {
0x000112e4 beq 0x115e0 | goto label_46;
| }
0x000112e8 bl 0x10d00 | close (r0);
0x000112ec ldr r0, [sp, 0x50] | r0 = fildes;
0x000112f0 bl 0x10d00 | close (r0);
0x000112f4 ldr r0, [sp, 0x5c] | r0 = errnum;
0x000112f8 bl 0x10d00 | close (r0);
0x000112fc ldr r0, [sp, 0x60] | r0 = var_60h;
0x00011300 bl 0x10d00 | close (r0);
0x00011304 ldr r0, [sp, 0x58] | r0 = var_58h;
0x00011308 bl 0x10d00 | close (r0);
0x0001130c ldr r0, [pc, 0x860] | r0 = "Failed to fork: %s\n";
0x00011310 ldr r6, [sp, 0x54] | r6 = var_54h;
0x00011314 bl 0x10d54 | r0 = chdir ();
0x00011318 cmp r0, 0 |
| if (r0 < 0) {
0x0001131c bge 0x11340 |
0x00011320 ldr r3, [pc, 0x7c8] | r3 = *(0x11aec);
0x00011324 ldr r4, [r3] | r4 = *(0x11aec);
0x00011328 bl 0x10d3c | r0 = errno_location ();
0x0001132c ldr r0, [r0] | r0 = *(r0);
0x00011330 bl 0x10d84 | strerror (r0);
0x00011334 ldr r1, [pc, 0x83c] | r1 = *(0x11b74);
0x00011338 mov r2, r0 | r2 = r0;
0x0001133c b 0x11248 | goto label_9;
| }
0x00011340 ldr r3, [sp, 0x24] | r3 = var_24h;
0x00011344 ldr r0, [pc, 0x830] | r0 = "Could not change to root directory: %s\n";
0x00011348 cmp r3, 0 |
| if (r3 != 0) {
0x0001134c moveq r4, 3 | r4 = 3;
| }
| if (r3 == 0) {
0x00011350 movne r4, 2 | r4 = 2;
| }
0x00011354 bl 0x10da8 | r0 = getenv (r0);
0x00011358 cmp r0, 0 |
0x0001135c str r0, [sp, 0x48] | endptr = r0;
| if (r0 != 0) {
0x00011360 beq 0x11370 |
0x00011364 ldrb r3, [r0] | r3 = *(r0);
0x00011368 cmp r3, 0 |
| if (r3 != 0) {
0x0001136c bne 0x11374 | goto label_47;
| }
| }
0x00011370 orr r4, r4, 4 | r4 |= 4;
| label_47:
0x00011374 add r1, sp, 0x48 | r1 += endptr;
0x00011378 mov r0, r4 | r0 = r4;
0x0001137c bl 0x10d18 | r0 = dbus_ensure_standard_fds ();
0x00011380 cmp r0, 0 |
| if (r0 == 0) {
0x00011384 bne 0x113b8 |
0x00011388 ldr r3, [pc, 0x760] | r3 = *(0x11aec);
0x0001138c ldr r5, [sp, 0x48] | r5 = endptr;
0x00011390 ldr r4, [r3] | r4 = *(0x11aec);
| label_45:
0x00011394 bl 0x10d3c | r0 = errno_location ();
0x00011398 ldr r0, [r0] | r0 = *(r0);
0x0001139c bl 0x10d84 | strerror (r0);
0x000113a0 ldr r1, [pc, 0x7d8] | r1 = "DBUS_DEBUG_OUTPUT";
0x000113a4 mov r2, r5 | r2 = r5;
0x000113a8 mov r3, r0 | r3 = r0;
| label_15:
0x000113ac mov r0, r4 | r0 = r4;
| label_16:
0x000113b0 bl 0x10ce8 | fprintf (r0, "DBUS_DEBUG_OUTPUT", r2, r3)
0x000113b4 b 0x11120 | goto label_10;
| }
0x000113b8 bl 0x10c34 | r0 = fork ();
0x000113bc subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x000113c0 bge 0x113e4 |
0x000113c4 ldr r3, [pc, 0x724] | r3 = *(0x11aec);
0x000113c8 ldr r4, [r3] | r4 = *(0x11aec);
0x000113cc bl 0x10d3c | r0 = errno_location ();
0x000113d0 ldr r0, [r0] | r0 = *(r0);
0x000113d4 bl 0x10d84 | strerror (r0);
0x000113d8 ldr r1, [pc, 0x7a4] | r1 = *(0x11b80);
0x000113dc mov r2, r0 | r2 = r0;
0x000113e0 b 0x11248 | goto label_9;
| }
| if (r5 == r0) {
0x000113e4 beq 0x11408 | goto label_48;
| }
0x000113e8 mov r0, r8 | r0 = r8;
0x000113ec bl 0x11dc4 | r0 = fcn_00011dc4 (r0);
0x000113f0 cmp r0, 0 |
| if (r0 >= 0) {
0x000113f4 bge 0x10ea0 | goto label_11;
| }
0x000113f8 ldr r3, [pc, 0x6f0] | r3 = *(0x11aec);
0x000113fc ldr r0, [pc, 0x784] | r0 = "fork() failed in babysitter: %s\n";
0x00011400 ldr r1, [r3] | r1 = *(0x11aec);
0x00011404 b 0x10fac | goto label_3;
| label_48:
0x00011408 ldr r7, [pc, 0x77c] | r7 = "Failed_waitpid___waiting_for_bus_daemons_parent";
| do {
| label_12:
0x0001140c rsbs r4, r5, 4 | r4 = 4 - r5;
| if (r0 == 0) {
0x00011410 beq 0x1146c | goto label_49;
| }
0x00011414 mov r2, r4 | r2 = r4;
0x00011418 add r1, r7, r5 | r1 = r7 + r5;
0x0001141c mov r0, r6 | r0 = r6;
0x00011420 bl 0x10d24 | r0 = read (r0, r1, r2);
0x00011424 cmp r0, 0 |
| if (r0 >= 0) {
0x00011428 bge 0x11454 | goto label_50;
| }
0x0001142c bl 0x10d3c | r0 = errno_location ();
0x00011430 ldr r0, [r0] | r0 = *(r0);
0x00011434 cmp r0, 4 |
0x00011438 beq 0x1140c |
| } while (r0 == 4);
0x0001143c ldr r3, [pc, 0x6ac] | r3 = *(0x11aec);
0x00011440 ldr r4, [r3] | r4 = *(0x11aec);
0x00011444 bl 0x10d84 | strerror (r0);
0x00011448 ldr r1, [pc, 0x740] | r1 = *(0x11b8c);
0x0001144c mov r2, r0 | r2 = r0;
0x00011450 b 0x11248 | goto label_9;
| if (r0 != 4) {
| label_50:
0x00011454 addne r5, r5, r0 | r5 += r0;
| goto label_51;
| }
| if (r0 != 4) {
| label_51:
0x00011458 bne 0x1140c | goto label_12;
| }
0x0001145c ldr r3, [pc, 0x68c] | r3 = *(0x11aec);
0x00011460 ldr r0, [pc, 0x72c] | r0 = "Error_in_dbus_launch_reading_PID_from_bus_daemon:__s";
0x00011464 ldr r1, [r3] | r1 = *(0x11aec);
0x00011468 b 0x10fac | goto label_3;
| label_49:
0x0001146c ldr r3, [sp, 0x24] | r3 = var_24h;
0x00011470 cmp r3, 0 |
| if (r3 == 0) {
0x00011474 beq 0x10ea0 | goto label_11;
| }
0x00011478 ldr r6, [pc, 0x718] | r6 = "EOF_in_dbus_launch_reading_PID_from_bus_daemon";
0x0001147c add r5, sp, 0x64 | r5 += var_64h;
0x00011480 mov r0, r5 | r0 = r5;
0x00011484 str r4, [r6] | *(r6) = r4;
0x00011488 bl 0x10cc4 | sigemptyset ();
0x0001148c ldr r3, [pc, 0x708] | r3 = *(0x11b98);
0x00011490 ldm r5, {r0, r1} | r0 = *(r5);
| r1 = *((r5 + 4));
0x00011494 str r3, [sp, 0x6c] | var_6ch = r3;
0x00011498 add r3, sp, 0x78 | r3 += var_78h;
0x0001149c stm r3, {r0, r1} | *(r3) = r0;
| *((r3 + 4)) = r1;
0x000114a0 mov r2, r4 | r2 = r4;
0x000114a4 add r1, sp, 0x6c | r1 += var_6ch;
0x000114a8 mov r0, 1 | r0 = 1;
0x000114ac str r4, [sp, 0x70] | var_70h = r4;
0x000114b0 bl 0x10db4 | sigaction ();
0x000114b4 mov r2, r4 | r2 = r4;
0x000114b8 add r1, sp, 0x6c | r1 += var_6ch;
0x000114bc mov r0, 0xf | r0 = 0xf;
0x000114c0 bl 0x10db4 | sigaction ();
0x000114c4 mov r2, r4 | r2 = r4;
0x000114c8 add r1, sp, 0x6c | r1 += var_6ch;
0x000114cc mov r0, 2 | r0 = 2;
0x000114d0 bl 0x10db4 | sigaction ();
0x000114d4 mov r0, r4 | r0 = r4;
0x000114d8 bl 0x10d6c | r0 = isatty (r0);
0x000114dc cmp r0, 0 |
| if (r0 == 0) {
0x000114e0 addne r7, sp, 0x80 | r7 += var_80h;
| }
| if (r0 == 0) {
0x000114e4 bne 0x11574 |
0x000114e8 ldr r3, [pc, 0x600] | r3 = *(0x11aec);
0x000114ec ldr r0, [pc, 0x6ac] | r0 = *(0x11b9c);
0x000114f0 ldr r1, [r3] | r1 = *(0x11aec);
0x000114f4 bl 0x10d48 | fputs (r0, r1);
0x000114f8 mov r0, 1 | r0 = 1;
| label_14:
0x000114fc bl 0x11f5c | fcn_00011f5c (r0);
| label_13:
0x00011500 ldr r3, [sp, 0x80] | r3 = var_80h;
0x00011504 tst r3, 1 |
| if ((r3 & 1) != 0) {
0x00011508 beq 0x11568 |
0x0001150c mov r2, 0x200 | r2 = 0x200;
0x00011510 add r1, sp, 0x180 | r1 += buf;
0x00011514 mov r0, r8 | r0 = r8;
0x00011518 bl 0x10d24 | r0 = read (r0, r1, r2);
0x0001151c mov r5, r0 | r5 = r0;
0x00011520 bl 0x10d3c | errno_location ();
0x00011524 cmp r5, 0 |
0x00011528 ldr r0, [r0] | r0 = *(r0);
| if (r5 == 0) {
0x0001152c beq 0x115d8 | goto label_52;
| }
0x00011530 lsr r5, r5, 0x1f | r5 >>= 0x1f;
0x00011534 cmp r0, 4 |
| if (r0 != 4) {
0x00011538 moveq r5, 0 | r5 = 0;
| }
| if (r0 == 4) {
0x0001153c andne r5, r5, 1 | r5 &= 1;
| }
0x00011540 cmp r5, 0 |
| if (r5 == 0) {
0x00011544 beq 0x11574 | goto label_53;
| }
0x00011548 ldr r3, [pc, 0x5a0] | r3 = *(0x11aec);
0x0001154c ldr r4, [r3] | r4 = *(0x11aec);
0x00011550 bl 0x10d84 | strerror (r0);
0x00011554 ldr r1, [pc, 0x648] | r1 = "No_terminal_on_standard_input_and_no_X_display__cannot_attach_message_bus_to_session_lifetime";
0x00011558 mov r2, r0 | r2 = r0;
0x0001155c mov r0, r4 | r0 = r4;
0x00011560 bl 0x10ce8 | fprintf (r0, "No_terminal_on_standard_input_and_no_X_display__cannot_attach_message_bus_to_session_lifetime", r2)
0x00011564 b 0x115d8 | goto label_52;
| }
0x00011568 ldr r3, [sp, 0x100] | r3 = str;
0x0001156c tst r3, 1 |
| if ((r3 & 1) != 0) {
0x00011570 bne 0x115d8 | goto label_52;
| }
| }
| label_53:
0x00011574 mov r3, 0 | r3 = 0;
| do {
0x00011578 str r4, [r7, r3, lsl 2] | offset_2 = r3 << 2;
| *((r7 + offset_2)) = r4;
0x0001157c add r3, r3, 1 | r3++;
0x00011580 cmp r3, 0x20 |
0x00011584 bne 0x11578 |
| } while (r3 != 0x20);
0x00011588 mov r2, 0 | r2 = 0;
0x0001158c add r3, sp, 0x100 | r3 += str;
| do {
0x00011590 str r4, [r3, r2, lsl 2] | offset_3 = r2 << 2;
| *((r3 + offset_3)) = r4;
0x00011594 add r2, r2, 1 | r2++;
0x00011598 cmp r2, 0x20 |
0x0001159c bne 0x11590 |
| } while (r2 != 0x20);
0x000115a0 ldr r2, [sp, 0x80] | r2 = var_80h;
0x000115a4 str r4, [sp] | *(sp) = r4;
0x000115a8 orr r2, r2, 1 | r2 |= 1;
0x000115ac str r2, [sp, 0x80] | var_80h = r2;
0x000115b0 ldr r2, [sp, 0x100] | r2 = str;
0x000115b4 mov r1, r7 | r1 = r7;
0x000115b8 orr r2, r2, 1 | r2 |= 1;
0x000115bc str r2, [sp, 0x100] | str = r2;
0x000115c0 mov r0, 1 | r0 = 1;
0x000115c4 mov r2, 0 | r2 = 0;
0x000115c8 bl 0x10d90 | select ();
0x000115cc ldr r8, [r6] | r8 = *(r6);
0x000115d0 cmp r8, 0 |
| if (r8 == 0) {
0x000115d4 beq 0x11500 | goto label_13;
| }
| label_52:
0x000115d8 mov r0, 0 | r0 = 0;
0x000115dc b 0x114fc | goto label_14;
| label_46:
0x000115e0 bl 0x10d00 | close (r0);
0x000115e4 ldr r0, [sp, 0x5c] | r0 = errnum;
0x000115e8 bl 0x10d00 | close (r0);
0x000115ec ldr r0, [sp, 0x54] | r0 = var_54h;
0x000115f0 bl 0x10d00 | close (r0);
0x000115f4 add r6, sp, 0x100 | r6 += str;
0x000115f8 ldr r0, [sp, 0x58] | r0 = var_58h;
0x000115fc bl 0x10d00 | close (r0);
0x00011600 add r7, sp, 0x180 | r7 += buf;
0x00011604 ldr r2, [sp, 0x50] | r2 = fildes;
0x00011608 ldr r1, [pc, 0x598] | r1 = "dbus-launch: error reading from stdin: %s\n";
0x0001160c mov r0, r6 | r0 = r6;
0x00011610 bl 0x10d9c | sprintf (r0, "dbus-launch: error reading from stdin: %s\n", r2);
0x00011614 ldr r2, [sp, 0x60] | r2 = var_60h;
0x00011618 ldr r1, [pc, 0x588] | r1 = "dbus-launch: error reading from stdin: %s\n";
0x0001161c mov r0, r7 | r0 = r7;
0x00011620 bl 0x10d9c | sprintf (r0, "dbus-launch: error reading from stdin: %s\n", r2);
0x00011624 ldr r2, [sp, 0x28] | r2 = var_28h;
0x00011628 ldr r3, [pc, 0x57c] | r3 = "_d";
0x0001162c cmp r2, 0 |
0x00011630 ldr r4, [pc, 0x578] | r4 = "__syslog_only";
| if (r2 == 0) {
0x00011634 movne r4, r3 | r4 = r3;
| }
0x00011638 ldr r3, [pc, 0x50c] | r3 = "__config_file_given_twice";
0x0001163c cmp sl, 0 |
0x00011640 ldr r5, [pc, 0x56c] | r5 = "__syslog";
0x00011644 ldr r1, [pc, 0x56c] | r1 = "--session";
| if (sl == 0) {
0x00011648 movne r5, r3 | r5 = r3;
| }
0x0001164c ldr fp, [pc, 0x568] | fp = "--print-pid";
0x00011650 ldr r3, [pc, 0x568] | r3 = "--print-pid";
0x00011654 mov r2, r4 | r2 = r4;
0x00011658 str r3, [sp, 8] | var_8h = r3;
0x0001165c mov r0, r1 | r0 = r1;
0x00011660 ldr r3, [pc, 0x55c] | r3 = "--print-address";
0x00011664 str r8, [sp, 0x18] | var_18h = r8;
0x00011668 str sl, [sp, 0x14] | var_14h = sl;
0x0001166c str r5, [sp, 0x10] | var_10h = r5;
0x00011670 str r7, [sp, 0xc] | var_ch = r7;
0x00011674 str r6, [sp, 4] | var_4h = r6;
0x00011678 str fp, [sp] | *(sp) = fp;
0x0001167c bl 0x10d0c | execl ();
0x00011680 ldr r2, [pc, 0x468] | r2 = *(0x11aec);
0x00011684 ldr r1, [r2] | r1 = *(0x11aec);
0x00011688 str r1, [sp, 0x20] | stream = r1;
0x0001168c bl 0x10d3c | r0 = errno_location ();
0x00011690 mov sb, r0 | sb = r0;
0x00011694 ldr r0, [r0] | r0 = *(r0);
0x00011698 bl 0x10d84 | strerror (r0);
0x0001169c ldr r2, [pc, 0x514] | r2 = "--session";
0x000116a0 ldr r1, [pc, 0x520] | r1 = "--fork";
0x000116a4 mov r3, r0 | r3 = r0;
0x000116a8 ldr r0, [sp, 0x20] | r0 = stream;
0x000116ac bl 0x10ce8 | fprintf (r0, "--fork", "--session", r3)
0x000116b0 ldr r1, [pc, 0x514] | r1 = "Failed to execute message bus daemon %s: %s. Will try again without full path.\n";
0x000116b4 ldr r3, [pc, 0x504] | r3 = "--print-pid";
0x000116b8 mov r2, r4 | r2 = r4;
0x000116bc mov r0, r1 | r0 = r1;
0x000116c0 str r3, [sp, 8] | var_8h = r3;
0x000116c4 str r8, [sp, 0x18] | var_18h = r8;
0x000116c8 ldr r3, [pc, 0x4f4] | r3 = "--print-address";
0x000116cc str sl, [sp, 0x14] | var_14h = sl;
0x000116d0 str r5, [sp, 0x10] | var_10h = r5;
0x000116d4 str r7, [sp, 0xc] | var_ch = r7;
0x000116d8 str r6, [sp, 4] | var_4h = r6;
0x000116dc str fp, [sp] | *(sp) = fp;
0x000116e0 bl 0x10cf4 | execlp ();
0x000116e4 ldr r2, [pc, 0x404] | r2 = *(0x11aec);
0x000116e8 ldr r0, [sb] | r0 = *(sb);
0x000116ec ldr r4, [r2] | r4 = *(0x11aec);
0x000116f0 bl 0x10d84 | strerror (r0);
0x000116f4 ldr r1, [pc, 0x4d4] | r1 = *(0x11bcc);
0x000116f8 mov r2, r0 | r2 = r0;
0x000116fc b 0x11248 | goto label_9;
| label_44:
0x00011700 ldr r0, [sp, 0x50] | r0 = fildes;
0x00011704 bl 0x10d00 | close (r0);
0x00011708 ldr r0, [sp, 0x60] | r0 = var_60h;
0x0001170c bl 0x10d00 | close (r0);
0x00011710 ldr r0, [sp, 0x54] | r0 = var_54h;
0x00011714 bl 0x10d00 | close (r0);
0x00011718 mov r0, r7 | r0 = r7;
0x0001171c bl 0x11dc4 | r0 = fcn_00011dc4 (r0);
0x00011720 cmp r0, 0 |
| if (r0 < 0) {
0x00011724 bge 0x11748 |
0x00011728 ldr r3, [pc, 0x3c0] | r3 = *(0x11aec);
0x0001172c ldr r4, [r3] | r4 = *(0x11aec);
0x00011730 bl 0x10d3c | r0 = errno_location ();
0x00011734 ldr r0, [r0] | r0 = *(r0);
0x00011738 bl 0x10d84 | strerror (r0);
0x0001173c ldr r1, [pc, 0x490] | r1 = "Failed_to_execute_message_bus_daemon:__s";
0x00011740 mov r2, r0 | r2 = r0;
0x00011744 b 0x11248 | goto label_9;
| }
0x00011748 mov r2, 0x200 | r2 = 0x200;
0x0001174c add r1, sp, 0x180 | r1 += buf;
0x00011750 ldr r0, [sp, 0x5c] | r0 = errnum;
0x00011754 bl 0x11dfc | r0 = fcn_00011dfc (r0, r1);
0x00011758 cmp r0, 1 |
| if (r0 != 1) {
0x0001175c beq 0x11778 |
0x00011760 cmp r0, 2 |
| if (r0 != 2) {
0x00011764 bne 0x11798 | goto label_54;
| }
0x00011768 ldr r3, [pc, 0x380] | r3 = *(0x11aec);
0x0001176c ldr r0, [pc, 0x464] | r0 = "Failed_to_waitpid___for_babysitter_intermediate_process:__s";
0x00011770 ldr r1, [r3] | r1 = *(0x11aec);
0x00011774 b 0x10fac | goto label_3;
| }
0x00011778 ldr r3, [pc, 0x370] | r3 = *(0x11aec);
0x0001177c ldr r4, [r3] | r4 = *(0x11aec);
0x00011780 bl 0x10d3c | r0 = errno_location ();
0x00011784 ldr r0, [r0] | r0 = *(r0);
0x00011788 bl 0x10d84 | strerror (r0);
0x0001178c ldr r1, [pc, 0x448] | r1 = "EOF in dbus-launch reading address from bus daemon\n";
0x00011790 mov r2, r0 | r2 = r0;
0x00011794 b 0x11248 | goto label_9;
| label_54:
0x00011798 ldr r0, [sp, 0x5c] | r0 = errnum;
0x0001179c bl 0x10d00 | close (r0);
0x000117a0 add r7, sp, 0x100 | r7 += str;
0x000117a4 mov r2, 0x40 | r2 = 0x40;
0x000117a8 mov r1, r7 | r1 = r7;
0x000117ac ldr r0, [sp, 0x4c] | r0 = var_4ch;
0x000117b0 bl 0x11dfc | r0 = fcn_00011dfc (r0, r1);
0x000117b4 cmp r0, 1 |
| if (r0 != 1) {
0x000117b8 beq 0x117d4 |
0x000117bc cmp r0, 2 |
| if (r0 != 2) {
0x000117c0 bne 0x117f4 | goto label_55;
| }
0x000117c4 ldr r3, [pc, 0x324] | r3 = *(0x11aec);
0x000117c8 ldr r0, [pc, 0x410] | r0 = "Error in dbus-launch reading address from bus daemon: %s\n";
0x000117cc ldr r1, [r3] | r1 = *(0x11aec);
0x000117d0 b 0x10fac | goto label_3;
| }
0x000117d4 ldr r3, [pc, 0x314] | r3 = *(0x11aec);
0x000117d8 ldr r4, [r3] | r4 = *(0x11aec);
0x000117dc bl 0x10d3c | r0 = errno_location ();
0x000117e0 ldr r0, [r0] | r0 = *(r0);
0x000117e4 bl 0x10d84 | strerror (r0);
0x000117e8 ldr r1, [pc, 0x3f4] | r1 = "EOF reading PID from bus daemon\n";
0x000117ec mov r2, r0 | r2 = r0;
0x000117f0 b 0x11248 | goto label_9;
| label_55:
0x000117f4 mov r2, 0 | r2 = 0;
0x000117f8 add r1, sp, 0x48 | r1 += endptr;
0x000117fc mov r0, r7 | r0 = r7;
0x00011800 str r2, [sp, 0x48] | endptr = r2;
0x00011804 bl 0x10dd8 | strtol (r0, r1, r2);
0x00011808 ldr r3, [sp, 0x48] | r3 = endptr;
0x0001180c cmp r3, r7 |
0x00011810 cmpne r3, 0 | __asm ("cmpne r3, 0");
0x00011814 mov r8, r0 | r8 = r0;
| if (r3 == r7) {
0x00011818 bne 0x11840 |
0x0001181c ldr r3, [pc, 0x2cc] | r3 = *(0x11aec);
0x00011820 ldr r4, [r3] | r4 = *(0x11aec);
0x00011824 bl 0x10d3c | r0 = errno_location ();
0x00011828 ldr r0, [r0] | r0 = *(r0);
0x0001182c bl 0x10d84 | strerror (r0);
0x00011830 mov r2, r7 | r2 = r7;
0x00011834 ldr r1, [pc, 0x3ac] | r1 = "Error_reading_PID_from_bus_daemon:__s";
0x00011838 mov r3, r0 | r3 = r0;
0x0001183c b 0x113ac | goto label_15;
| }
0x00011840 ldr r3, [pc, 0x344] | r3 = "Failed_waitpid___waiting_for_bus_daemons_parent";
0x00011844 str r0, [r3] | *(r3) = r0;
0x00011848 ldr r0, [sp, 0x4c] | r0 = var_4ch;
0x0001184c bl 0x10d00 | close (r0);
0x00011850 add r1, sp, 0x380 | r1 += var_380h;
0x00011854 str r8, [r1, -0x31c]! | *((r1 -= 0x31c)) = r8;
0x00011858 mov r2, 4 | r2 = 4;
0x0001185c ldr r0, [sp, 0x58] | r0 = var_58h;
0x00011860 bl 0x11d4c | fcn_00011d4c (r0, r1);
0x00011864 ldr r0, [sp, 0x58] | r0 = var_58h;
0x00011868 bl 0x10d00 | close (r0);
0x0001186c cmp r4, 0 |
| if (r4 == 0) {
0x00011870 beq 0x119b4 | goto label_56;
| }
0x00011874 add r0, sp, 0x180 | r0 += buf;
0x00011878 bl 0x10dcc | strlen (r0);
0x0001187c add r0, r0, 0x1a | r0 += dest;
0x00011880 bl 0x10c28 | malloc (r0);
0x00011884 ldr r3, [sp, 0x38] | r3 = var_38h;
0x00011888 sub sl, r3, r5 | sl = r3 - r5;
0x0001188c mov r8, r0 | r8 = r0;
0x00011890 add r0, sl, 2 | r0 = sl + 2;
0x00011894 lsl r0, r0, 2 | r0 <<= 2;
0x00011898 bl 0x10c28 | r0 = malloc (r0);
0x0001189c cmp r0, 0 |
0x000118a0 cmpne r8, 0 | __asm ("cmpne r8, 0");
0x000118a4 mov r7, r0 | r7 = r0;
| if (r0 == 0) {
0x000118a8 beq 0x11ae4 | goto label_57;
| }
0x000118ac mov r0, r4 | r0 = r4;
0x000118b0 bl 0x11f20 | r0 = fcn_00011f20 (r0);
0x000118b4 cmp r0, 0 |
0x000118b8 str r0, [r7] | *(r7) = r0;
| if (r0 == 0) {
0x000118bc beq 0x11970 | goto label_21;
| }
0x000118c0 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x000118c4 add sb, r7, 4 | sb = r7 + 4;
0x000118c8 add r5, r3, r5, lsl 2 | r5 = r3 + (r5 << 2);
0x000118cc mov r6, 1 | r6 = 1;
| label_17:
0x000118d0 cmp sl, r6 |
| if (sl < r6) {
0x000118d4 bge 0x11934 |
0x000118d8 mov r3, 0 | r3 = 0;
0x000118dc str r3, [sb] | *(sb) = r3;
0x000118e0 ldr r1, [pc, 0x304] | r1 = "Failed to parse bus PID \"%s\": %s\n";
0x000118e4 mov r0, r8 | r0 = r8;
0x000118e8 bl 0x10c64 | strcpy (r0, "Failed to parse bus PID \"%s\": %s\n");
0x000118ec add r1, sp, 0x180 | r1 += buf;
0x000118f0 mov r0, r8 | r0 = r8;
0x000118f4 bl 0x10c40 | strcat (r0, r1);
0x000118f8 mov r0, r8 | r0 = r8;
0x000118fc bl 0x10c1c | putenv ();
0x00011900 mov r1, r7 | r1 = r7;
0x00011904 mov r0, r4 | r0 = r4;
0x00011908 bl 0x10bbc | execvp ();
0x0001190c ldr r3, [pc, 0x1dc] | r3 = *(0x11aec);
0x00011910 ldr r5, [r3] | r5 = *(0x11aec);
0x00011914 bl 0x10d3c | r0 = errno_location ();
0x00011918 ldr r0, [r0] | r0 = *(r0);
0x0001191c bl 0x10d84 | strerror (r0);
0x00011920 mov r2, r4 | r2 = r4;
0x00011924 ldr r1, [pc, 0x2c4] | r1 = "DBUS_SESSION_BUS_ADDRESS=";
0x00011928 mov r3, r0 | r3 = r0;
0x0001192c mov r0, r5 | r0 = r5;
0x00011930 b 0x113b0 | goto label_16;
| }
0x00011934 ldr fp, [r5], 4 | fp = *(r5);
| r5 += 4;
0x00011938 mov r0, fp | r0 = fp;
0x0001193c bl 0x10dcc | r0 = strlen (r0);
0x00011940 add r2, r0, 1 | r2 = r0 + 1;
0x00011944 mov r0, r2 | r0 = r2;
0x00011948 str r2, [sp, 0x20] | stream = r2;
0x0001194c bl 0x10c28 | malloc (r0);
0x00011950 ldr r2, [sp, 0x20] | r2 = stream;
0x00011954 cmp r0, 0 |
0x00011958 str r0, [sb], 4 | *(sb) = r0;
| sb += 4;
| if (r0 != 0) {
0x0001195c bne 0x119a4 | goto label_58;
| }
0x00011960 add r6, r7, r6, lsl 2 | r6 = r7 + (r6 << 2);
| do {
0x00011964 sub r6, r6, 4 | r6 -= 4;
0x00011968 cmp r7, r6 |
| if (r7 == r6) {
0x0001196c bne 0x11998 |
| label_21:
0x00011970 mov r0, r8 | r0 = r8;
0x00011974 bl 0x10d60 | free (r0);
| label_20:
0x00011978 cmp r7, 0 |
| if (r7 != 0) {
0x0001197c beq 0x11988 |
0x00011980 mov r0, r7 | r0 = r7;
0x00011984 bl 0x10d60 | free (r0);
| }
0x00011988 ldr r3, [pc, 0x160] | r3 = *(0x11aec);
0x0001198c ldr r0, [pc, 0x260] | r0 = "Couldn't exec %s: %s\n";
0x00011990 ldr r1, [r3] | r1 = *(0x11aec);
0x00011994 b 0x10fac | goto label_3;
| }
0x00011998 ldr r0, [r6] | r0 = *(r6);
0x0001199c bl 0x10d60 | free (r0);
0x000119a0 b 0x11964 |
| } while (1);
| label_58:
0x000119a4 mov r1, fp | r1 = fp;
0x000119a8 bl 0x10cb8 | strncpy (r0, r1, r2);
0x000119ac add r6, r6, 1 | r6++;
0x000119b0 b 0x118d0 | goto label_17;
| label_56:
0x000119b4 ldr r3, [sp, 0x34] | r3 = var_34h;
0x000119b8 str r4, [sp, 0x80] | var_80h = r4;
0x000119bc cmp r3, 0 |
0x000119c0 str r8, [sp, 0x6c] | var_6ch = r8;
0x000119c4 ldr r4, [pc, 0x22c] | r4 = "Out_of_memory_";
| if (r3 == 0) {
0x000119c8 beq 0x11a2c | goto label_59;
| }
0x000119cc add r0, sp, 0x180 | r0 += buf;
0x000119d0 bl 0x10dcc | strlen (r0);
0x000119d4 add r1, sp, 0x180 | r1 += buf;
0x000119d8 add r2, r0, 1 | r2 += var_1h;
0x000119dc mov r0, 1 | r0 = 1;
0x000119e0 bl 0x11d4c | fcn_00011d4c (r0, r1);
0x000119e4 mov r2, 4 | r2 = 4;
0x000119e8 add r1, sp, 0x6c | r1 += var_6ch;
0x000119ec mov r0, 1 | r0 = 1;
0x000119f0 bl 0x11d4c | fcn_00011d4c (r0, r1);
0x000119f4 mov r2, 4 | r2 = 4;
0x000119f8 add r1, sp, 0x80 | r1 += var_80h;
0x000119fc mov r0, 1 | r0 = 1;
0x00011a00 bl 0x11d4c | fcn_00011d4c (r0, r1);
| do {
0x00011a04 ldr r0, [r4] | r0 = *(r4);
0x00011a08 bl 0x10c4c | fflush (r0);
0x00011a0c ldr r3, [pc, 0xdc] | r3 = *(0x11aec);
0x00011a10 ldr r0, [r3] | r0 = *(0x11aec);
0x00011a14 bl 0x10c4c | fflush (r0);
0x00011a18 mov r0, 1 | r0 = 1;
0x00011a1c bl 0x10d00 | close (r0);
0x00011a20 mov r0, 2 | r0 = 2;
0x00011a24 bl 0x10d00 | close (r0);
0x00011a28 b 0x10ea0 | goto label_11;
| label_59:
0x00011a2c cmp fp, 0 |
0x00011a30 add r1, sp, 0x180 | r1 += buf;
| if (fp == 0) {
0x00011a34 beq 0x11a70 | goto label_60;
| }
0x00011a38 ldr r0, [pc, 0x1bc] | r0 = stdout;
0x00011a3c bl 0x10ca0 | printf (r0);
0x00011a40 ldr r1, [sp, 0x6c] | r1 = var_6ch;
0x00011a44 cmp r1, 0 |
| if (r1 != 0) {
0x00011a48 beq 0x11a54 |
0x00011a4c ldr r0, [pc, 0x1ac] | r0 = "setenv DBUS_SESSION_BUS_ADDRESS '%s';\n";
0x00011a50 bl 0x10ca0 | printf ("setenv DBUS_SESSION_BUS_ADDRESS '%s';\n");
| }
0x00011a54 ldr r1, [sp, 0x80] | r1 = var_80h;
0x00011a58 cmp r1, 0 |
| if (r1 == 0) {
0x00011a5c ldrne r0, [pc, 0x1a0] | r0 = "set DBUS_SESSION_BUS_WINDOWID=%ld;\n";
| }
| if (r1 != 0) {
0x00011a60 bne 0x11aac | goto label_19;
| }
| label_18:
0x00011a64 ldr r0, [r4] | r0 = *(r4);
0x00011a68 bl 0x10c4c | fflush (r0);
0x00011a6c b 0x11a04 |
| } while (1);
| label_60:
0x00011a70 cmp r6, 0 |
| if (r6 == 0) {
0x00011a74 beq 0x11ab4 | goto label_61;
| }
0x00011a78 ldr r0, [pc, 0x188] | r0 = "set DBUS_SESSION_BUS_WINDOWID=%ld;\n";
0x00011a7c bl 0x10ca0 | printf ("set DBUS_SESSION_BUS_WINDOWID=%ld;\n");
0x00011a80 ldr r0, [pc, 0x184] | r0 = "DBUS_SESSION_BUS_ADDRESS='%s';\n";
0x00011a84 bl 0x10d78 | puts ("DBUS_SESSION_BUS_ADDRESS='%s';\n");
0x00011a88 ldr r1, [sp, 0x6c] | r1 = var_6ch;
0x00011a8c cmp r1, 0 |
| if (r1 != 0) {
0x00011a90 beq 0x11a9c |
0x00011a94 ldr r0, [pc, 0x174] | r0 = "export DBUS_SESSION_BUS_ADDRESS;";
0x00011a98 bl 0x10ca0 | printf ("export DBUS_SESSION_BUS_ADDRESS;");
| }
0x00011a9c ldr r1, [sp, 0x80] | r1 = var_80h;
0x00011aa0 cmp r1, 0 |
| if (r1 != 0) {
0x00011aa4 ldrne r0, [pc, 0x168] | r0 = *((pc + 0x168));
| goto label_62;
| }
| if (r1 == 0) {
| label_62:
0x00011aa8 beq 0x11a64 | goto label_18;
| }
| label_19:
0x00011aac bl 0x10ca0 | printf (r0);
0x00011ab0 b 0x11a64 | goto label_18;
| label_61:
0x00011ab4 ldr r0, [pc, 0x15c] | r0 = *(0x11c14);
0x00011ab8 bl 0x10ca0 | printf (r0);
0x00011abc ldr r1, [sp, 0x6c] | r1 = var_6ch;
0x00011ac0 cmp r1, 0 |
| if (r1 != 0) {
0x00011ac4 beq 0x11ad0 |
0x00011ac8 ldr r0, [pc, 0x14c] | r0 = "DBUS_SESSION_BUS_ADDRESS_s";
0x00011acc bl 0x10ca0 | printf ("DBUS_SESSION_BUS_ADDRESS_s");
| }
0x00011ad0 ldr r1, [sp, 0x80] | r1 = var_80h;
0x00011ad4 cmp r1, 0 |
| if (r1 == 0) {
0x00011ad8 beq 0x11a64 | goto label_18;
| }
0x00011adc ldr r0, [pc, 0x13c] | r0 = "DBUS_SESSION_BUS_PID=%ld\n";
0x00011ae0 b 0x11aac | goto label_19;
| label_57:
0x00011ae4 cmp r8, 0 |
| if (r8 == 0) {
0x00011ae8 beq 0x11978 | goto label_20;
| }
0x00011aec b 0x11970 | goto label_21;
| }
[*] Function fprintf used 8 times dbus-launch