[*] Binary protection state of dbus-run-session
Partial RELRO No Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of dbus-run-session
; 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-run-session @ 0x10804 */
| #include <stdint.h>
|
; (fcn) main () | int32_t main (int32_t argc, char ** argv) {
| int32_t var_0h;
| int32_t var_ch;
| int32_t var_10h;
| int32_t var_14h;
| pid_t fildes;
| int32_t var_1ch;
| char * var_20h;
| int8_t var_0h_2;
| void * errnum;
| int32_t var_260h;
| int32_t var_264h;
| r0 = argc;
| r1 = argv;
| /* [12] -r-x section size 2116 named .text */
0x00010804 push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00010808 sub sp, sp, 0x264 |
0x0001080c mov r4, 0 | r4 = 0;
0x00010810 add r7, sp, 0x60 | r7 += errnum;
0x00010814 mov sb, r0 | sb = r0;
0x00010818 mov fp, r1 |
0x0001081c mov r2, 0x200 | r2 = 0x200;
0x00010820 mov r1, r4 | r1 = r4;
0x00010824 mov r0, r7 | r0 = r7;
0x00010828 str r4, [sp, 0x18] | fildes = r4;
0x0001082c str r4, [sp, 0x1c] | var_1ch = r4;
0x00010830 str r4, [sp, 0x10] | var_10h = r4;
0x00010834 str r4, [sp, 0x14] | var_14h = r4;
0x00010838 bl 0x10738 | memset (r0, r1, r2);
0x0001083c mov sl, 1 | sl = 1;
0x00010840 mov r8, r4 | r8 = r4;
| label_0:
0x00010844 cmp sl, sb |
0x00010848 mov r6, sl | r6 = sl;
| if (sl >= sb) {
0x0001084c blt 0x1087c |
0x00010850 mov r6, 0 | r6 = 0;
| label_3:
0x00010854 cmp r6, sb |
| if (r6 >= sb) {
0x00010858 movlt sb, 0 | sb = 0;
| }
| if (r6 < sb) {
0x0001085c movge sb, 1 | sb = 1;
| }
0x00010860 cmp r6, 0 |
| if (r6 > 0) {
0x00010864 orrle sb, sb, 1 | sb |= 1;
| }
0x00010868 cmp sb, 0 |
| if (sb == 0) {
0x0001086c beq 0x10a84 | goto label_17;
| }
0x00010870 ldr r2, [pc, 0x604] | r2 = *(0x10e78);
0x00010874 ldr r1, [pc, 0x604] | r1 = "dbus_run_session";
0x00010878 b 0x109c0 | goto label_6;
| }
0x0001087c cmp r4, 0 |
0x00010880 ldr r5, [fp, sl, lsl 2] | offset_0 = sl << 2;
| r5 = *((fp + offset_0));
| if (r4 == 0) {
0x00010884 beq 0x10910 | goto label_18;
| }
0x00010888 ldr r1, [pc, 0x5f4] | r1 = "%s: a non-option argument is required\n";
0x0001088c mov r0, r8 | r0 = r8;
0x00010890 bl 0x1072c | r0 = strcmp (r0, "%s: a non-option argument is required\n");
0x00010894 cmp r0, 0 |
| if (r0 == 0) {
0x00010898 beq 0x108f4 | goto label_19;
| }
0x0001089c ldr r1, [pc, 0x5e4] | r1 = "--config-file";
0x000108a0 mov r0, r8 | r0 = r8;
0x000108a4 bl 0x1072c | r0 = strcmp (r0, "--config-file");
0x000108a8 cmp r0, 0 |
| if (r0 != 0) {
0x000108ac bne 0x108d0 | goto label_20;
| }
0x000108b0 add r3, sp, 0x260 | r3 += var_260h;
0x000108b4 ldr r4, [r3, -0x24c]! | r4 = var_14h;
| do {
0x000108b8 cmp r4, 0 |
| if (r4 == 0) {
0x000108bc beq 0x10900 | goto label_21;
| }
0x000108c0 mov r3, r8 | r3 = r8;
0x000108c4 ldr r2, [pc, 0x5b0] | r2 = *(0x10e78);
0x000108c8 ldr r1, [pc, 0x5bc] | r1 = "--dbus-daemon";
0x000108cc b 0x108dc | goto label_4;
| label_20:
0x000108d0 ldr r2, [pc, 0x5a4] | r2 = *(0x10e78);
0x000108d4 ldr r1, [pc, 0x5b4] | r1 = "%s: %s given twice\n";
0x000108d8 mov r3, r8 | r3 = r8;
| label_4:
0x000108dc ldr r0, [pc, 0x5b0] |
0x000108e0 ldr r0, [r0] | r0 = "%s: internal error: %s not fully implemented\n";
| label_5:
0x000108e4 bl 0x107a4 | fprintf ("%s: internal error: %s not fully implemented\n", "%s: %s given twice\n", r2, r3)
| label_1:
0x000108e8 mov r0, 0x7f | r0 = 0x7f;
| label_15:
0x000108ec add sp, sp, 0x264 |
0x000108f0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_19:
0x000108f4 add r3, sp, 0x260 | r3 += var_260h;
0x000108f8 ldr r4, [r3, -0x250]! | r4 = var_10h;
0x000108fc b 0x108b8 |
| } while (1);
| label_21:
0x00010900 str r5, [r3] | *(r3) = r5;
| label_2:
0x00010904 add sl, sl, 1 | sl++;
0x00010908 mov r8, r5 | r8 = r5;
0x0001090c b 0x10844 | goto label_0;
| label_18:
0x00010910 ldr r1, [pc, 0x580] | r1 = stderr;
0x00010914 mov r0, r5 | r0 = r5;
0x00010918 bl 0x1072c | r0 = strcmp (r0, r1);
0x0001091c cmp r0, 0 |
| if (r0 != 0) {
0x00010920 beq 0x1094c |
0x00010924 ldr r1, [pc, 0x570] | r1 = "--help";
0x00010928 mov r0, r5 | r0 = r5;
0x0001092c bl 0x1072c | r0 = strcmp (r0, "--help");
0x00010930 cmp r0, 0 |
| if (r0 == 0) {
0x00010934 beq 0x1094c | goto label_22;
| }
0x00010938 ldr r1, [pc, 0x560] | r1 = "_h";
0x0001093c mov r0, r5 | r0 = r5;
0x00010940 bl 0x1072c | r0 = strcmp (r0, "_h");
0x00010944 cmp r0, 0 |
| if (r0 != 0) {
0x00010948 bne 0x10970 | goto label_23;
| }
| }
| label_22:
0x0001094c ldr r3, [pc, 0x528] | r3 = *(0x10e78);
0x00010950 ldr r0, [pc, 0x53c] |
0x00010954 str r3, [sp] | *(sp) = r3;
0x00010958 mov r2, r3 | r2 = r3;
0x0001095c ldr r1, [pc, 0x540] | r1 = *(0x10ea0);
0x00010960 ldr r0, [r0] | r0 = "%s: internal error: %s not fully implemented\n";
0x00010964 bl 0x107a4 | fprintf ("%s: internal error: %s not fully implemented\n", r1, r2, r3)
| do {
0x00010968 mov r0, 0 | r0 = 0;
| label_10:
0x0001096c bl 0x10798 | exit (r0);
| label_23:
0x00010970 ldr r1, [pc, 0x530] | r1 = "_s__OPTIONS_______PROGRAM__ARGUMENTS__s___version_s___helpOptions:__dbus_daemonBINARY_______run_BINARY_instead_of_dbus_daemon__config_fileFILENAME_____pass_to_dbus_daemon_instead_of___session";
0x00010974 mov r0, r5 | r0 = r5;
0x00010978 bl 0x1072c | r0 = strcmp (r0, "_s__OPTIONS_______PROGRAM__ARGUMENTS__s___version_s___helpOptions:__dbus_daemonBINARY_______run_BINARY_instead_of_dbus_daemon__config_fileFILENAME_____pass_to_dbus_daemon_instead_of___session");
0x0001097c cmp r0, 0 |
| if (r0 != 0) {
0x00010980 bne 0x10998 | goto label_24;
| }
0x00010984 ldr r2, [pc, 0x520] | r2 = "__version";
0x00010988 ldr r1, [pc, 0x4ec] | r1 = *(0x10e78);
0x0001098c ldr r0, [pc, 0x51c] | r0 = "_.12.10";
0x00010990 bl 0x10774 | printf ("_.12.10", r1, "__version");
0x00010994 b 0x10968 |
| } while (1);
| label_24:
0x00010998 ldr r1, [pc, 0x514] | r1 = "%s %s\nCopyright (C) 2003-2006 Red Hat, Inc.\nCopyright (C) 2006 Thiago Macieira\nCopyright \xc2\xa9 2011-2012 Nokia Corporation\n\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";
0x0001099c mov r0, r5 | r0 = r5;
0x000109a0 bl 0x10750 | r0 = strstr (r0, "%s %s\nCopyright (C) 2003-2006 Red Hat, Inc.\nCopyright (C) 2006 Thiago Macieira\nCopyright \xc2\xa9 2011-2012 Nokia Corporation\n\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");
0x000109a4 cmp r5, r0 |
| if (r5 != r0) {
0x000109a8 bne 0x109e4 | goto label_25;
| }
0x000109ac ldr r3, [sp, 0x10] | r3 = var_10h;
0x000109b0 cmp r3, 0 |
| if (r3 == 0) {
0x000109b4 beq 0x109d0 | goto label_26;
| }
0x000109b8 ldr r2, [pc, 0x4bc] | r2 = *(0x10e78);
0x000109bc ldr r1, [pc, 0x4f4] | r1 = "__config_file";
| do {
| label_6:
0x000109c0 ldr r3, [pc, 0x4cc] | r3 = "%s: internal error: %s not fully implemented\n";
0x000109c4 ldr r0, [r3] | r0 = "%s: internal error: %s not fully implemented\n";
0x000109c8 bl 0x107a4 | fprintf ("%s: internal error: %s not fully implemented\n", "__config_file", r2, "%s: internal error: %s not fully implemented\n")
0x000109cc b 0x108e8 | goto label_1;
| label_26:
0x000109d0 mov r1, 0x3d | r1 = 0x3d;
0x000109d4 bl 0x10768 | r0 = strchr (r0, r1);
0x000109d8 add r0, r0, 1 | r0++;
0x000109dc str r0, [sp, 0x10] | var_10h = r0;
0x000109e0 b 0x10904 | goto label_2;
| label_25:
0x000109e4 ldr r1, [pc, 0x4d0] | r1 = "%s: --config-file given twice\n";
0x000109e8 mov r0, r5 | r0 = r5;
0x000109ec bl 0x10750 | r0 = strstr (r0, "%s: --config-file given twice\n");
0x000109f0 cmp r5, r0 |
| if (r5 != r0) {
0x000109f4 bne 0x10a20 | goto label_27;
| }
0x000109f8 ldr r3, [sp, 0x14] | r3 = var_14h;
0x000109fc cmp r3, 0 |
| if (r3 == 0) {
0x00010a00 ldrne r2, [pc, 0x474] | r2 = "dbus_run_session";
| }
| if (r3 == 0) {
0x00010a04 ldrne r1, [pc, 0x4b4] | r1 = "%s: --dbus-daemon given twice\n";
| }
0x00010a08 bne 0x109c0 |
| } while (r3 != 0);
0x00010a0c mov r1, 0x3d | r1 = 0x3d;
0x00010a10 bl 0x10768 | r0 = strchr (r0, r1);
0x00010a14 add r0, r0, 1 | r0++;
0x00010a18 str r0, [sp, 0x14] | var_14h = r0;
0x00010a1c b 0x10904 | goto label_2;
| label_27:
0x00010a20 ldr r1, [pc, 0x45c] | r1 = "%s: a non-option argument is required\n";
0x00010a24 mov r0, r5 | r0 = r5;
0x00010a28 bl 0x1072c | r0 = strcmp (r0, "%s: a non-option argument is required\n");
0x00010a2c cmp r0, 0 |
| if (r0 == 0) {
0x00010a30 beq 0x10a7c | goto label_28;
| }
0x00010a34 ldr r1, [pc, 0x44c] | r1 = "--config-file";
0x00010a38 mov r0, r5 | r0 = r5;
0x00010a3c bl 0x1072c | r0 = strcmp (r0, "--config-file");
0x00010a40 cmp r0, 0 |
| if (r0 == 0) {
0x00010a44 beq 0x10a7c | goto label_28;
| }
0x00010a48 ldrb r3, [r5] | r3 = *(r5);
0x00010a4c cmp r3, 0x2d |
| if (r3 != 0x2d) {
0x00010a50 bne 0x10854 | goto label_3;
| }
0x00010a54 ldr r1, [pc, 0x468] | r1 = "%s: --dbus-daemon given twice\n";
0x00010a58 mov r0, r5 | r0 = r5;
0x00010a5c bl 0x1072c | r0 = strcmp (r0, "%s: --dbus-daemon given twice\n");
0x00010a60 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 == r0) {
0x00010a64 addeq r6, sl, 1 | r6 = sl + 1;
| goto label_29;
| }
| if (r4 == r0) {
| label_29:
0x00010a68 beq 0x10854 | goto label_3;
| }
0x00010a6c mov r3, r5 | r3 = r5;
0x00010a70 ldr r2, [pc, 0x404] | r2 = *(0x10e78);
0x00010a74 ldr r1, [pc, 0x44c] | r1 = "__";
0x00010a78 b 0x108dc | goto label_4;
| label_28:
0x00010a7c mov r4, 1 | r4 = 1;
0x00010a80 b 0x10904 | goto label_2;
| label_17:
0x00010a84 cmp r4, 0 |
| if (r4 == 0) {
0x00010a88 movne r3, r8 | r3 = r8;
| }
| if (r4 == 0) {
0x00010a8c ldrne r2, [pc, 0x3e8] | r2 = "dbus_run_session";
| }
| if (r4 != 0) {
0x00010a90 ldrne r1, [pc, 0x434] | r1 = "%s: option '%s' requires an argument\n";
| goto label_30;
| }
| if (r4 != 0) {
| label_30:
0x00010a94 bne 0x108dc | goto label_4;
| }
0x00010a98 ldr r3, [sp, 0x14] | r3 = var_14h;
0x00010a9c add r0, sp, 0x18 | r0 += fildes;
0x00010aa0 cmp r3, 0 |
| if (r3 != 0) {
0x00010aa4 ldreq r3, [pc, 0x424] | r3 = *((pc + 0x424));
| }
| if (r3 != 0) {
0x00010aa8 streq r3, [sp, 0x14] | var_14h = r3;
| }
0x00010aac bl 0x10714 | r0 = pipe ();
0x00010ab0 cmp r0, 0 |
| if (r0 >= 0) {
0x00010ab4 bge 0x10ae0 | goto label_31;
| }
0x00010ab8 ldr r3, [pc, 0x3d4] | r3 = "%s: internal error: %s not fully implemented\n";
0x00010abc ldr r4, [r3] | r4 = "%s: internal error: %s not fully implemented\n";
0x00010ac0 bl 0x107e0 | r0 = errno_location ();
0x00010ac4 ldr r0, [r0] | r0 = *(r0);
0x00010ac8 bl 0x107ec | strerror (r0);
0x00010acc ldr r2, [pc, 0x3a8] | r2 = *(0x10e78);
0x00010ad0 ldr r1, [pc, 0x3fc] | r1 = *(0x10ed0);
0x00010ad4 mov r3, r0 | r3 = r0;
| do {
| label_9:
0x00010ad8 mov r0, r4 | r0 = r4;
0x00010adc b 0x108e4 | goto label_5;
| label_31:
0x00010ae0 bl 0x10744 | fork ();
0x00010ae4 subs r4, r0, 0 | r4 -= fildes;
| if (r4 >= fildes) {
0x00010ae8 bge 0x10b10 | goto label_32;
| }
| label_12:
0x00010aec ldr r3, [pc, 0x3a0] | r3 = "%s: internal error: %s not fully implemented\n";
0x00010af0 ldr r4, [r3] | r4 = "%s: internal error: %s not fully implemented\n";
0x00010af4 bl 0x107e0 | r0 = errno_location ();
0x00010af8 ldr r0, [r0] | r0 = *(r0);
0x00010afc bl 0x107ec | strerror (r0);
0x00010b00 ldr r2, [pc, 0x374] | r2 = *(0x10e78);
0x00010b04 ldr r1, [pc, 0x3cc] | r1 = "_s:_failed_to_create_pipe:__s";
0x00010b08 mov r3, r0 | r3 = r0;
0x00010b0c b 0x10ad8 |
| } while (1);
| if (r4 == fildes) {
| label_32:
0x00010b10 bne 0x10b98 |
0x00010b14 add r6, sp, 0x20 | r6 += var_20h;
0x00010b18 ldr r0, [sp, 0x18] | r0 = fildes;
0x00010b1c ldr r5, [sp, 0x14] | r5 = var_14h;
0x00010b20 ldr r7, [sp, 0x10] | r7 = var_10h;
0x00010b24 bl 0x107bc | close (r0);
0x00010b28 ldr r2, [sp, 0x1c] | r2 = var_1ch;
0x00010b2c ldr r1, [pc, 0x3a8] | r1 = "%s: failed to fork: %s\n";
0x00010b30 mov r0, r6 | r0 = r6;
0x00010b34 bl 0x107f8 | sprintf (r0, "%s: failed to fork: %s\n", r2);
0x00010b38 ldr r2, [pc, 0x344] | r2 = "%s: a non-option argument is required\n";
0x00010b3c ldr r3, [pc, 0x39c] | r3 = *(0x10edc);
0x00010b40 cmp r7, 0 |
| if (r7 == 0) {
0x00010b44 movne r3, r2 | r3 = r2;
| }
0x00010b48 mov r1, r5 | r1 = r5;
0x00010b4c ldr r2, [pc, 0x390] | r2 = "--session";
0x00010b50 str r4, [sp, 0xc] | var_ch = r4;
0x00010b54 stmib sp, {r3, r7} | __asm ("stmib sp, {r3, r7}");
0x00010b58 ldr r3, [pc, 0x388] | r3 = "__nofork";
0x00010b5c str r6, [sp] | *(sp) = r6;
0x00010b60 mov r0, r5 | r0 = r5;
0x00010b64 bl 0x107b0 | execlp ();
0x00010b68 ldr r3, [pc, 0x324] | r3 = "%s: internal error: %s not fully implemented\n";
0x00010b6c ldr r4, [r3] | r4 = "%s: internal error: %s not fully implemented\n";
0x00010b70 bl 0x107e0 | r0 = errno_location ();
0x00010b74 ldr r0, [r0] | r0 = *(r0);
0x00010b78 bl 0x107ec | strerror (r0);
0x00010b7c mov r3, r5 | r3 = r5;
0x00010b80 ldr r2, [pc, 0x2f4] | r2 = *(0x10e78);
0x00010b84 ldr r1, [pc, 0x360] | r1 = "__print_address";
0x00010b88 str r0, [sp] | *(sp) = r0;
0x00010b8c mov r0, r4 | r0 = r4;
0x00010b90 bl 0x107a4 | fprintf (r0, "__print_address", r2, r3)
0x00010b94 b 0x108e8 | goto label_1;
| }
0x00010b98 ldr r0, [sp, 0x1c] | r0 = var_1ch;
0x00010b9c bl 0x107bc | close (r0);
0x00010ba0 mov r2, 0x200 | r2 = 0x200;
0x00010ba4 mov r1, 0 | r1 = 0;
0x00010ba8 mov r0, r7 | r0 = r7;
0x00010bac ldr sb, [sp, 0x18] | sb = fildes;
0x00010bb0 bl 0x10738 | memset (r0, r1, r2);
0x00010bb4 ldr r8, [pc, 0x334] | r8 = "%s: failed to execute message bus daemon '%s': %s\n";
0x00010bb8 mov r5, 0 | r5 = 0;
| do {
| label_7:
0x00010bbc subs r2, r8, r5 | r2 = r8 - r5;
| if (r2 == r8) {
0x00010bc0 beq 0x10bec | goto label_8;
| }
0x00010bc4 add r1, r7, r5 | r1 = r7 + r5;
0x00010bc8 mov r0, sb | r0 = sb;
0x00010bcc bl 0x107c8 | r0 = read (r0, r1, r2);
0x00010bd0 cmp r0, 0 |
| if (r0 >= 0) {
0x00010bd4 bge 0x10c4c | goto label_33;
| }
0x00010bd8 bl 0x107e0 | r0 = errno_location ();
0x00010bdc ldr r3, [r0] | r3 = *(r0);
0x00010be0 cmp r3, 4 |
0x00010be4 beq 0x10bbc |
| } while (r3 == 4);
0x00010be8 mov r2, 1 | r2 = 1;
| label_8:
0x00010bec adds r3, r5, 0 | r3 = r5 + 0;
| if (r3 == r5) {
0x00010bf0 movne r3, 1 | r3 = 1;
| }
0x00010bf4 cmp r2, 2 |
| if (r2 == 2) {
0x00010bf8 movne r1, 0 | r1 = 0;
| }
| if (r2 != 2) {
0x00010bfc andeq r1, r3, 1 | r1 = r3 & 1;
| }
0x00010c00 cmp r1, 0 |
| if (r1 == 0) {
0x00010c04 movne r2, 0 | r2 = 0;
| }
0x00010c08 cmp r2, 1 |
| if (r2 != 1) {
0x00010c0c moveq r3, 0 | r3 = 0;
| }
| if (r2 == 1) {
0x00010c10 andne r3, r3, 1 | r3 &= 1;
| }
0x00010c14 cmp r3, 0 |
| if (r3 != 0) {
0x00010c18 beq 0x10c30 |
0x00010c1c sub r5, r5, 1 | r5--;
0x00010c20 ldrb r3, [r7, r5] | r3 = *((r7 + r5));
0x00010c24 cmp r3, 0xa |
| if (r3 != 0xa) {
0x00010c28 moveq r3, 0 | r3 = 0;
| }
| if (r3 == 0xa) {
0x00010c2c strbeq r3, [r7, r5] | *((r7 + r5)) = r3;
| goto label_34;
| }
| }
| label_34:
0x00010c30 cmp r2, 1 |
| if (r2 == 1) {
0x00010c34 beq 0x10c5c | goto label_35;
| }
0x00010c38 cmp r2, 2 |
| if (r2 != 2) {
0x00010c3c bne 0x10c80 | goto label_36;
| }
0x00010c40 ldr r2, [pc, 0x234] | r2 = *(0x10e78);
0x00010c44 ldr r1, [pc, 0x2a8] | r1 = *(0x10ef0);
0x00010c48 b 0x109c0 | goto label_6;
| if (r2 != 2) {
| label_33:
0x00010c4c addne r5, r5, r0 | r5 += r0;
| goto label_37;
| }
| if (r2 != 2) {
| label_37:
0x00010c50 bne 0x10bbc | goto label_7;
| }
0x00010c54 mov r2, 2 | r2 = 2;
0x00010c58 b 0x10bec | goto label_8;
| label_35:
0x00010c5c ldr r3, [pc, 0x230] | r3 = "%s: internal error: %s not fully implemented\n";
0x00010c60 ldr r4, [r3] | r4 = "%s: internal error: %s not fully implemented\n";
0x00010c64 bl 0x107e0 | r0 = errno_location ();
0x00010c68 ldr r0, [r0] | r0 = *(r0);
0x00010c6c bl 0x107ec | strerror (r0);
0x00010c70 ldr r2, [pc, 0x204] | r2 = *(0x10e78);
0x00010c74 ldr r1, [pc, 0x27c] | r1 = "_s:_EOF_reading_address_from_bus_daemon";
0x00010c78 mov r3, r0 | r3 = r0;
0x00010c7c b 0x10ad8 | goto label_9;
| label_36:
0x00010c80 ldr r0, [sp, 0x18] | r0 = fildes;
0x00010c84 bl 0x107bc | close (r0);
0x00010c88 mov r1, r7 | r1 = r7;
0x00010c8c ldr r0, [pc, 0x268] | r0 = "%s: error reading address from bus daemon: %s\n";
0x00010c90 bl 0x107d4 | r0 = dbus_setenv ();
0x00010c94 cmp r0, 0 |
0x00010c98 bne 0x10cb8 |
| while (r0 == 0) {
| label_11:
0x00010c9c ldr r3, [pc, 0x1f0] | r3 = "%s: internal error: %s not fully implemented\n";
0x00010ca0 ldr r2, [pc, 0x1d4] | r2 = *(0x10e78);
0x00010ca4 ldr r1, [pc, 0x254] | r1 = "DBUS_SESSION_BUS_ADDRESS";
0x00010ca8 ldr r0, [r3] | r0 = "%s: internal error: %s not fully implemented\n";
0x00010cac bl 0x107a4 | fprintf ("%s: internal error: %s not fully implemented\n", "DBUS_SESSION_BUS_ADDRESS", r2, "%s: internal error: %s not fully implemented\n")
| label_13:
0x00010cb0 mov r0, 1 | r0 = 1;
0x00010cb4 b 0x1096c | goto label_10;
0x00010cb8 mov r1, 0 | r1 = 0;
0x00010cbc ldr r0, [pc, 0x240] | r0 = "%s: out of memory\n";
0x00010cc0 bl 0x107d4 | r0 = dbus_setenv ();
0x00010cc4 cmp r0, 0 |
0x00010cc8 beq 0x10c9c |
| }
0x00010ccc mov r1, 0 | r1 = 0;
0x00010cd0 ldr r0, [pc, 0x230] | r0 = "DBUS_SESSION_BUS_PID";
0x00010cd4 bl 0x107d4 | r0 = dbus_setenv ();
0x00010cd8 cmp r0, 0 |
| if (r0 == 0) {
0x00010cdc beq 0x10c9c | goto label_11;
| }
0x00010ce0 mov r1, 0 | r1 = 0;
0x00010ce4 ldr r0, [pc, 0x220] | r0 = "DBUS_SESSION_BUS_WINDOWID";
0x00010ce8 bl 0x107d4 | r0 = dbus_setenv ();
0x00010cec cmp r0, 0 |
| if (r0 == 0) {
0x00010cf0 beq 0x10c9c | goto label_11;
| }
0x00010cf4 mov r1, 0 | r1 = 0;
0x00010cf8 ldr r0, [pc, 0x210] | r0 = "DBUS_STARTER_ADDRESS";
0x00010cfc bl 0x107d4 | r0 = dbus_setenv ();
0x00010d00 cmp r0, 0 |
| if (r0 == 0) {
0x00010d04 beq 0x10c9c | goto label_11;
| }
0x00010d08 bl 0x10744 | r0 = fork ();
0x00010d0c subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 < r0) {
0x00010d10 blt 0x10aec | goto label_12;
| }
| if (r7 == r0) {
0x00010d14 beq 0x10d6c | goto label_38;
| }
0x00010d18 ldr r6, [pc, 0x174] | r6 = "%s: internal error: %s not fully implemented\n";
0x00010d1c ldr r5, [pc, 0x158] | r5 = *(0x10e78);
0x00010d20 ldr r8, [pc, 0x1ec] | r8 = "DBUS_STARTER_BUS_TYPE";
| do {
| label_14:
0x00010d24 mov r2, 0 | r2 = 0;
0x00010d28 add r1, sp, 0x20 | r1 += var_20h;
0x00010d2c mvn r0, 0 | r0 = ~0;
0x00010d30 bl 0x10780 | r0 = waitpid ();
0x00010d34 cmn r0, 1 |
0x00010d38 mov r3, r0 | r3 = r0;
| if (r0 != 1) {
0x00010d3c bne 0x10dac | goto label_39;
| }
0x00010d40 bl 0x107e0 | r0 = errno_location ();
0x00010d44 ldr r0, [r0] | r0 = *(r0);
0x00010d48 cmp r0, 4 |
0x00010d4c beq 0x10d24 |
| } while (r0 == 4);
0x00010d50 ldr r3, [pc, 0x13c] | r3 = "%s: internal error: %s not fully implemented\n";
0x00010d54 ldr r4, [r3] | r4 = "%s: internal error: %s not fully implemented\n";
0x00010d58 bl 0x107ec | strerror (r0);
0x00010d5c ldr r2, [pc, 0x118] | r2 = *(0x10e78);
0x00010d60 ldr r1, [pc, 0x1b0] | r1 = "%s: ignoring unknown child process %ld\n";
0x00010d64 mov r3, r0 | r3 = r0;
0x00010d68 b 0x10ad8 | goto label_9;
| label_38:
0x00010d6c add r1, fp, r6, lsl 2 | r1 = fp + (r6 << 2);
0x00010d70 ldr r0, [fp, r6, lsl 2] | offset_1 = r6 << 2;
| r0 = *((fp + offset_1));
0x00010d74 bl 0x106f0 | execvp ();
0x00010d78 ldr r3, [pc, 0x114] | r3 = "%s: internal error: %s not fully implemented\n";
0x00010d7c ldr r5, [fp, r6, lsl 2] | offset_2 = r6 << 2;
| r5 = *((fp + offset_2));
0x00010d80 ldr r4, [r3] | r4 = "%s: internal error: %s not fully implemented\n";
0x00010d84 bl 0x107e0 | r0 = errno_location ();
0x00010d88 ldr r0, [r0] | r0 = *(r0);
0x00010d8c bl 0x107ec | strerror (r0);
0x00010d90 mov r3, r5 | r3 = r5;
0x00010d94 ldr r2, [pc, 0xe0] | r2 = *(0x10e78);
0x00010d98 ldr r1, [pc, 0x17c] | r1 = "%s: waitpid() failed: %s\n";
0x00010d9c str r0, [sp] | *(sp) = r0;
0x00010da0 mov r0, r4 | r0 = r4;
0x00010da4 bl 0x107a4 | fprintf (r0, "%s: waitpid() failed: %s\n", r2, r3)
0x00010da8 b 0x10cb0 | goto label_13;
| label_39:
0x00010dac cmp r4, r0 |
| if (r4 != r0) {
0x00010db0 bne 0x10e18 | goto label_40;
| }
0x00010db4 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00010db8 ldr r0, [r6] | r0 = *(r6);
0x00010dbc ands r4, r3, 0x7f | r4 = r3 & 0x7f;
| if (r4 == r3) {
0x00010dc0 bne 0x10ddc |
0x00010dc4 ldr r1, [pc, 0x154] | r1 = "_s:_failed_to_exec__s:__s";
0x00010dc8 asr r3, r3, 8 | r3 >>= 8;
0x00010dcc and r3, r3, 0xff | r3 &= 0xff;
0x00010dd0 mov r2, r5 | r2 = r5;
| label_16:
0x00010dd4 bl 0x107a4 | fprintf (r0, "_s:_failed_to_exec__s:__s", r2, r3)
0x00010dd8 b 0x10d24 | goto label_14;
| }
0x00010ddc lsl r3, r3, 0x10 | r3 <<= 0x10;
0x00010de0 lsr r3, r3, 0x10 | r3 >>= 0x10;
0x00010de4 sub r3, r3, 1 | r3--;
0x00010de8 cmp r3, 0xfe |
| if (r3 > 0xfe) {
0x00010dec bhi 0x10e08 | goto label_41;
| }
0x00010df0 mov r3, r4 | r3 = r4;
0x00010df4 mov r2, r5 | r2 = r5;
0x00010df8 ldr r1, [pc, 0x124] | r1 = "%s: dbus-daemon exited with code %d\n";
0x00010dfc bl 0x107a4 | fprintf (r0, "%s: dbus-daemon exited with code %d\n", r2, r3)
| do {
0x00010e00 mov r4, 0 | r4 = 0;
0x00010e04 b 0x10d24 | goto label_14;
| label_41:
0x00010e08 mov r2, r5 | r2 = r5;
0x00010e0c ldr r1, [pc, 0x114] | r1 = "_s:_dbus_daemon_terminated_by_signal__d";
0x00010e10 bl 0x107a4 | fprintf (r0, "_s:_dbus_daemon_terminated_by_signal__d", r2)
0x00010e14 b 0x10e00 |
| } while (1);
| label_40:
0x00010e18 cmp r7, r0 |
| if (r7 != r0) {
0x00010e1c bne 0x10e6c | goto label_42;
| }
0x00010e20 cmp r4, 0 |
| if (r4 != 0) {
0x00010e24 beq 0x10e34 |
0x00010e28 mov r1, 0xf | r1 = 0xf;
0x00010e2c mov r0, r4 | r0 = r4;
0x00010e30 bl 0x1075c | kill (r0, r1);
| }
0x00010e34 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00010e38 ands r0, r3, 0x7f | r0 = r3 & 0x7f;
0x00010e3c asreq r0, r3, 8 | __asm ("asreq r0, r3, 8");
| if (r0 == r3) {
0x00010e40 andeq r0, r0, 0xff | r0 &= 0xff;
| goto label_43;
| }
| if (r0 == r3) {
| label_43:
0x00010e44 beq 0x108ec | goto label_15;
| }
0x00010e48 lsl r3, r3, 0x10 | r3 <<= 0x10;
0x00010e4c lsr r3, r3, 0x10 | r3 >>= 0x10;
0x00010e50 sub r3, r3, 1 | r3--;
0x00010e54 cmp r3, 0xfe |
| if (r3 <= 0xfe) {
0x00010e58 addls r0, r0, 0x80 | r0 += 0x80;
| goto label_44;
| }
| if (r3 < 0xfe) {
| label_44:
0x00010e5c bls 0x108ec | goto label_15;
| }
0x00010e60 ldr r2, [pc, 0x14] | r2 = *(0x10e78);
0x00010e64 ldr r1, [pc, 0xc0] | r1 = "%s: dbus-daemon died or something\n";
0x00010e68 b 0x109c0 | goto label_6;
| label_42:
0x00010e6c mov r2, r5 | r2 = r5;
0x00010e70 mov r1, r8 | r1 = r8;
0x00010e74 ldr r0, [r6] | r0 = *(r6);
0x00010e78 b 0x10dd4 | goto label_16;
| }
[*] Function fprintf used 10 times dbus-run-session