[*] Binary protection state of dbus-monitor
Partial RELRO No Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of dbus-monitor
; 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-monitor @ 0x11d48 */
| #include <stdint.h>
|
; (fcn) fcn.00011d48 () | void fcn_00011d48 (int32_t arg1, int32_t arg2) {
| 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;
| int32_t var_1ch;
| int32_t var_24h;
| r0 = arg1;
| r1 = arg2;
0x00011d48 ldr r3, [pc, 0x1c] | r3 = *(0x11d68);
0x00011d4c push {r4, lr} |
0x00011d50 mov r2, r0 | r2 = r0;
0x00011d54 mov r4, r1 | r4 = r1;
0x00011d58 ldr r0, [r3] | r0 = *(0x11d68);
0x00011d5c ldr r1, [pc, 0xc] | r1 = stderr;
0x00011d60 bl 0x11480 | fprintf (r0, r1, r2, r3, r4)
0x00011d64 mov r0, r4 | r0 = r4;
0x00011d68 bl 0x11468 | exit (r0);
| if (? != ?) {
0x00011d6c andeq r4, r2, r4, lsr 2 | r4 = r2 & (r4 >> 2);
| }
| if (? != ?) {
0x00011d70 andeq r2, r1, r0, asr 27 | r2 = r1 & (r0 >> 27);
| }
0x00011d74 push {r4, r5, lr} |
0x00011d78 mov r4, r1 | r4 = r1;
0x00011d7c sub sp, sp, 0x24 |
0x00011d80 mov r5, r2 | r5 = r2;
0x00011d84 mov r1, sp | r1 = sp;
0x00011d88 add r2, sp, 4 | r2 += var_4h;
0x00011d8c mov r0, r4 | r0 = r4;
0x00011d90 bl 0x11438 | r0 = dbus_message_marshal ();
0x00011d94 cmp r0, 0 |
| if (r0 == 0) {
0x00011d98 bne 0x11da4 |
0x00011d9c ldr r0, [pc, 0xa4] | r0 = *(0x11e44);
0x00011da0 bl 0x12c3c | fcn_00012c3c (r0);
| }
0x00011da4 cmp r5, 2 |
| if (r5 != 2) {
0x00011da8 bne 0x11e08 | goto label_1;
| }
0x00011dac ldr r3, [sp, 4] | r3 = var_4h;
0x00011db0 mov r2, 0 | r2 = 0;
0x00011db4 add r1, sp, 0xc | r1 += var_ch;
0x00011db8 add r0, sp, 8 | r0 += var_8h;
0x00011dbc str r2, [sp, 0x10] | var_10h = r2;
0x00011dc0 str r2, [sp, 0x14] | var_14h = r2;
0x00011dc4 str r3, [sp, 0x18] | var_18h = r3;
0x00011dc8 str r3, [sp, 0x1c] | var_1ch = r3;
0x00011dcc bl 0x114b0 | dbus_get_real_time ();
0x00011dd0 ldr r3, [sp, 8] | r3 = var_8h;
0x00011dd4 mov r2, 0x10 | r2 = 0x10;
0x00011dd8 str r3, [sp, 0x10] | var_10h = r3;
0x00011ddc ldr r3, [sp, 0xc] | r3 = var_ch;
0x00011de0 add r1, sp, r2 | r1 = sp + r2;
0x00011de4 mov r0, 1 | r0 = 1;
0x00011de8 str r3, [sp, 0x14] | var_14h = r3;
0x00011dec bl 0x12c64 | r0 = fcn_00012c64 (r0, r1);
0x00011df0 cmp r0, 0 |
0x00011df4 bne 0x11e08 |
| while (r0 == 0) {
0x00011df8 ldr r0, [pc, 0x4c] | r0 = "retrieving message";
0x00011dfc bl 0x113fc | perror ("retrieving message");
0x00011e00 mov r0, 1 | r0 = 1;
| label_0:
0x00011e04 bl 0x11468 | exit (r0);
| label_1:
0x00011e08 ldm sp, {r1, r2} | r1 = *(sp);
| r2 = *((sp + 4));
0x00011e0c mov r0, 1 | r0 = 1;
0x00011e10 bl 0x12c64 | r0 = fcn_00012c64 (r0, r1);
0x00011e14 cmp r0, 0 |
0x00011e18 beq 0x11df8 |
| }
0x00011e1c ldr r0, [sp] | r0 = *(sp);
0x00011e20 bl 0x11558 | dbus_free ();
0x00011e24 ldr r2, [pc, 0x24] | r2 = "dbus_monitor:_write";
0x00011e28 ldr r1, [pc, 0x24] | r1 = "Disconnected";
0x00011e2c mov r0, r4 | r0 = r4;
0x00011e30 bl 0x1130c | r0 = dbus_message_is_signal ();
0x00011e34 cmp r0, 0 |
| if (r0 != 0) {
0x00011e38 movne r0, 0 | r0 = 0;
| goto label_2;
| }
| if (r0 != 0) {
| label_2:
0x00011e3c bne 0x11e04 | goto label_0;
| }
0x00011e40 add sp, sp, 0x24 |
0x00011e44 pop {r4, r5, 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-monitor @ 0x12c3c */
| #include <stdint.h>
|
; (fcn) fcn.00012c3c () | void fcn_00012c3c (int32_t arg1) {
| r0 = arg1;
0x00012c3c ldr r3, [pc, 0x18] | r3 = *(0x12c58);
0x00012c40 push {r4, lr} |
0x00012c44 ldr r1, [pc, 0x14] | r1 = stderr;
0x00012c48 mov r2, r0 | r2 = r0;
0x00012c4c ldr r0, [r3] | r0 = *(0x12c58);
0x00012c50 bl 0x11480 | fprintf (r0, r1, r2, r3, r4)
0x00012c54 mov r0, 1 | r0 = 1;
0x00012c58 bl 0x11468 | exit (r0);
| if (? != ?) {
0x00012c5c andeq r4, r2, r4, lsr 2 | r4 = r2 & (r4 >> 2);
| }
| /* Beware that this jump is a conditional jump.
| * r2dec transformed it as a return, due being the
| * last instruction. Please, check 'pdda' output
| * for more hints. */
0x00012c60 andeq r3, r1, r0, asr r5 | return r3 = r1 & (r0 >> r5);
| }
; 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-monitor @ 0x115fc */
| #include <stdint.h>
|
; (fcn) main () | int32_t main (int32_t argc, char ** argv) {
| int32_t var_0h;
| int32_t var_ch;
| void * ptr;
| int32_t var_14h;
| size_t size;
| int32_t var_1ch;
| int32_t var_24h;
| int32_t var_28h;
| int32_t var_2ch;
| void * s;
| int32_t var_38h_2;
| int32_t var_40h;
| int32_t var_48h;
| int32_t var_80h;
| r0 = argc;
| r1 = argv;
0x000115fc push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00011600 sub sp, sp, 0xbc |
0x00011604 str r0, [sp, 0x1c] | var_1ch = r0;
0x00011608 ldr r0, [pc, 0x580] |
0x0001160c mov r3, 0 | r3 = 0;
0x00011610 mov r8, r1 | r8 = r1;
0x00011614 mov r2, 1 | r2 = 1;
0x00011618 mov r1, r3 | r1 = r3;
0x0001161c ldr r0, [r0] | r0 = *(0x11b8c);
0x00011620 bl 0x112ac | setvbuf (r0, r1, r2, r3);
0x00011624 ldr r3, [pc, 0x568] | r3 = stdout;
0x00011628 mov r4, 0 | r4 = 0;
0x0001162c mov sb, r4 | sb = r4;
0x00011630 mov r7, 1 | r7 = 1;
0x00011634 mov fp, r4 |
0x00011638 mov r6, r4 | r6 = r4;
0x0001163c str r4, [sp, 0x10] | ptr = r4;
0x00011640 str r3, [sp, 0xc] | var_ch = r3;
0x00011644 str r4, [sp, 0x14] | var_14h = r4;
| label_1:
0x00011648 ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x0001164c cmp r7, r3 |
| if (r7 >= r3) {
0x00011650 blt 0x116ac |
0x00011654 add r0, sp, 0x28 | r0 += var_28h;
0x00011658 bl 0x112c4 | dbus_error_init ();
0x0001165c cmp r6, 0 |
0x00011660 add r1, sp, 0x28 | r1 += var_28h;
| if (r6 == 0) {
0x00011664 beq 0x11888 | goto label_13;
| }
0x00011668 mov r0, r6 | r0 = r6;
0x0001166c bl 0x11408 | r0 = dbus_connection_open ();
0x00011670 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 == r0) {
0x00011674 beq 0x118ac | goto label_14;
| }
0x00011678 add r1, sp, 0x28 | r1 += var_28h;
0x0001167c bl 0x113c0 | r0 = dbus_bus_register ();
0x00011680 cmp r0, 0 |
| if (r0 != 0) {
0x00011684 bne 0x118bc | goto label_15;
| }
0x00011688 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x0001168c ldr r1, [pc, 0x504] | r1 = *(0x11b94);
0x00011690 mov r2, r6 | r2 = r6;
| label_5:
0x00011694 ldr r0, [pc, 0x500] |
0x00011698 ldr r0, [r0] | r0 = "Failed_to_register_connection_to_bus_at__s:__s";
0x0001169c bl 0x11480 | fprintf ("Failed_to_register_connection_to_bus_at__s:__s", r1, r2, r3)
0x000116a0 add r0, sp, 0x28 | r0 += var_28h;
0x000116a4 bl 0x113e4 | dbus_error_free ();
0x000116a8 b 0x118f4 | goto label_9;
| }
0x000116ac ldr r5, [r8, r7, lsl 2] | offset_0 = r7 << 2;
| r5 = *((r8 + offset_0));
0x000116b0 ldr r1, [pc, 0x4e8] | r1 = stderr;
0x000116b4 mov r0, r5 | r0 = r5;
0x000116b8 bl 0x11360 | strcmp (r0, r1);
0x000116bc lsl sl, r7, 2 | sl = r7 << 2;
0x000116c0 cmp r0, 0 |
| if (r0 != 0) {
0x000116c4 bne 0x116d8 | goto label_16;
| }
0x000116c8 cmp r4, 0 |
| if (r4 == 0) {
0x000116cc beq 0x1184c | goto label_17;
| }
| do {
0x000116d0 ldr r0, [r8] | r0 = *(r8);
| label_0:
0x000116d4 bl 0x115d0 | fcn_000115d0 (r0);
| label_16:
0x000116d8 ldr r1, [pc, 0x4c4] | r1 = "--system";
0x000116dc mov r0, r5 | r0 = r5;
0x000116e0 bl 0x11360 | r0 = strcmp (r0, "--system");
0x000116e4 cmp r0, 0 |
| if (r0 != 0) {
0x000116e8 bne 0x11700 | goto label_18;
| }
0x000116ec cmp r4, 0 |
0x000116f0 bne 0x116d0 |
| } while (r4 != 0);
0x000116f4 mov r4, 1 | r4 = 1;
0x000116f8 str r0, [sp, 0x14] | var_14h = r0;
0x000116fc b 0x1173c | goto label_2;
| label_18:
0x00011700 ldr r1, [pc, 0x4a0] | r1 = "__session";
0x00011704 mov r0, r5 | r0 = r5;
0x00011708 bl 0x11360 | r0 = strcmp (r0, "__session");
0x0001170c cmp r0, 0 |
| if (r0 != 0) {
0x00011710 bne 0x1174c | goto label_19;
| }
0x00011714 cmp r4, 0 |
0x00011718 ldr r0, [r8] | r0 = *(r8);
| if (r4 != 0) {
0x0001171c bne 0x116d4 | goto label_0;
| }
0x00011720 ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x00011724 add r7, r7, 1 | r7++;
0x00011728 cmp r7, r3 |
| if (r7 < r3) {
0x0001172c bge 0x11744 |
0x00011730 add sl, r8, sl | sl = r8 + sl;
0x00011734 ldr r6, [sl, 4] | r6 = *((sl + 4));
0x00011738 mov r4, 1 | r4 = 1;
| label_2:
0x0001173c add r7, r7, 1 | r7++;
0x00011740 b 0x11648 | goto label_1;
| }
0x00011744 mov r1, 1 | r1 = 1;
| do {
0x00011748 bl 0x11d48 | fcn_00011d48 (r0, r1);
| label_19:
0x0001174c ldr r1, [pc, 0x458] | r1 = "__address";
0x00011750 mov r0, r5 | r0 = r5;
0x00011754 bl 0x11360 | r0 = strcmp (r0, "__address");
0x00011758 subs r1, r0, 0 | r1 = r0 - 0;
| if (r1 != r0) {
0x0001175c bne 0x11768 | goto label_20;
| }
| label_3:
0x00011760 ldr r0, [r8] | r0 = *(r8);
0x00011764 b 0x11748 |
| } while (1);
| label_20:
0x00011768 ldr r1, [pc, 0x440] | r1 = "__help";
0x0001176c mov r0, r5 | r0 = r5;
0x00011770 bl 0x11360 | r0 = strcmp (r0, "__help");
0x00011774 cmp r0, 0 |
| if (r0 == 0) {
0x00011778 beq 0x11858 | goto label_21;
| }
0x0001177c ldr r1, [pc, 0x430] | r1 = "--monitor";
0x00011780 mov r0, r5 | r0 = r5;
0x00011784 bl 0x11360 | r0 = strcmp (r0, "--monitor");
0x00011788 cmp r0, 0 |
| if (r0 == 0) {
0x0001178c beq 0x11868 | goto label_22;
| }
0x00011790 ldr r1, [pc, 0x420] | r1 = "--profile";
0x00011794 mov r0, r5 | r0 = r5;
0x00011798 bl 0x11360 | r0 = strcmp (r0, "--profile");
0x0001179c cmp r0, 0 |
| if (r0 == 0) {
0x000117a0 beq 0x11874 | goto label_23;
| }
0x000117a4 ldr r1, [pc, 0x410] | r1 = "--binary";
0x000117a8 mov r0, r5 | r0 = r5;
0x000117ac bl 0x11360 | r0 = strcmp (r0, "--binary");
0x000117b0 cmp r0, 0 |
| if (r0 == 0) {
0x000117b4 beq 0x11880 | goto label_24;
| }
0x000117b8 ldr r1, [pc, 0x400] | r1 = "__pcap";
0x000117bc mov r0, r5 | r0 = r5;
0x000117c0 bl 0x11360 | r0 = strcmp (r0, "__pcap");
0x000117c4 cmp r0, 0 |
| if (r0 == 0) {
0x000117c8 beq 0x1173c | goto label_2;
| }
0x000117cc ldrb r3, [r5] | r3 = *(r5);
0x000117d0 cmp r3, 0x2d |
| if (r3 == 0x2d) {
0x000117d4 moveq r1, 1 | r1 = 1;
| goto label_25;
| }
| if (r3 == 0x2d) {
| label_25:
0x000117d8 beq 0x11760 | goto label_3;
| }
0x000117dc mov r0, r5 | r0 = r5;
0x000117e0 bl 0x115b8 | strlen (r0);
0x000117e4 add sb, sb, 1 | sb++;
0x000117e8 lsl sl, sb, 2 | sl = sb << 2;
0x000117ec mov r1, sl | r1 = sl;
0x000117f0 add r3, r0, 0x10 | r3 = r0 + 0x10;
0x000117f4 ldr r0, [sp, 0x10] | r0 = ptr;
0x000117f8 str r3, [sp, 0x18] | size = r3;
0x000117fc bl 0x112dc | r0 = realloc (r0, r1);
0x00011800 subs r3, r0, 0 | r3 = r0 - 0;
0x00011804 str r3, [sp, 0x10] | ptr = r3;
| if (r3 != r0) {
0x00011808 bne 0x11814 | goto label_26;
| }
0x0001180c ldr r0, [pc, 0x3b0] | r0 = *(0x11bc0);
| do {
| label_6:
0x00011810 bl 0x12c3c | fcn_00012c3c (r0);
| label_26:
0x00011814 ldr r0, [sp, 0x18] | r0 = size;
0x00011818 bl 0x11378 | malloc (r0);
0x0001181c ldr r2, [sp, 0x10] | r2 = ptr;
0x00011820 add sl, r2, sl | sl = r2 + sl;
0x00011824 cmp r0, 0 |
0x00011828 str r0, [sl, -4] | *((sl - 4)) = r0;
| if (r0 != 0) {
0x0001182c ldreq r0, [pc, 0x394] | r0 = "adding a new filter";
| }
0x00011830 beq 0x11810 |
| } while (r0 == 0);
0x00011834 str r5, [sp] | *(sp) = r5;
0x00011838 ldr r3, [pc, 0x38c] | r3 = "adding a new filter";
0x0001183c ldr r2, [pc, 0x38c] | r2 = "eavesdrop=true";
0x00011840 ldr r1, [sp, 0x18] | r1 = size;
0x00011844 bl 0x11330 | snprintf (r0, r1, "eavesdrop=true", "adding a new filter");
0x00011848 b 0x1173c | goto label_2;
| label_17:
0x0001184c mov r4, 1 | r4 = 1;
0x00011850 str r4, [sp, 0x14] | var_14h = r4;
0x00011854 b 0x1173c | goto label_2;
| label_21:
0x00011858 ldr r3, [pc, 0x334] | r3 = stdout;
0x0001185c mov fp, r0 |
| do {
| label_4:
0x00011860 str r3, [sp, 0xc] | var_ch = r3;
0x00011864 b 0x1173c | goto label_2;
| label_22:
0x00011868 mov fp, r0 |
0x0001186c ldr r3, [pc, 0x360] | r3 = "_s__s";
0x00011870 b 0x11860 |
| } while (1);
| label_23:
0x00011874 mov fp, 1 |
| do {
0x00011878 ldr r3, [pc, 0x358] | r3 = *(0x11bd4);
0x0001187c b 0x11860 | goto label_4;
| label_24:
0x00011880 mov fp, 2 |
0x00011884 b 0x11878 |
| } while (1);
| label_13:
0x00011888 ldr r0, [sp, 0x14] | r0 = var_14h;
0x0001188c bl 0x1148c | r0 = dbus_bus_get ();
0x00011890 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 == r0) {
0x00011894 bne 0x118bc |
0x00011898 ldr r2, [sp, 0x14] | r2 = var_14h;
0x0001189c ldr r3, [pc, 0x338] | r3 = *(0x11bd8);
0x000118a0 cmp r2, 0 |
0x000118a4 ldr r6, [pc, 0x334] | r6 = "session_bus";
| if (r2 != 0) {
0x000118a8 moveq r6, r3 | r6 = r3;
| }
| label_14:
0x000118ac ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x000118b0 mov r2, r6 | r2 = r6;
0x000118b4 ldr r1, [pc, 0x328] | r1 = "system_bus";
0x000118b8 b 0x11694 | goto label_5;
| }
| label_15:
0x000118bc mov r1, 1 | r1 = 1;
0x000118c0 mov r0, r4 | r0 = r4;
0x000118c4 bl 0x113cc | dbus_connection_set_route_peer_messages ();
0x000118c8 mov r3, 0 | r3 = 0;
0x000118cc mov r2, fp | r2 = fp;
0x000118d0 ldr r1, [sp, 0xc] | r1 = var_ch;
0x000118d4 mov r0, r4 | r0 = r4;
0x000118d8 bl 0x11390 | r0 = dbus_connection_add_filter ();
0x000118dc cmp r0, 0 |
| if (r0 == 0) {
0x000118e0 bne 0x118fc |
0x000118e4 ldr r3, [pc, 0x2b0] | r3 = "Failed_to_register_connection_to_bus_at__s:__s";
0x000118e8 ldr r0, [pc, 0x2f8] | r0 = "Failed_to_open_connection_to__s:__s";
0x000118ec ldr r1, [r3] | r1 = "Failed_to_register_connection_to_bus_at__s:__s";
0x000118f0 bl 0x114f8 | fputs ("Failed_to_open_connection_to__s:__s", "Failed_to_register_connection_to_bus_at__s:__s");
| label_9:
0x000118f4 mov r0, 1 | r0 = 1;
0x000118f8 b 0x11b8c | goto label_27;
| }
0x000118fc mov r2, 0x10 | r2 = 0x10;
0x00011900 mov r1, 0 | r1 = 0;
0x00011904 add r0, sp, 0x38 | r0 += s;
0x00011908 bl 0x1136c | memset (r0, r1, r2);
0x0001190c mov r3, 1 | r3 = 1;
0x00011910 strb r3, [sp, 0x40] | var_40h = r3;
0x00011914 mov r5, 0 | r5 = 0;
0x00011918 ldr r3, [pc, 0x2cc] | r3 = "Couldn't add filter!\n";
0x0001191c ldr r2, [pc, 0x2cc] | r2 = "BecomeMonitor";
0x00011920 ldr r1, [pc, 0x2cc] | r1 = "org.freedesktop.DBus.Monitoring";
0x00011924 ldr r0, [pc, 0x2cc] | r0 = "/org/freedesktop/DBus";
0x00011928 str r5, [sp, 0x24] | var_24h = r5;
0x0001192c bl 0x113d8 | r0 = dbus_message_new_method_call ();
0x00011930 subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 == r0) {
0x00011934 ldreq r0, [pc, 0x2c0] | r0 = "becoming a monitor";
| goto label_28;
| }
| if (r6 == r0) {
| label_28:
0x00011938 beq 0x11810 | goto label_6;
| }
0x0001193c add r1, sp, 0x48 | r1 += var_48h;
0x00011940 bl 0x112b8 | dbus_message_iter_init_append ();
0x00011944 add r3, sp, 0x80 | r3 += var_80h;
0x00011948 ldr r2, [pc, 0x2b0] | r2 = "becoming a monitor";
0x0001194c mov r1, 0x61 | r1 = 0x61;
0x00011950 add r0, sp, 0x48 | r0 += var_48h;
0x00011954 bl 0x11318 | r0 = dbus_message_iter_open_container ();
0x00011958 cmp r0, 0 |
| if (r0 == 0) {
0x0001195c ldreq r0, [pc, 0x2a0] | r0 = "opening string array";
| goto label_29;
| }
| if (r0 == 0) {
| label_29:
0x00011960 beq 0x11810 | goto label_6;
| }
| label_7:
0x00011964 cmp sb, r5 |
| if (sb == r5) {
0x00011968 bne 0x11988 |
0x0001196c add r1, sp, 0x80 | r1 += var_80h;
0x00011970 add r0, sp, 0x48 | r0 += var_48h;
0x00011974 bl 0x115c4 | r0 = dbus_message_iter_close_container ();
0x00011978 cmp r0, 0 |
| if (r0 != 0) {
0x0001197c bne 0x119b0 | goto label_30;
| }
| label_8:
0x00011980 ldr r0, [pc, 0x280] | r0 = "opening string array";
0x00011984 b 0x11810 | goto label_6;
| }
0x00011988 ldr r3, [sp, 0x10] | r3 = ptr;
0x0001198c mov r1, 0x73 | r1 = 0x73;
0x00011990 add r2, r3, r5, lsl 2 | r2 = r3 + (r5 << 2);
0x00011994 add r0, sp, 0x80 | r0 += var_80h;
0x00011998 bl 0x1133c | r0 = dbus_message_iter_append_basic ();
0x0001199c cmp r0, 0 |
| if (r0 == 0) {
0x000119a0 ldreq r0, [pc, 0x264] | r0 = "adding filter to array";
| goto label_31;
| }
| if (r0 == 0) {
| label_31:
0x000119a4 beq 0x11810 | goto label_6;
| }
0x000119a8 add r5, r5, 1 | r5++;
0x000119ac b 0x11964 | goto label_7;
| label_30:
0x000119b0 add r2, sp, 0x24 | r2 += var_24h;
0x000119b4 mov r1, 0x75 | r1 = 0x75;
0x000119b8 add r0, sp, 0x48 | r0 += var_48h;
0x000119bc bl 0x1133c | r0 = dbus_message_iter_append_basic ();
0x000119c0 cmp r0, 0 |
| if (r0 == 0) {
0x000119c4 beq 0x11980 | goto label_8;
| }
0x000119c8 add r3, sp, 0x38 | r3 += s;
0x000119cc mvn r2, 0 | r2 = ~0;
0x000119d0 mov r1, r6 | r1 = r6;
0x000119d4 mov r0, r4 | r0 = r4;
0x000119d8 bl 0x113b4 | r0 = dbus_connection_send_with_reply_and_block ();
0x000119dc subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 == r0) {
0x000119e0 beq 0x11a3c | goto label_32;
| }
0x000119e4 bl 0x114bc | dbus_message_unref ();
| do {
0x000119e8 mov r0, r6 | r0 = r6;
0x000119ec bl 0x114bc | dbus_message_unref ();
0x000119f0 cmp r5, 0 |
| if (r5 == 0) {
0x000119f4 beq 0x11a80 | goto label_33;
| }
| label_12:
0x000119f8 cmp fp, 2 |
| if (fp != 2) {
0x000119fc bne 0x11b78 | goto label_34;
| }
0x00011a00 ldr lr, [pc, 0x208] |
0x00011a04 add ip, sp, 0x80 |
0x00011a08 ldm lr!, {r0, r1, r2, r3} | r0 = *(lr!);
| r1 = *((lr! + 4));
| r2 = *((lr! + 8));
| r3 = *((lr! + 12));
0x00011a0c stm ip!, {r0, r1, r2, r3} | *(ip!) = r0;
| *((ip! + 4)) = r1;
| *((ip! + 8)) = r2;
| *((ip! + 12)) = r3;
0x00011a10 ldm lr, {r0, r1} | r0 = *(lr);
| r1 = *((lr + 4));
0x00011a14 mov r2, 0x18 | r2 = 0x18;
0x00011a18 stm ip, {r0, r1} | *(ip) = r0;
| *((ip + 4)) = r1;
0x00011a1c add r1, sp, 0x80 | r1 += var_80h;
0x00011a20 mov r0, 1 | r0 = 1;
0x00011a24 bl 0x12c64 | r0 = fcn_00012c64 (r0, r1);
0x00011a28 cmp r0, 0 |
| if (r0 != 0) {
0x00011a2c bne 0x11b78 | goto label_34;
| }
0x00011a30 ldr r0, [pc, 0x1dc] | r0 = *(0x11c10);
0x00011a34 bl 0x113fc | perror (r0);
0x00011a38 b 0x118f4 | goto label_9;
| label_32:
0x00011a3c ldr r1, [pc, 0x1d4] | r1 = "dbus_monitor:_write";
0x00011a40 add r0, sp, 0x38 | r0 += s;
0x00011a44 bl 0x11498 | r0 = dbus_error_has_name ();
0x00011a48 cmp r0, 0 |
0x00011a4c ldr r0, [pc, 0x148] | r0 = "Failed_to_register_connection_to_bus_at__s:__s";
| if (r0 == 0) {
0x00011a50 beq 0x11a6c | goto label_35;
| }
0x00011a54 ldr r1, [r0] | r1 = *(r0);
0x00011a58 ldr r0, [pc, 0x1bc] | r0 = "org.freedesktop.DBus.Error.UnknownInterface";
0x00011a5c bl 0x114f8 | fputs ("org.freedesktop.DBus.Error.UnknownInterface", r1);
| label_10:
0x00011a60 add r0, sp, 0x38 | r0 += s;
0x00011a64 bl 0x113e4 | dbus_error_free ();
0x00011a68 b 0x119e8 |
| } while (1);
| label_35:
0x00011a6c ldrd r2, r3, [sp, 0x38] | __asm ("ldrd r2, r3, [s]");
0x00011a70 ldr r1, [pc, 0x1a8] | r1 = "dbus-monitor: unable to enable new-style monitoring, your dbus-daemon is too old. Falling back to eavesdropping.\n";
0x00011a74 ldr r0, [r0] | r0 = *(r0);
0x00011a78 bl 0x11480 | fprintf (r0, "dbus-monitor: unable to enable new-style monitoring, your dbus-daemon is too old. Falling back to eavesdropping.\n", r2)
0x00011a7c b 0x11a60 | goto label_10;
| label_33:
0x00011a80 cmp sb, 0 |
| if (sb == 0) {
0x00011a84 beq 0x11b18 | goto label_36;
| }
0x00011a88 ldr r6, [sp, 0x10] | r6 = ptr;
0x00011a8c mov r7, r5 | r7 = r5;
| label_11:
0x00011a90 mov r8, r6 | r8 = r6;
0x00011a94 ldr r1, [r8] | r1 = *(r8);
0x00011a98 add r2, sp, 0x28 | r2 += var_28h;
0x00011a9c add r1, r1, r5 | r1 += r5;
0x00011aa0 mov r0, r4 | r0 = r4;
0x00011aa4 bl 0x1151c | dbus_bus_add_match ();
0x00011aa8 add r0, sp, 0x28 | r0 += var_28h;
0x00011aac bl 0x11300 | dbus_error_is_set ();
0x00011ab0 add r6, r6, 4 | r6 += 4;
0x00011ab4 cmp r0, 0 |
| if (r0 != 0) {
0x00011ab8 beq 0x11ae4 |
0x00011abc orrs r3, r5, r7 | r3 = r5 | r7;
| if (r3 != r5) {
0x00011ac0 bne 0x11ae4 | goto label_37;
| }
0x00011ac4 add r0, sp, 0x28 | r0 += var_28h;
0x00011ac8 bl 0x113e4 | dbus_error_free ();
0x00011acc ldr r1, [r6, -4] | r1 = *((r6 - 4));
0x00011ad0 add r2, sp, 0x28 | r2 += var_28h;
0x00011ad4 add r1, r1, 0xf | r1 += 0xf;
0x00011ad8 mov r0, r4 | r0 = r4;
0x00011adc bl 0x1151c | dbus_bus_add_match ();
0x00011ae0 mov r5, 0xf | r5 = 0xf;
| }
| label_37:
0x00011ae4 add r0, sp, 0x28 | r0 += var_28h;
0x00011ae8 bl 0x11300 | r0 = dbus_error_is_set ();
0x00011aec cmp r0, 0 |
| if (r0 == 0) {
0x00011af0 ldrne r3, [sp, 0x2c] | r3 = var_2ch;
| }
| if (r0 == 0) {
0x00011af4 ldrne r2, [r8] | r2 = *(r8);
| }
| if (r0 != 0) {
0x00011af8 ldrne r1, [pc, 0x124] | r1 = "Failed_to_setup_match___s_:__s";
| goto label_38;
| }
| if (r0 != 0) {
| label_38:
0x00011afc bne 0x11694 | goto label_5;
| }
0x00011b00 ldr r0, [r6, -4] | r0 = *((r6 - 4));
0x00011b04 bl 0x11540 | free (r0);
0x00011b08 add r7, r7, 1 | r7++;
0x00011b0c cmp sb, r7 |
| if (sb != r7) {
0x00011b10 bne 0x11a90 | goto label_11;
| }
0x00011b14 b 0x119f8 | goto label_12;
| label_36:
0x00011b18 add r2, sp, 0x28 | r2 += var_28h;
0x00011b1c ldr r1, [pc, 0xa8] | r1 = "adding a new filter";
0x00011b20 mov r0, r4 | r0 = r4;
0x00011b24 bl 0x1151c | dbus_bus_add_match ();
0x00011b28 add r0, sp, 0x28 | r0 += var_28h;
0x00011b2c bl 0x11300 | r0 = dbus_error_is_set ();
0x00011b30 cmp r0, 0 |
| if (r0 == 0) {
0x00011b34 beq 0x119f8 | goto label_12;
| }
0x00011b38 add r0, sp, 0x28 | r0 += var_28h;
0x00011b3c bl 0x113e4 | dbus_error_free ();
0x00011b40 add r2, sp, 0x28 | r2 += var_28h;
0x00011b44 ldr r1, [pc, 0xdc] | r1 = "Failed_to_setup_match___s_:__s";
0x00011b48 mov r0, r4 | r0 = r4;
0x00011b4c bl 0x1151c | dbus_bus_add_match ();
0x00011b50 add r0, sp, 0x28 | r0 += var_28h;
0x00011b54 bl 0x11300 | r0 = dbus_error_is_set ();
0x00011b58 cmp r0, 0 |
| if (r0 == 0) {
0x00011b5c beq 0x119f8 | goto label_12;
| }
0x00011b60 ldr r3, [pc, 0x34] | r3 = "Failed_to_register_connection_to_bus_at__s:__s";
0x00011b64 ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x00011b68 ldr r1, [pc, 0xbc] | r1 = *(0x11c28);
0x00011b6c ldr r0, [r3] | r0 = "Failed_to_register_connection_to_bus_at__s:__s";
0x00011b70 bl 0x11480 | fprintf ("Failed_to_register_connection_to_bus_at__s:__s", r1, r2, "Failed_to_register_connection_to_bus_at__s:__s")
0x00011b74 b 0x118f4 | goto label_9;
| do {
| label_34:
0x00011b78 mvn r1, 0 | r1 = ~0;
0x00011b7c mov r0, r4 | r0 = r4;
0x00011b80 bl 0x114c8 | r0 = dbus_connection_read_write_dispatch ();
0x00011b84 cmp r0, 0 |
0x00011b88 bne 0x11b78 |
| } while (r0 != 0);
| label_27:
0x00011b8c bl 0x11468 | exit (r0);
| if (r0 != 0) {
0x00011b90 andeq r4, r2, r8, lsr 2 | r4 = r2 & (r8 >> 2);
| }
| if (r0 != 0) {
0x00011b94 andeq r2, r1, r8, ror 1 | r2 = r1 & (r8 >>> 1);
| }
0x00011b98 ldrdeq r2, r3, [r1], -r8 | __asm ("ldrdeq r2, r3, [r1], -r8");
| if (r0 != 0) {
0x00011b9c andeq r4, r2, r4, lsr 2 | r4 = r2 & (r4 >> 2);
| }
| if (r0 != 0) {
0x00011ba0 andeq r2, r1, fp, asr 30 | r2 = r1 & (fp >> 30);
| }
| if (r0 != 0) {
0x00011ba4 andeq r2, r1, r4, asr pc | r2 = r1 & (r4 >> pc);
| }
| if (r0 != 0) {
0x00011ba8 andeq r2, r1, lr, asr pc | r2 = r1 & (lr >> pc);
| }
| if (r0 != 0) {
0x00011bac andeq r2, r1, r8, ror 30 | r2 = r1 & (r8 >>> 30);
| }
| if (r0 != 0) {
0x00011bb0 andeq r2, r1, pc, ror 30 | r2 = r1 & (pc >>> 30);
| }
| if (r0 != 0) {
0x00011bb4 andeq r2, r1, sb, ror pc | r2 = r1 & (sb >>> pc);
| }
| if (r0 != 0) {
0x00011bb8 andeq r2, r1, r3, lsl 31 | r2 = r1 & (r3 << 31);
| }
| if (r0 != 0) {
0x00011bbc andeq r2, r1, ip, lsl 31 | r2 = r1 & (ip << 31);
| }
| if (r0 != 0) {
0x00011bc0 muleq r1, r3, pc | r1 = r3 * pc;
| }
| if (r0 != 0) {
0x00011bc4 muleq r1, r6, pc | r1 = r6 * pc;
| }
| if (r0 != 0) {
0x00011bc8 andeq r2, r1, pc, lsr 31 | r2 = r1 & (pc >> 31);
| }
| if (r0 != 0) {
0x00011bcc andeq r2, r1, r3, asr 31 | r2 = r1 & (r3 >> 31);
| }
0x00011bd0 ldrdeq r2, r3, [r1], -r2 | __asm ("ldrdeq r2, r3, [r1], -r2");
0x00011bd4 strheq r1, [r1], -r4 | __asm ("strheq r1, [r1], -r4");
| if (r0 != 0) {
0x00011bd8 andeq r1, r1, r4, ror sp | r1 &= (r4 >>> sp);
| }
| if (r0 != 0) {
0x00011bdc andeq r2, r1, r4, lsr pc | r2 = r1 & (r4 >> pc);
| }
| if (r0 != 0) {
0x00011be0 andeq r2, r1, r0, asr 30 | r2 = r1 & (r0 >> 30);
| }
| if (r0 != 0) {
0x00011be4 andeq r3, r1, r8 | r3 = r1 & r8;
| }
| if (r0 != 0) {
0x00011be8 andeq r3, r1, sp, lsr 32 | r3 = r1 & (sp >> 32);
| }
| if (r0 != 0) {
0x00011bec andeq r3, r1, r3, asr 32 | r3 = r1 & (r3 >> 32);
| }
| if (r0 != 0) {
0x00011bf0 andeq r3, r1, r1, asr r0 | r3 = r1 & (r1 >> r0);
| }
| if (r0 != 0) {
0x00011bf4 andeq r3, r1, r1, ror r0 | r3 = r1 & (r1 >>> r0);
| }
| if (r0 != 0) {
0x00011bf8 andeq r3, r1, r7, lsl 1 | r3 = r1 & (r7 << 1);
| }
| if (r0 != 0) {
0x00011bfc muleq r1, ip, r0 | r1 = ip * r0;
| }
| if (r0 != 0) {
0x00011c00 andeq r2, r1, r0, lsr 29 | r2 = r1 & (r0 >> 29);
| }
| if (r0 != 0) {
0x00011c04 andeq r3, r1, pc, lsr 1 | r3 = r1 & (pc >> 1);
| }
0x00011c08 ldrdeq r3, r4, [r1], -fp | __asm ("ldrdeq r3, r4, [r1], -fp");
| if (r0 != 0) {
0x00011c0c andeq r3, r1, r4, asr 1 | r3 = r1 & (r4 >> 1);
| }
| if (r0 != 0) {
0x00011c10 andeq r2, r1, r8, lsr 27 | r2 = r1 & (r8 >> 27);
| }
| if (r0 != 0) {
0x00011c14 andeq r2, r1, sl, asr 28 | r2 = r1 & (sl >> 28);
| }
| if (r0 != 0) {
0x00011c18 andeq r3, r1, pc, ror 1 | r3 = r1 & (pc >>> 1);
| }
| if (r0 != 0) {
0x00011c1c andeq r3, r1, fp, lsl r1 | r3 = r1 & (fp << r1);
| }
| if (r0 != 0) {
0x00011c20 andeq r3, r1, sp, lsl 3 | r3 = r1 & (sp << 3);
| }
| if (r0 != 0) {
0x00011c24 andeq r3, r1, ip, ror 3 | r3 = r1 & (ip >>> 3);
| }
| if (r0 != 0) {
0x00011c28 andeq r2, r1, r3, lsr pc | r2 = r1 & (r3 >> pc);
| }
| /* Beware that this jump is a conditional jump.
| * r2dec transformed it as a return, due being the
| * last instruction. Please, check 'pdda' output
| * for more hints. */
0x00011c2c andeq r3, r1, ip, lsl 4 | return r3 = r1 & (ip << 4);
| }
[*] Function fprintf used 6 times dbus-monitor