[*] Binary protection state of dbus-monitor

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


[*] Function printf 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 @ 0x11e58 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00011e58 ()              | void fcn_00011e58 (int32_t arg_10h, int32_t arg1, int32_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00011e58 push {r4, r5, r6, lr}     |     
    0x00011e5c ldr r5, [sp, 0x10]        |     r5 = *(arg_10h);
    0x00011e60 mov r4, r1                |     r4 = r1;
    0x00011e64 mov r1, r0                |     r1 = r0;
    0x00011e68 ldr r0, [pc, 0x134]       |     r0 = *(0x11fa0);
    0x00011e6c bl 0x1142c                |     printf (r0, r1, r2, r3, r4, r5)
    0x00011e70 tst r5, 1                 |     
                                         |     if ((r5 & 1) != 0) {
    0x00011e74 beq 0x11e8c               |         
    0x00011e78 mov r0, r4                |         r0 = r4;
    0x00011e7c bl 0x11354                |         r0 = dbus_message_get_serial ();
    0x00011e80 mov r1, r0                |         r1 = r0;
    0x00011e84 ldr r0, [pc, 0x11c]       |         r0 = "%s\t%ld.%06ld";
    0x00011e88 bl 0x1142c                |         printf ("%s\t%ld.%06ld", r1)
                                         |     }
    0x00011e8c tst r5, 4                 |     
                                         |     if ((r5 & 4) != 0) {
    0x00011e90 beq 0x11ebc               |         
    0x00011e94 mov r0, r4                |         r0 = r4;
    0x00011e98 bl 0x11594                |         r0 = dbus_message_get_sender ();
    0x00011e9c cmp r0, 0                 |         
                                         |         if (r0 != 0) {
    0x00011ea0 ldreq r1, [pc, 0x104]     |             r1 = "_none_";
                                         |         }
                                         |         if (r0 != 0) {
    0x00011ea4 beq 0x11eb4               |             
    0x00011ea8 mov r0, r4                |             r0 = r4;
    0x00011eac bl 0x11594                |             r0 = dbus_message_get_sender ();
    0x00011eb0 mov r1, r0                |             r1 = r0;
                                         |         }
    0x00011eb4 ldr r0, [pc, 0xf4]        |         r0 = "_none_";
    0x00011eb8 bl 0x1142c                |         printf ("_none_", r1)
                                         |     }
    0x00011ebc tst r5, 8                 |     
                                         |     if ((r5 & 8) != 0) {
    0x00011ec0 beq 0x11eec               |         
    0x00011ec4 mov r0, r4                |         r0 = r4;
    0x00011ec8 bl 0x11324                |         r0 = dbus_message_get_destination ();
    0x00011ecc cmp r0, 0                 |         
                                         |         if (r0 != 0) {
    0x00011ed0 ldreq r1, [pc, 0xd4]      |             r1 = "_none_";
                                         |         }
                                         |         if (r0 != 0) {
    0x00011ed4 beq 0x11ee4               |             
    0x00011ed8 mov r0, r4                |             r0 = r4;
    0x00011edc bl 0x11324                |             r0 = dbus_message_get_destination ();
    0x00011ee0 mov r1, r0                |             r1 = r0;
                                         |         }
    0x00011ee4 ldr r0, [pc, 0xc4]        |         r0 = "_none_";
    0x00011ee8 bl 0x1142c                |         printf ("_none_", r1)
                                         |     }
    0x00011eec tst r5, 2                 |     
                                         |     if ((r5 & 2) != 0) {
    0x00011ef0 beq 0x11f08               |         
    0x00011ef4 mov r0, r4                |         r0 = r4;
    0x00011ef8 bl 0x11510                |         r0 = dbus_message_get_reply_serial ();
    0x00011efc mov r1, r0                |         r1 = r0;
    0x00011f00 ldr r0, [pc, 0xa0]        |         r0 = "%s\t%ld.%06ld";
    0x00011f04 bl 0x1142c                |         printf ("%s\t%ld.%06ld", r1)
                                         |     }
    0x00011f08 tst r5, 0x10              |     
                                         |     if ((r5 & 0x10) != 0) {
    0x00011f0c beq 0x11f38               |         
    0x00011f10 mov r0, r4                |         r0 = r4;
    0x00011f14 bl 0x114e0                |         r0 = dbus_message_get_path ();
    0x00011f18 cmp r0, 0                 |         
                                         |         if (r0 != 0) {
    0x00011f1c ldreq r1, [pc, 0x88]      |             r1 = "_none_";
                                         |         }
                                         |         if (r0 != 0) {
    0x00011f20 beq 0x11f30               |             
    0x00011f24 mov r0, r4                |             r0 = r4;
    0x00011f28 bl 0x114e0                |             r0 = dbus_message_get_path ();
    0x00011f2c mov r1, r0                |             r1 = r0;
                                         |         }
    0x00011f30 ldr r0, [pc, 0x78]        |         r0 = "_none_";
    0x00011f34 bl 0x1142c                |         printf ("_none_", r1)
                                         |     }
    0x00011f38 tst r5, 0x20              |     
                                         |     if ((r5 & 0x20) != 0) {
    0x00011f3c beq 0x11f68               |         
    0x00011f40 mov r0, r4                |         r0 = r4;
    0x00011f44 bl 0x11528                |         r0 = dbus_message_get_interface ();
    0x00011f48 cmp r0, 0                 |         
                                         |         if (r0 != 0) {
    0x00011f4c ldreq r1, [pc, 0x58]      |             r1 = "_none_";
                                         |         }
                                         |         if (r0 != 0) {
    0x00011f50 beq 0x11f60               |             
    0x00011f54 mov r0, r4                |             r0 = r4;
    0x00011f58 bl 0x11528                |             r0 = dbus_message_get_interface ();
    0x00011f5c mov r1, r0                |             r1 = r0;
                                         |         }
    0x00011f60 ldr r0, [pc, 0x48]        |         r0 = "_none_";
    0x00011f64 bl 0x1142c                |         printf ("_none_", r1)
                                         |     }
    0x00011f68 tst r5, 0x40              |     
                                         |     if ((r5 & 0x40) != 0) {
    0x00011f6c beq 0x11f98               |         
    0x00011f70 mov r0, r4                |         r0 = r4;
    0x00011f74 bl 0x11534                |         r0 = dbus_message_get_member ();
    0x00011f78 cmp r0, 0                 |         
                                         |         if (r0 != 0) {
    0x00011f7c ldreq r1, [pc, 0x28]      |             r1 = "_none_";
                                         |         }
                                         |         if (r0 != 0) {
    0x00011f80 beq 0x11f90               |             
    0x00011f84 mov r0, r4                |             r0 = r4;
    0x00011f88 bl 0x11534                |             r0 = dbus_message_get_member ();
    0x00011f8c mov r1, r0                |             r1 = r0;
                                         |         }
    0x00011f90 ldr r0, [pc, 0x18]        |         r0 = "_none_";
    0x00011f94 bl 0x1142c                |         printf ("_none_", r1)
                                         |     }
    0x00011f98 mov r0, 0xa               |     r0 = 0xa;
    0x00011f9c pop {r4, r5, r6, lr}      |     
    0x00011fa0 b 0x11450                 |     return void (*0x11450)() ();
                                         | }
    ; 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 @ 0x12148 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00012148 ()                  | void fcn_00012148 (int32_t arg1) {
                                             |     r0 = arg1;
    0x00012148 push {r4, r5, r6, lr}         |     
    0x0001214c ldr r5, [pc, 0x18]            |     r5 = *(0x12168);
    0x00012150 mov r4, r0                    |     r4 = r0;
                                             |     do {
    0x00012154 cmp r4, 0                     |         
                                             |         if (r4 > 0) {
    0x00012158 pople {r4, r5, r6, pc}        |             
                                             |         }
    0x0001215c mov r0, r5                    |         r0 = r5;
    0x00012160 bl 0x1142c                    |         printf (r0, r1, r2, r3, r4, r5)
    0x00012164 sub r4, r4, 1                 |         r4--;
    0x00012168 b 0x12154                     |         
                                             |     } while (1);
                                             | }
    ; 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 @ 0x12170 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00012170 ()                                  | void fcn_00012170 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_4h;
                                                             |     int32_t fildes;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     void * s2;
                                                             |     int32_t var_58h;
                                                             |     int32_t var_a8h;
                                                             |     void * s;
                                                             |     int32_t var_b2h;
                                                             |     int32_t var_b3h;
                                                             |     int32_t var_b4h;
                                                             |     int32_t var_b8h;
                                                             |     void * var_130h;
                                                             |     int32_t var_134h;
                                                             |     int32_t var_138h;
                                                             |     int32_t var_1b4h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00012170 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00012174 add r6, r2, 1                                 |     r6 = r2 + 1;
    0x00012178 mov r7, r2                                    |     r7 = r2;
    0x0001217c ldr r2, [pc, 0x81c]                           |     r2 = *(0x1299c);
    0x00012180 sub r3, r6, r6, lsl 2                         |     r3 = r6 - (r6 << 2);
    0x00012184 add r3, r3, 0x50                              |     r3 += 0x50;
    0x00012188 mov r4, r0                                    |     r4 = r0;
    0x0001218c mov r5, r1                                    |     r5 = r1;
    0x00012190 smull r0, r1, r3, r2                          |     r0:r1 = r3 * r2;
    0x00012194 sub sp, sp, 0x1b4                             |     
    0x00012198 sub r3, r1, r3, asr 31                        |     r3 = r1 - (r3 >> 31);
    0x0001219c cmp r3, 8                                     |     
                                                             |     if (r3 >= 8) {
    0x000121a0 movlo r3, 8                                   |         r3 = 8;
                                                             |     }
    0x000121a4 str r3, [sp, 4]                               |     var_4h = r3;
                                                             |     do {
    0x000121a8 mov r0, r4                                    |         r0 = r4;
    0x000121ac bl 0x1154c                                    |         r0 = dbus_message_iter_get_arg_type ();
    0x000121b0 subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 == r0) {
    0x000121b4 beq 0x12274                                   |             goto label_13;
                                                             |         }
    0x000121b8 mov r0, r7                                    |         r0 = r7;
    0x000121bc bl 0x12148                                    |         fcn_00012148 (r0);
    0x000121c0 sub r3, r8, 0x61                              |         r3 = r8 - 0x61;
    0x000121c4 cmp r3, 0x18                                  |         
                                                             |         if (r3 > 0x18) {
                                                             |             /* switch table (25 cases) at 0x121d0 */
    0x000121c8 ldrls pc, [pc, r3, lsl 2]                     |             offset_0 = r3 << 2;
                                                             |             pc = *((pc + offset_0));
                                                             |         }
    0x000121cc b 0x12978                                     |         goto label_14;
    0x00012234 mov r0, r4                                    |         r0 = r4;
    0x00012238 add r1, sp, 0x130                             |         r1 += var_130h;
    0x0001223c bl 0x113a8                                    |         dbus_message_iter_get_basic ();
    0x00012240 cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x00012244 ldreq r0, [pc, 0x758]                         |             r0 = "string \";
                                                             |         }
                                                             |         if (r5 == 0) {
    0x00012248 beq 0x12294                                   |             goto label_1;
                                                             |         }
                                                             | label_0:
    0x0001224c ldr r1, [sp, 0x130]                           |         r1 = var_130h;
    0x00012250 ldr r0, [pc, 0x750]                           |         r0 = "string \";
    0x00012254 bl 0x1142c                                    |         printf ("string \", r1)
    0x00012258 cmp r5, 0                                     |         
                                                             |         if (r5 != 0) {
    0x0001225c ldreq r0, [pc, 0x748]                         |             r0 = *((pc + 0x748));
                                                             |         }
                                                             |         if (r5 == 0) {
    0x00012260 beq 0x12514                                   |             goto label_8;
                                                             |         }
                                                             | label_2:
    0x00012264 mov r0, r4                                    |         r0 = r4;
    0x00012268 bl 0x1139c                                    |         r0 = dbus_message_iter_next ();
    0x0001226c cmp r0, 0                                     |         
    0x00012270 bne 0x121a8                                   |         
                                                             |     } while (r0 != 0);
                                                             | label_13:
    0x00012274 add sp, sp, 0x1b4                             |     
    0x00012278 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
    0x0001227c mov r0, r4                                    |     r0 = r4;
    0x00012280 add r1, sp, 0x130                             |     r1 += var_130h;
    0x00012284 bl 0x113a8                                    |     dbus_message_iter_get_basic ();
    0x00012288 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x0001228c ldreq r0, [pc, 0x71c]                         |         r0 = "signature \";
                                                             |         goto label_15;
                                                             |     }
                                                             |     if (r5 != 0) {
                                                             | label_15:
    0x00012290 bne 0x1224c                                   |         goto label_0;
                                                             |     }
                                                             | label_1:
    0x00012294 bl 0x1142c                                    |     printf (r0)
    0x00012298 b 0x1224c                                     |     goto label_0;
    0x0001229c add r1, sp, 0x130                             |     r1 += var_130h;
    0x000122a0 mov r0, r4                                    |     r0 = r4;
    0x000122a4 bl 0x113a8                                    |     dbus_message_iter_get_basic ();
    0x000122a8 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x000122ac bne 0x1224c                                   |         goto label_0;
                                                             |     }
    0x000122b0 ldr r0, [pc, 0x6fc]                           |     r0 = "signature \";
    0x000122b4 b 0x12294                                     |     goto label_1;
    0x000122b8 add r1, sp, 0x130                             |     r1 += var_130h;
    0x000122bc mov r0, r4                                    |     r0 = r4;
    0x000122c0 bl 0x113a8                                    |     dbus_message_iter_get_basic ();
    0x000122c4 add r3, sp, 0x130                             |     r3 += var_130h;
    0x000122c8 ldrsh r1, [r3]                                |     r1 = *(r3);
    0x000122cc ldr r0, [pc, 0x6e4]                           |     r0 = "object path \";
                                                             |     do {
                                                             | label_3:
    0x000122d0 bl 0x1142c                                    |         printf ("object path \", r1, r2, r3)
    0x000122d4 b 0x12264                                     |         goto label_2;
    0x000122d8 add r1, sp, 0x130                             |         r1 += var_130h;
    0x000122dc mov r0, r4                                    |         r0 = r4;
    0x000122e0 bl 0x113a8                                    |         dbus_message_iter_get_basic ();
    0x000122e4 add r3, sp, 0x130                             |         r3 += var_130h;
    0x000122e8 ldrh r1, [r3]                                 |         r1 = *(r3);
    0x000122ec ldr r0, [pc, 0x6c8]                           |         r0 = "int16 %d\n";
    0x000122f0 b 0x122d0                                     |         
                                                             |     } while (1);
    0x000122f4 add r1, sp, 0x130                             |     r1 += var_130h;
    0x000122f8 mov r0, r4                                    |     r0 = r4;
    0x000122fc bl 0x113a8                                    |     dbus_message_iter_get_basic ();
    0x00012300 ldr r1, [sp, 0x130]                           |     r1 = var_130h;
    0x00012304 ldr r0, [pc, 0x6b4]                           |     r0 = "uint16 %u\n";
    0x00012308 b 0x122d0                                     |     goto label_3;
    0x0001230c add r1, sp, 0x130                             |     r1 += var_130h;
    0x00012310 mov r0, r4                                    |     r0 = r4;
    0x00012314 bl 0x113a8                                    |     dbus_message_iter_get_basic ();
    0x00012318 ldr r1, [sp, 0x130]                           |     r1 = var_130h;
    0x0001231c ldr r0, [pc, 0x6a0]                           |     r0 = "int32 %d\n";
    0x00012320 b 0x122d0                                     |     goto label_3;
    0x00012324 mov r0, r4                                    |     r0 = r4;
    0x00012328 add r1, sp, 0x130                             |     r1 += var_130h;
    0x0001232c bl 0x113a8                                    |     dbus_message_iter_get_basic ();
    0x00012330 add r3, sp, 0x130                             |     r3 += var_130h;
    0x00012334 ldrd r2, r3, [r3]                             |     __asm ("ldrd r2, r3, [r3]");
    0x00012338 ldr r0, [pc, 0x688]                           |     r0 = "uint32 %u\n";
                                                             |     do {
    0x0001233c bl 0x1142c                                    |         printf ("uint32 %u\n", r1, r2, r3)
    0x00012340 b 0x12264                                     |         goto label_2;
    0x00012344 mov r0, r4                                    |         r0 = r4;
    0x00012348 add r1, sp, 0x130                             |         r1 += var_130h;
    0x0001234c bl 0x113a8                                    |         dbus_message_iter_get_basic ();
    0x00012350 add r3, sp, 0x130                             |         r3 += var_130h;
    0x00012354 ldrd r2, r3, [r3]                             |         __asm ("ldrd r2, r3, [r3]");
    0x00012358 ldr r0, [pc, 0x66c]                           |         r0 = "int64 %lld\n";
    0x0001235c b 0x1233c                                     |         
                                                             |     } while (1);
    0x00012360 mov r0, r4                                    |     r0 = r4;
    0x00012364 add r1, sp, 0x130                             |     r1 += var_130h;
    0x00012368 bl 0x113a8                                    |     dbus_message_iter_get_basic ();
    0x0001236c add r3, sp, 0x130                             |     r3 += var_130h;
    0x00012370 ldrd r2, r3, [r3]                             |     __asm ("ldrd r2, r3, [r3]");
    0x00012374 ldr r0, [pc, 0x654]                           |     r0 = "uint64 %llu\n";
    0x00012378 bl 0x1142c                                    |     printf ("uint64 %llu\n", r1, r2, r3)
    0x0001237c b 0x12264                                     |     goto label_2;
    0x00012380 add r1, sp, 0x130                             |     r1 += var_130h;
    0x00012384 mov r0, r4                                    |     r0 = r4;
    0x00012388 bl 0x113a8                                    |     dbus_message_iter_get_basic ();
    0x0001238c ldrb r1, [sp, 0x130]                          |     r1 = var_130h;
    0x00012390 ldr r0, [pc, 0x63c]                           |     r0 = "double__g";
    0x00012394 b 0x122d0                                     |     goto label_3;
    0x00012398 add r1, sp, 0x130                             |     r1 += var_130h;
    0x0001239c mov r0, r4                                    |     r0 = r4;
    0x000123a0 bl 0x113a8                                    |     dbus_message_iter_get_basic ();
    0x000123a4 ldr r1, [sp, 0x130]                           |     r1 = var_130h;
    0x000123a8 ldr r2, [pc, 0x628]                           |     r2 = "byte %d\n";
    0x000123ac ldr r3, [pc, 0x628]                           |     r3 = "false";
    0x000123b0 cmp r1, 0                                     |     
                                                             |     if (r1 != 0) {
    0x000123b4 moveq r1, r2                                  |         r1 = r2;
                                                             |     }
                                                             |     if (r1 == 0) {
    0x000123b8 movne r1, r3                                  |         r1 = r3;
                                                             |     }
    0x000123bc ldr r0, [pc, 0x61c]                           |     r0 = *(0x129dc);
    0x000123c0 b 0x122d0                                     |     goto label_3;
    0x000123c4 add r1, sp, 0x130                             |     r1 += var_130h;
    0x000123c8 mov r0, r4                                    |     r0 = r4;
    0x000123cc bl 0x11564                                    |     dbus_message_iter_recurse ();
    0x000123d0 ldr r0, [pc, 0x60c]                           |     r0 = "boolean__s";
    0x000123d4 bl 0x1142c                                    |     printf ("boolean__s")
    0x000123d8 mov r2, r6                                    |     r2 = r6;
    0x000123dc mov r1, r5                                    |     r1 = r5;
    0x000123e0 add r0, sp, 0x130                             |     r0 += var_130h;
    0x000123e4 bl 0x12170                                    |     fcn_00012170 (r0, r1);
    0x000123e8 b 0x12264                                     |     goto label_2;
    0x000123ec add r1, sp, 0x130                             |     r1 += var_130h;
    0x000123f0 mov r0, r4                                    |     r0 = r4;
    0x000123f4 bl 0x11564                                    |     dbus_message_iter_recurse ();
    0x000123f8 add r0, sp, 0x130                             |     r0 += var_130h;
    0x000123fc bl 0x1154c                                    |     r0 = dbus_message_iter_get_arg_type ();
    0x00012400 cmp r0, 0x79                                  |     
    0x00012404 mov r8, r0                                    |     r8 = r0;
                                                             |     if (r0 != 0x79) {
    0x00012408 bne 0x12528                                   |         goto label_16;
                                                             |     }
    0x0001240c add r2, sp, 0xb0                              |     r2 += s;
    0x00012410 add r1, sp, 0x48                              |     r1 += s2;
    0x00012414 add r0, sp, 0x130                             |     r0 += var_130h;
    0x00012418 bl 0x11444                                    |     dbus_message_iter_get_fixed_array ();
    0x0001241c ldr r8, [sp, 0xb0]                            |     r8 = s;
    0x00012420 ldr sl, [sp, 0x48]                            |     sl = s2;
    0x00012424 sub r2, r8, 1                                 |     r2 = r8 - 1;
    0x00012428 mov r3, 0                                     |     r3 = 0;
                                                             | label_4:
    0x0001242c cmp r3, r8                                    |     
                                                             |     if (r3 < r8) {
    0x00012430 blt 0x12468                                   |         goto label_17;
                                                             |     }
    0x00012434 cmp r8, 0                                     |     
                                                             |     if (r8 <= 0) {
    0x00012438 ble 0x12450                                   |         goto label_18;
                                                             |     }
    0x0001243c ldrb r3, [sl, r2]                             |     r3 = *((sl + r2));
    0x00012440 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00012444 moveq r1, sl                                  |         r1 = sl;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00012448 ldreq r0, [pc, 0x598]                         |         r0 = "array of bytes \"%s\" + \\0\n";
                                                             |         goto label_19;
                                                             |     }
                                                             |     if (r3 == 0) {
                                                             | label_19:
    0x0001244c beq 0x122d0                                   |         goto label_3;
                                                             |     }
                                                             | label_18:
    0x00012450 add r0, r8, 1                                 |     r0 = r8 + 1;
    0x00012454 bl 0x11420                                    |     r0 = dbus_malloc ();
    0x00012458 subs r8, r0, 0                                |     r8 = r0 - 0;
                                                             |     if (r8 == r0) {
    0x0001245c bne 0x1248c                                   |         
    0x00012460 ldr r0, [pc, 0x584]                           |         r0 = "array of bytes \"%s\" + \\0\n";
    0x00012464 bl 0x12c3c                                    |         fcn_00012c3c ("array of bytes \"%s\" + \\0\n");
                                                             | label_17:
    0x00012468 ldrb r1, [sl, r3]                             |         r1 = *((sl + r3));
    0x0001246c sub r0, r1, 0x20                              |         r0 = r1 - 0x20;
    0x00012470 cmp r0, 0x5e                                  |         
                                                             |         if (r0 >= 0x5e) {
    0x00012474 bls 0x12484                                   |             
    0x00012478 cmp r3, r2                                    |             
    0x0001247c cmpge r1, 0                                   |             __asm ("cmpge r1, 0");
                                                             |             if (r3 != r2) {
    0x00012480 bne 0x12984                                   |                 goto label_20;
                                                             |             }
                                                             |         }
    0x00012484 add r3, r3, 1                                 |         r3++;
    0x00012488 b 0x1242c                                     |         goto label_4;
                                                             |     }
    0x0001248c ldr sb, [sp, 0xb0]                            |     sb = s;
    0x00012490 ldr r1, [sp, 0x48]                            |     r1 = s2;
    0x00012494 mov r2, sb                                    |     r2 = sb;
    0x00012498 bl 0x115ac                                    |     memcpy (r0, r1, r2);
    0x0001249c mov r3, 0                                     |     r3 = 0;
    0x000124a0 strb r3, [r8, sb]                             |     *((r8 + sb)) = r3;
    0x000124a4 mov r1, r8                                    |     r1 = r8;
    0x000124a8 ldr r0, [pc, 0x540]                           |     r0 = "copying bytestring";
    0x000124ac bl 0x1142c                                    |     printf ("copying bytestring", r1, r2, r3)
    0x000124b0 mov r0, r8                                    |     r0 = r8;
    0x000124b4 bl 0x11558                                    |     dbus_free ();
    0x000124b8 b 0x12264                                     |     goto label_2;
                                                             |     do {
    0x000124bc ldrb r1, [sl, sb]                             |         r1 = *((sl + sb));
    0x000124c0 mov r0, fp                                    |         r0 = fp;
    0x000124c4 add sb, sb, 1                                 |         sb++;
    0x000124c8 bl 0x1142c                                    |         printf (r0, r1)
    0x000124cc cmp sb, r8                                    |         
                                                             |         if (sb != r8) {
    0x000124d0 beq 0x124f8                                   |             
    0x000124d4 ldr r1, [sp, 4]                               |             r1 = var_4h;
    0x000124d8 mov r0, sb                                    |             r0 = sb;
    0x000124dc bl 0x12d68                                    |             fcn_00012d68 (r0, r1);
    0x000124e0 cmp r1, 0                                     |             
                                                             |             if (r1 != 0) {
    0x000124e4 bne 0x1251c                                   |                 goto label_21;
                                                             |             }
    0x000124e8 mov r0, 0xa                                   |             r0 = 0xa;
    0x000124ec bl 0x11450                                    |             putchar (r0);
    0x000124f0 mov r0, r6                                    |             r0 = r6;
    0x000124f4 bl 0x12148                                    |             fcn_00012148 (r0);
                                                             |         }
                                                             | label_5:
    0x000124f8 cmp sb, r8                                    |         
    0x000124fc bne 0x124bc                                   |         
                                                             |     } while (sb != r8);
    0x00012500 mov r0, 0xa                                   |     r0 = 0xa;
    0x00012504 bl 0x11450                                    |     putchar (r0);
                                                             |     do {
                                                             | label_6:
    0x00012508 mov r0, r7                                    |         r0 = r7;
    0x0001250c bl 0x12148                                    |         fcn_00012148 (r0);
    0x00012510 ldr r0, [pc, 0x4dc]                           |         r0 = "array_of_bytes___s_";
                                                             | label_8:
    0x00012514 bl 0x1157c                                    |         puts ("array_of_bytes___s_");
    0x00012518 b 0x12264                                     |         goto label_2;
                                                             | label_21:
    0x0001251c mov r0, 0x20                                  |         r0 = 0x20;
    0x00012520 bl 0x11450                                    |         putchar (r0);
    0x00012524 b 0x124f8                                     |         goto label_5;
                                                             | label_16:
    0x00012528 ldr r0, [pc, 0x4c8]                           |         r0 = *(0x129f4);
    0x0001252c bl 0x1157c                                    |         puts (r0);
                                                             | label_7:
    0x00012530 cmp r8, 0                                     |         
    0x00012534 beq 0x12508                                   |         
                                                             |     } while (r8 == 0);
    0x00012538 mov r2, r6                                    |     r2 = r6;
    0x0001253c mov r1, r5                                    |     r1 = r5;
    0x00012540 add r0, sp, 0x130                             |     r0 += var_130h;
    0x00012544 bl 0x12170                                    |     fcn_00012170 (r0, r1);
    0x00012548 add r0, sp, 0x130                             |     r0 += var_130h;
    0x0001254c bl 0x1139c                                    |     dbus_message_iter_next ();
    0x00012550 add r0, sp, 0x130                             |     r0 += var_130h;
    0x00012554 bl 0x1154c                                    |     dbus_message_iter_get_arg_type ();
    0x00012558 subs r8, r0, 0                                |     r8 -= var_130h;
                                                             |     if (r8 == var_130h) {
    0x0001255c beq 0x12508                                   |         goto label_6;
                                                             |     }
    0x00012560 mov r0, 0x2c                                  |     r0 = 0x2c;
    0x00012564 bl 0x11450                                    |     putchar (r0);
    0x00012568 b 0x12530                                     |     goto label_7;
    0x0001256c add r1, sp, 0x130                             |     r1 += var_130h;
    0x00012570 mov r0, r4                                    |     r0 = r4;
    0x00012574 bl 0x11564                                    |     dbus_message_iter_recurse ();
    0x00012578 ldr r0, [pc, 0x47c]                           |     r0 = "array__";
    0x0001257c bl 0x1157c                                    |     puts ("array__");
    0x00012580 mov r2, r6                                    |     r2 = r6;
    0x00012584 mov r1, r5                                    |     r1 = r5;
    0x00012588 add r0, sp, 0x130                             |     r0 += var_130h;
    0x0001258c bl 0x12170                                    |     fcn_00012170 (r0, r1);
    0x00012590 add r0, sp, 0x130                             |     r0 += var_130h;
    0x00012594 bl 0x1139c                                    |     dbus_message_iter_next ();
    0x00012598 mov r2, r6                                    |     r2 = r6;
    0x0001259c mov r1, r5                                    |     r1 = r5;
    0x000125a0 add r0, sp, 0x130                             |     r0 += var_130h;
    0x000125a4 bl 0x12170                                    |     fcn_00012170 (r0, r1);
    0x000125a8 mov r0, r7                                    |     r0 = r7;
    0x000125ac bl 0x12148                                    |     fcn_00012148 (r0);
    0x000125b0 ldr r0, [pc, 0x448]                           |     r0 = "dict_entry_";
    0x000125b4 b 0x12514                                     |     goto label_8;
    0x000125b8 mov r0, r4                                    |     r0 = r4;
    0x000125bc add r1, sp, 0x130                             |     r1 += var_130h;
    0x000125c0 bl 0x11564                                    |     dbus_message_iter_recurse ();
    0x000125c4 ldr r0, [pc, 0x438]                           |     r0 = *(0x12a00);
    0x000125c8 bl 0x1157c                                    |     puts (r0);
                                                             |     do {
                                                             | label_9:
    0x000125cc add r0, sp, 0x130                             |         r0 += var_130h;
    0x000125d0 bl 0x1154c                                    |         r0 = dbus_message_iter_get_arg_type ();
    0x000125d4 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000125d8 bne 0x125ec                                   |             
    0x000125dc mov r0, r7                                    |             r0 = r7;
    0x000125e0 bl 0x12148                                    |             fcn_00012148 (r0);
    0x000125e4 ldr r0, [pc, 0x41c]                           |             r0 = "struct {";
    0x000125e8 b 0x12514                                     |             goto label_8;
                                                             |         }
    0x000125ec mov r2, r6                                    |         r2 = r6;
    0x000125f0 mov r1, r5                                    |         r1 = r5;
    0x000125f4 add r0, sp, 0x130                             |         r0 += var_130h;
    0x000125f8 bl 0x12170                                    |         fcn_00012170 (r0, r1);
    0x000125fc add r0, sp, 0x130                             |         r0 += var_130h;
    0x00012600 bl 0x1139c                                    |         dbus_message_iter_next ();
    0x00012604 add r0, sp, 0x130                             |         r0 += var_130h;
    0x00012608 bl 0x1154c                                    |         r0 = dbus_message_iter_get_arg_type ();
    0x0001260c cmp r0, 0                                     |         
    0x00012610 beq 0x125cc                                   |         
                                                             |     } while (r0 == 0);
    0x00012614 mov r0, 0x2c                                  |     r0 = 0x2c;
    0x00012618 bl 0x11450                                    |     putchar (r0);
    0x0001261c b 0x125cc                                     |     goto label_9;
    0x00012620 add r1, sp, 0xc                               |     r1 += fildes;
    0x00012624 mov r0, r4                                    |     r0 = r4;
    0x00012628 bl 0x113a8                                    |     dbus_message_iter_get_basic ();
    0x0001262c ldr sb, [sp, 0xc]                             |     sb = fildes;
    0x00012630 mov r2, 0x68                                  |     r2 = 0x68;
    0x00012634 mov r1, 0                                     |     r1 = 0;
    0x00012638 add r0, sp, 0x48                              |     r0 += s2;
    0x0001263c bl 0x1136c                                    |     memset (r0, r1, r2);
    0x00012640 mov r3, 0x80                                  |     r3 = 0x80;
    0x00012644 ldr r0, [pc, 0x3c0]                           |     r0 = *(0x12a08);
    0x00012648 str r3, [sp, 0x10]                            |     var_10h = r3;
    0x0001264c str r3, [sp, 0x14]                            |     var_14h = r3;
    0x00012650 bl 0x1157c                                    |     puts (r0);
    0x00012654 cmn sb, 1                                     |     
                                                             |     if (sb == 1) {
    0x00012658 beq 0x12830                                   |         goto label_10;
                                                             |     }
    0x0001265c add r1, sp, 0x48                              |     r1 += s2;
    0x00012660 mov r0, sb                                    |     r0 = sb;
    0x00012664 bl 0x11588                                    |     r0 = fstat64 ();
    0x00012668 cmn r0, 1                                     |     
                                                             |     if (r0 == 1) {
    0x0001266c beq 0x12830                                   |         goto label_10;
                                                             |     }
    0x00012670 add r8, r7, 2                                 |     r8 = r7 + 2;
    0x00012674 mov r0, r8                                    |     r0 = r8;
    0x00012678 bl 0x12148                                    |     fcn_00012148 (r0);
    0x0001267c ldr r1, [sp, 0xa8]                            |     r1 = var_a8h;
    0x00012680 ldr r0, [pc, 0x388]                           |     r0 = "file descriptor";
    0x00012684 bl 0x1142c                                    |     printf ("file descriptor", r1)
    0x00012688 mov r0, r8                                    |     r0 = r8;
    0x0001268c bl 0x12148                                    |     fcn_00012148 (r0);
    0x00012690 ldr r0, [pc, 0x37c]                           |     r0 = "inode: %d\n";
    0x00012694 bl 0x1142c                                    |     printf ("inode: %d\n")
    0x00012698 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x0001269c and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x000126a0 cmp r3, 0x8000                                |     
                                                             |     if (r3 == 0x8000) {
    0x000126a4 bne 0x126b0                                   |         
    0x000126a8 ldr r0, [pc, 0x368]                           |         r0 = "type: ";
    0x000126ac bl 0x1157c                                    |         puts ("type: ");
                                                             |     }
    0x000126b0 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x000126b4 and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x000126b8 cmp r3, 0x4000                                |     
                                                             |     if (r3 == 0x4000) {
    0x000126bc bne 0x126c8                                   |         
    0x000126c0 ldr r0, [pc, 0x354]                           |         r0 = *(0x12a18);
    0x000126c4 bl 0x1157c                                    |         puts (r0);
                                                             |     }
    0x000126c8 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x000126cc and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x000126d0 cmp r3, 0x2000                                |     
                                                             |     if (r3 == 0x2000) {
    0x000126d4 bne 0x126e0                                   |         
    0x000126d8 ldr r0, [pc, 0x340]                           |         r0 = "directory";
    0x000126dc bl 0x1157c                                    |         puts ("directory");
                                                             |     }
    0x000126e0 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x000126e4 and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x000126e8 cmp r3, 0x6000                                |     
                                                             |     if (r3 == 0x6000) {
    0x000126ec bne 0x126f8                                   |         
    0x000126f0 ldr r0, [pc, 0x32c]                           |         r0 = "char";
    0x000126f4 bl 0x1157c                                    |         puts ("char");
                                                             |     }
    0x000126f8 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x000126fc and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x00012700 cmp r3, 0x1000                                |     
                                                             |     if (r3 == 0x1000) {
    0x00012704 bne 0x12710                                   |         
    0x00012708 ldr r0, [pc, 0x318]                           |         r0 = "block";
    0x0001270c bl 0x1157c                                    |         puts ("block");
                                                             |     }
    0x00012710 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x00012714 and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x00012718 cmp r3, 0xa000                                |     
                                                             |     if (r3 == 0xa000) {
    0x0001271c bne 0x12728                                   |         
    0x00012720 ldr r0, [pc, 0x304]                           |         r0 = "fifo";
    0x00012724 bl 0x1157c                                    |         puts ("fifo");
                                                             |     }
    0x00012728 ldr r3, [sp, 0x58]                            |     r3 = var_58h;
    0x0001272c and r3, r3, 0xf000                            |     r3 &= 0xf000;
    0x00012730 cmp r3, 0xc000                                |     
                                                             |     if (r3 == 0xc000) {
    0x00012734 bne 0x12740                                   |         
    0x00012738 ldr r0, [pc, 0x2f0]                           |         r0 = "link";
    0x0001273c bl 0x1157c                                    |         puts ("link");
                                                             |     }
    0x00012740 mov r2, 0x80                                  |     r2 = 0x80;
    0x00012744 mov r1, 0                                     |     r1 = 0;
    0x00012748 add r0, sp, 0xb0                              |     r0 += s;
    0x0001274c bl 0x1136c                                    |     memset (r0, r1, r2);
    0x00012750 mov r2, 0x80                                  |     r2 = 0x80;
    0x00012754 mov r1, 0                                     |     r1 = 0;
    0x00012758 add r0, sp, 0x130                             |     r0 += var_130h;
    0x0001275c bl 0x1136c                                    |     memset (r0, r1, r2);
    0x00012760 add r2, sp, 0x10                              |     r2 += var_10h;
    0x00012764 add r1, sp, 0xb0                              |     r1 += s;
    0x00012768 mov r0, sb                                    |     r0 = sb;
    0x0001276c bl 0x113f0                                    |     r0 = getsockname (r0, r1, r2);
    0x00012770 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00012774 bne 0x12830                                   |         goto label_10;
                                                             |     }
    0x00012778 add r2, sp, 0x14                              |     r2 += var_14h;
    0x0001277c add r1, sp, 0x130                             |     r1 += var_130h;
    0x00012780 mov r0, sb                                    |     r0 = sb;
    0x00012784 bl 0x11504                                    |     r0 = getpeername ();
    0x00012788 mov sl, r0                                    |     sl = r0;
    0x0001278c mov r0, r8                                    |     r0 = r8;
    0x00012790 bl 0x12148                                    |     fcn_00012148 (r0);
    0x00012794 ldr r0, [pc, 0x298]                           |     r0 = "socket";
    0x00012798 bl 0x1142c                                    |     printf ("socket")
    0x0001279c ldrh sb, [sp, 0xb0]                           |     sb = s;
    0x000127a0 cmp sb, 2                                     |     
                                                             |     if (sb == 2) {
    0x000127a4 beq 0x12870                                   |         goto label_22;
                                                             |     }
                                                             |     if (sb > 2) {
    0x000127a8 bhi 0x127c0                                   |         goto label_23;
                                                             |     }
    0x000127ac cmp sb, 1                                     |     
                                                             |     if (sb == 1) {
    0x000127b0 beq 0x127dc                                   |         goto label_24;
                                                             |     }
                                                             |     do {
    0x000127b4 mov r1, sb                                    |         r1 = sb;
    0x000127b8 ldr r0, [pc, 0x278]                           |         r0 = "address family: ";
    0x000127bc b 0x12868                                     |         goto label_25;
                                                             | label_23:
    0x000127c0 cmp sb, 0xa                                   |         
                                                             |         if (sb == 0xa) {
    0x000127c4 beq 0x12910                                   |             goto label_26;
                                                             |         }
    0x000127c8 cmp sb, 0x1f                                  |         
    0x000127cc bne 0x127b4                                   |         
                                                             |     } while (sb != 0x1f);
    0x000127d0 ldr r0, [pc, 0x264]                           |     r0 = "unknown (%d)\n";
    0x000127d4 bl 0x1157c                                    |     puts ("unknown (%d)\n");
    0x000127d8 b 0x12830                                     |     goto label_10;
                                                             | label_24:
    0x000127dc ldr r0, [pc, 0x25c]                           |     r0 = "bluetooth";
    0x000127e0 bl 0x1157c                                    |     puts ("bluetooth");
    0x000127e4 ldrb r3, [sp, 0xb2]                           |     r3 = var_b2h;
    0x000127e8 mov r0, r8                                    |     r0 = r8;
    0x000127ec cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000127f0 bne 0x1283c                                   |         goto label_27;
                                                             |     }
    0x000127f4 bl 0x12148                                    |     fcn_00012148 (r0);
    0x000127f8 ldr r1, [sp, 0x10]                            |     r1 = var_10h;
    0x000127fc add r2, sp, 0xb3                              |     r2 += var_b3h;
    0x00012800 sub r1, r1, 3                                 |     r1 -= 3;
    0x00012804 ldr r0, [pc, 0x238]                           |     r0 = "unix";
    0x00012808 bl 0x1142c                                    |     printf ("unix", r1, r2)
    0x0001280c cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x00012810 bne 0x12830                                   |         goto label_10;
                                                             |     }
    0x00012814 mov r0, r8                                    |     r0 = r8;
    0x00012818 bl 0x12148                                    |     fcn_00012148 (r0);
    0x0001281c ldr r1, [sp, 0x10]                            |     r1 = var_10h;
    0x00012820 ldr r0, [pc, 0x220]                           |     r0 = "name @%.*s\n";
    0x00012824 add r2, sp, 0xb3                              |     r2 += var_b3h;
    0x00012828 sub r1, r1, 3                                 |     r1 -= 3;
                                                             | label_11:
    0x0001282c bl 0x1142c                                    |     printf ("name @%.*s\n", r1, r2)
                                                             |     do {
                                                             | label_10:
    0x00012830 ldr r0, [sp, 0xc]                             |         r0 = fildes;
    0x00012834 bl 0x114a4                                    |         close (r0);
    0x00012838 b 0x12264                                     |         goto label_2;
                                                             | label_27:
    0x0001283c bl 0x12148                                    |         fcn_00012148 (r0);
    0x00012840 add r1, sp, 0xb2                              |         r1 += var_b2h;
    0x00012844 ldr r0, [pc, 0x200]                           |         r0 = "peer @%.*s\n";
    0x00012848 bl 0x1142c                                    |         printf ("peer @%.*s\n", r1)
    0x0001284c cmp sl, 0                                     |         
    0x00012850 bne 0x12830                                   |         
                                                             |     } while (sl != 0);
    0x00012854 mov r0, r8                                    |     r0 = r8;
    0x00012858 bl 0x12148                                    |     fcn_00012148 (r0);
    0x0001285c ldr r0, [pc, 0x1ec]                           |     r0 = "name %s\n";
    0x00012860 add r1, sp, 0x130                             |     r1 += var_130h;
    0x00012864 add r1, r1, 2                                 |     r1 += 2;
                                                             | label_25:
    0x00012868 bl 0x1142c                                    |     printf ("name %s\n", r1)
    0x0001286c b 0x12830                                     |     goto label_10;
                                                             | label_22:
    0x00012870 ldr r0, [pc, 0x1dc]                           |     r0 = "peer %s\n";
    0x00012874 bl 0x1157c                                    |     puts ("peer %s\n");
    0x00012878 mov r3, 0x2e                                  |     r3 = 0x2e;
    0x0001287c add r2, sp, 0x18                              |     r2 += var_18h;
    0x00012880 add r1, sp, 0xb4                              |     r1 += var_b4h;
    0x00012884 mov r0, sb                                    |     r0 = sb;
    0x00012888 bl 0x115a0                                    |     r0 = inet_ntop ();
    0x0001288c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00012890 beq 0x128bc                                   |         
    0x00012894 mov r0, r8                                    |         r0 = r8;
    0x00012898 bl 0x12148                                    |         fcn_00012148 (r0);
    0x0001289c ldrh r3, [sp, 0xb2]                           |         r3 = var_b2h;
    0x000128a0 add r1, sp, 0x18                              |         r1 += var_18h;
    0x000128a4 lsr r2, r3, 8                                 |         r2 = r3 >> 8;
    0x000128a8 orr r2, r2, r3, lsl 8                         |         r2 |= (r3 << 8);
    0x000128ac lsl r2, r2, 0x10                              |         r2 <<= 0x10;
    0x000128b0 lsr r2, r2, 0x10                              |         r2 >>= 0x10;
    0x000128b4 ldr r0, [pc, 0x19c]                           |         r0 = "inet";
    0x000128b8 bl 0x1142c                                    |         printf ("inet", r1, r2, r3)
                                                             |     }
    0x000128bc cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x000128c0 bne 0x12830                                   |         goto label_10;
                                                             |     }
    0x000128c4 mov r3, 0x2e                                  |     r3 = 0x2e;
    0x000128c8 add r2, sp, 0x18                              |     r2 += var_18h;
    0x000128cc add r1, sp, 0x134                             |     r1 += var_134h;
    0x000128d0 mov r0, 2                                     |     r0 = 2;
                                                             | label_12:
    0x000128d4 bl 0x115a0                                    |     r0 = inet_ntop ();
    0x000128d8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000128dc beq 0x12830                                   |         goto label_10;
                                                             |     }
    0x000128e0 mov r0, r8                                    |     r0 = r8;
    0x000128e4 bl 0x12148                                    |     fcn_00012148 (r0);
    0x000128e8 add r3, sp, 0x130                             |     r3 += var_130h;
    0x000128ec add r3, r3, 2                                 |     r3 += 2;
    0x000128f0 ldrh r3, [r3]                                 |     r3 = *(r3);
    0x000128f4 add r1, sp, 0x18                              |     r1 += var_18h;
    0x000128f8 lsr r2, r3, 8                                 |     r2 = r3 >> 8;
    0x000128fc orr r2, r2, r3, lsl 8                         |     r2 |= (r3 << 8);
    0x00012900 lsl r2, r2, 0x10                              |     r2 <<= 0x10;
    0x00012904 lsr r2, r2, 0x10                              |     r2 >>= 0x10;
    0x00012908 ldr r0, [pc, 0x14c]                           |     r0 = "name %s port %u\n";
    0x0001290c b 0x1282c                                     |     goto label_11;
                                                             | label_26:
    0x00012910 ldr r0, [pc, 0x148]                           |     r0 = "peer %s port %u\n";
    0x00012914 bl 0x1157c                                    |     puts ("peer %s port %u\n");
    0x00012918 mov r3, 0x2e                                  |     r3 = 0x2e;
    0x0001291c add r2, sp, 0x18                              |     r2 += var_18h;
    0x00012920 add r1, sp, 0xb8                              |     r1 += var_b8h;
    0x00012924 mov r0, sb                                    |     r0 = sb;
    0x00012928 bl 0x115a0                                    |     r0 = inet_ntop ();
    0x0001292c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00012930 beq 0x1295c                                   |         
    0x00012934 mov r0, r8                                    |         r0 = r8;
    0x00012938 bl 0x12148                                    |         fcn_00012148 (r0);
    0x0001293c ldrh r3, [sp, 0xb2]                           |         r3 = var_b2h;
    0x00012940 add r1, sp, 0x18                              |         r1 += var_18h;
    0x00012944 lsr r2, r3, 8                                 |         r2 = r3 >> 8;
    0x00012948 orr r2, r2, r3, lsl 8                         |         r2 |= (r3 << 8);
    0x0001294c lsl r2, r2, 0x10                              |         r2 <<= 0x10;
    0x00012950 lsr r2, r2, 0x10                              |         r2 >>= 0x10;
    0x00012954 ldr r0, [pc, 0xfc]                            |         r0 = "inet";
    0x00012958 bl 0x1142c                                    |         printf ("inet", r1, r2, r3)
                                                             |     }
    0x0001295c cmp sl, 0                                     |     
                                                             |     if (sl != 0) {
    0x00012960 bne 0x12830                                   |         goto label_10;
                                                             |     }
    0x00012964 mov r3, 0x2e                                  |     r3 = 0x2e;
    0x00012968 add r2, sp, 0x18                              |     r2 += var_18h;
    0x0001296c add r1, sp, 0x138                             |     r1 += var_138h;
    0x00012970 mov r0, 0xa                                   |     r0 = 0xa;
    0x00012974 b 0x128d4                                     |     goto label_12;
                                                             | label_14:
    0x00012978 mov r1, r8                                    |     r1 = r8;
    0x0001297c ldr r0, [pc, 0xe0]                            |     r0 = "inet6";
    0x00012980 b 0x122d0                                     |     goto label_3;
                                                             | label_20:
    0x00012984 ldr r0, [pc, 0xdc]                            |     r0 = "_dbus_monitor_too_dumb_to_decipher_arg_type__c_";
    0x00012988 bl 0x1157c                                    |     puts ("_dbus_monitor_too_dumb_to_decipher_arg_type__c_");
    0x0001298c mov r0, r6                                    |     r0 = r6;
    0x00012990 bl 0x12148                                    |     fcn_00012148 (r0);
    0x00012994 mov sb, 0                                     |     sb = 0;
    0x00012998 ldr fp, [pc, 0xcc]                            |     fp = "%02x";
    0x0001299c b 0x124f8                                     |     goto label_5;
                                                             | }
    ; 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 @ 0x12a70 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00012a70 ()                              | void fcn_00012a70 (int32_t arg1, int32_t arg2) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_4h;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_44h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00012a70 push {r4, r5, r6, r7, r8, sb, lr}         |     
    0x00012a74 sub sp, sp, 0x44                          |     
    0x00012a78 mov r7, r1                                |     r7 = r1;
    0x00012a7c mov r4, r0                                |     r4 = r0;
    0x00012a80 mov r8, r2                                |     r8 = r2;
    0x00012a84 mov sb, r3                                |     sb = r3;
    0x00012a88 bl 0x114d4                                |     r0 = dbus_message_get_type ();
    0x00012a8c mov r5, r0                                |     r5 = r0;
    0x00012a90 mov r0, r4                                |     r0 = r4;
    0x00012a94 bl 0x11594                                |     r0 = dbus_message_get_sender ();
    0x00012a98 mov r6, r0                                |     r6 = r0;
    0x00012a9c mov r0, r4                                |     r0 = r4;
    0x00012aa0 bl 0x11324                                |     dbus_message_get_destination ();
    0x00012aa4 cmp r7, 0                                 |     
                                                         |     if (r7 != 0) {
    0x00012aa8 bne 0x12b8c                               |         goto label_1;
                                                         |     }
    0x00012aac orrs r3, r8, sb                           |     r3 = r8 | sb;
    0x00012ab0 sub r5, r5, 1                             |     r5--;
                                                         |     if (r3 == r8) {
    0x00012ab4 beq 0x12b14                               |         goto label_2;
                                                         |     }
    0x00012ab8 cmp r5, 3                                 |     
                                                         |     if (r5 > 3) {
    0x00012abc ldrls r3, [pc, 0x150]                     |         r3 = *((pc + 0x150));
                                                         |     }
                                                         |     if (r5 <= 3) {
    0x00012ac0 ldrhi r1, [pc, 0x150]                     |         r1 = "(unknown message type)";
                                                         |     }
                                                         |     if (r5 > 3) {
    0x00012ac4 ldrls r1, [r3, r5, lsl 2]                 |         offset_0 = r5 << 2;
                                                         |         r1 = *((r3 + offset_0));
                                                         |     }
    0x00012ac8 ldr r3, [pc, 0x14c]                       |     r3 = "(unknown message type)";
    0x00012acc cmp r6, 0                                 |     
                                                         |     if (r6 != 0) {
    0x00012ad0 moveq r6, r3                              |         r6 = r3;
                                                         |     }
    0x00012ad4 ldr r3, [pc, 0x144]                       |     r3 = "_null_sender_";
    0x00012ad8 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00012adc moveq r0, r3                              |         r0 = r3;
                                                         |     }
    0x00012ae0 str r0, [sp, 4]                           |     var_4h = r0;
    0x00012ae4 str r6, [sp]                              |     *(sp) = r6;
    0x00012ae8 mov r3, sb                                |     r3 = sb;
    0x00012aec mov r2, r8                                |     r2 = r8;
    0x00012af0 ldr r0, [pc, 0x12c]                       |     r0 = "_null_destination_";
    0x00012af4 bl 0x1142c                                |     printf (r0, "(unknown message type)", r2, r3, r4, r5, r6)
                                                         |     do {
    0x00012af8 cmp r5, 3                                 |         
                                                         |         if (r5 > 3) {
                                                         |             /* switch table (4 cases) at 0x12b04 */
    0x00012afc ldrls pc, [pc, r5, lsl 2]                 |             offset_1 = r5 << 2;
                                                         |             pc = *((pc + offset_1));
                                                         |         }
    0x00012b00 b 0x12c08                                 |         goto label_3;
                                                         | label_2:
    0x00012b14 cmp r5, 3                                 |         
                                                         |         if (r5 > 3) {
    0x00012b18 ldrls r3, [pc, 0xf4]                      |             r3 = *((pc + 0xf4));
                                                         |         }
                                                         |         if (r5 <= 3) {
    0x00012b1c ldrhi r1, [pc, 0xf4]                      |             r1 = "(unknown message type)";
                                                         |         }
                                                         |         if (r5 > 3) {
    0x00012b20 ldrls r1, [r3, r5, lsl 2]                 |             offset_2 = r5 << 2;
                                                         |             r1 = *((r3 + offset_2));
                                                         |         }
    0x00012b24 cmp r0, 0                                 |         
    0x00012b28 ldr r3, [pc, 0xf0]                        |         r3 = "_null_sender_";
                                                         |         if (r0 == 0) {
    0x00012b2c movne r3, r0                              |             r3 = r0;
                                                         |         }
    0x00012b30 cmp r6, 0                                 |         
    0x00012b34 ldr r2, [pc, 0xe0]                        |         r2 = "(unknown message type)";
    0x00012b38 ldr r0, [pc, 0xe8]                        |         r0 = "%s time=%ld.%06ld sender=%s -> destination=%s";
                                                         |         if (r6 == 0) {
    0x00012b3c movne r2, r6                              |             r2 = r6;
                                                         |         }
    0x00012b40 bl 0x1142c                                |         printf (r0, "(unknown message type)", "(unknown message type)", r3, r4, r5, r6)
    0x00012b44 b 0x12af8                                 |         
                                                         |     } while (1);
    0x00012b48 mov r0, r4                                |     r0 = r4;
    0x00012b4c bl 0x11354                                |     r0 = dbus_message_get_serial ();
    0x00012b50 mov r5, r0                                |     r5 = r0;
    0x00012b54 mov r0, r4                                |     r0 = r4;
    0x00012b58 bl 0x114e0                                |     r0 = dbus_message_get_path ();
    0x00012b5c mov r6, r0                                |     r6 = r0;
    0x00012b60 mov r0, r4                                |     r0 = r4;
    0x00012b64 bl 0x11528                                |     r0 = dbus_message_get_interface ();
    0x00012b68 mov r8, r0                                |     r8 = r0;
    0x00012b6c mov r0, r4                                |     r0 = r4;
    0x00012b70 bl 0x11534                                |     dbus_message_get_member ();
    0x00012b74 mov r3, r8                                |     r3 = r8;
    0x00012b78 mov r2, r6                                |     r2 = r6;
    0x00012b7c mov r1, r5                                |     r1 = r5;
    0x00012b80 str r0, [sp]                              |     *(sp) = r0;
    0x00012b84 ldr r0, [pc, 0xa0]                        |     r0 = "%s sender=%s -> destination=%s";
    0x00012b88 bl 0x1142c                                |     printf (r0, r1, r2, r3)
                                                         |     do {
                                                         | label_1:
    0x00012b8c add r1, sp, 8                             |         r1 += var_8h;
    0x00012b90 mov r0, r4                                |         r0 = r4;
    0x00012b94 bl 0x11414                                |         dbus_message_iter_init ();
    0x00012b98 mov r2, 1                                 |         r2 = 1;
    0x00012b9c mov r1, r7                                |         r1 = r7;
    0x00012ba0 add r0, sp, 8                             |         r0 += var_8h;
    0x00012ba4 bl 0x12170                                |         fcn_00012170 (r0, r1);
    0x00012ba8 ldr r3, [pc, 0x80]                        |         r3 = "serial_u_path_s__interface_s__member_s";
    0x00012bac ldr r0, [r3]                              |         r0 = "serial_u_path_s__interface_s__member_s";
    0x00012bb0 bl 0x11384                                |         fflush ("serial_u_path_s__interface_s__member_s");
    0x00012bb4 add sp, sp, 0x44                          |         
    0x00012bb8 pop {r4, r5, r6, r7, r8, sb, pc}          |         
    0x00012bbc mov r0, r4                                |         r0 = r4;
    0x00012bc0 bl 0x11354                                |         r0 = dbus_message_get_serial ();
    0x00012bc4 mov r5, r0                                |         r5 = r0;
    0x00012bc8 mov r0, r4                                |         r0 = r4;
    0x00012bcc bl 0x11510                                |         dbus_message_get_reply_serial ();
    0x00012bd0 mov r1, r5                                |         r1 = r5;
    0x00012bd4 mov r2, r0                                |         r2 = r0;
    0x00012bd8 ldr r0, [pc, 0x54]                        |         r0 = stdout;
                                                         | label_0:
    0x00012bdc bl 0x1142c                                |         printf (r0, r1, r2)
    0x00012be0 b 0x12b8c                                 |         
                                                         |     } while (1);
    0x00012be4 mov r0, r4                                |     r0 = r4;
    0x00012be8 bl 0x11570                                |     r0 = dbus_message_get_error_name ();
    0x00012bec mov r5, r0                                |     r5 = r0;
    0x00012bf0 mov r0, r4                                |     r0 = r4;
    0x00012bf4 bl 0x11510                                |     dbus_message_get_reply_serial ();
    0x00012bf8 mov r1, r5                                |     r1 = r5;
    0x00012bfc mov r2, r0                                |     r2 = r0;
    0x00012c00 ldr r0, [pc, 0x30]                        |     r0 = " serial=%u reply_serial=%u\n";
    0x00012c04 b 0x12bdc                                 |     goto label_0;
                                                         | label_3:
    0x00012c08 mov r0, 0xa                               |     r0 = 0xa;
    0x00012c0c bl 0x11450                                |     putchar (r0);
    0x00012c10 b 0x12b8c                                 |     goto label_1;
                                                         | }

[*] Function printf used 31 times dbus-monitor