[*] Binary protection state of dbus-test-tool

  
  	Partial RELRO  No Canary found   NX disabled  No PIE       No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of dbus-test-tool

    ; 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-test-tool @ 0x112b4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000112b4 ()              | void fcn_000112b4 (int32_t arg1, int32_t arg2) {
                                         |     void * s;
                                         |     int32_t var_0h_2;
                                         |     int32_t var_8h;
                                         |     int32_t var_14h;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x000112b4 push {r4, r5, lr}         |     
    0x000112b8 sub sp, sp, 0x14          |     
    0x000112bc mov r5, r0                |     r5 = r0;
    0x000112c0 mov r2, 0x10              |     r2 = 0x10;
    0x000112c4 mov r4, r1                |     r4 = r1;
    0x000112c8 mov r0, sp                |     r0 = sp;
    0x000112cc mov r1, 0                 |     r1 = 0;
    0x000112d0 bl 0x10f58                |     memset (r0, r1, r2);
    0x000112d4 mov r3, 1                 |     r3 = 1;
    0x000112d8 mov r0, r5                |     r0 = r5;
    0x000112dc mov r1, sp                |     r1 = sp;
    0x000112e0 strb r3, [sp, 8]          |     var_8h = r3;
    0x000112e4 bl 0x1103c                |     r0 = dbus_bus_get ();
    0x000112e8 subs r5, r0, 0            |     r5 = r0 - 0;
                                         |     if (r5 != r0) {
    0x000112ec bne 0x11314               |         goto label_0;
                                         |     }
    0x000112f0 ldr r0, [pc, 0x8c]        |     
    0x000112f4 ldrd r2, r3, [sp]         |     __asm ("ldrd r2, r3, [sp]");
    0x000112f8 ldr r1, [pc, 0x88]        |     r1 = stderr;
    0x000112fc ldr r0, [r0]              |     r0 = *(0x11380);
    0x00011300 bl 0x11030                |     fprintf (r0, r1, r2)
    0x00011304 mov r0, sp                |     r0 = sp;
    0x00011308 bl 0x10fb8                |     dbus_error_free ();
                                         |     do {
    0x0001130c mov r0, 1                 |         r0 = 1;
    0x00011310 bl 0x11018                |         exit (r0);
                                         | label_0:
    0x00011314 cmp r4, 0                 |         
                                         |         if (r4 == 0) {
    0x00011318 beq 0x1134c               |             goto label_1;
                                         |         }
    0x0001131c mov r3, 0                 |         r3 = 0;
    0x00011320 mov r2, 4                 |         r2 = 4;
    0x00011324 mov r1, r4                |         r1 = r4;
    0x00011328 bl 0x110c0                |         r0 = dbus_bus_request_name ();
    0x0001132c cmp r0, 1                 |         
                                         |         if (r0 == 1) {
    0x00011330 beq 0x11354               |             goto label_2;
                                         |         }
    0x00011334 ldr r3, [pc, 0x48]        |         r3 = *(0x11380);
    0x00011338 mov r2, r4                |         r2 = r4;
    0x0001133c ldr r1, [pc, 0x48]        |         r1 = "Failed_to_connect_to_bus:__s:__s";
    0x00011340 ldr r0, [r3]              |         r0 = *(0x11380);
    0x00011344 bl 0x11030                |         fprintf (r0, "Failed_to_connect_to_bus:__s:__s", r2, r3)
    0x00011348 b 0x1130c                 |         
                                         |     } while (1);
                                         | label_1:
    0x0001134c bl 0x11114                |     dbus_bus_get_unique_name ();
    0x00011350 bl 0x11108                |     puts (r0);
                                         | label_2:
    0x00011354 mov r3, 0                 |     r3 = 0;
    0x00011358 mov r2, r3                |     r2 = r3;
    0x0001135c ldr r1, [pc, 0x2c]        |     r1 = "failed_to_take_bus_name__s";
    0x00011360 mov r0, r5                |     r0 = r5;
    0x00011364 bl 0x10f70                |     r0 = dbus_connection_add_filter ();
    0x00011368 cmp r0, 0                 |     
                                         |     if (r0 == 0) {
    0x0001136c bne 0x11378               |         
    0x00011370 ldr r0, [pc, 0x1c]        |         r0 = *(0x11390);
    0x00011374 bl 0x120ec                |         fcn_000120ec (r0);
                                         |     }
    0x00011378 mov r0, r5                |     r0 = r5;
    0x0001137c add sp, sp, 0x14          |     
    0x00011380 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-test-tool @ 0x11708 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00011708 ()              | void fcn_00011708 (int32_t arg1, int32_t arg2) {
                                         |     int32_t var_0h;
                                         |     int32_t var_8h;
                                         |     int32_t var_ch;
                                         |     int32_t var_1ch;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00011708 push {r4, r5, lr}         |     
    0x0001170c sub sp, sp, 0x1c          |     
    0x00011710 mov r5, r0                |     r5 = r0;
    0x00011714 add r0, sp, 8             |     r0 += var_8h;
    0x00011718 mov r4, r1                |     r4 = r1;
    0x0001171c bl 0x10ec8                |     dbus_error_init ();
    0x00011720 mov r0, r5                |     r0 = r5;
    0x00011724 bl 0x11120                |     dbus_pending_call_steal_reply ();
    0x00011728 ldr r3, [pc, 0x58]        |     
    0x0001172c ldr r3, [r3]              |     r3 = *(0x11784);
    0x00011730 cmp r3, 0                 |     
                                         |     if (r3 == 0) {
    0x00011734 bne 0x11774               |         
    0x00011738 mov r5, r0                |         r5 = r0;
    0x0001173c bl 0x11090                |         r0 = dbus_message_get_type ();
    0x00011740 cmp r0, 3                 |         
                                         |         if (r0 != 3) {
    0x00011744 bne 0x11774               |             goto label_0;
                                         |         }
    0x00011748 mov r1, r5                |         r1 = r5;
    0x0001174c add r0, sp, 8             |         r0 += var_8h;
    0x00011750 bl 0x11048                |         dbus_set_error_from_message ();
    0x00011754 ldr r3, [sp, 0xc]         |         r3 = var_ch;
    0x00011758 ldr r0, [pc, 0x2c]        |         
    0x0001175c str r3, [sp]              |         *(sp) = r3;
    0x00011760 ldr r2, [r4]              |         r2 = *(r4);
    0x00011764 ldr r3, [sp, 8]           |         r3 = var_8h;
    0x00011768 ldr r1, [pc, 0x20]        |         r1 = stderr;
    0x0001176c ldr r0, [r0]              |         r0 = *(0x11788);
    0x00011770 bl 0x11030                |         fprintf (r0, r1, r2, r3)
                                         |     }
                                         | label_0:
    0x00011774 ldr r3, [r4]              |     r3 = *(r4);
    0x00011778 add r3, r3, 1             |     r3++;
    0x0001177c str r3, [r4]              |     *(r4) = r3;
    0x00011780 add sp, sp, 0x1c          |     
    0x00011784 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-test-tool @ 0x11794 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00011794 ()                                  | void fcn_00011794 () {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t seed;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_3ch;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_44h;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_4ch;
                                                             |     void * s;
                                                             |     int32_t var_50h_2;
                                                             |     int32_t var_58h;
                                                             |     int32_t var_64h;
    0x00011794 ldr r3, [pc, 0x14]                            |     r3 = *(0x117ac);
    0x00011798 push {r4, lr}                                 |     
    0x0001179c ldr r0, [pc, 0x10]                            |     r0 = stderr;
    0x000117a0 ldr r1, [r3]                                  |     r1 = *(0x117ac);
    0x000117a4 bl 0x110a8                                    |     fputs (r0, r1);
    0x000117a8 mov r0, 2                                     |     r0 = 2;
    0x000117ac bl 0x11018                                    |     exit (r0);
                                                             |     if (? != ?) {
    0x000117b0 andeq r3, r2, ip, ror 1                       |         r3 = r2 & (ip >>> 1);
                                                             |     }
                                                             |     if (? != ?) {
    0x000117b4 andeq r2, r1, sb, lsr 12                      |         r2 = r1 & (sb >> 12);
                                                             |     }
    0x000117b8 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x000117bc sub sp, sp, 0x64                              |     
    0x000117c0 mov r4, 0                                     |     r4 = 0;
    0x000117c4 str r0, [sp, 0x30]                            |     var_30h = r0;
    0x000117c8 str r1, [sp, 0x34]                            |     var_34h = r1;
    0x000117cc mov r2, 0x10                                  |     r2 = 0x10;
    0x000117d0 mov r1, 0                                     |     r1 = 0;
    0x000117d4 add r0, sp, 0x50                              |     r0 += s;
    0x000117d8 bl 0x10f58                                    |     memset (r0, r1, r2);
    0x000117dc mov r3, 1                                     |     r3 = 1;
    0x000117e0 mov r0, r4                                    |     r0 = r4;
    0x000117e4 strb r3, [sp, 0x58]                           |     var_58h = r3;
    0x000117e8 str r4, [sp, 0x38]                            |     var_38h = r4;
    0x000117ec str r4, [sp, 0x3c]                            |     var_3ch = r4;
    0x000117f0 str r4, [sp, 0x40]                            |     var_40h = r4;
    0x000117f4 bl 0x10f4c                                    |     time (r0);
    0x000117f8 mov r3, 0x73                                  |     r3 = 0x73;
    0x000117fc str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00011800 mov r3, 2                                     |     r3 = 2;
    0x00011804 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x00011808 ldr r3, [pc, 0x844]                           |     r3 = *(0x12050);
    0x0001180c mov sl, 1                                     |     sl = 1;
    0x00011810 mov r5, r4                                    |     r5 = r4;
    0x00011814 mov fp, r4                                    |     
    0x00011818 str r4, [sp, 0x14]                            |     var_14h = r4;
    0x0001181c str r4, [sp, 0xc]                             |     var_ch = r4;
    0x00011820 str r4, [sp, 0x10]                            |     var_10h = r4;
    0x00011824 str sl, [sp, 0x20]                            |     var_20h = sl;
    0x00011828 str r3, [sp, 0x28]                            |     var_28h = r3;
    0x0001182c str r4, [sp, 0x24]                            |     var_24h = r4;
    0x00011830 str r0, [sp, 0x2c]                            |     seed = r0;
                                                             | label_0:
    0x00011834 ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x00011838 ldr r2, [sp, 0x30]                            |     r2 = var_30h;
    0x0001183c cmp r3, r2                                    |     
                                                             |     if (r3 >= r2) {
    0x00011840 blt 0x118e4                                   |         
    0x00011844 ldr r0, [sp, 0x2c]                            |         r0 = seed;
    0x00011848 bl 0x10f1c                                    |         srand (r0);
    0x0001184c ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x00011850 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00011854 ldreq r3, [pc, 0x7fc]                         |             r3 = "hello__world_";
                                                             |         }
                                                             |         if (r3 != 0) {
    0x00011858 streq r3, [sp, 0x3c]                          |             var_3ch = r3;
                                                             |         }
                                                             |         if (r3 != 0) {
    0x0001185c moveq r3, 0xd                                 |             r3 = 0xd;
                                                             |         }
                                                             |         if (r3 != 0) {
    0x00011860 streq r3, [sp, 0x44]                          |             var_44h = r3;
                                                             |         }
    0x00011864 mov r8, 0                                     |         r8 = 0;
    0x00011868 mov r7, r8                                    |         r7 = r8;
    0x0001186c mov sb, r8                                    |         sb = r8;
    0x00011870 mov r6, r8                                    |         r6 = r8;
                                                             | label_11:
    0x00011874 cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x00011878 beq 0x1203c                                   |             goto label_15;
                                                             |         }
    0x0001187c ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x00011880 cmp r3, sb                                    |         
                                                             |         if (r3 > sb) {
    0x00011884 movle r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r3 <= sb) {
    0x00011888 movgt r3, 1                                   |             r3 = 1;
                                                             |         }
                                                             | label_14:
    0x0001188c cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00011890 bne 0x11d60                                   |             goto label_16;
                                                             |         }
    0x00011894 cmp r6, 0                                     |         
                                                             |         if (r6 != 0) {
    0x00011898 beq 0x118b4                                   |             
    0x0001189c mov r0, r6                                    |             r0 = r6;
    0x000118a0 bl 0x10f04                                    |             dbus_connection_flush ();
    0x000118a4 mov r0, r6                                    |             r0 = r6;
    0x000118a8 bl 0x10fd0                                    |             dbus_connection_close ();
    0x000118ac mov r0, r6                                    |             r0 = r6;
    0x000118b0 bl 0x10f7c                                    |             dbus_connection_unref ();
                                                             |         }
    0x000118b4 ldr r0, [sp, 0x40]                            |         r0 = var_40h;
    0x000118b8 bl 0x110cc                                    |         dbus_free ();
    0x000118bc mov r0, r4                                    |         r0 = r4;
    0x000118c0 bl 0x110cc                                    |         dbus_free ();
    0x000118c4 ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x000118c8 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000118cc beq 0x118d8                                   |             
    0x000118d0 mov r0, r3                                    |             r0 = r3;
    0x000118d4 bl 0x11078                                    |             dbus_message_unref ();
                                                             |         }
    0x000118d8 bl 0x10fdc                                    |         dbus_shutdown ();
    0x000118dc mov r0, 0                                     |         r0 = 0;
    0x000118e0 b 0x11e00                                     |         goto label_17;
                                                             |     }
    0x000118e4 ldr r3, [sp, 0x34]                            |     r3 = var_34h;
    0x000118e8 ldr r2, [sp, 0x1c]                            |     r2 = var_1ch;
    0x000118ec ldr r6, [r3, r2, lsl 2]                       |     offset_0 = r2 << 2;
                                                             |     r6 = *((r3 + offset_0));
    0x000118f0 ldr r3, [sp, 0x3c]                            |     r3 = var_3ch;
    0x000118f4 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000118f8 beq 0x11960                                   |         goto label_18;
                                                             |     }
    0x000118fc ldr r1, [pc, 0x758]                           |     r1 = "hello__world_";
    0x00011900 mov r0, r6                                    |     r0 = r6;
    0x00011904 bl 0x10fa0                                    |     r0 = strstr (r0, "hello__world_");
    0x00011908 cmp r6, r0                                    |     
                                                             |     if (r6 != r0) {
    0x0001190c beq 0x1194c                                   |         
    0x00011910 ldr r1, [pc, 0x748]                           |         r1 = "--payload=";
    0x00011914 mov r0, r6                                    |         r0 = r6;
    0x00011918 bl 0x10f40                                    |         r0 = strcmp (r0, "--payload=");
    0x0001191c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00011920 beq 0x1194c                                   |             goto label_19;
                                                             |         }
    0x00011924 ldr r1, [pc, 0x738]                           |         r1 = "__stdin";
    0x00011928 mov r0, r6                                    |         r0 = r6;
    0x0001192c bl 0x10f40                                    |         r0 = strcmp (r0, "__stdin");
    0x00011930 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00011934 beq 0x1194c                                   |             goto label_19;
                                                             |         }
    0x00011938 ldr r1, [pc, 0x728]                           |         r1 = "__message_stdin";
    0x0001193c mov r0, r6                                    |         r0 = r6;
    0x00011940 bl 0x10f40                                    |         r0 = strcmp (r0, "__message_stdin");
    0x00011944 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00011948 bne 0x11960                                   |             goto label_18;
                                                             |         }
                                                             |     }
                                                             | label_19:
    0x0001194c ldr r3, [pc, 0x718]                           |     r3 = "__random_size";
    0x00011950 ldr r0, [pc, 0x718]                           |     r0 = stderr;
    0x00011954 ldr r1, [r3]                                  |     r1 = "__random_size";
    0x00011958 bl 0x110a8                                    |     r0 = fputs (r0, "__random_size");
                                                             |     do {
                                                             | label_4:
    0x0001195c bl 0x11794                                    |         fcn_00011794 ();
                                                             | label_18:
    0x00011960 ldr r1, [pc, 0x70c]                           |         r1 = "At_most_one_of___payload____stdin____message_stdin_and___random_size_may_be_specified";
    0x00011964 mov r0, r6                                    |         r0 = r6;
    0x00011968 bl 0x10f40                                    |         r0 = strcmp (r0, "At_most_one_of___payload____stdin____message_stdin_and___random_size_may_be_specified");
    0x0001196c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00011970 beq 0x11d30                                   |             goto label_20;
                                                             |         }
    0x00011974 ldr r1, [pc, 0x6fc]                           |         r1 = "--system";
    0x00011978 mov r0, r6                                    |         r0 = r6;
    0x0001197c bl 0x10f40                                    |         r0 = strcmp (r0, "--system");
    0x00011980 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00011984 beq 0x11d3c                                   |             goto label_21;
                                                             |         }
    0x00011988 ldr r1, [pc, 0x6ec]                           |         r1 = "__session";
    0x0001198c mov r0, r6                                    |         r0 = r6;
    0x00011990 bl 0x10fa0                                    |         r0 = strstr (r0, "__session");
    0x00011994 cmp r6, r0                                    |         
                                                             |         if (r6 != r0) {
    0x00011998 bne 0x119c0                                   |             goto label_22;
                                                             |         }
    0x0001199c add r0, r6, 8                                 |         r0 = r6 + 8;
    0x000119a0 bl 0x110e4                                    |         r0 = atoi (r0);
    0x000119a4 subs r3, r0, 0                                |         r3 = r0 - 0;
    0x000119a8 str r3, [sp, 0x20]                            |         var_20h = r3;
    0x000119ac ble 0x1195c                                   |         
                                                             |     } while (r3 <= r0);
                                                             |     do {
                                                             | label_1:
    0x000119b0 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x000119b4 add r3, r3, 1                                 |         r3++;
    0x000119b8 str r3, [sp, 0x1c]                            |         var_1ch = r3;
    0x000119bc b 0x11834                                     |         goto label_0;
                                                             | label_22:
    0x000119c0 ldr r1, [pc, 0x6b8]                           |         r1 = "__count";
    0x000119c4 mov r0, r6                                    |         r0 = r6;
    0x000119c8 bl 0x10f40                                    |         r0 = strcmp (r0, "__count");
    0x000119cc cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000119d0 ldreq r3, [pc, 0x6ac]                         |             r3 = *(0x00012084);
                                                             |         }
                                                             |         if (r0 != 0) {
    0x000119d4 moveq r2, 1                                   |             r2 = 1;
                                                             |         }
                                                             |         if (r0 != 0) {
    0x000119d8 streq r2, [r3]                                |             *(r3) = r2;
                                                             |         }
    0x000119dc beq 0x119b0                                   |         
                                                             |     } while (r0 == 0);
    0x000119e0 ldr r1, [pc, 0x6a0]                           |     r1 = *(0x12084);
    0x000119e4 mov r0, r6                                    |     r0 = r6;
    0x000119e8 bl 0x10fa0                                    |     r0 = strstr (r0, r1);
    0x000119ec cmp r6, r0                                    |     
                                                             |     if (r6 != r0) {
    0x000119f0 addeq r3, r6, 7                               |         r3 = r6 + 7;
                                                             |     }
                                                             |     if (r6 == r0) {
    0x000119f4 streq r3, [sp, 0x28]                          |         var_28h = r3;
                                                             |         goto label_23;
                                                             |     }
                                                             |     if (r6 == r0) {
                                                             | label_23:
    0x000119f8 beq 0x119b0                                   |         goto label_1;
                                                             |     }
    0x000119fc mov r0, r6                                    |     r0 = r6;
    0x00011a00 ldr r1, [pc, 0x654]                           |     r1 = "hello__world_";
    0x00011a04 bl 0x10fa0                                    |     r0 = strstr (r0, "hello__world_");
    0x00011a08 cmp r6, r0                                    |     
                                                             |     if (r6 != r0) {
    0x00011a0c addeq r6, r6, 0xa                             |         r6 += 0xa;
                                                             |     }
                                                             |     if (r6 == r0) {
    0x00011a10 streq r6, [sp, 0x3c]                          |         var_3ch = r6;
                                                             |         goto label_24;
                                                             |     }
                                                             |     if (r6 == r0) {
                                                             | label_24:
    0x00011a14 beq 0x119b0                                   |         goto label_1;
                                                             |     }
    0x00011a18 ldr r1, [pc, 0x640]                           |     r1 = "--payload=";
    0x00011a1c mov r0, r6                                    |     r0 = r6;
    0x00011a20 bl 0x10f40                                    |     r0 = strcmp (r0, "--payload=");
    0x00011a24 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011a28 bne 0x11a44                                   |         
    0x00011a2c add r1, sp, 0x44                              |         r1 += var_44h;
    0x00011a30 add r0, sp, 0x40                              |         r0 += var_40h;
    0x00011a34 bl 0x11678                                    |         fcn_00011678 (r0, r1);
    0x00011a38 ldr r3, [sp, 0x40]                            |         r3 = var_40h;
    0x00011a3c str r3, [sp, 0x3c]                            |         var_3ch = r3;
    0x00011a40 b 0x119b0                                     |         goto label_1;
                                                             |     }
    0x00011a44 ldr r1, [pc, 0x618]                           |     r1 = "__stdin";
    0x00011a48 mov r0, r6                                    |     r0 = r6;
    0x00011a4c bl 0x10f40                                    |     r0 = strcmp (r0, "__stdin");
    0x00011a50 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011a54 bne 0x11ac0                                   |         goto label_25;
                                                             |     }
    0x00011a58 add r1, sp, 0x44                              |     r1 += var_44h;
    0x00011a5c add r0, sp, 0x40                              |     r0 += var_40h;
    0x00011a60 bl 0x11678                                    |     fcn_00011678 (r0, r1);
    0x00011a64 ldr r0, [sp, 0x40]                            |     r0 = var_40h;
    0x00011a68 add r2, sp, 0x50                              |     r2 += s;
    0x00011a6c ldr r1, [sp, 0x44]                            |     r1 = var_44h;
    0x00011a70 str r0, [sp, 0x3c]                            |     var_3ch = r0;
    0x00011a74 bl 0x10f88                                    |     r0 = dbus_message_demarshal ();
    0x00011a78 subs r3, r0, 0                                |     r3 = r0 - 0;
    0x00011a7c str r3, [sp, 0x10]                            |     var_10h = r3;
                                                             |     if (r3 == r0) {
    0x00011a80 bne 0x11aa0                                   |         
    0x00011a84 ldr r0, [pc, 0x5e0]                           |         
    0x00011a88 ldrd r2, r3, [sp, 0x50]                       |         __asm ("ldrd r2, r3, [s]");
    0x00011a8c ldr r1, [pc, 0x5f8]                           |         r1 = "--dest=";
    0x00011a90 ldr r0, [r0]                                  |         r0 = "__random_size";
    0x00011a94 bl 0x11030                                    |         fprintf ("__random_size", "--dest=", r2)
                                                             | label_2:
    0x00011a98 mov r0, 1                                     |         r0 = 1;
    0x00011a9c bl 0x11018                                    |         r0 = exit (r0);
                                                             |     }
    0x00011aa0 bl 0x11090                                    |     r0 = dbus_message_get_type ();
    0x00011aa4 cmp r0, 1                                     |     
                                                             |     if (r0 == 1) {
    0x00011aa8 beq 0x119b0                                   |         goto label_1;
                                                             |     }
    0x00011aac ldr r3, [pc, 0x5b8]                           |     r3 = "__random_size";
    0x00011ab0 ldr r0, [pc, 0x5d8]                           |     r0 = "Unable to demarshal template message: %s: %s";
    0x00011ab4 ldr r1, [r3]                                  |     r1 = "__random_size";
                                                             | label_12:
    0x00011ab8 bl 0x110a8                                    |     fputs ("Unable to demarshal template message: %s: %s", "__random_size");
    0x00011abc b 0x11a98                                     |     goto label_2;
                                                             | label_25:
    0x00011ac0 ldr r1, [pc, 0x5a0]                           |     r1 = "__message_stdin";
    0x00011ac4 mov r0, r6                                    |     r0 = r6;
    0x00011ac8 bl 0x10f40                                    |     r0 = strcmp (r0, "__message_stdin");
    0x00011acc subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 != r0) {
    0x00011ad0 bne 0x11c00                                   |         goto label_26;
                                                             |     }
    0x00011ad4 add r1, sp, 0x44                              |     r1 += var_44h;
    0x00011ad8 add r0, sp, 0x40                              |     r0 += var_40h;
    0x00011adc str r8, [sp, 0x4c]                            |     var_4ch = r8;
    0x00011ae0 ldr r6, [pc, 0x5ac]                           |     r6 = "Template_message_must_be_a_method_call";
    0x00011ae4 bl 0x11678                                    |     fcn_00011678 (r0, r1);
    0x00011ae8 ldr r4, [sp, 0x40]                            |     r4 = var_40h;
                                                             |     do {
    0x00011aec ldrd r2, r3, [sp, 0x40]                       |         __asm ("ldrd r2, r3, [var_40h]");
    0x00011af0 add r3, r3, r2                                |         r3 += r2;
    0x00011af4 cmp r4, r3                                    |         
                                                             |         if (r4 < r3) {
    0x00011af8 bhs 0x11b18                                   |             
    0x00011afc add r3, sp, 0x4c                              |             r3 += var_4ch;
    0x00011b00 add r2, sp, 0x48                              |             r2 += var_48h;
    0x00011b04 mov r1, r6                                    |             r1 = r6;
    0x00011b08 mov r0, r4                                    |             r0 = r4;
    0x00011b0c bl 0x10f10                                    |             r0 = sscanf (r0, r1, r2);
    0x00011b10 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00011b14 bne 0x11b34                                   |                 goto label_27;
                                                             |             }
                                                             |         }
    0x00011b18 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x00011b1c lsl r0, r3, 2                                 |         r0 = r3 << 2;
    0x00011b20 bl 0x10ebc                                    |         r0 = dbus_malloc0 ();
    0x00011b24 subs r4, r0, 0                                |         r4 = r0 - 0;
                                                             |         if (r4 != r0) {
    0x00011b28 bne 0x11b4c                                   |             goto label_28;
                                                             |         }
    0x00011b2c ldr r0, [pc, 0x564]                           |         r0 = "_u__n";
                                                             | label_3:
    0x00011b30 bl 0x120ec                                    |         fcn_000120ec ("_u__n");
                                                             | label_27:
    0x00011b34 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x00011b38 add r3, r3, 1                                 |         r3++;
    0x00011b3c str r3, [sp, 0x14]                            |         var_14h = r3;
    0x00011b40 ldr r3, [sp, 0x4c]                            |         r3 = var_4ch;
    0x00011b44 add r4, r4, r3                                |         r4 += r3;
    0x00011b48 b 0x11aec                                     |         
                                                             |     } while (1);
                                                             | label_28:
    0x00011b4c ldr sb, [sp, 0x40]                            |     sb = var_40h;
    0x00011b50 mov r6, 0                                     |     r6 = 0;
                                                             |     do {
    0x00011b54 ldr r0, [sp, 0x40]                            |         r0 = var_40h;
    0x00011b58 ldr r7, [sp, 0x44]                            |         r7 = var_44h;
    0x00011b5c ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x00011b60 add r7, r0, r7                                |         r7 = r0 + r7;
    0x00011b64 cmp sb, r7                                    |         
                                                             |         if (sb < r7) {
    0x00011b68 movhs r2, 0                                   |             r2 = 0;
                                                             |         }
                                                             |         if (sb >= r7) {
    0x00011b6c movlo r2, 1                                   |             r2 = 1;
                                                             |         }
    0x00011b70 cmp r3, r8                                    |         
                                                             |         if (r3 > r8) {
    0x00011b74 movle r2, 0                                   |             r2 = 0;
                                                             |         }
    0x00011b78 cmp r2, 0                                     |         
    0x00011b7c mov r7, r2                                    |         r7 = r2;
                                                             |         if (r2 == 0) {
    0x00011b80 bne 0x11bb0                                   |             
    0x00011b84 bl 0x110cc                                    |             dbus_free ();
    0x00011b88 add r0, r6, 1                                 |             r0 = r6 + 1;
    0x00011b8c str r0, [sp, 0x44]                            |             var_44h = r0;
    0x00011b90 bl 0x10fe8                                    |             r0 = dbus_malloc ();
    0x00011b94 cmp r0, 0                                     |             
    0x00011b98 mov r6, r0                                    |             r6 = r0;
    0x00011b9c str r0, [sp, 0x40]                            |             var_40h = r0;
    0x00011ba0 str r0, [sp, 0x3c]                            |             var_3ch = r0;
                                                             |             if (r0 != 0) {
    0x00011ba4 bne 0x11be4                                   |                 goto label_29;
                                                             |             }
    0x00011ba8 ldr r0, [pc, 0x4ec]                           |             r0 = "allocating array of message lengths";
    0x00011bac b 0x11b30                                     |             goto label_3;
                                                             |         }
    0x00011bb0 add r3, sp, 0x4c                              |         r3 += var_4ch;
    0x00011bb4 mov r0, sb                                    |         r0 = sb;
    0x00011bb8 add r2, sp, 0x48                              |         r2 += var_48h;
    0x00011bbc ldr r1, [pc, 0x4d0]                           |         r1 = "Template_message_must_be_a_method_call";
    0x00011bc0 bl 0x10f10                                    |         sscanf (r0, "Template_message_must_be_a_method_call", r2);
    0x00011bc4 ldr r3, [sp, 0x48]                            |         r3 = var_48h;
    0x00011bc8 cmp r6, r3                                    |         
    0x00011bcc str r3, [r4, r8, lsl 2]                       |         offset_1 = r8 << 2;
                                                             |         *((r4 + offset_1)) = r3;
                                                             |         if (r6 >= r3) {
    0x00011bd0 movlo r6, r3                                  |             r6 = r3;
                                                             |         }
    0x00011bd4 ldr r3, [sp, 0x4c]                            |         r3 = var_4ch;
    0x00011bd8 add r8, r8, 1                                 |         r8++;
    0x00011bdc add sb, sb, r3                                |         sb += r3;
    0x00011be0 b 0x11b54                                     |         
                                                             |     } while (1);
                                                             | label_29:
    0x00011be4 ldr r8, [sp, 0x44]                            |     r8 = var_44h;
    0x00011be8 mov r1, 0x58                                  |     r1 = 0x58;
    0x00011bec mov r2, r8                                    |     r2 = r8;
    0x00011bf0 add r6, r6, r8                                |     r6 += r8;
    0x00011bf4 bl 0x10f58                                    |     memset (r0, r1, r2);
    0x00011bf8 strb r7, [r6, -1]                             |     *((r6 - 1)) = r7;
    0x00011bfc b 0x119b0                                     |     goto label_1;
                                                             | label_26:
    0x00011c00 ldr r1, [pc, 0x498]                           |     r1 = "allocating maximum-sized payload";
    0x00011c04 mov r0, r6                                    |     r0 = r6;
    0x00011c08 bl 0x10f40                                    |     r0 = strcmp (r0, "allocating maximum-sized payload");
    0x00011c0c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011c10 beq 0x11d44                                   |         goto label_30;
                                                             |     }
    0x00011c14 ldr r1, [pc, 0x488]                           |     r1 = "__empty";
    0x00011c18 mov r0, r6                                    |     r0 = r6;
    0x00011c1c bl 0x10f40                                    |     r0 = strcmp (r0, "__empty");
    0x00011c20 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011c24 beq 0x11d50                                   |         goto label_31;
                                                             |     }
    0x00011c28 ldr r1, [pc, 0x478]                           |     r1 = "__string";
    0x00011c2c mov r0, r6                                    |     r0 = r6;
    0x00011c30 bl 0x10f40                                    |     r0 = strcmp (r0, "__string");
    0x00011c34 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011c38 beq 0x11d58                                   |         goto label_32;
                                                             |     }
    0x00011c3c ldr r1, [pc, 0x468]                           |     r1 = "--bytes";
    0x00011c40 mov r0, r6                                    |     r0 = r6;
    0x00011c44 bl 0x10f40                                    |     r0 = strcmp (r0, "--bytes");
    0x00011c48 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011c4c bne 0x11c70                                   |         goto label_33;
                                                             |     }
    0x00011c50 cmp sl, 1                                     |     
                                                             |     if (sl > 1) {
    0x00011c54 bgt 0x1195c                                   |         goto label_4;
                                                             |     }
    0x00011c58 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00011c5c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00011c60 bne 0x1195c                                   |         goto label_4;
                                                             |     }
    0x00011c64 mov fp, 1                                     |     
                                                             | label_5:
    0x00011c68 mvn sl, 0                                     |     sl = ~0;
    0x00011c6c b 0x119b0                                     |     goto label_1;
                                                             | label_33:
    0x00011c70 ldr r1, [pc, 0x438]                           |     r1 = "--flood";
    0x00011c74 mov r0, r6                                    |     r0 = r6;
    0x00011c78 bl 0x10f40                                    |     r0 = strcmp (r0, "--flood");
    0x00011c7c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011c80 bne 0x11c94                                   |         goto label_34;
                                                             |     }
    0x00011c84 cmp sl, 1                                     |     
                                                             |     if (sl > 1) {
    0x00011c88 bgt 0x1195c                                   |         goto label_4;
                                                             |     }
    0x00011c8c mov r5, 1                                     |     r5 = 1;
    0x00011c90 b 0x11c68                                     |     goto label_5;
                                                             | label_34:
    0x00011c94 ldr r1, [pc, 0x418]                           |     r1 = "--no-reply";
    0x00011c98 mov r0, r6                                    |     r0 = r6;
    0x00011c9c bl 0x10fa0                                    |     r0 = strstr (r0, "--no-reply");
    0x00011ca0 cmp r6, r0                                    |     
                                                             |     if (r6 != r0) {
    0x00011ca4 bne 0x11cc8                                   |         goto label_35;
                                                             |     }
    0x00011ca8 orrs r5, fp, r5                               |     r5 = fp | r5;
                                                             |     if (r5 != fp) {
    0x00011cac bne 0x1195c                                   |         goto label_4;
                                                             |     }
    0x00011cb0 add r0, r6, 8                                 |     r0 = r6 + 8;
    0x00011cb4 bl 0x110e4                                    |     r0 = atoi (r0);
    0x00011cb8 subs sl, r0, 0                                |     sl = r0 - 0;
                                                             |     if (sl <= r0) {
    0x00011cbc ble 0x1195c                                   |         goto label_4;
                                                             |     }
    0x00011cc0 mov fp, r5                                    |     
    0x00011cc4 b 0x119b0                                     |     goto label_1;
                                                             | label_35:
    0x00011cc8 ldr r1, [pc, 0x3e8]                           |     r1 = "__queue";
    0x00011ccc mov r0, r6                                    |     r0 = r6;
    0x00011cd0 bl 0x10fa0                                    |     r0 = strstr (r0, "__queue");
    0x00011cd4 cmp r6, r0                                    |     
                                                             |     if (r6 == r0) {
    0x00011cd8 bne 0x11cf4                                   |         
    0x00011cdc mov r2, 0xa                                   |         r2 = 0xa;
    0x00011ce0 mov r1, 0                                     |         r1 = 0;
    0x00011ce4 add r0, r6, 7                                 |         r0 = r6 + 7;
    0x00011ce8 bl 0x11054                                    |         strtoul (r0, r1, r2);
    0x00011cec str r0, [sp, 0x2c]                            |         seed = r0;
    0x00011cf0 b 0x119b0                                     |         goto label_1;
                                                             |     }
    0x00011cf4 ldr r1, [pc, 0x3c0]                           |     r1 = "--seed=";
    0x00011cf8 mov r0, r6                                    |     r0 = r6;
    0x00011cfc bl 0x10fa0                                    |     r0 = strstr (r0, "--seed=");
    0x00011d00 cmp r6, r0                                    |     
                                                             |     if (r6 != r0) {
    0x00011d04 bne 0x1195c                                   |         goto label_4;
                                                             |     }
    0x00011d08 add r0, r6, 0x14                              |     r0 = r6 + 0x14;
    0x00011d0c bl 0x110e4                                    |     r0 = atoi (r0);
    0x00011d10 cmp r0, 0                                     |     
    0x00011d14 mov r3, r0                                    |     r3 = r0;
                                                             |     if (r0 == 0) {
    0x00011d18 movne r3, fp                                  |         r3 = fp;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00011d1c moveq r3, 0                                   |         r3 = 0;
                                                             |     }
    0x00011d20 cmp r3, 0                                     |     
    0x00011d24 str r0, [sp, 0xc]                             |     var_ch = r0;
                                                             |     if (r3 == 0) {
    0x00011d28 beq 0x119b0                                   |         goto label_1;
                                                             |     }
    0x00011d2c b 0x1195c                                     |     goto label_4;
                                                             | label_20:
    0x00011d30 mov r3, 1                                     |     r3 = 1;
    0x00011d34 str r3, [sp, 0x24]                            |     var_24h = r3;
    0x00011d38 b 0x119b0                                     |     goto label_1;
                                                             | label_21:
    0x00011d3c str r0, [sp, 0x24]                            |     var_24h = r0;
    0x00011d40 b 0x119b0                                     |     goto label_1;
                                                             | label_30:
    0x00011d44 mov r3, 0                                     |     r3 = 0;
                                                             |     do {
                                                             | label_6:
    0x00011d48 str r3, [sp, 0x18]                            |         var_18h = r3;
    0x00011d4c b 0x119b0                                     |         goto label_1;
                                                             | label_31:
    0x00011d50 mov r3, 0x73                                  |         r3 = 0x73;
    0x00011d54 b 0x11d48                                     |         
                                                             |     } while (1);
                                                             | label_32:
    0x00011d58 mov r3, 0x61                                  |     r3 = 0x61;
    0x00011d5c b 0x11d48                                     |     goto label_6;
                                                             | label_16:
    0x00011d60 cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x00011d64 beq 0x11dbc                                   |         
    0x00011d68 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00011d6c ldr r2, [sp, 0xc]                             |         r2 = var_ch;
    0x00011d70 sub r3, r7, r3                                |         r3 = r7 - r3;
    0x00011d74 cmp r2, 0                                     |         
    0x00011d78 clz r3, r3                                    |         r3 &= r3;
    0x00011d7c lsr r3, r3, 5                                 |         r3 >>= 5;
                                                             |         if (r2 != 0) {
    0x00011d80 moveq r3, 0                                   |             r3 = 0;
                                                             |         }
    0x00011d84 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00011d88 beq 0x11e10                                   |             goto label_36;
                                                             |         }
    0x00011d8c cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x00011d90 bne 0x11da4                                   |             
    0x00011d94 ldr r3, [sp, 0x38]                            |             r3 = var_38h;
    0x00011d98 sub r3, r3, r8                                |             r3 -= r8;
    0x00011d9c cmp r3, r2                                    |             
                                                             |             if (r3 != r2) {
    0x00011da0 bne 0x11e10                                   |                 goto label_36;
                                                             |             }
                                                             |         }
    0x00011da4 mov r0, r6                                    |         r0 = r6;
    0x00011da8 bl 0x10f04                                    |         dbus_connection_flush ();
    0x00011dac mov r0, r6                                    |         r0 = r6;
    0x00011db0 bl 0x10fd0                                    |         dbus_connection_close ();
    0x00011db4 mov r0, r6                                    |         r0 = r6;
    0x00011db8 bl 0x10f7c                                    |         dbus_connection_unref ();
                                                             |     }
    0x00011dbc add r1, sp, 0x50                              |     r1 += s;
    0x00011dc0 ldr r0, [sp, 0x24]                            |     r0 = var_24h;
    0x00011dc4 bl 0x110f0                                    |     r0 = dbus_bus_get_private ();
    0x00011dc8 subs r6, r0, 0                                |     r6 = r0 - 0;
                                                             |     if (r6 == r0) {
    0x00011dcc bne 0x11e08                                   |         
    0x00011dd0 ldr r0, [pc, 0x294]                           |         
    0x00011dd4 ldrd r2, r3, [sp, 0x50]                       |         __asm ("ldrd r2, r3, [s]");
    0x00011dd8 ldr r1, [pc, 0x2e0]                           |         r1 = "--messages-per-conn=";
    0x00011ddc ldr r0, [r0]                                  |         r0 = "__random_size";
    0x00011de0 bl 0x11030                                    |         fprintf ("__random_size", "--messages-per-conn=", r2)
    0x00011de4 add r0, sp, 0x50                              |         r0 += s;
    0x00011de8 bl 0x10fb8                                    |         dbus_error_free ();
    0x00011dec mov r0, r4                                    |         r0 = r4;
    0x00011df0 bl 0x110cc                                    |         dbus_free ();
    0x00011df4 ldr r0, [sp, 0x40]                            |         r0 = var_40h;
    0x00011df8 bl 0x110cc                                    |         dbus_free ();
    0x00011dfc mov r0, 1                                     |         r0 = 1;
                                                             | label_17:
    0x00011e00 add sp, sp, 0x64                              |         
    0x00011e04 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             |     }
    0x00011e08 ldr r8, [sp, 0x38]                            |     r8 = var_38h;
    0x00011e0c mov r7, 0                                     |     r7 = 0;
                                                             | label_36:
    0x00011e10 mov fp, sb                                    |     
    0x00011e14 b 0x11fa4                                     |     goto label_37;
                                                             | label_10:
    0x00011e18 ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x00011e1c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00011e20 beq 0x11e68                                   |         goto label_38;
                                                             |     }
    0x00011e24 mov r0, r3                                    |     r0 = r3;
    0x00011e28 bl 0x110d8                                    |     r0 = dbus_message_copy ();
    0x00011e2c subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb == r0) {
    0x00011e30 ldreq r0, [pc, 0x28c]                         |         r0 = "copying_message";
                                                             |         goto label_39;
                                                             |     }
                                                             |     if (sb == r0) {
                                                             | label_39:
    0x00011e34 beq 0x11b30                                   |         goto label_3;
                                                             |     }
    0x00011e38 mov r1, r5                                    |     r1 = r5;
    0x00011e3c bl 0x11000                                    |     dbus_message_set_no_reply ();
                                                             | label_7:
    0x00011e40 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00011e44 beq 0x11f4c                                   |         goto label_40;
                                                             |     }
    0x00011e48 mov r2, 0                                     |     r2 = 0;
    0x00011e4c mov r1, sb                                    |     r1 = sb;
    0x00011e50 mov r0, r6                                    |     r0 = r6;
    0x00011e54 bl 0x110b4                                    |     r0 = dbus_connection_send ();
    0x00011e58 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011e5c bne 0x11f94                                   |         goto label_41;
                                                             |     }
                                                             | label_9:
    0x00011e60 ldr r0, [pc, 0x260]                           |     r0 = "copying_message";
    0x00011e64 b 0x11b30                                     |     goto label_3;
                                                             | label_38:
    0x00011e68 ldr r3, [pc, 0x25c]                           |     r3 = "sending message";
    0x00011e6c ldr r2, [pc, 0x25c]                           |     r2 = "Spam";
    0x00011e70 ldr r1, [pc, 0x25c]                           |     r1 = "com.example";
    0x00011e74 ldr r0, [sp, 0x28]                            |     r0 = var_28h;
    0x00011e78 bl 0x10fac                                    |     r0 = dbus_message_new_method_call ();
    0x00011e7c subs sb, r0, 0                                |     sb = r0 - 0;
                                                             |     if (sb == r0) {
    0x00011e80 ldreq r0, [pc, 0x250]                         |         r0 = "allocating message";
                                                             |         goto label_42;
                                                             |     }
                                                             |     if (sb == r0) {
                                                             | label_42:
    0x00011e84 beq 0x11b30                                   |         goto label_3;
                                                             |     }
    0x00011e88 mov r1, r5                                    |     r1 = r5;
    0x00011e8c bl 0x11000                                    |     dbus_message_set_no_reply ();
    0x00011e90 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x00011e94 cmp r3, 0x61                                  |     
                                                             |     if (r3 == 0x61) {
    0x00011e98 beq 0x11f0c                                   |         goto label_43;
                                                             |     }
    0x00011e9c cmp r3, 0x73                                  |     
                                                             |     if (r3 != 0x73) {
    0x00011ea0 bne 0x11e40                                   |         goto label_7;
                                                             |     }
    0x00011ea4 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00011ea8 streq r4, [sp, 0x1c]                          |         var_1ch = r4;
                                                             |     }
                                                             |     if (r4 != 0) {
    0x00011eac beq 0x11ed4                                   |         
    0x00011eb0 bl 0x10f64                                    |         rand ();
    0x00011eb4 ldr r1, [sp, 0x14]                            |         r1 = var_14h;
    0x00011eb8 bl 0x122b4                                    |         fcn_000122b4 (r0, r1);
    0x00011ebc ldr r3, [r4, r1, lsl 2]                       |         offset_2 = r1 << 2;
                                                             |         r3 = *((r4 + offset_2));
    0x00011ec0 ldr r1, [sp, 0x10]                            |         r1 = var_10h;
    0x00011ec4 str r3, [sp, 0x1c]                            |         var_1ch = r3;
    0x00011ec8 ldr r2, [sp, 0x1c]                            |         r2 = var_1ch;
    0x00011ecc ldr r3, [sp, 0x40]                            |         r3 = var_40h;
    0x00011ed0 strb r1, [r3, r2]                             |         *((r3 + r2)) = r1;
                                                             |     }
    0x00011ed4 mov r3, 0                                     |     r3 = 0;
    0x00011ed8 add r2, sp, 0x3c                              |     r2 += var_3ch;
    0x00011edc mov r1, 0x73                                  |     r1 = 0x73;
    0x00011ee0 mov r0, sb                                    |     r0 = sb;
    0x00011ee4 bl 0x10f94                                    |     dbus_message_append_args ();
    0x00011ee8 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00011eec ldrne r3, [sp, 0x40]                          |         r3 = var_40h;
                                                             |     }
                                                             |     if (r4 == 0) {
    0x00011ef0 ldrne r1, [sp, 0x1c]                          |         r1 = var_1ch;
                                                             |     }
                                                             |     if (r4 == 0) {
    0x00011ef4 movne r2, 0x58                                |         r2 = 0x58;
                                                             |     }
                                                             |     if (r4 == 0) {
    0x00011ef8 strbne r2, [r3, r1]                           |         *((r3 + r1)) = r2;
                                                             |     }
                                                             | label_8:
    0x00011efc cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011f00 bne 0x11e40                                   |         goto label_7;
                                                             |     }
    0x00011f04 ldr r0, [pc, 0x1d0]                           |     r0 = "allocating message";
    0x00011f08 b 0x11b30                                     |     goto label_3;
                                                             | label_43:
    0x00011f0c cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00011f10 ldreq r3, [sp, 0x44]                          |         r3 = var_44h;
                                                             |     }
                                                             |     if (r4 != 0) {
    0x00011f14 beq 0x11f28                                   |         
    0x00011f18 bl 0x10f64                                    |         rand ();
    0x00011f1c ldr r1, [sp, 0x14]                            |         r1 = var_14h;
    0x00011f20 bl 0x122b4                                    |         fcn_000122b4 (r0, r1);
    0x00011f24 ldr r3, [r4, r1, lsl 2]                       |         offset_3 = r1 << 2;
                                                             |         r3 = *((r4 + offset_3));
                                                             |     }
    0x00011f28 mov r2, 0                                     |     r2 = 0;
    0x00011f2c str r2, [sp, 4]                               |     var_4h = r2;
    0x00011f30 str r3, [sp]                                  |     *(sp) = r3;
    0x00011f34 mov r2, 0x79                                  |     r2 = 0x79;
    0x00011f38 add r3, sp, 0x3c                              |     r3 += var_3ch;
    0x00011f3c mov r1, 0x61                                  |     r1 = 0x61;
    0x00011f40 mov r0, sb                                    |     r0 = sb;
    0x00011f44 bl 0x10f94                                    |     dbus_message_append_args ();
    0x00011f48 b 0x11efc                                     |     goto label_8;
                                                             | label_40:
    0x00011f4c mvn r3, 0x80000000                            |     r3 = ~0x80000000;
    0x00011f50 add r2, sp, 0x4c                              |     r2 += var_4ch;
    0x00011f54 mov r1, sb                                    |     r1 = sb;
    0x00011f58 mov r0, r6                                    |     r0 = r6;
    0x00011f5c bl 0x110fc                                    |     r0 = dbus_connection_send_with_reply ();
    0x00011f60 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011f64 beq 0x11e60                                   |         goto label_9;
                                                             |     }
    0x00011f68 ldr r0, [sp, 0x4c]                            |     r0 = var_4ch;
    0x00011f6c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011f70 beq 0x11e60                                   |         goto label_9;
                                                             |     }
    0x00011f74 bl 0x1112c                                    |     r0 = dbus_pending_call_get_completed ();
    0x00011f78 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00011f7c beq 0x12018                                   |         goto label_44;
                                                             |     }
    0x00011f80 add r1, sp, 0x38                              |     r1 += var_38h;
    0x00011f84 ldr r0, [sp, 0x4c]                            |     r0 = var_4ch;
    0x00011f88 bl 0x11708                                    |     fcn_00011708 (r0, r1);
                                                             | label_13:
    0x00011f8c ldr r0, [sp, 0x4c]                            |     r0 = var_4ch;
    0x00011f90 bl 0x10f28                                    |     dbus_pending_call_unref ();
                                                             | label_41:
    0x00011f94 mov r0, sb                                    |     r0 = sb;
    0x00011f98 bl 0x11078                                    |     dbus_message_unref ();
    0x00011f9c add fp, fp, 1                                 |     
    0x00011fa0 add r7, r7, 1                                 |     r7++;
                                                             | label_37:
    0x00011fa4 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00011fa8 mov sb, fp                                    |     sb = fp;
    0x00011fac cmp r3, fp                                    |     
                                                             |     if (r3 <= fp) {
    0x00011fb0 ble 0x11ff4                                   |         goto label_45;
                                                             |     }
    0x00011fb4 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00011fb8 ldr r2, [sp, 0xc]                             |     r2 = var_ch;
    0x00011fbc cmp r3, r7                                    |     
                                                             |     if (r3 > r7) {
    0x00011fc0 movls r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 <= r7) {
    0x00011fc4 movhi r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00011fc8 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00011fcc moveq r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00011fd0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00011fd4 beq 0x11ff4                                   |         goto label_45;
                                                             |     }
    0x00011fd8 cmn sl, 1                                     |     
                                                             |     if (sl == 1) {
    0x00011fdc beq 0x11e18                                   |         goto label_10;
                                                             |     }
    0x00011fe0 ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x00011fe4 add r3, sl, r3                                |     r3 = sl + r3;
    0x00011fe8 sub r3, r3, r8                                |     r3 -= r8;
    0x00011fec cmp r3, r7                                    |     
                                                             |     if (r3 > r7) {
    0x00011ff0 bhi 0x11e18                                   |         goto label_10;
                                                             |     }
                                                             | label_45:
    0x00011ff4 mvn r1, 0                                     |     r1 = ~0;
    0x00011ff8 mov r0, r6                                    |     r0 = r6;
    0x00011ffc bl 0x11084                                    |     r0 = dbus_connection_read_write_dispatch ();
    0x00012000 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00012004 bne 0x11874                                   |         goto label_11;
                                                             |     }
    0x00012008 ldr r3, [pc, 0x5c]                            |     r3 = "__random_size";
    0x0001200c ldr r0, [pc, 0xcc]                            |     r0 = "building_message";
    0x00012010 ldr r1, [r3]                                  |     r1 = "__random_size";
    0x00012014 b 0x11ab8                                     |     goto label_12;
                                                             | label_44:
    0x00012018 mov r3, r5                                    |     r3 = r5;
    0x0001201c add r2, sp, 0x38                              |     r2 += var_38h;
    0x00012020 ldr r1, [pc, 0xbc]                            |     r1 = "Disconnected from bus\n";
    0x00012024 ldr r0, [sp, 0x4c]                            |     r0 = var_4ch;
    0x00012028 bl 0x10ff4                                    |     r0 = dbus_pending_call_set_notify ();
    0x0001202c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00012030 bne 0x11f8c                                   |         goto label_13;
                                                             |     }
    0x00012034 ldr r0, [pc, 0xac]                            |     r0 = *(0x120e4);
    0x00012038 b 0x11b30                                     |     goto label_3;
                                                             | label_15:
    0x0001203c ldr r3, [sp, 0x38]                            |     r3 = var_38h;
    0x00012040 ldr r2, [sp, 0x20]                            |     r2 = var_20h;
    0x00012044 cmp r3, r2                                    |     
                                                             |     if (r3 < r2) {
    0x00012048 movge r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 >= r2) {
    0x0001204c movlt r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00012050 b 0x1188c                                     |     goto label_14;
                                                             | }
    ; 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-test-tool @ 0x120ec */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000120ec ()                      | void fcn_000120ec (int32_t arg1) {
                                                 |     r0 = arg1;
    0x000120ec ldr r3, [pc, 0x18]                |     r3 = *(0x12108);
    0x000120f0 push {r4, lr}                     |     
    0x000120f4 ldr r1, [pc, 0x14]                |     r1 = stderr;
    0x000120f8 mov r2, r0                        |     r2 = r0;
    0x000120fc ldr r0, [r3]                      |     r0 = *(0x12108);
    0x00012100 bl 0x11030                        |     fprintf (r0, r1, r2, r3, r4)
    0x00012104 mov r0, 1                         |     r0 = 1;
    0x00012108 bl 0x11018                        |     exit (r0);
                                                 |     if (? != ?) {
    0x0001210c andeq r3, r2, ip, ror 1           |         r3 = r2 & (ip >>> 1);
                                                 |     }
                                                 |     if (? != ?) {
    0x00012110 andeq r2, r1, r0, asr 26          |         r2 = r1 & (r0 >> 26);
                                                 |     }
    0x00012114 push {r4, r5, r6, r7, r8, lr}     |     
    0x00012118 mov r7, r0                        |     r7 = r0;
    0x0001211c mov r5, r1                        |     r5 = r1;
    0x00012120 mov r6, r2                        |     r6 = r2;
    0x00012124 mov r4, 0                         |     r4 = 0;
                                                 |     do {
                                                 | label_0:
    0x00012128 cmp r4, r6                        |         
                                                 |         if (r4 > r6) {
    0x0001212c blo 0x12138                       |             
    0x00012130 mov r0, 1                         |             r0 = 1;
    0x00012134 pop {r4, r5, r6, r7, r8, pc}      |             
                                                 |         }
    0x00012138 sub r2, r6, r4                    |         r2 = r6 - r4;
    0x0001213c mov r1, r5                        |         r1 = r5;
    0x00012140 mov r0, r7                        |         r0 = r7;
    0x00012144 bl 0x10eec                        |         r0 = write (r0, r1, r2);
    0x00012148 cmp r0, 0                         |         
                                                 |         if (r0 < 0) {
    0x0001214c addge r5, r5, r0                  |             r5 += r0;
                                                 |         }
                                                 |         if (r0 < 0) {
    0x00012150 addge r4, r4, r0                  |             r4 += r0;
                                                 |         }
    0x00012154 bge 0x12128                       |         
                                                 |     } while (r0 >= 0);
    0x00012158 bl 0x1109c                        |     r0 = errno_location ();
    0x0001215c ldr r3, [r0]                      |     r3 = *(r0);
    0x00012160 cmp r3, 4                         |     
                                                 |     if (r3 == 4) {
    0x00012164 beq 0x12128                       |         goto label_0;
                                                 |     }
    0x00012168 mov r0, 0                         |     r0 = 0;
    0x0001216c 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-test-tool @ 0x12170 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00012170 ()                  | void fcn_00012170 () {
    0x00012170 ldr r4, [pc, 0x4c]            |     r4 = *(0x121c0);
    0x00012174 push {r7, lr}                 |     
    0x00012178 ldr r1, [r4]                  |     r1 = *(0x121c0);
    0x0001217c ldr r0, [pc, 0x44]            |     r0 = stderr;
    0x00012180 bl 0x110a8                    |     fputs (r0, r1);
    0x00012184 ldr r6, [pc, 0x40]            |     r6 = "Usage:_dbus_test_tool_SUBCOMMAND__OPTIONS_Known_SUBCOMMANDs_are:";
    0x00012188 ldr r7, [pc, 0x40]            |     r7 = "black_hole";
    0x0001218c mov r5, 0                     |     r5 = 0;
                                             |     do {
    0x00012190 ldr r2, [r6, r5, lsl 3]       |         offset_0 = r5 << 3;
                                             |         r2 = *((r6 + offset_0));
    0x00012194 ldr r0, [r4]                  |         r0 = *(r4);
    0x00012198 cmp r2, 0                     |         
                                             |         if (r2 == 0) {
    0x0001219c bne 0x121b4                   |             
    0x000121a0 mov r1, r0                    |             r1 = r0;
    0x000121a4 ldr r0, [pc, 0x28]            |             r0 = "- %s\n";
    0x000121a8 bl 0x110a8                    |             fputs ("- %s\n", r1);
    0x000121ac mov r0, 2                     |             r0 = 2;
    0x000121b0 bl 0x11018                    |             exit (r0);
                                             |         }
    0x000121b4 mov r1, r7                    |         r1 = r7;
    0x000121b8 bl 0x11030                    |         fprintf (r0, r1)
    0x000121bc add r5, r5, 1                 |         r5++;
    0x000121c0 b 0x12190                     |         
                                             |     } while (1);
                                             | }

[*] Function printf used 8 times dbus-test-tool