[*] Binary protection state of dbus-send

  
  	Full RELRO     Canary found      NX enabled   PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of dbus-send

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/dbus-send @ 0x1cb4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00001cb4 ()                                      | void fcn_00001cb4 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_24h;
                                                                 |     void * s2;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     void * s;
                                                                 |     int16_t var_9eh;
                                                                 |     int16_t var_9fh;
                                                                 |     int16_t var_a0h;
                                                                 |     int16_t var_a4h;
                                                                 |     int16_t var_11ch;
                                                                 |     int16_t var_11eh;
                                                                 |     int16_t var_120h;
                                                                 |     int16_t var_124h;
                                                                 |     int16_t var_19ch;
                                                                 |     int16_t var_1cch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00001cb4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00001cb8 sub sp, 0x1d4                                     |     
    0x00001cba str r1, [sp]                                      |     *(sp) = r1;
    0x00001cbc add.w fp, r2, 1                                   |     
    0x00001cc0 mov r7, r2                                        |     r7 = r2;
    0x00001cc2 sub.w r3, fp, fp, lsl 2                           |     r3 = fp - (fp << 2);
    0x00001cc6 ldr.w r1, [pc, 0x970]                             |     r1 = *(0x00002638);
    0x00001cca mov r8, r0                                        |     r8 = r0;
    0x00001ccc ldr.w r2, [pc, 0x96c]                             |     
    0x00001cd0 adds r3, 0x50                                     |     r3 += 0x50;
    0x00001cd2 ldr.w sl, [pc, 0x96c]                             |     
    0x00001cd6 add r1, pc                                        |     r1 += pc;
    0x00001cd8 ldr r2, [r1, r2]                                  |     r2 = *((r1 + r2));
    0x00001cda add sl, pc                                        |     sl = 0x4320;
    0x00001cdc ldr r2, [r2]                                      |     r2 = *(0x263c);
    0x00001cde str r2, [sp, 0x1cc]                               |     var_1cch = r2;
    0x00001ce0 mov.w r2, 0                                       |     r2 = 0;
    0x00001ce4 movw r2, 0x5556                                   |     
                                                                 |     /* if there is a right shift of 0, then it's a division by 1/3 */
    0x00001ce8 movt r2, 0x5555                                   |     r2 = 0x55555556;
    0x00001cec smull r1, r2, r2, r3                              |     r1:r2 = r2 * r3;
    0x00001cf0 sub.w r3, r2, r3, asr 31                          |     r3 = r2 - (r3 >> 31);
    0x00001cf4 cmp r3, 8                                         |     
    0x00001cf6 it lo                                             |     
                                                                 |     if (r3 >= 8) {
    0x00001cf8 movlo r3, 8                                       |         r3 = 8;
                                                                 |     }
    0x00001cfa str r3, [sp, 4]                                   |     var_4h = r3;
    0x00001cfc ldr.w r3, [pc, 0x944]                             |     
    0x00001d00 add r3, pc                                        |     r3 = 0x4348;
    0x00001d02 str r3, [sp, 8]                                   |     var_8h = r3;
                                                                 | label_0:
    0x00001d04 mov r0, r8                                        |     r0 = r8;
    0x00001d06 blx 0x12fc                                        |     r0 = dbus_message_iter_get_arg_type ();
    0x00001d0a mov r5, r0                                        |     r5 = r0;
    0x00001d0c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00001d0e beq 0x1d80                                        |         goto label_15;
                                                                 |     }
    0x00001d10 cmp r7, 0                                         |     
    0x00001d12 add.w r4, r7, -1                                  |     r4 = r7 + -1;
    0x00001d16 it gt                                             |     
                                                                 |     if (r7 <= 0) {
    0x00001d18 movgt r6, r4                                      |         r6 = r4;
                                                                 |     }
                                                                 |     if (r7 <= 0) {
    0x00001d1a ble 0x1d2a                                        |         goto label_16;
                                                                 |     }
                                                                 |     do {
    0x00001d1c mov r1, sl                                        |         r1 = sl;
    0x00001d1e movs r0, 1                                        |         r0 = 1;
    0x00001d20 subs r6, 1                                        |         r6--;
    0x00001d22 blx 0x1290                                        |         printf_chk ()
    0x00001d26 adds r1, r6, 1                                    |         r1 = r6 + 1;
    0x00001d28 bne 0x1d1c                                        |         
                                                                 |     } while (r1 != r6);
                                                                 | label_16:
    0x00001d2a sub.w r3, r5, 0x61                                |     r3 = r5 - 0x61;
    0x00001d2e cmp r3, 0x18                                      |     
                                                                 |     if (r3 <= 0x18) {
    0x00001d30 bhi 0x1d68                                        |         
                                                                 |         /* switch table (26 cases) at 0x1d36 */
    0x00001d32 tbh [pc, r3, lsl 1]                               |         __asm ("tbh [pc, r3, lsl 1]");
                                                                 |     }
    0x00001d68 ldr.w r1, [pc, 0x8dc]                             |     
    0x00001d6c mov r2, r5                                        |     r2 = r5;
    0x00001d6e movs r0, 1                                        |     r0 = 1;
    0x00001d70 add r1, pc                                        |     r1 = 0x43bc;
    0x00001d72 blx 0x1290                                        |     printf_chk ()
                                                                 | label_1:
    0x00001d76 mov r0, r8                                        |     r0 = r8;
    0x00001d78 blx 0x123c                                        |     r0 = dbus_message_iter_next ();
    0x00001d7c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00001d7e bne 0x1d04                                        |         goto label_0;
                                                                 |     }
                                                                 | label_15:
    0x00001d80 ldr.w r2, [pc, 0x8c8]                             |     r2 = *(0x0000264c);
    0x00001d84 ldr.w r3, [pc, 0x8b4]                             |     r3 = *(0x263c);
    0x00001d88 add r2, pc                                        |     r2 += pc;
    0x00001d8a ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00001d8c ldr r2, [r3]                                      |     r2 = *(0x263c);
    0x00001d8e ldr r3, [sp, 0x1cc]                               |     r3 = var_1cch;
    0x00001d90 eors r2, r3                                       |     r2 ^= r3;
    0x00001d92 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00001d96 bne.w 0x260e                                      |         goto label_17;
                                                                 |     }
    0x00001d9a add sp, 0x1d4                                     |     
    0x00001d9c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
    0x00001da0 add r4, sp, 0x30                                  |     r4 += var_30h;
    0x00001da2 mov r0, r8                                        |     r0 = r8;
    0x00001da4 mov r1, r4                                        |     r1 = r4;
    0x00001da6 blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x00001daa ldr.w r1, [pc, 0x8a4]                             |     
    0x00001dae movs r0, 1                                        |     r0 = 1;
    0x00001db0 ldrb.w r2, [sp, 0x30]                             |     r2 = var_30h;
    0x00001db4 add r1, pc                                        |     r1 = 0x440a;
    0x00001db6 blx 0x1290                                        |     printf_chk ()
    0x00001dba b 0x1d76                                          |     goto label_1;
    0x00001dbc add r1, sp, 0x30                                  |     r1 += var_30h;
    0x00001dbe mov r0, r8                                        |     r0 = r8;
    0x00001dc0 blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x00001dc4 ldr.w r1, [pc, 0x88c]                             |     
    0x00001dc8 movs r0, 1                                        |     r0 = 1;
    0x00001dca ldrd r2, r3, [sp, 0x30]                           |     __asm ("ldrd r2, r3, [var_30h]");
    0x00001dce add r1, pc                                        |     r1 = 0x4426;
    0x00001dd0 blx 0x1290                                        |     printf_chk ()
    0x00001dd4 b 0x1d76                                          |     goto label_1;
    0x00001dd6 add r4, sp, 0x30                                  |     r4 += var_30h;
    0x00001dd8 mov r0, r8                                        |     r0 = r8;
    0x00001dda mov r1, r4                                        |     r1 = r4;
    0x00001ddc blx 0x1344                                        |     dbus_message_iter_recurse ();
    0x00001de0 ldr.w r1, [pc, 0x874]                             |     
    0x00001de4 movs r0, 1                                        |     r0 = 1;
    0x00001de6 add r1, pc                                        |     r1 = 0x4442;
    0x00001de8 blx 0x1290                                        |     printf_chk ()
    0x00001dec ldr r1, [sp]                                      |     r1 = *(sp);
    0x00001dee mov r2, fp                                        |     r2 = fp;
    0x00001df0 mov r0, r4                                        |     r0 = r4;
    0x00001df2 bl 0x1cb4                                         |     fcn_00001cb4 (r0, r1, r2);
    0x00001df6 b 0x1d76                                          |     goto label_1;
    0x00001df8 add r4, sp, 0x30                                  |     r4 += var_30h;
    0x00001dfa mov r0, r8                                        |     r0 = r8;
    0x00001dfc mov r1, r4                                        |     r1 = r4;
    0x00001dfe blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x00001e02 ldr.w r1, [pc, 0x858]                             |     
    0x00001e06 movs r0, 1                                        |     r0 = 1;
    0x00001e08 ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x00001e0a add r1, pc                                        |     r1 = 0x446c;
    0x00001e0c blx 0x1290                                        |     printf_chk ()
    0x00001e10 b 0x1d76                                          |     goto label_1;
    0x00001e12 add r1, sp, 0x30                                  |     r1 += var_30h;
    0x00001e14 mov r0, r8                                        |     r0 = r8;
    0x00001e16 blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x00001e1a ldr.w r1, [pc, 0x844]                             |     r1 = s;
    0x00001e1e movs r0, 1                                        |     r0 = 1;
    0x00001e20 ldrd r2, r3, [sp, 0x30]                           |     __asm ("ldrd r2, r3, [var_30h]");
    0x00001e24 add r1, pc                                        |     r1 += pc;
    0x00001e26 blx 0x1290                                        |     printf_chk ()
    0x00001e2a b 0x1d76                                          |     goto label_1;
    0x00001e2c add r4, sp, 0x30                                  |     r4 += var_30h;
    0x00001e2e mov r0, r8                                        |     r0 = r8;
    0x00001e30 mov r1, r4                                        |     r1 = r4;
    0x00001e32 blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x00001e36 ldr r3, [sp]                                      |     r3 = *(sp);
    0x00001e38 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00001e3a beq.w 0x21e0                                      |         goto label_18;
                                                                 |     }
    0x00001e3e ldr.w r1, [pc, 0x824]                             |     
    0x00001e42 movs r0, 1                                        |     r0 = 1;
    0x00001e44 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00001e46 add r1, pc                                        |     r1 = 0x44b0;
    0x00001e48 blx 0x1290                                        |     printf_chk ()
    0x00001e4c b 0x1d76                                          |     goto label_1;
    0x00001e4e add r5, sp, 0x30                                  |     r5 += var_30h;
    0x00001e50 mov r0, r8                                        |     r0 = r8;
    0x00001e52 mov r1, r5                                        |     r1 = r5;
    0x00001e54 blx 0x1344                                        |     dbus_message_iter_recurse ();
    0x00001e58 ldr.w r0, [pc, 0x80c]                             |     
    0x00001e5a lsrs r4, r1, 0x20                                 |     r4 = r1 >> 0x20;
    0x00001e5c add r0, pc                                        |     r0 = 0x44c8;
    0x00001e5e blx 0x11dc                                        |     puts (r0);
    0x00001e62 ldr r6, [sp]                                      |     r6 = *(sp);
                                                                 |     do {
    0x00001e64 mov r0, r5                                        |         r0 = r5;
    0x00001e66 blx 0x12fc                                        |         r0 = dbus_message_iter_get_arg_type ();
                                                                 |         if (r0 == 0) {
    0x00001e6a cbz r0, 0x1e96                                    |             goto label_19;
                                                                 |         }
                                                                 | label_2:
    0x00001e6c mov r2, fp                                        |         r2 = fp;
    0x00001e6e mov r1, r6                                        |         r1 = r6;
    0x00001e70 mov r0, r5                                        |         r0 = r5;
    0x00001e72 bl 0x1cb4                                         |         fcn_00001cb4 (r0, r1, r2);
    0x00001e76 mov r0, r5                                        |         r0 = r5;
    0x00001e78 blx 0x123c                                        |         dbus_message_iter_next ();
    0x00001e7c mov r0, r5                                        |         r0 = r5;
    0x00001e7e blx 0x12fc                                        |         r0 = dbus_message_iter_get_arg_type ();
    0x00001e82 cmp r0, 0                                         |         
    0x00001e84 beq 0x1e64                                        |         
                                                                 |     } while (r0 == 0);
    0x00001e86 movs r0, 0x2c                                     |     r0 = 0x2c;
    0x00001e88 blx 0x1278                                        |     putchar (r0);
    0x00001e8a ldrd r4, r6, [r6, 0xa0]!                          |     __asm ("ldrd r4, r6, [r6, 0xa0]!");
    0x00001e8e blx 0x12fc                                        |     r0 = dbus_message_iter_get_arg_type ();
    0x00001e92 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00001e94 bne 0x1e6c                                        |         goto label_2;
                                                                 |     }
                                                                 | label_19:
    0x00001e96 cmp r7, 0                                         |     
                                                                 |     if (r7 <= 0) {
    0x00001e98 ble 0x1eae                                        |         goto label_20;
                                                                 |     }
    0x00001e9a ldr.w r5, [pc, 0x7d0]                             |     
    0x00001e9e add r5, pc                                        |     r5 = 0x4510;
                                                                 |     do {
    0x00001ea0 mov r1, r5                                        |         r1 = r5;
    0x00001ea2 subs r4, 1                                        |         r4--;
    0x00001ea4 movs r0, 1                                        |         r0 = 1;
    0x00001ea6 blx 0x1290                                        |         printf_chk ()
    0x00001eaa adds r1, r4, 1                                    |         r1 = r4 + 1;
    0x00001eac bne 0x1ea0                                        |         
                                                                 |     } while (r1 != r4);
                                                                 | label_20:
    0x00001eae ldr.w r0, [pc, 0x7c0]                             |     
    0x00001eb2 add r0, pc                                        |     r0 = 0x4528;
    0x00001eb4 blx 0x11dc                                        |     puts (r0);
    0x00001eb8 b 0x1d76                                          |     goto label_1;
    0x00001eba add r4, sp, 0x30                                  |     r4 += var_30h;
    0x00001ebc mov r0, r8                                        |     r0 = r8;
    0x00001ebe mov r1, r4                                        |     r1 = r4;
    0x00001ec0 blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x00001ec4 ldr.w r1, [pc, 0x7ac]                             |     
    0x00001ec8 movs r0, 1                                        |     r0 = 1;
    0x00001eca ldrh.w r2, [sp, 0x30]                             |     r2 = var_30h;
    0x00001ece add r1, pc                                        |     r1 = 0x4546;
    0x00001ed0 blx 0x1290                                        |     printf_chk ()
    0x00001ed4 b 0x1d76                                          |     goto label_1;
    0x00001ed6 add r4, sp, 0x30                                  |     r4 += var_30h;
    0x00001ed8 mov r0, r8                                        |     r0 = r8;
    0x00001eda mov r1, r4                                        |     r1 = r4;
    0x00001edc blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x00001ee0 ldr r3, [sp]                                      |     r3 = *(sp);
    0x00001ee2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00001ee4 beq.w 0x222c                                      |         goto label_21;
                                                                 |     }
    0x00001ee6 strh r2, [r4, 0xc]                                |     *((r4 + 0xc)) = r2;
    0x00001ee8 ldr.w r1, [pc, 0x78c]                             |     
    0x00001eec movs r0, 1                                        |     r0 = 1;
    0x00001eee ldr r2, [r4]                                      |     r2 = *(r4);
    0x00001ef0 add r1, pc                                        |     r1 = 0x456c;
    0x00001ef2 blx 0x1290                                        |     printf_chk ()
    0x00001ef6 b 0x1d76                                          |     goto label_1;
    0x00001ef8 add r4, sp, 0x30                                  |     r4 += var_30h;
    0x00001efa mov r0, r8                                        |     r0 = r8;
    0x00001efc mov r1, r4                                        |     r1 = r4;
    0x00001efe blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x00001f02 ldr.w r1, [pc, 0x778]                             |     
    0x00001f06 movs r0, 1                                        |     r0 = 1;
    0x00001f08 ldrsh.w r2, [sp, 0x30]                            |     r2 = var_30h;
    0x00001f0c add r1, pc                                        |     r1 = 0x458e;
    0x00001f0e blx 0x1290                                        |     printf_chk ()
    0x00001f10 strd lr, r7, [r0, 0xc0]                           |     __asm ("strd lr, r7, [r0, 0xc0]");
    0x00001f14 add r4, sp, 0x30                                  |     r4 += var_30h;
    0x00001f16 mov r0, r8                                        |     r0 = r8;
    0x00001f18 mov r1, r4                                        |     r1 = r4;
    0x00001f1a blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x00001f1e ldr.w r1, [pc, 0x760]                             |     
    0x00001f22 movs r0, 1                                        |     r0 = 1;
    0x00001f24 ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x00001f26 add r1, pc                                        |     r1 = 0x45ac;
    0x00001f28 blx 0x1290                                        |     printf_chk ()
    0x00001f2c b 0x1d76                                          |     goto label_1;
    0x00001f2e add r3, sp, 0x24                                  |     r3 += var_24h;
    0x00001f30 mov r0, r8                                        |     r0 = r8;
    0x00001f32 mov r4, r3                                        |     r4 = r3;
    0x00001f34 mov r1, r3                                        |     r1 = r3;
    0x00001f36 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00001f38 add r5, sp, 0x30                                  |     r5 += var_30h;
    0x00001f3a blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x00001f3e ldr r4, [r4]                                      |     r4 = *(r4);
    0x00001f40 movs r2, 0x68                                     |     r2 = 0x68;
    0x00001f42 movs r1, 0                                        |     r1 = 0;
    0x00001f44 mov r0, r5                                        |     r0 = r5;
    0x00001f46 add.w sb, sp, 0x28                                |     sb += s2;
    0x00001f4a str r4, [sp, 0x18]                                |     var_18h = r4;
    0x00001f4c blx 0x126c                                        |     memset (r0, r1, r2);
    0x00001f50 ldr.w r0, [pc, 0x730]                             |     
    0x00001f54 movs r3, 0x80                                     |     r3 = 0x80;
    0x00001f56 add r2, sp, 0x2c                                  |     r2 += var_2ch;
    0x00001f58 str.w r3, [sb]                                    |     __asm ("str.w r3, [sb]");
    0x00001f5a adds r0, 0                                        |     r0 += 0;
    0x00001f5c str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x00001f5e add r0, pc                                        |     r0 = 0x45e6;
    0x00001f60 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00001f62 blx 0x11dc                                        |     puts (r0);
    0x00001f66 adds r2, r4, 1                                    |     r2 = r4 + 1;
                                                                 |     if (r2 == r4) {
    0x00001f68 beq 0x202c                                        |         goto label_6;
                                                                 |     }
    0x00001f6a mov r1, r5                                        |     r1 = r5;
    0x00001f6c mov r0, r4                                        |     r0 = r4;
    0x00001f6e blx 0x13a4                                        |     fstat64 ();
    0x00001f72 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00001f74 beq 0x202c                                        |         goto label_6;
                                                                 |     }
    0x00001f76 adds r3, r7, 2                                    |     r3 = r7 + 2;
    0x00001f78 str.w fp, [sp, 0x1c]                              |     __asm ("str.w fp, [var_1ch]");
    0x00001f7c cmp r3, 0                                         |     
    0x00001f7e str r3, [sp, 0x14]                                |     var_14h = r3;
                                                                 |     if (r3 <= 0) {
    0x00001f80 ble.w 0x257c                                      |         goto label_22;
                                                                 |     }
    0x00001f84 ldr.w r4, [pc, 0x700]                             |     
    0x00001f88 mov r6, fp                                        |     r6 = fp;
    0x00001f8a add r4, pc                                        |     r4 = 0x4616;
                                                                 |     do {
    0x00001f8c subs r6, 1                                        |         r6--;
    0x00001f8e mov r1, r4                                        |         r1 = r4;
    0x00001f90 movs r0, 1                                        |         r0 = 1;
    0x00001f92 blx 0x1290                                        |         printf_chk ()
    0x00001f96 adds r3, r6, 1                                    |         r3 = r6 + 1;
    0x00001f98 bne 0x1f8c                                        |         
                                                                 |     } while (r3 != r6);
    0x00001f9a ldr.w r1, [pc, 0x6f0]                             |     
    0x00001f9e mov r6, fp                                        |     r6 = fp;
    0x00001fa0 ldr r2, [r5, 0x60]                                |     r2 = *((r5 + 0x60));
    0x00001fa2 movs r0, 1                                        |     r0 = 1;
    0x00001fa4 add r1, pc                                        |     r1 = 0x4636;
    0x00001fa6 blx 0x1290                                        |     printf_chk ()
                                                                 |     do {
    0x00001faa subs r6, 1                                        |         r6--;
    0x00001fac mov r1, r4                                        |         r1 = r4;
    0x00001fae movs r0, 1                                        |         r0 = 1;
    0x00001fb0 blx 0x1290                                        |         printf_chk ()
    0x00001fb4 adds r0, r6, 1                                    |         r0 = r6 + 1;
    0x00001fb6 bne 0x1faa                                        |         
                                                                 |     } while (r0 != r6);
                                                                 | label_14:
    0x00001fb8 ldr.w r1, [pc, 0x6d4]                             |     
    0x00001fbc movs r0, 1                                        |     r0 = 1;
    0x00001fbe add r1, pc                                        |     r1 = 0x4652;
    0x00001fc0 blx 0x1290                                        |     printf_chk ()
    0x00001fc4 ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
    0x00001fc6 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00001fca cmp.w r3, 0x8000                                  |     
                                                                 |     if (r3 == 0x8000) {
    0x00001fce beq.w 0x256c                                      |         goto label_23;
                                                                 |     }
                                                                 | label_13:
    0x00001fd2 cmp.w r3, 0x4000                                  |     
                                                                 |     if (r3 == 0x4000) {
    0x00001fd6 beq.w 0x255c                                      |         goto label_24;
                                                                 |     }
                                                                 | label_12:
    0x00001fda cmp.w r3, 0x2000                                  |     
                                                                 |     if (r3 == 0x2000) {
    0x00001fde beq.w 0x254c                                      |         goto label_25;
                                                                 |     }
                                                                 | label_11:
    0x00001fe2 cmp.w r3, 0x6000                                  |     
                                                                 |     if (r3 == 0x6000) {
    0x00001fe6 beq.w 0x253c                                      |         goto label_26;
                                                                 |     }
                                                                 | label_10:
    0x00001fea cmp.w r3, 0x1000                                  |     
                                                                 |     if (r3 == 0x1000) {
    0x00001fee beq.w 0x2522                                      |         goto label_27;
                                                                 |     }
                                                                 | label_8:
    0x00001ff2 cmp.w r3, 0xa000                                  |     
                                                                 |     if (r3 == 0xa000) {
    0x00001ff6 beq.w 0x2512                                      |         goto label_28;
                                                                 |     }
                                                                 | label_7:
    0x00001ffa cmp.w r3, 0xc000                                  |     
                                                                 |     if (r3 == 0xc000) {
    0x00001ffe beq.w 0x2532                                      |         goto label_29;
                                                                 |     }
                                                                 | label_9:
    0x00002002 add r5, sp, 0x9c                                  |     r5 += s;
    0x00002004 movs r2, 0x80                                     |     r2 = 0x80;
    0x00002006 movs r1, 0                                        |     r1 = 0;
    0x00002008 mov r0, r5                                        |     r0 = r5;
    0x0000200a add r4, sp, 0x11c                                 |     r4 += var_11ch;
    0x0000200c blx 0x126c                                        |     memset (r0, r1, r2);
    0x00002010 movs r2, 0x80                                     |     r2 = 0x80;
    0x00002012 movs r1, 0                                        |     r1 = 0;
    0x00002014 mov r0, r4                                        |     r0 = r4;
    0x00002016 blx 0x126c                                        |     memset (r0, r1, r2);
    0x00002018 invalid                                           |     
    0x0000201c mov r2, sb                                        |     r2 = sb;
    0x0000201e mov r1, r5                                        |     r1 = r5;
    0x00002020 mov r0, r6                                        |     r0 = r6;
    0x00002022 blx 0x135c                                        |     r0 = getsockname (r0, r1, r2);
    0x00002026 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00002028 beq.w 0x2318                                      |         goto label_30;
                                                                 |     }
                                                                 | label_6:
    0x0000202c ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0000202e ldr r0, [r3]                                      |     r0 = *(r3);
    0x00002030 blx 0x13e0                                        |     close (r0);
    0x00002034 b 0x1d76                                          |     goto label_1;
    0x00002036 add r4, sp, 0x30                                  |     r4 += var_30h;
    0x00002038 mov r0, r8                                        |     r0 = r8;
    0x0000203a mov r1, r4                                        |     r1 = r4;
    0x0000203c blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x00002040 ldr r3, [sp]                                      |     r3 = *(sp);
    0x00002042 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00002044 beq.w 0x2206                                      |         goto label_31;
                                                                 |     }
    0x00002048 ldr.w r1, [pc, 0x648]                             |     
    0x0000204c movs r0, 1                                        |     r0 = 1;
    0x0000204e ldr r2, [r4]                                      |     r2 = *(r4);
    0x00002050 add r1, pc                                        |     r1 = 0x46e8;
    0x00002052 blx 0x1290                                        |     printf_chk ()
    0x00002056 b 0x1d76                                          |     goto label_1;
    0x00002058 add r5, sp, 0x30                                  |     r5 += var_30h;
    0x0000205a mov r0, r8                                        |     r0 = r8;
    0x0000205c mov r1, r5                                        |     r1 = r5;
    0x0000205e blx 0x1344                                        |     dbus_message_iter_recurse ();
    0x00002062 ldr.w r0, [pc, 0x634]                             |     
    0x00002066 add r0, pc                                        |     r0 = 0x4704;
    0x00002068 blx 0x11dc                                        |     puts (r0);
    0x0000206c ldr r6, [sp]                                      |     r6 = *(sp);
    0x0000206e mov r2, fp                                        |     r2 = fp;
    0x00002070 mov r0, r5                                        |     r0 = r5;
    0x00002072 mov r1, r6                                        |     r1 = r6;
    0x00002074 bl 0x1cb4                                         |     fcn_00001cb4 (r0, r1, r2);
    0x00002078 mov r0, r5                                        |     r0 = r5;
    0x0000207a blx 0x123c                                        |     dbus_message_iter_next ();
    0x0000207e mov r2, fp                                        |     r2 = fp;
    0x00002080 mov r1, r6                                        |     r1 = r6;
    0x00002082 mov r0, r5                                        |     r0 = r5;
    0x00002084 bl 0x1cb4                                         |     fcn_00001cb4 (r0, r1, r2);
    0x00002088 cmp r7, 0                                         |     
                                                                 |     if (r7 <= 0) {
    0x0000208a ble 0x20a0                                        |         goto label_32;
                                                                 |     }
    0x0000208c ldr.w r5, [pc, 0x60c]                             |     
    0x00002090 add r5, pc                                        |     r5 = 0x4730;
                                                                 |     do {
    0x00002092 subs r4, 1                                        |         r4--;
    0x00002094 mov r1, r5                                        |         r1 = r5;
    0x00002096 movs r0, 1                                        |         r0 = 1;
    0x00002098 blx 0x1290                                        |         printf_chk ()
    0x0000209c adds r0, r4, 1                                    |         r0 = r4 + 1;
    0x0000209e bne 0x2092                                        |         
                                                                 |     } while (r0 != r4);
                                                                 | label_32:
    0x000020a0 ldr.w r0, [pc, 0x5fc]                             |     r0 = s;
    0x000020a4 add r0, pc                                        |     r0 += pc;
    0x000020a6 blx 0x11dc                                        |     puts (r0);
    0x000020aa b 0x1d76                                          |     goto label_1;
    0x000020ac add r4, sp, 0x30                                  |     r4 += var_30h;
    0x000020ae mov r0, r8                                        |     r0 = r8;
    0x000020b0 mov r1, r4                                        |     r1 = r4;
    0x000020b2 blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x000020b6 ldr.w r1, [pc, 0x5ec]                             |     
    0x000020ba movs r0, 1                                        |     r0 = 1;
    0x000020bc ldrd r2, r3, [sp, 0x30]                           |     __asm ("ldrd r2, r3, [var_30h]");
    0x000020c0 add r1, pc                                        |     r1 = 0x476a;
    0x000020c2 blx 0x1290                                        |     printf_chk ()
    0x000020c6 b 0x1d76                                          |     goto label_1;
    0x000020c8 add r4, sp, 0x30                                  |     r4 += var_30h;
    0x000020ca mov r0, r8                                        |     r0 = r8;
    0x000020cc mov r1, r4                                        |     r1 = r4;
    0x000020ce blx 0x1098                                        |     dbus_message_iter_get_basic ();
    0x000020d2 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x000020d4 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000020d6 bne 0x21d8                                        |         goto label_33;
                                                                 |     }
    0x000020d8 ldr.w r2, [pc, 0x5cc]                             |     
    0x000020dc add r2, pc                                        |     r2 = 0x4788;
                                                                 | label_5:
    0x000020de ldr.w r1, [pc, 0x5cc]                             |     
    0x000020e2 movs r0, 1                                        |     r0 = 1;
    0x000020e4 add r1, pc                                        |     r1 = 0x4796;
    0x000020e6 blx 0x1290                                        |     printf_chk ()
    0x000020ea b 0x1d76                                          |     goto label_1;
    0x000020ec add r5, sp, 0x30                                  |     r5 += var_30h;
    0x000020ee mov r0, r8                                        |     r0 = r8;
    0x000020f0 mov r1, r5                                        |     r1 = r5;
    0x000020f2 blx 0x1344                                        |     dbus_message_iter_recurse ();
    0x000020f6 mov r0, r5                                        |     r0 = r5;
    0x000020f8 blx 0x12fc                                        |     r0 = dbus_message_iter_get_arg_type ();
    0x000020fc cmp r0, 0x79                                      |     
    0x000020fe mov r6, r0                                        |     r6 = r0;
                                                                 |     if (r0 != 0x79) {
    0x00002100 bne.w 0x2252                                      |         goto label_34;
                                                                 |     }
    0x00002104 add r3, sp, 0x2c                                  |     r3 += var_2ch;
    0x00002106 add.w sb, sp, 0x28                                |     sb += s2;
    0x0000210a mov r0, r5                                        |     r0 = r5;
    0x0000210c mov r2, r3                                        |     r2 = r3;
    0x0000210e mov r5, r3                                        |     r5 = r3;
    0x00002110 mov r1, sb                                        |     r1 = sb;
    0x00002112 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00002114 blx 0x1230                                        |     dbus_message_iter_get_fixed_array ();
    0x00002116 invalid                                           |     
    0x0000211a cmp r5, 0                                         |     
                                                                 |     if (r5 <= 0) {
    0x0000211c ble.w 0x22e4                                      |         goto label_35;
                                                                 |     }
    0x00002120 ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x00002124 add.w lr, r5, -1                                  |     lr = r5 + -1;
    0x00002128 mov r2, r3                                        |     r2 = r3;
    0x0000212a str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0000212c subs r6, r2, 1                                    |     r6 = r2 - 1;
    0x0000212e movs r3, 0                                        |     r3 = 0;
    0x00002130 mov r0, r6                                        |     r0 = r6;
    0x00002132 b 0x213c                                          |     
                                                                 |     while (r1 < 0x5e) {
                                                                 | label_3:
    0x00002134 adds r3, 1                                        |         r3++;
    0x00002136 cmp r5, r3                                        |         
                                                                 |         if (r5 == r3) {
    0x00002138 beq.w 0x22d8                                      |             goto label_36;
                                                                 |         }
    0x0000213c ldrb r2, [r0, 1]!                                 |         r2 = *((r0 += 1));
    0x00002140 sub.w r1, r2, 0x20                                |         r1 = r2 - 0x20;
    0x00002144 cmp r1, 0x5e                                      |         
    0x00002146 bls 0x2134                                        |         
                                                                 |     }
    0x00002148 cmp lr, r3                                        |     
    0x0000214a it le                                             |     
                                                                 |     if (lr > r3) {
    0x0000214c cmple r2, 0                                       |         __asm ("cmple r2, 0");
                                                                 |         goto label_37;
                                                                 |     }
                                                                 |     if (lr == r3) {
                                                                 | label_37:
    0x0000214e beq 0x2134                                        |         goto label_3;
                                                                 |     }
    0x00002150 ldr.w r0, [pc, 0x55c]                             |     r0 = s;
    0x00002154 add r0, pc                                        |     r0 += pc;
    0x00002156 blx 0x11dc                                        |     puts (r0);
    0x0000215a cmp.w fp, 0                                       |     
                                                                 |     if (fp <= 0) {
    0x0000215e ble 0x2180                                        |         goto label_38;
                                                                 |     }
    0x00002160 ldr.w r1, [pc, 0x550]                             |     
    0x00002164 mov sb, r7                                        |     sb = r7;
    0x00002166 str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x00002168 add r1, pc                                        |     r1 = 0x4820;
    0x0000216a mov r4, r1                                        |     r4 = r1;
                                                                 |     do {
    0x0000216c add.w sb, sb, -1                                  |         sb += -1;
    0x00002170 mov r1, r4                                        |         r1 = r4;
    0x00002172 movs r0, 1                                        |         r0 = 1;
    0x00002174 blx 0x1290                                        |         printf_chk ()
    0x00002178 cmp.w sb, -1                                      |         
    0x0000217c bne 0x216c                                        |         
                                                                 |     } while (sb != -1);
    0x0000217e ldr r4, [sp, 0xc]                                 |     r4 = var_ch;
                                                                 | label_38:
    0x00002180 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00002182 str r4, [sp, 0x14]                                |     var_14h = r4;
    0x00002184 adds r2, r3, r5                                   |     r2 = r3 + r5;
    0x00002186 ldr.w r5, [pc, 0x530]                             |     
    0x0000218a rsb.w r3, r3, 1                                   |     r3 = 1 - r3;
    0x0000218e str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00002190 subs r3, r2, 1                                    |     r3 = r2 - 1;
    0x00002192 add r5, pc                                        |     r5 = 0x4850;
    0x00002194 str r3, [sp, 0xc]                                 |     var_ch = r3;
                                                                 |     do {
                                                                 | label_4:
    0x00002196 ldrb r2, [r6, 1]!                                 |         r2 = *((r6 += 1));
    0x0000219a mov r1, r5                                        |         r1 = r5;
    0x0000219c movs r0, 1                                        |         r0 = 1;
    0x0000219e blx 0x1290                                        |         printf_chk ()
    0x000021a0 ldrd sb, fp, [r8], -0x10                          |         __asm ("ldrd sb, fp, [r8], -0x10");
    0x000021a4 adds r0, r3, r6                                   |         r0 = r3 + r6;
    0x000021a6 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x000021a8 cmp r3, r6                                        |         
                                                                 |         if (r3 == r6) {
    0x000021aa beq 0x22ac                                        |             goto label_39;
                                                                 |         }
    0x000021ac ldr r1, [sp, 4]                                   |         r1 = var_4h;
    0x000021ae bl 0x2ff4                                         |         fcn_00002ff4 (r0);
    0x000021b2 cmp r1, 0                                         |         
                                                                 |         if (r1 != 0) {
    0x000021b4 bne 0x2280                                        |             goto label_40;
                                                                 |         }
    0x000021b6 movs r0, 0xa                                      |         r0 = 0xa;
    0x000021b8 blx 0x1278                                        |         putchar (r0);
    0x000021ba invalid                                           |         
    0x000021be lsrs r0, r0, 0x1c                                 |         r0 >>= 0x1c;
    0x000021c0 ble 0x2196                                        |         
                                                                 |     } while (r0 <= r0);
    0x000021c2 ldr.w sb, [sp, 8]                                 |     sb = var_8h;
    0x000021c6 mov r4, r7                                        |     r4 = r7;
                                                                 |     do {
    0x000021c8 subs r4, 1                                        |         r4--;
    0x000021ca mov r1, sb                                        |         r1 = sb;
    0x000021cc movs r0, 1                                        |         r0 = 1;
    0x000021ce blx 0x1290                                        |         printf_chk ()
    0x000021d2 adds r2, r4, 1                                    |         r2 = r4 + 1;
    0x000021d4 bne 0x21c8                                        |         
                                                                 |     } while (r2 != r4);
    0x000021d6 b 0x2196                                          |     goto label_4;
                                                                 | label_33:
    0x000021d8 ldr.w r2, [pc, 0x4e0]                             |     
    0x000021dc add r2, pc                                        |     r2 = 0x489c;
    0x000021de b 0x20de                                          |     goto label_5;
                                                                 | label_18:
    0x000021e0 ldr.w r1, [pc, 0x4dc]                             |     
    0x000021e4 movs r0, 1                                        |     r0 = 1;
    0x000021e6 add r1, pc                                        |     r1 = 0x48aa;
    0x000021e8 blx 0x1290                                        |     printf_chk ()
    0x000021ec ldr.w r1, [pc, 0x4d4]                             |     
    0x000021f0 movs r0, 1                                        |     r0 = 1;
    0x000021f2 ldr r2, [r4]                                      |     r2 = *(r4);
    0x000021f4 add r1, pc                                        |     r1 = 0x48bc;
    0x000021f6 blx 0x1290                                        |     printf_chk ()
    0x000021fa ldr.w r0, [pc, 0x4cc]                             |     
    0x000021fe add r0, pc                                        |     r0 = 0x48cc;
    0x00002200 blx 0x11dc                                        |     puts (r0);
    0x00002204 b 0x1d76                                          |     goto label_1;
                                                                 | label_31:
    0x00002206 ldr.w r1, [pc, 0x4c4]                             |     
    0x0000220a movs r0, 1                                        |     r0 = 1;
    0x0000220c add r1, pc                                        |     r1 = 0x48de;
    0x0000220e blx 0x1290                                        |     printf_chk ()
    0x00002212 ldr.w r1, [pc, 0x4bc]                             |     
    0x00002216 movs r0, 1                                        |     r0 = 1;
    0x00002218 ldr r2, [r4]                                      |     r2 = *(r4);
    0x0000221a add r1, pc                                        |     r1 = 0x48f0;
    0x0000221c blx 0x1290                                        |     printf_chk ()
    0x00002220 ldr.w r0, [pc, 0x4b0]                             |     
    0x00002224 add r0, pc                                        |     r0 = 0x48fc;
    0x00002226 blx 0x11dc                                        |     puts (r0);
    0x0000222a b 0x1d76                                          |     goto label_1;
                                                                 | label_21:
    0x0000222c ldr.w r1, [pc, 0x4a8]                             |     
    0x00002230 movs r0, 1                                        |     r0 = 1;
    0x00002232 add r1, pc                                        |     
    0x00002234 blx 0x1290                                        |     printf_chk ()
    0x00002238 ldr.w r1, [pc, 0x4a0]                             |     r1 = s;
    0x0000223c movs r0, 1                                        |     r0 = 1;
    0x0000223e ldr r2, [r4]                                      |     r2 = *(r4);
    0x00002240 add r1, pc                                        |     r1 = 0x6b52;
    0x00002242 blx 0x1290                                        |     printf_chk ()
    0x00002246 ldr.w r0, [pc, 0x498]                             |     
    0x0000224a add r0, pc                                        |     r0 = 0x4930;
    0x0000224c blx 0x11dc                                        |     puts (r0);
    0x00002250 b 0x1d76                                          |     goto label_1;
                                                                 | label_34:
    0x00002252 ldr.w r0, [pc, 0x490]                             |     
    0x00002256 add r0, pc                                        |     r0 = 0x4940;
    0x00002258 blx 0x11dc                                        |     puts (r0);
                                                                 |     if (r6 == 0) {
    0x0000225c cbz r6, 0x2288                                    |         goto label_41;
                                                                 |     }
    0x0000225e ldr r6, [sp]                                      |     r6 = *(sp);
                                                                 |     do {
    0x00002260 mov r2, fp                                        |         r2 = fp;
    0x00002262 mov r1, r6                                        |         r1 = r6;
    0x00002264 mov r0, r5                                        |         r0 = r5;
    0x00002266 bl 0x1cb4                                         |         fcn_00001cb4 (r0, r1, r2);
    0x0000226a mov r0, r5                                        |         r0 = r5;
    0x0000226c blx 0x123c                                        |         dbus_message_iter_next ();
    0x00002270 mov r0, r5                                        |         r0 = r5;
    0x00002272 blx 0x12fc                                        |         r0 = dbus_message_iter_get_arg_type ();
                                                                 |         if (r0 == 0) {
    0x00002276 cbz r0, 0x2288                                    |             goto label_41;
                                                                 |         }
    0x00002278 movs r0, 0x2c                                     |         r0 = 0x2c;
    0x0000227a blx 0x1278                                        |         putchar (r0);
    0x0000227e b 0x2260                                          |         
                                                                 |     } while (1);
                                                                 | label_40:
    0x00002280 movs r0, 0x20                                     |     r0 = 0x20;
    0x00002282 blx 0x1278                                        |     putchar (r0);
    0x00002284 vext.8 d30, d26, d6, 7                            |     __asm ("vext.8 d30, d26, d6, 7");
                                                                 | label_41:
    0x00002288 cmp r7, 0                                         |     
                                                                 |     if (r7 <= 0) {
    0x0000228a ble 0x22a0                                        |         goto label_42;
                                                                 |     }
    0x0000228c ldr.w r5, [pc, 0x458]                             |     
    0x00002290 add r5, pc                                        |     r5 = 0x497c;
                                                                 |     do {
    0x00002292 subs r4, 1                                        |         r4--;
    0x00002294 mov r1, r5                                        |         r1 = r5;
    0x00002296 movs r0, 1                                        |         r0 = 1;
    0x00002298 blx 0x1290                                        |         printf_chk ()
    0x0000229c adds r6, r4, 1                                    |         r6 = r4 + 1;
    0x0000229e bne 0x2292                                        |         
                                                                 |     } while (r6 != r4);
                                                                 | label_42:
    0x000022a0 ldr.w r0, [pc, 0x448]                             |     
    0x000022a4 add r0, pc                                        |     r0 = 0x4994;
    0x000022a6 blx 0x11dc                                        |     puts (r0);
    0x000022aa b 0x1d76                                          |     goto label_1;
                                                                 | label_39:
    0x000022ac movs r0, 0xa                                      |     r0 = 0xa;
    0x000022ae ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x000022b0 blx 0x1278                                        |     putchar (r0);
    0x000022b4 cmp r7, 0                                         |     
                                                                 |     if (r7 <= 0) {
    0x000022b6 ble 0x22cc                                        |         goto label_43;
                                                                 |     }
    0x000022b8 ldr.w r5, [pc, 0x434]                             |     
    0x000022bc add r5, pc                                        |     r5 = 0x49b0;
                                                                 |     do {
    0x000022be subs r4, 1                                        |         r4--;
    0x000022c0 mov r1, r5                                        |         r1 = r5;
    0x000022c2 movs r0, 1                                        |         r0 = 1;
    0x000022c4 blx 0x1290                                        |         printf_chk ()
    0x000022c8 adds r3, r4, 1                                    |         r3 = r4 + 1;
    0x000022ca bne 0x22be                                        |         
                                                                 |     } while (r3 != r4);
                                                                 | label_43:
    0x000022cc ldr.w r0, [pc, 0x424]                             |     
    0x000022d0 add r0, pc                                        |     r0 = 0x49c8;
    0x000022d2 blx 0x11dc                                        |     puts (r0);
    0x000022d6 b 0x1d76                                          |     goto label_1;
                                                                 | label_36:
    0x000022d8 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x000022da add r3, r5                                        |     r3 += r5;
    0x000022dc ldrb r3, [r3, -0x1]                               |     r3 = *((r3 - 0x1));
    0x000022e0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000022e2 beq 0x2380                                        |         goto label_44;
                                                                 |     }
                                                                 | label_35:
    0x000022e4 adds r0, r5, 1                                    |     r0 = r5 + 1;
    0x000022e6 blx 0x11d0                                        |     r0 = dbus_malloc ();
    0x000022ea mov r4, r0                                        |     r4 = r0;
    0x000022ec cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000022ee beq.w 0x2606                                      |         goto label_45;
                                                                 |     }
    0x000022f2 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000022f4 ldr.w r1, [sb]                                    |     r1 = *(sb);
    0x000022f8 ldr r5, [r3]                                      |     r5 = *(r3);
    0x000022fa mov r2, r5                                        |     r2 = r5;
    0x000022fc blx 0x1140                                        |     memcpy (r0, r1, r2);
    0x00002300 ldr r1, [pc, 0x3f4]                               |     
    0x00002302 movs r3, 0                                        |     r3 = 0;
    0x00002304 mov r2, r4                                        |     r2 = r4;
    0x00002306 strb r3, [r4, r5]                                 |     *((r4 + r5)) = r3;
    0x00002308 movs r0, 1                                        |     r0 = 1;
    0x0000230a add r1, pc                                        |     r1 = 0x4a06;
    0x0000230c blx 0x1290                                        |     printf_chk ()
    0x00002310 mov r0, r4                                        |     r0 = r4;
    0x00002312 blx 0x13b0                                        |     dbus_free ();
    0x00002316 b 0x1d76                                          |     goto label_1;
                                                                 | label_30:
    0x00002318 ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x0000231a mov r1, r4                                        |     r1 = r4;
    0x0000231c mov r0, r6                                        |     r0 = r6;
    0x0000231e blx 0x1374                                        |     getpeername ();
    0x00002322 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00002324 str r0, [sp, 0xc]                                 |     var_ch = r0;
    0x00002326 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00002328 ble 0x233e                                        |         goto label_46;
                                                                 |     }
    0x0000232a ldr r6, [pc, 0x3d0]                               |     
    0x0000232c mov r4, fp                                        |     r4 = fp;
    0x0000232e add r6, pc                                        |     r6 = 0x4a30;
                                                                 |     do {
    0x00002330 mov r1, r6                                        |         r1 = r6;
    0x00002332 subs r4, 1                                        |         r4--;
    0x00002334 movs r0, 1                                        |         r0 = 1;
    0x00002336 blx 0x1290                                        |         printf_chk ()
    0x0000233a adds r1, r4, 1                                    |         r1 = r4 + 1;
    0x0000233c bne 0x2330                                        |         
                                                                 |     } while (r1 != r4);
                                                                 | label_46:
    0x0000233e ldr r1, [pc, 0x3c0]                               |     
    0x00002340 movs r0, 1                                        |     r0 = 1;
    0x00002342 add r1, pc                                        |     r1 = 0x4a48;
    0x00002344 blx 0x1290                                        |     printf_chk ()
    0x00002348 ldrh r2, [r5]                                     |     r2 = *(r5);
    0x0000234a subs r3, r2, 1                                    |     r3 = r2 - 1;
    0x0000234c cmp r3, 0x1e                                      |     
                                                                 |     if (r3 <= 0x1e) {
    0x0000234e bhi 0x2374                                        |         
                                                                 |         /* switch table (31 cases) at 0x2354 */
    0x00002350 tbb [pc, r3]                                      |         __asm ("tbb [0x00002358]");
                                                                 |     }
    0x00002374 ldr r1, [pc, 0x38c]                               |     
    0x00002376 movs r0, 1                                        |     r0 = 1;
    0x00002378 add r1, pc                                        |     r1 = 0x4a80;
    0x0000237a blx 0x1290                                        |     printf_chk ()
    0x0000237e b 0x202c                                          |     goto label_6;
                                                                 | label_44:
    0x00002380 ldr r1, [pc, 0x384]                               |     
    0x00002382 movs r0, 1                                        |     r0 = 1;
    0x00002384 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x00002386 add r1, pc                                        |     r1 = 0x4a92;
    0x00002388 blx 0x1290                                        |     printf_chk ()
    0x0000238c b 0x1d76                                          |     goto label_1;
    0x0000238e ldr r0, [pc, 0x37c]                               |     
    0x00002390 add r0, pc                                        |     r0 = 0x4aa2;
    0x00002392 blx 0x11dc                                        |     puts (r0);
    0x00002396 b 0x202c                                          |     goto label_6;
    0x00002398 ldr r0, [pc, 0x374]                               |     
    0x0000239a add r4, sp, 0x19c                                 |     r4 += var_19ch;
    0x0000239c add r0, pc                                        |     r0 = 0x4ab0;
    0x0000239e blx 0x11dc                                        |     puts (r0);
    0x000023a2 movs r3, 0x2e                                     |     r3 = 0x2e;
    0x000023a4 mov r2, r4                                        |     r2 = r4;
    0x000023a6 add r1, sp, 0xa4                                  |     r1 += var_a4h;
    0x000023a8 movs r0, 0xa                                      |     r0 = 0xa;
    0x000023aa blx 0x1398                                        |     r0 = inet_ntop ();
                                                                 |     if (r0 == 0) {
    0x000023ae cbz r0, 0x23e2                                    |         goto label_47;
                                                                 |     }
    0x000023b0 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000023b2 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x000023b4 ble 0x23d0                                        |         goto label_48;
                                                                 |     }
    0x000023b6 ldr r1, [pc, 0x35c]                               |     
    0x000023b8 mov sb, fp                                        |     sb = fp;
    0x000023ba add r1, pc                                        |     r1 = 0x4ad4;
    0x000023bc mov r6, r1                                        |     r6 = r1;
                                                                 |     do {
    0x000023be add.w sb, sb, -1                                  |         sb += -1;
    0x000023c2 mov r1, r6                                        |         r1 = r6;
    0x000023c4 movs r0, 1                                        |         r0 = 1;
    0x000023c6 blx 0x1290                                        |         printf_chk ()
    0x000023ca cmp.w sb, -1                                      |         
    0x000023ce bne 0x23be                                        |         
                                                                 |     } while (sb != -1);
                                                                 | label_48:
    0x000023d0 ldrh r3, [r5, 2]                                  |     r3 = *((r5 + 2));
    0x000023d2 mov r2, r4                                        |     r2 = r4;
    0x000023d4 ldr r1, [pc, 0x340]                               |     
    0x000023d6 movs r0, 1                                        |     r0 = 1;
    0x000023d8 rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x000023da uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x000023dc add r1, pc                                        |     r1 = 0x4af8;
    0x000023de blx 0x1290                                        |     printf_chk ()
                                                                 | label_47:
    0x000023e2 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000023e4 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000023e6 bne.w 0x202c                                      |         goto label_6;
                                                                 |     }
    0x000023ea movs r3, 0x2e                                     |     r3 = 0x2e;
    0x000023ec mov r2, r4                                        |     r2 = r4;
    0x000023ee add r1, sp, 0x124                                 |     r1 += var_124h;
    0x000023f0 movs r0, 0xa                                      |     r0 = 0xa;
    0x000023f2 blx 0x1398                                        |     r0 = inet_ntop ();
    0x000023f6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000023f8 beq.w 0x202c                                      |         goto label_6;
                                                                 |     }
    0x000023fc ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000023fe cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00002400 ble 0x2416                                        |         goto label_49;
                                                                 |     }
    0x00002402 ldr r5, [pc, 0x318]                               |     
    0x00002404 ldr r6, [sp, 0x1c]                                |     r6 = var_1ch;
    0x00002406 add r5, pc                                        |     r5 = 0x4b28;
                                                                 |     do {
    0x00002408 subs r6, 1                                        |         r6--;
    0x0000240a mov r1, r5                                        |         r1 = r5;
    0x0000240c movs r0, 1                                        |         r0 = 1;
    0x0000240e blx 0x1290                                        |         printf_chk ()
    0x00002412 adds r3, r6, 1                                    |         r3 = r6 + 1;
    0x00002414 bne 0x2408                                        |         
                                                                 |     } while (r3 != r6);
                                                                 | label_49:
    0x00002416 ldrh.w r3, [sp, 0x11e]                            |     r3 = var_11eh;
    0x0000241a mov r2, r4                                        |     r2 = r4;
    0x0000241c ldr r1, [pc, 0x300]                               |     
    0x0000241e movs r0, 1                                        |     r0 = 1;
    0x00002420 rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x00002422 uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x00002424 add r1, pc                                        |     r1 = 0x4b48;
    0x00002426 blx 0x1290                                        |     printf_chk ()
    0x0000242a b 0x202c                                          |     goto label_6;
    0x0000242c ldr r0, [pc, 0x2f4]                               |     
    0x0000242e add r4, sp, 0x19c                                 |     r4 += var_19ch;
    0x00002430 add r0, pc                                        |     r0 = 0x4b58;
    0x00002432 blx 0x11dc                                        |     puts (r0);
    0x00002436 movs r3, 0x2e                                     |     r3 = 0x2e;
    0x00002438 mov r2, r4                                        |     r2 = r4;
    0x0000243a add r1, sp, 0xa0                                  |     r1 += var_a0h;
    0x0000243c movs r0, 2                                        |     r0 = 2;
    0x0000243e blx 0x1398                                        |     r0 = inet_ntop ();
                                                                 |     if (r0 == 0) {
    0x00002442 cbz r0, 0x2476                                    |         goto label_50;
                                                                 |     }
    0x00002444 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00002446 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00002448 ble 0x2464                                        |         goto label_51;
                                                                 |     }
    0x0000244a ldr r1, [pc, 0x2dc]                               |     
    0x0000244c mov sb, fp                                        |     sb = fp;
    0x0000244e add r1, pc                                        |     r1 = 0x4b7c;
    0x00002450 mov r6, r1                                        |     r6 = r1;
                                                                 |     do {
    0x00002452 add.w sb, sb, -1                                  |         sb += -1;
    0x00002456 mov r1, r6                                        |         r1 = r6;
    0x00002458 movs r0, 1                                        |         r0 = 1;
    0x0000245a blx 0x1290                                        |         printf_chk ()
    0x0000245e cmp.w sb, -1                                      |         
    0x00002462 bne 0x2452                                        |         
                                                                 |     } while (sb != -1);
                                                                 | label_51:
    0x00002464 ldrh r3, [r5, 2]                                  |     r3 = *((r5 + 2));
    0x00002466 mov r2, r4                                        |     r2 = r4;
    0x00002468 ldr r1, [pc, 0x2c0]                               |     
    0x0000246a movs r0, 1                                        |     r0 = 1;
    0x0000246c rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x0000246e uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x00002470 add r1, pc                                        |     r1 = 0x4ba0;
    0x00002472 blx 0x1290                                        |     printf_chk ()
                                                                 | label_50:
    0x00002476 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00002478 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000247a bne.w 0x202c                                      |         goto label_6;
                                                                 |     }
    0x0000247e movs r3, 0x2e                                     |     r3 = 0x2e;
    0x00002480 mov r2, r4                                        |     r2 = r4;
    0x00002482 add r1, sp, 0x120                                 |     r1 += var_120h;
    0x00002484 movs r0, 2                                        |     r0 = 2;
    0x00002486 blx 0x1398                                        |     r0 = inet_ntop ();
    0x0000248a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000248c beq.w 0x202c                                      |         goto label_6;
                                                                 |     }
    0x00002490 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00002492 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00002494 ble 0x24aa                                        |         goto label_52;
                                                                 |     }
    0x00002496 ldr r5, [pc, 0x298]                               |     
    0x00002498 ldr r6, [sp, 0x1c]                                |     r6 = var_1ch;
    0x0000249a add r5, pc                                        |     r5 = 0x4bd0;
                                                                 |     do {
    0x0000249c subs r6, 1                                        |         r6--;
    0x0000249e mov r1, r5                                        |         r1 = r5;
    0x000024a0 movs r0, 1                                        |         r0 = 1;
    0x000024a2 blx 0x1290                                        |         printf_chk ()
    0x000024a6 adds r2, r6, 1                                    |         r2 = r6 + 1;
    0x000024a8 bne 0x249c                                        |         
                                                                 |     } while (r2 != r6);
                                                                 | label_52:
    0x000024aa ldrh.w r3, [sp, 0x11e]                            |     r3 = var_11eh;
    0x000024ae mov r2, r4                                        |     r2 = r4;
    0x000024b0 ldr r1, [pc, 0x280]                               |     
    0x000024b2 movs r0, 1                                        |     r0 = 1;
    0x000024b4 rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x000024b6 uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x000024b8 add r1, pc                                        |     r1 = 0x4bf0;
    0x000024ba blx 0x1290                                        |     printf_chk ()
    0x000024be b 0x202c                                          |     goto label_6;
    0x000024c0 ldr r0, [pc, 0x274]                               |     
    0x000024c2 add r0, pc                                        |     r0 = 0x4bfe;
    0x000024c4 blx 0x11dc                                        |     puts (r0);
    0x000024c8 ldrb r3, [r5, 2]                                  |     r3 = *((r5 + 2));
    0x000024ca cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000024cc beq 0x258a                                        |         goto label_53;
                                                                 |     }
    0x000024ce ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000024d0 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x000024d2 ble.w 0x2612                                      |         goto label_54;
                                                                 |     }
    0x000024d6 ldr r4, [pc, 0x264]                               |     
    0x000024d8 mov r5, fp                                        |     r5 = fp;
    0x000024da add r4, pc                                        |     r4 = 0x4c1c;
                                                                 |     do {
    0x000024dc subs r5, 1                                        |         r5--;
    0x000024de mov r1, r4                                        |         r1 = r4;
    0x000024e0 movs r0, 1                                        |         r0 = 1;
    0x000024e2 blx 0x1290                                        |         printf_chk ()
    0x000024e6 adds r0, r5, 1                                    |         r0 = r5 + 1;
    0x000024e8 bne 0x24dc                                        |         
                                                                 |     } while (r0 != r5);
    0x000024ea ldr r1, [pc, 0x254]                               |     
    0x000024ec add.w r2, sp, 0x9e                                |     r2 += var_9eh;
    0x000024f0 movs r0, 1                                        |     r0 = 1;
    0x000024f2 add r1, pc                                        |     r1 = 0x4c38;
    0x000024f4 blx 0x1290                                        |     printf_chk ()
    0x000024f8 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000024fa ldr r5, [sp, 0x1c]                                |     r5 = var_1ch;
    0x000024fc cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000024fe bne.w 0x202c                                      |         goto label_6;
                                                                 |     }
                                                                 |     do {
    0x00002502 mov r1, r4                                        |         r1 = r4;
    0x00002504 subs r5, 1                                        |         r5--;
    0x00002506 movs r0, 1                                        |         r0 = 1;
    0x00002508 blx 0x1290                                        |         printf_chk ()
    0x0000250c adds r1, r5, 1                                    |         r1 = r5 + 1;
    0x0000250e bne 0x2502                                        |         
                                                                 |     } while (r1 != r5);
    0x00002510 b 0x2628                                          |     goto label_55;
                                                                 | label_28:
    0x00002512 ldr r0, [pc, 0x230]                               |     
    0x00002514 add r0, pc                                        |     r0 = 0x4c5e;
    0x00002516 blx 0x11dc                                        |     puts (r0);
    0x0000251a ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
    0x0000251c and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00002520 b 0x1ffa                                          |     goto label_7;
                                                                 | label_27:
    0x00002522 ldr r0, [pc, 0x224]                               |     
    0x00002524 add r0, pc                                        |     r0 = 0x4c72;
    0x00002526 blx 0x11dc                                        |     puts (r0);
    0x0000252a ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
    0x0000252c and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00002530 b 0x1ff2                                          |     goto label_8;
                                                                 | label_29:
    0x00002532 ldr r0, [pc, 0x218]                               |     
    0x00002534 add r0, pc                                        |     r0 = 0x4c86;
    0x00002536 blx 0x11dc                                        |     puts (r0);
    0x0000253a b 0x2002                                          |     goto label_9;
                                                                 | label_26:
    0x0000253c ldr r0, [pc, 0x210]                               |     
    0x0000253e add r0, pc                                        |     r0 = 0x4c92;
    0x00002540 blx 0x11dc                                        |     puts (r0);
    0x00002544 ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
    0x00002546 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x0000254a b 0x1fea                                          |     goto label_10;
                                                                 | label_25:
    0x0000254c ldr r0, [pc, 0x204]                               |     
    0x0000254e add r0, pc                                        |     r0 = 0x4ca6;
    0x00002550 blx 0x11dc                                        |     puts (r0);
    0x00002554 ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
    0x00002556 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x0000255a b 0x1fe2                                          |     goto label_11;
                                                                 | label_24:
    0x0000255c ldr r0, [pc, 0x1f8]                               |     
    0x0000255e add r0, pc                                        |     r0 = 0x4cba;
    0x00002560 blx 0x11dc                                        |     puts (r0);
    0x00002564 ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
    0x00002566 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x0000256a b 0x1fda                                          |     goto label_12;
                                                                 | label_23:
    0x0000256c ldr r0, [pc, 0x1ec]                               |     
    0x0000256e add r0, pc                                        |     r0 = 0x4cce;
    0x00002570 blx 0x11dc                                        |     puts (r0);
    0x00002574 ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
    0x00002576 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x0000257a b 0x1fd2                                          |     goto label_13;
                                                                 | label_22:
    0x0000257c ldr r1, [pc, 0x1e0]                               |     
    0x0000257e movs r0, 1                                        |     r0 = 1;
    0x00002580 ldr r2, [r5, 0x60]                                |     r2 = *((r5 + 0x60));
    0x00002582 add r1, pc                                        |     r1 = 0x4ce6;
    0x00002584 blx 0x1290                                        |     printf_chk ()
    0x00002588 b 0x1fb8                                          |     goto label_14;
                                                                 | label_53:
    0x0000258a ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0000258c cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x0000258e ble 0x25d4                                        |         goto label_56;
                                                                 |     }
    0x00002590 ldr r4, [pc, 0x1d0]                               |     
    0x00002592 mov r5, fp                                        |     r5 = fp;
    0x00002594 add r4, pc                                        |     r4 = 0x4cfc;
                                                                 |     do {
    0x00002596 subs r5, 1                                        |         r5--;
    0x00002598 mov r1, r4                                        |         r1 = r4;
    0x0000259a movs r0, 1                                        |         r0 = 1;
    0x0000259c blx 0x1290                                        |         printf_chk ()
    0x000025a0 adds r2, r5, 1                                    |         r2 = r5 + 1;
    0x000025a2 bne 0x2596                                        |         
                                                                 |     } while (r2 != r5);
    0x000025a4 ldr.w r2, [sb]                                    |     r2 = *(sb);
    0x000025a8 add.w r5, sp, 0x9f                                |     r5 += var_9fh;
    0x000025ac ldr r1, [pc, 0x1b8]                               |     
    0x000025ae mov r3, r5                                        |     r3 = r5;
    0x000025b0 movs r0, 1                                        |     r0 = 1;
    0x000025b2 subs r2, 3                                        |     r2 -= 3;
    0x000025b4 add r1, pc                                        |     r1 = 0x4d20;
    0x000025b6 blx 0x1290                                        |     printf_chk ()
    0x000025ba ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000025bc ldr r6, [sp, 0x1c]                                |     r6 = var_1ch;
    0x000025be cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000025c0 bne.w 0x202c                                      |         goto label_6;
                                                                 |     }
                                                                 |     do {
    0x000025c4 subs r6, 1                                        |         r6--;
    0x000025c6 mov r1, r4                                        |         r1 = r4;
    0x000025c8 movs r0, 1                                        |         r0 = 1;
    0x000025ca blx 0x1290                                        |         printf_chk ()
    0x000025ce adds r3, r6, 1                                    |         r3 = r6 + 1;
    0x000025d0 bne 0x25c4                                        |         
                                                                 |     } while (r3 != r6);
    0x000025d2 b 0x25f2                                          |     goto label_57;
                                                                 | label_56:
    0x000025d4 ldr.w r2, [sb]                                    |     r2 = *(sb);
    0x000025d8 add.w r5, sp, 0x9f                                |     r5 += var_9fh;
    0x000025dc ldr r1, [pc, 0x18c]                               |     
    0x000025de mov r3, r5                                        |     r3 = r5;
    0x000025e0 movs r0, 1                                        |     r0 = 1;
    0x000025e2 subs r2, 3                                        |     r2 -= 3;
    0x000025e4 add r1, pc                                        |     r1 = 0x4d54;
    0x000025e6 blx 0x1290                                        |     printf_chk ()
    0x000025ea ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000025ec cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000025ee bne.w 0x202c                                      |         goto label_6;
                                                                 |     }
                                                                 | label_57:
    0x000025f2 ldr.w r2, [sb]                                    |     r2 = *(sb);
    0x000025f6 mov r3, r5                                        |     r3 = r5;
    0x000025f8 ldr r1, [pc, 0x174]                               |     
    0x000025fa movs r0, 1                                        |     r0 = 1;
    0x000025fc subs r2, 3                                        |     r2 -= 3;
    0x000025fe add r1, pc                                        |     r1 = 0x4d72;
    0x00002600 blx 0x1290                                        |     printf_chk ()
    0x00002604 b 0x202c                                          |     goto label_6;
                                                                 | label_45:
    0x00002606 ldr r0, [pc, 0x16c]                               |     
    0x00002608 add r0, pc                                        |     r0 = 0x4d82;
    0x0000260a bl 0x2d28                                         |     r0 = fcn_00002d28 (r0);
                                                                 | label_17:
    0x0000260e blx 0x1164                                        |     stack_chk_fail ();
                                                                 | label_54:
    0x00002612 ldr r1, [pc, 0x164]                               |     
    0x00002614 add.w r2, sp, 0x9e                                |     r2 += var_9eh;
    0x00002616 lsls r6, r3, 0xa                                  |     r6 = r3 << 0xa;
    0x00002618 movs r0, 1                                        |     r0 = 1;
    0x0000261a add r1, pc                                        |     r1 = 0x4d98;
    0x0000261c blx 0x1290                                        |     printf_chk ()
    0x00002620 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00002622 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00002624 bne.w 0x202c                                      |         goto label_6;
                                                                 |     }
                                                                 | label_55:
    0x00002628 ldr r1, [pc, 0x150]                               |     
    0x0000262a add.w r2, sp, 0x11e                               |     r2 += var_11eh;
    0x0000262e movs r0, 1                                        |     r0 = 1;
    0x00002630 add r1, pc                                        |     r1 = 0x4db0;
    0x00002632 blx 0x1290                                        |     printf_chk ()
    0x00002636 b 0x202c                                          |     goto label_6;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/dbus-send @ 0x2780 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00002780 ()                                  | void fcn_00002780 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_4h_2;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_4ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00002780 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00002784 mov sl, r2                                    |     sl = r2;
    0x00002786 ldr r2, [pc, 0x1c8]                           |     
    0x00002788 mov sb, r3                                    |     sb = r3;
    0x0000278a sub sp, 0x50                                  |     
    0x0000278c mov r4, r0                                    |     r4 = r0;
    0x0000278e ldr r3, [pc, 0x1c4]                           |     r3 = *(0x2956);
    0x00002790 mov r6, r1                                    |     r6 = r1;
    0x00002792 add r2, pc                                    |     r2 = 0x50e8;
    0x00002794 ldr.w r8, [pc, 0x1c0]                         |     r8 = *(0x00002958);
    0x00002798 ldr r3, [r2, r3]                              |     
    0x0000279a add r8, pc                                    |     r8 += pc;
    0x0000279c ldr r3, [r3]                                  |     r3 = *(0x50e8);
    0x0000279e str r3, [sp, 0x4c]                            |     var_4ch = r3;
    0x000027a0 mov.w r3, 0                                   |     r3 = 0;
    0x000027a4 blx 0x13bc                                    |     r0 = dbus_message_get_type ();
    0x000027a8 mov r5, r0                                    |     r5 = r0;
    0x000027aa mov r0, r4                                    |     r0 = r4;
    0x000027ac blx 0x10ec                                    |     r0 = dbus_message_get_sender ();
    0x000027b0 mov r7, r0                                    |     r7 = r0;
    0x000027b2 mov r0, r4                                    |     r0 = r4;
    0x000027b4 blx 0x1134                                    |     dbus_message_get_destination ();
                                                             |     if (r6 == 0) {
    0x000027b8 cbnz r6, 0x2802                               |         
    0x000027ba orrs.w r3, sl, sb                             |         r3 = sl | sb;
    0x000027be add.w r5, r5, -1                              |         r5 += -1;
                                                             |         if (r3 == sl) {
    0x000027c2 beq 0x283c                                    |             goto label_8;
                                                             |         }
    0x000027c4 cmp r5, 3                                     |         
                                                             |         if (r5 > 3) {
    0x000027c6 bhi.w 0x2946                                  |             goto label_9;
                                                             |         }
                                                             |         /* switch table (4 cases) at 0x27ce */
    0x000027ca tbb [pc, r5]                                  |         __asm ("tbb [0x000027d0]");
                                                             |     }
                                                             | label_7:
    0x00002802 mov r0, r4                                    |     r0 = r4;
    0x00002804 add r4, sp, 0x14                              |     r4 += var_14h;
    0x00002806 mov r1, r4                                    |     r1 = r4;
    0x00002808 blx 0x1380                                    |     dbus_message_iter_init ();
    0x0000280c movs r2, 1                                    |     r2 = 1;
    0x0000280e mov r0, r4                                    |     r0 = r4;
    0x00002810 mov r1, r6                                    |     r1 = r6;
    0x00002812 bl 0x1cb4                                     |     fcn_00001cb4 (r0, r1, r2);
    0x00002816 ldr r3, [pc, 0x148]                           |     r3 = *(0x2962);
    0x00002818 ldr.w r3, [r8, r3]                            |     r3 = *((r8 + r3));
    0x0000281c ldr r0, [r3]                                  |     r0 = *(0x2962);
    0x0000281e blx 0x111c                                    |     fflush (r0);
    0x00002822 ldr r2, [pc, 0x140]                           |     
    0x00002824 ldr r3, [pc, 0x12c]                           |     r3 = *(0x2954);
    0x00002826 add r2, pc                                    |     r2 = 0x5190;
    0x00002828 ldr r3, [r2, r3]                              |     r3 = *(0x5190);
    0x0000282a ldr r2, [r3]                                  |     r2 = *(0x5190);
    0x0000282c ldr r3, [sp, 0x4c]                            |     r3 = var_4ch;
    0x0000282e eors r2, r3                                   |     r2 ^= r3;
    0x00002830 mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r2 != r3) {
    0x00002834 bne 0x2930                                    |         goto label_10;
                                                             |     }
    0x00002836 add sp, 0x50                                  |     
    0x00002838 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_8:
    0x0000283c cmp r5, 3                                     |     
                                                             |     if (r5 > 3) {
    0x0000283e bhi 0x293c                                    |         goto label_11;
                                                             |     }
                                                             |     /* switch table (4 cases) at 0x2844 */
    0x00002840 tbb [pc, r5]                                  |     __asm ("tbb [0x00002848]");
    0x00002848 ldr r2, [pc, 0x11c]                           |     
    0x0000284a add r2, pc                                    |     r2 = 0x51b6;
    0x0000284c cmp r7, 0                                     |     
    0x0000284e beq 0x28c4                                    |     
                                                             |     while (1) {
                                                             | label_0:
    0x00002850 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00002852 beq 0x292a                                    |             goto label_12;
                                                             |         }
                                                             | label_6:
    0x00002854 ldr r1, [pc, 0x114]                           |         
    0x00002856 mov r3, sl                                    |         r3 = sl;
    0x00002858 strd r7, r0, [sp, 4]                          |         __asm ("strd r7, r0, [var_4h]");
    0x0000285c movs r0, 1                                    |         r0 = 1;
    0x0000285e str.w sb, [sp]                                |         __asm ("str.w sb, [sp]");
    0x00002862 add r1, pc                                    |         r1 = 0x51d2;
    0x00002864 blx 0x1290                                    |         printf_chk ()
                                                             | label_2:
    0x00002868 cmp r5, 3                                     |         
                                                             |         if (r5 > 3) {
    0x0000286a bhi 0x2934                                    |             goto label_13;
                                                             |         }
    0x0000286c adr r3, 8                                     |         r3 = 8;
    0x0000286e ldr.w r5, [r3, r5, lsl 2]                     |         offset_0 = r5 << 2;
                                                             |         r5 = *((r3 + offset_0));
    0x00002872 add r3, r5                                    |         r3 += r5;
                                                             |         /* switch table (4 cases) at 0x2878 */
    0x00002874 bx r3                                         |         return uint32_t (*r3)() ();
                                                             | label_1:
    0x000028c4 ldr r7, [pc, 0xb0]                            |         
    0x000028c6 add r7, pc                                    |         r7 = 0x5242;
    0x000028c8 b 0x2850                                      |         
                                                             |     }
    0x000028ca ldr r2, [pc, 0xb0]                            |     
    0x000028cc add r2, pc                                    |     r2 = 0x524e;
    0x000028ce cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x000028d0 bne 0x2850                                    |         goto label_0;
                                                             |     }
    0x000028d2 b 0x28c4                                      |     goto label_1;
    0x000028d4 ldr r2, [pc, 0xa8]                            |     
    0x000028d6 add r2, pc                                    |     r2 = 0x525a;
    0x000028d8 cbz r7, 0x28ec                                |     
                                                             |     while (1) {
                                                             |         if (r0 == 0) {
                                                             | label_3:
    0x000028da cbz r0, 0x2924                                |             goto label_14;
                                                             |         }
                                                             | label_5:
    0x000028dc ldr r1, [pc, 0xa4]                            |         
    0x000028de mov r3, r7                                    |         r3 = r7;
    0x000028e0 str r0, [sp]                                  |         *(sp) = r0;
    0x000028e2 movs r0, 1                                    |         r0 = 1;
    0x000028e4 add r1, pc                                    |         r1 = 0x526c;
    0x000028e6 blx 0x1290                                    |         printf_chk ()
    0x000028ea b 0x2868                                      |         goto label_2;
                                                             | label_4:
    0x000028ec ldr r7, [pc, 0x98]                            |         
    0x000028ee add r7, pc                                    |         r7 = 0x527a;
    0x000028f0 b 0x28da                                      |         
                                                             |     }
    0x000028f2 ldr r2, [pc, 0x98]                            |     
    0x000028f4 add r2, pc                                    |     r2 = 0x5286;
    0x000028f6 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x000028f8 bne 0x28da                                    |         goto label_3;
                                                             |     }
    0x000028fa b 0x28ec                                      |     goto label_4;
    0x000028fc ldr r2, [pc, 0x90]                            |     
    0x000028fe add r2, pc                                    |     r2 = 0x5292;
    0x00002900 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00002902 bne 0x28da                                    |         goto label_3;
                                                             |     }
    0x00002904 b 0x28ec                                      |     goto label_4;
    0x00002906 ldr r2, [pc, 0x8c]                            |     
    0x00002908 add r2, pc                                    |     r2 = 0x52a2;
    0x0000290a cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x0000290c bne 0x28da                                    |         goto label_3;
                                                             |     }
    0x0000290e b 0x28ec                                      |     goto label_4;
    0x00002910 ldr r2, [pc, 0x84]                            |     
    0x00002912 add r2, pc                                    |     r2 = 0x52ae;
    0x00002914 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00002916 bne 0x2850                                    |         goto label_0;
                                                             |     }
    0x00002918 b 0x28c4                                      |     goto label_1;
    0x0000291a ldr r2, [pc, 0x80]                            |     
    0x0000291c add r2, pc                                    |     r2 = 0x52be;
    0x0000291e cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00002920 bne 0x2850                                    |         goto label_0;
                                                             |     }
    0x00002922 b 0x28c4                                      |     goto label_1;
                                                             | label_14:
    0x00002924 ldr r0, [pc, 0x78]                            |     
    0x00002926 add r0, pc                                    |     r0 = 0x52ca;
    0x00002928 b 0x28dc                                      |     goto label_5;
                                                             | label_12:
    0x0000292a ldr r0, [pc, 0x78]                            |     
    0x0000292c add r0, pc                                    |     r0 = 0x52d6;
    0x0000292e b 0x2854                                      |     goto label_6;
                                                             | label_10:
    0x00002930 blx 0x1164                                    |     stack_chk_fail ();
                                                             | label_13:
    0x00002934 movs r0, 0xa                                  |     r0 = 0xa;
    0x00002936 blx 0x1278                                    |     putchar (r0);
    0x0000293a b 0x2802                                      |     goto label_7;
                                                             | label_11:
    0x0000293c ldr r2, [pc, 0x68]                            |     
    0x0000293e add r2, pc                                    |     r2 = 0x52ea;
    0x00002940 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00002942 bne 0x28da                                    |         goto label_3;
                                                             |     }
    0x00002944 b 0x28ec                                      |     goto label_4;
                                                             | label_9:
    0x00002946 ldr r2, [pc, 0x64]                            |     
    0x00002948 add r2, pc                                    |     r2 = 0x52fa;
    0x0000294a cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x0000294c bne 0x2850                                    |         goto label_0;
                                                             |     }
    0x0000294e b 0x28c4                                      |     goto label_1;
                                                             | }

[*] Function printf used 59 times dbus-send