[*] Binary protection state of dbus-send

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


[*] Function fprintf 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 @ 0x1bec */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00001bec ()                  | void fcn_00001bec (int16_t arg_ch, int16_t arg_10h, char * s2, int16_t arg_18h, int16_t arg_1ch, int16_t arg_20h, void * ptr, int16_t arg_28h, int16_t arg_2ch, int16_t arg_30h, int16_t arg_34h, int16_t arg_38h, int16_t arg_80h, int16_t arg_b8h, int16_t arg_f0h, int16_t arg_f1h, int16_t arg_f4h, int16_t arg_f5h, int16_t arg_f6h, int16_t arg_f7h, int16_t arg_f8h) {
                                             |     int16_t var_0h;
                                             | label_0:
    0x00001672 ldr r3, [sp, 0xc]             |     r3 = *(arg_ch);
    0x00001674 cmp r3, fp                    |     
                                             |     if (r3 <= fp) {
    0x00001676 ble.w 0x19d0                  |         goto label_10;
                                             |     }
    0x0000167a ldr r3, [sp, 0x10]            |     r3 = *(arg_10h);
    0x0000167c movs r1, 0x3a                 |     r1 = 0x3a;
    0x0000167e ldr.w r4, [r3, fp, lsl 2]     |     offset_0 = fp << 2;
                                             |     r4 = *((r3 + offset_0));
    0x00001682 mov r0, r4                    |     r0 = r4;
    0x00001684 blx 0x1224                    |     r0 = strchr (r0, r1);
    0x00001688 mov r6, r0                    |     r6 = r0;
    0x0000168a cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0000168c beq.w 0x1a24                  |         goto label_11;
                                             |     }
    0x00001690 mov sb, r0                    |     sb = r0;
    0x00001692 movs r3, 0                    |     r3 = 0;
    0x00001694 ldr r1, [sp, 0x14]            |     r1 = *(s2);
    0x00001696 mov r0, r4                    |     r0 = r4;
    0x00001698 strb r3, [sb], 1              |     *(sb) = r3;
                                             |     sb++;
    0x0000169c blx 0x10c8                    |     r0 = strcmp (r0, r1);
    0x000016a0 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000016a2 beq.w 0x18c4                  |         goto label_12;
                                             |     }
    0x000016a6 ldr.w r1, [pc, 0x4a0]         |     
    0x000016aa mov r0, r4                    |     r0 = r4;
    0x000016ac add r1, pc                    |     r1 = 0x31fa;
    0x000016ae blx 0x10c8                    |     r0 = strcmp (r0, r1);
    0x000016b2 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000016b4 beq.w 0x1934                  |         goto label_13;
                                             |     }
    0x000016b8 ldr.w r1, [pc, 0x490]         |     
    0x000016bc mov r0, r4                    |     r0 = r4;
    0x000016be add r1, pc                    |     r1 = 0x320e;
    0x000016c0 blx 0x10c8                    |     r0 = strcmp (r0, r1);
    0x000016c4 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x000016c6 bne.w 0x1938                  |         goto label_14;
                                             |     }
    0x000016ca movs r4, 0x65                 |     r4 = 0x65;
                                             | label_1:
    0x000016cc movs r1, 0x3a                 |     r1 = 0x3a;
    0x000016ce mov r0, sb                    |     r0 = sb;
    0x000016d0 blx 0x1224                    |     r0 = strchr (r0, r1);
    0x000016d4 mov r5, r0                    |     r5 = r0;
    0x000016d6 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000016d8 beq.w 0x1a42                  |         goto label_15;
                                             |     }
    0x000016dc movs r3, 0                    |     r3 = 0;
    0x000016de strb r3, [r5], 1              |     *(r5) = r3;
                                             |     r5++;
    0x000016e2 ldrb r3, [r6, 1]              |     r3 = *((r6 + 1));
    0x000016e4 cmp r3, 0                     |     
                                             |     if (r3 != 0) {
    0x000016e6 bne.w 0x18c8                  |         goto label_16;
                                             |     }
    0x000016ea cmp r4, 0x65                  |     
    0x000016ec mov.w r8, 0x73                |     r8 = 0x73;
                                             |     if (r4 != 0x65) {
    0x000016f0 bne.w 0x18d6                  |         goto label_17;
                                             |     }
                                             | label_2:
    0x000016f4 movs r1, 0x3a                 |     r1 = 0x3a;
    0x000016f6 mov r0, r5                    |     r0 = r5;
    0x000016f8 blx 0x1224                    |     r0 = strchr (r0, r1);
    0x000016fc mov r4, r0                    |     r4 = r0;
    0x000016fe cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00001700 beq.w 0x1aa0                  |         goto label_18;
                                             |     }
    0x00001704 mov r0, r5                    |     r0 = r5;
    0x00001706 movs r5, 0                    |     r5 = 0;
    0x00001708 strb r5, [r4], 1              |     *(r4) = r5;
                                             |     r4++;
    0x0000170c add r6, sp, 0x80              |     r6 += arg_80h;
    0x0000170e bl 0x29e8                     |     fcn_000029e8 (r0);
    0x00001712 movs r3, 0x7b                 |     r3 = 0x7b;
    0x00001714 mov sb, r0                    |     sb = r0;
    0x00001716 strb.w r3, [sp, 0xf4]         |     *(arg_f4h) = r3;
    0x0000171a movs r3, 0x7d                 |     r3 = 0x7d;
    0x0000171c strb.w r0, [sp, 0xf6]         |     *(arg_f6h) = r0;
    0x00001720 add r2, sp, 0xf4              |     r2 += arg_f4h;
    0x00001722 strb.w r3, [sp, 0xf7]         |     *(arg_f7h) = r3;
    0x00001726 movs r1, 0x61                 |     r1 = 0x61;
    0x00001728 mov r3, r6                    |     r3 = r6;
    0x0000172a mov r0, sl                    |     r0 = sl;
    0x0000172c strb.w r5, [sp, 0xf8]         |     *(arg_f8h) = r5;
                                             | label_9:
    0x00001730 strb.w r8, [sp, 0xf5]         |     *(arg_f5h) = r8;
    0x00001734 blx 0x1248                    |     r0 = dbus_message_iter_open_container ();
    0x00001738 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0000173a beq.w 0x1af4                  |         goto label_19;
                                             |     }
    0x0000173e mov r0, r4                    |     r0 = r4;
    0x00001740 blx 0x1158                    |     strdup (r0);
    0x00001744 str r0, [sp, 0x24]            |     *(ptr) = r0;
    0x00001746 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00001748 beq.w 0x1af4                  |         goto label_19;
                                             |     }
    0x0000174c ldr.w r1, [pc, 0x400]         |     
    0x00001750 add r1, pc                    |     r1 = 0x32a4;
    0x00001752 blx 0x12f0                    |     r0 = strtok (r0, r1);
    0x00001756 mov r4, r0                    |     r4 = r0;
                                             |     if (r0 == 0) {
    0x00001758 cbz r0, 0x17ac                |         goto label_20;
                                             |     }
    0x0000175a add r5, sp, 0xb8              |     r5 += arg_b8h;
                                             |     do {
    0x0000175c mov r3, r5                    |         r3 = r5;
    0x0000175e movs r2, 0                    |         r2 = 0;
    0x00001760 movs r1, 0x65                 |         r1 = 0x65;
    0x00001762 mov r0, r6                    |         r0 = r6;
    0x00001764 blx 0x1248                    |         r0 = dbus_message_iter_open_container ();
    0x00001768 cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x0000176a beq.w 0x1adc                  |             goto label_21;
                                             |         }
    0x0000176e mov r2, r4                    |         r2 = r4;
    0x00001770 mov r0, r5                    |         r0 = r5;
    0x00001772 mov r1, r8                    |         r1 = r8;
    0x00001774 bl 0x2b38                     |         fcn_00002b38 (r0, r1, r2);
    0x00001778 mov r1, r7                    |         r1 = r7;
    0x0000177a movs r0, 0                    |         r0 = 0;
    0x0000177c blx 0x12f0                    |         r0 = strtok (r0, r1);
    0x00001780 mov r2, r0                    |         r2 = r0;
    0x00001782 cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x00001784 beq.w 0x1ad0                  |             goto label_22;
                                             |         }
    0x00001788 mov r1, sb                    |         r1 = sb;
    0x0000178a mov r0, r5                    |         r0 = r5;
    0x0000178c bl 0x2b38                     |         fcn_00002b38 (r0, r1, r2);
    0x00001790 mov r1, r5                    |         r1 = r5;
    0x00001792 mov r0, r6                    |         r0 = r6;
    0x00001794 blx 0x1188                    |         r0 = dbus_message_iter_close_container ();
    0x00001798 cmp r0, 0                     |         
                                             |         if (r0 == 0) {
    0x0000179a beq.w 0x1ab2                  |             goto label_23;
                                             |         }
    0x0000179e mov r1, r7                    |         r1 = r7;
    0x000017a0 movs r0, 0                    |         r0 = 0;
    0x000017a2 blx 0x12f0                    |         r0 = strtok (r0, r1);
    0x000017a6 mov r4, r0                    |         r4 = r0;
    0x000017a8 cmp r0, 0                     |         
    0x000017aa bne 0x175c                    |         
                                             |     } while (r0 != 0);
                                             | label_20:
    0x000017ac ldr r0, [sp, 0x24]            |     r0 = *(ptr);
    0x000017ae blx 0x1128                    |     free (r0);
                                             | label_3:
    0x000017b2 mov r1, r6                    |     r1 = r6;
    0x000017b4 mov r0, sl                    |     r0 = sl;
    0x000017b6 blx 0x1188                    |     r0 = dbus_message_iter_close_container ();
    0x000017ba cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000017bc beq.w 0x1af4                  |         goto label_19;
                                             |     }
                                             | label_4:
    0x000017c0 add.w fp, fp, 1               |     
    0x000017c4 b 0x1672                      |     goto label_0;
                                             | label_12:
    0x000018c4 movs r4, 0x76                 |     r4 = 0x76;
    0x000018c6 b 0x16cc                      |     goto label_1;
                                             | label_16:
    0x000018c8 mov r0, sb                    |     r0 = sb;
    0x000018ca bl 0x29e8                     |     fcn_000029e8 (r0);
    0x000018ce cmp r4, 0x65                  |     
    0x000018d0 mov r8, r0                    |     r8 = r0;
                                             |     if (r4 == 0x65) {
    0x000018d2 beq.w 0x16f4                  |         goto label_2;
                                             |     }
                                             | label_17:
    0x000018d6 movs r3, 0                    |     r3 = 0;
    0x000018d8 add r6, sp, 0x80              |     r6 += arg_80h;
    0x000018da strb.w r3, [sp, 0xf1]         |     *(arg_f1h) = r3;
    0x000018de add r2, sp, 0xf0              |     r2 += arg_f0h;
    0x000018e0 mov r3, r6                    |     r3 = r6;
    0x000018e2 mov r1, r4                    |     r1 = r4;
    0x000018e4 mov r0, sl                    |     r0 = sl;
    0x000018e6 strb.w r8, [sp, 0xf0]         |     *(arg_f0h) = r8;
    0x000018ea blx 0x1248                    |     r0 = dbus_message_iter_open_container ();
    0x000018ee cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000018f0 beq.w 0x1af4                  |         goto label_19;
                                             |     }
    0x000018f4 cmp r4, 0x61                  |     
                                             |     if (r4 != 0x61) {
    0x000018f6 bne.w 0x1ae8                  |         goto label_24;
                                             |     }
    0x000018fa mov r0, r5                    |     r0 = r5;
    0x000018fc blx 0x1158                    |     r0 = strdup (r0);
    0x00001900 mov r5, r0                    |     r5 = r0;
    0x00001902 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00001904 beq.w 0x1af4                  |         goto label_19;
                                             |     }
    0x00001908 ldr r4, [pc, 0x260]           |     
    0x0000190a add r4, pc                    |     r4 = 0x347a;
    0x0000190c mov r1, r4                    |     r1 = r4;
    0x0000190e blx 0x12f0                    |     r0 = strtok (r0, r1);
    0x00001912 mov r2, r0                    |     r2 = r0;
                                             |     if (r0 == 0) {
    0x00001914 cbz r0, 0x192c                |         goto label_25;
                                             |     }
                                             |     do {
    0x00001916 mov r0, r6                    |         r0 = r6;
    0x00001918 mov r1, r8                    |         r1 = r8;
    0x0000191a bl 0x2b38                     |         fcn_00002b38 (r0, r1, r2);
    0x0000191e mov r1, r4                    |         r1 = r4;
    0x00001920 movs r0, 0                    |         r0 = 0;
    0x00001922 blx 0x12f0                    |         r0 = strtok (r0, r1);
    0x00001926 mov r2, r0                    |         r2 = r0;
    0x00001928 cmp r0, 0                     |         
    0x0000192a bne 0x1916                    |         
                                             |     } while (r0 != 0);
                                             | label_25:
    0x0000192c mov r0, r5                    |     r0 = r5;
    0x0000192e blx 0x1128                    |     free (r0);
    0x00001932 b 0x17b2                      |     goto label_3;
                                             | label_13:
    0x00001934 movs r4, 0x61                 |     r4 = 0x61;
    0x00001936 b 0x16cc                      |     goto label_1;
                                             | label_14:
    0x00001938 ldrb r3, [r4]                 |     r3 = *(r4);
                                             |     if (r3 != 0) {
    0x0000193a cbnz r3, 0x1948               |         goto label_26;
                                             |     }
    0x0000193c movs r1, 0x73                 |     r1 = 0x73;
                                             |     do {
    0x0000193e mov r2, sb                    |         r2 = sb;
    0x00001940 mov r0, sl                    |         r0 = sl;
    0x00001942 bl 0x2b38                     |         fcn_00002b38 (r0, r1, r2);
    0x00001946 b 0x17c0                      |         goto label_4;
                                             | label_26:
    0x00001948 mov r0, r4                    |         r0 = r4;
    0x0000194a bl 0x29e8                     |         r0 = fcn_000029e8 (r0);
    0x0000194e mov r1, r0                    |         r1 = r0;
    0x00001950 b 0x193e                      |         
                                             |     } while (1);
                                             | label_10:
    0x000019d0 ldr r3, [sp, 0x18]            |     r3 = *(arg_18h);
    0x000019d2 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x000019d4 beq 0x1a80                    |         goto label_27;
                                             |     }
    0x000019d6 ldr r5, [sp, 0x2c]            |     r5 = *(arg_2ch);
    0x000019d8 mov r0, r5                    |     r0 = r5;
    0x000019da blx 0x12d8                    |     dbus_error_init ();
    0x000019de ldr r2, [sp, 0x30]            |     r2 = *(arg_30h);
    0x000019e0 mov r3, r5                    |     r3 = r5;
    0x000019e2 ldr r1, [sp, 0x28]            |     r1 = *(arg_28h);
    0x000019e4 ldr r0, [sp, 0x34]            |     r0 = *(arg_34h);
    0x000019e6 blx 0x11c4                    |     r0 = dbus_connection_send_with_reply_and_block ();
    0x000019ea mov r4, r0                    |     r4 = r0;
    0x000019ec mov r0, r5                    |     r0 = r5;
    0x000019ee blx 0x1314                    |     r0 = dbus_error_is_set ();
    0x000019f2 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x000019f4 bne 0x1a94                    |         goto label_28;
                                             |     }
                                             |     if (r4 != 0) {
    0x000019f6 cbz r4, 0x1a12                |         
    0x000019f8 add r1, sp, 0xb8              |         r1 += arg_b8h;
    0x000019fa add r0, sp, 0x80              |         r0 += arg_80h;
    0x000019fc blx 0x138c                    |         dbus_get_real_time ();
    0x00001a00 mov r0, r4                    |         r0 = r4;
    0x00001a02 ldr r3, [sp, 0xb8]            |         r3 = *(arg_b8h);
    0x00001a04 ldr r1, [sp, 0x20]            |         r1 = *(arg_20h);
    0x00001a06 ldr r2, [sp, 0x80]            |         r2 = *(arg_80h);
    0x00001a08 bl 0x2780                     |         fcn_00002780 (r0, r1, r2, r3);
    0x00001a0c mov r0, r4                    |         r0 = r4;
    0x00001a0e blx 0x117c                    |         dbus_message_unref ();
                                             |     }
                                             | label_5:
    0x00001a12 ldr r0, [sp, 0x28]            |     r0 = *(arg_28h);
    0x00001a14 blx 0x117c                    |     dbus_message_unref ();
    0x00001a16 subs.w r8, r2, sp, lsl 4      |     r8 = r2 - (sp << 4);
    0x00001a1a blx 0x10a4                    |     dbus_connection_unref ();
    0x00001a1e movs r0, 0                    |     r0 = 0;
    0x00001a20 blx 0x11f4                    |     exit (r0);
                                             | label_11:
    0x00001a24 ldr r3, [sp, 0x10]            |     r3 = *(arg_10h);
    0x00001a26 ldr r2, [pc, 0x158]           |     
    0x00001a28 ldr r1, [pc, 0xfc]            |     r1 = *(0x1b28);
    0x00001a2a ldr r3, [r3]                  |     r3 = *(r3);
    0x00001a2c add r2, pc                    |     r2 = 0x35b2;
                                             | label_6:
    0x00001a2e ldr r0, [sp, 0x1c]            |     r0 = *(arg_1ch);
    0x00001a30 ldr r0, [r0, r1]              |     r0 = *((r0 + r1));
    0x00001a32 str r4, [sp]                  |     *(sp) = r4;
                                             |     do {
                                             | label_7:
    0x00001a34 ldr r0, [r0]                  |         r0 = *(r0);
    0x00001a36 movs r1, 1                    |         r1 = 1;
    0x00001a38 blx 0x12c0                    |         fprintf_chk ()
    0x00001a3c movs r0, 1                    |         r0 = 1;
    0x00001a3e blx 0x11f4                    |         exit (r0);
                                             | label_15:
    0x00001a42 ldr r1, [pc, 0xe4]            |         r1 = *(0x1b2a);
    0x00001a44 ldr r3, [sp, 0x10]            |         r3 = *(arg_10h);
    0x00001a46 ldr r2, [pc, 0x13c]           |         
    0x00001a48 ldr r0, [sp, 0x1c]            |         r0 = *(arg_1ch);
    0x00001a4a ldr r3, [r3]                  |         r3 = *(r3);
    0x00001a4c add r2, pc                    |         r2 = 0x35d6;
    0x00001a4e ldr r0, [r0, r1]              |         r0 = *((r0 + r1));
    0x00001a50 str.w sb, [sp]                |         __asm ("str.w sb, [sp]");
    0x00001a54 b 0x1a34                      |         
                                             |     } while (1);
                                             | label_27:
    0x00001a80 ldr r4, [sp, 0x34]            |     r4 = *(arg_34h);
    0x00001a82 ldr r2, [sp, 0x18]            |     r2 = *(arg_18h);
    0x00001a84 ldr r1, [sp, 0x28]            |     r1 = *(arg_28h);
    0x00001a86 mov r0, r4                    |     r0 = r4;
    0x00001a88 blx 0x1350                    |     dbus_connection_send ();
    0x00001a8c mov r0, r4                    |     r0 = r4;
    0x00001a8e blx 0x1104                    |     dbus_connection_flush ();
    0x00001a92 b 0x1a12                      |     goto label_5;
                                             | label_28:
    0x00001a94 ldr r2, [pc, 0x100]           |     
    0x00001a96 ldr r1, [pc, 0x90]            |     r1 = *(0x1b2a);
    0x00001a98 ldrd r3, r4, [sp, 0x38]       |     __asm ("ldrd r3, r4, [arg_38h]");
    0x00001a9c add r2, pc                    |     r2 = 0x3638;
    0x00001a9e b 0x1a2e                      |     goto label_6;
                                             | label_18:
    0x00001aa0 ldr r1, [pc, 0x84]            |     r1 = *(0x1b28);
    0x00001aa2 ldr r3, [sp, 0x10]            |     r3 = *(arg_10h);
    0x00001aa4 ldr r2, [pc, 0xf4]            |     
    0x00001aa6 ldr r0, [sp, 0x1c]            |     r0 = *(arg_1ch);
    0x00001aa8 ldr r3, [r3]                  |     r3 = *(r3);
    0x00001aaa add r2, pc                    |     r2 = 0x364a;
    0x00001aac ldr r0, [r0, r1]              |     r0 = *((r0 + r1));
    0x00001aae str r5, [sp]                  |     *(sp) = r5;
    0x00001ab0 b 0x1a34                      |     goto label_7;
                                             | label_23:
    0x00001ab2 ldr r3, [pc, 0xec]            |     
    0x00001ab4 ldr r2, [pc, 0xec]            |     
    0x00001ab6 ldr r0, [pc, 0x70]            |     r0 = *(0x1b2a);
    0x00001ab8 add r3, pc                    |     r3 = 0x365e;
    0x00001aba add r2, pc                    |     r2 = 0x3662;
                                             |     do {
                                             | label_8:
    0x00001abc ldr r4, [sp, 0x1c]            |         r4 = *(arg_1ch);
    0x00001abe movs r1, 1                    |         r1 = 1;
    0x00001ac0 ldr r3, [r3]                  |         r3 = *(r3);
    0x00001ac2 ldr r0, [r4, r0]              |         r0 = *((r4 + r0));
    0x00001ac4 ldr r0, [r0]                  |         r0 = *(r0);
    0x00001ac6 blx 0x12c0                    |         fprintf_chk ()
    0x00001aca movs r0, 1                    |         r0 = 1;
    0x00001acc blx 0x11f4                    |         exit (r0);
                                             | label_22:
    0x00001ad0 ldr r3, [pc, 0xd4]            |         
    0x00001ad2 ldr r2, [pc, 0xd8]            |         
    0x00001ad4 ldr r0, [pc, 0x50]            |         r0 = *(0x1b28);
    0x00001ad6 add r3, pc                    |         r3 = 0x3682;
    0x00001ad8 add r2, pc                    |         r2 = 0x368a;
    0x00001ada b 0x1abc                      |         
                                             |     } while (1);
                                             | label_21:
    0x00001adc ldr r3, [pc, 0xd0]            |     
    0x00001ade ldr r2, [pc, 0xd4]            |     
    0x00001ae0 ldr r0, [pc, 0x44]            |     r0 = *(0x1b28);
    0x00001ae2 add r3, pc                    |     r3 = 0x3696;
    0x00001ae4 add r2, pc                    |     r2 = 0x369e;
    0x00001ae6 b 0x1abc                      |     goto label_8;
                                             | label_24:
    0x00001ae8 mov r2, r5                    |     r2 = r5;
    0x00001aea mov r1, r8                    |     r1 = r8;
    0x00001aec mov r0, r6                    |     r0 = r6;
    0x00001aee bl 0x2b38                     |     fcn_00002b38 (r0, r1, r2);
    0x00001af2 b 0x17b2                      |     goto label_3;
                                             | label_19:
    0x00001af4 bl 0x2b00                     |     fcn_00002b00 ();
    0x00001af8 cmp r2, 0xa0                  |     
    0x00001afa movs r1, r0                   |     r1 = r0;
    0x00001afc cmp r2, 0x96                  |     
    0x00001afe movs r1, r0                   |     r1 = r0;
    0x00001b00 cmp r3, 0xf0                  |     
    0x00001b02 movs r1, r0                   |     r1 = r0;
    0x00001b04 lsls r0, r7, 4                |     r0 = r7 << 4;
    0x00001b06 movs r0, r0                   |     
    0x00001b08 movs r1, 0xcc                 |     r1 = 0xcc;
    0x00001b0a movs r0, r0                   |     
    0x00001b0c movs r1, 0xba                 |     r1 = 0xba;
    0x00001b0e movs r0, r0                   |     
    0x00001b10 movs r1, 0xb4                 |     r1 = 0xb4;
    0x00001b12 movs r0, r0                   |     
    0x00001b14 movs r1, 0xaa                 |     r1 = 0xaa;
    0x00001b16 movs r0, r0                   |     
    0x00001b18 movs r1, 0xa0                 |     r1 = 0xa0;
    0x00001b1a movs r0, r0                   |     
    0x00001b1c movs r1, 0xc8                 |     r1 = 0xc8;
    0x00001b1e movs r0, r0                   |     
    0x00001b20 movs r1, 0xc2                 |     r1 = 0xc2;
    0x00001b22 movs r0, r0                   |     
    0x00001b24 movs r1, 0x14                 |     r1 = 0x14;
    0x00001b26 movs r0, r0                   |     
    0x00001b28 lsls r4, r7, 4                |     r4 = r7 << 4;
    0x00001b2a movs r0, r0                   |     
    0x00001b2c movs r1, 0x78                 |     r1 = 0x78;
    0x00001b2e movs r0, r0                   |     
    0x00001b30 movs r1, 0xcc                 |     r1 = 0xcc;
    0x00001b32 movs r0, r0                   |     
    0x00001b34 movs r1, 0xdc                 |     r1 = 0xdc;
    0x00001b36 movs r0, r0                   |     
    0x00001b38 movs r1, 0xd2                 |     r1 = 0xd2;
    0x00001b3a movs r0, r0                   |     
    0x00001b3c movs r1, 0xde                 |     r1 = 0xde;
    0x00001b3e movs r0, r0                   |     
    0x00001b40 movs r2, 0xd8                 |     r2 = 0xd8;
    0x00001b42 movs r0, r0                   |     
    0x00001b44 movs r2, 0xba                 |     r2 = 0xba;
    0x00001b46 movs r0, r0                   |     
    0x00001b48 movs r2, 0x84                 |     r2 = 0x84;
    0x00001b4a movs r0, r0                   |     
    0x00001b4c movs r2, 0x7a                 |     r2 = 0x7a;
    0x00001b4e movs r0, r0                   |     
    0x00001b50 movs r1, 0xf0                 |     r1 = 0xf0;
    0x00001b52 movs r0, r0                   |     
    0x00001b54 subs r6, r4, 3                |     r6 = r4 - 3;
    0x00001b56 movs r0, r0                   |     
    0x00001b58 subs r0, r2, 4                |     r0 = r2 - 4;
    0x00001b5a movs r0, r0                   |     
    0x00001b5c adds r2, r1, 6                |     r2 = r1 + 6;
    0x00001b5e movs r0, r0                   |     
    0x00001b60 subs r2, r3, 5                |     r2 = r3 - 5;
    0x00001b62 movs r0, r0                   |     
    0x00001b64 subs r4, r5, 5                |     r4 = r5 - 5;
    0x00001b66 movs r0, r0                   |     
    0x00001b68 movs r0, 0x18                 |     r0 = 0x18;
    0x00001b6a movs r0, r0                   |     
    0x00001b6c movs r0, 0x36                 |     r0 = 0x36;
    0x00001b6e movs r0, r0                   |     
    0x00001b70 subs r0, r1, 1                |     r0 = r1 - 1;
    0x00001b72 movs r0, r0                   |     
    0x00001b74 subs r2, r1, 5                |     r2 = r1 - 5;
    0x00001b76 movs r0, r0                   |     
    0x00001b78 subs r2, r1, 2                |     r2 = r1 - 2;
    0x00001b7a movs r0, r0                   |     
    0x00001b7c subs r0, r7, 2                |     r0 = r7 - 2;
    0x00001b7e movs r0, r0                   |     
    0x00001b80 subs r0, r3, 3                |     r0 = r3 - 3;
    0x00001b82 movs r0, r0                   |     
    0x00001b84 subs r0, r7, 2                |     r0 = r7 - 2;
    0x00001b86 movs r0, r0                   |     
    0x00001b88 adds r0, r4, 0                |     r0 = r4 + 0;
    0x00001b8a movs r0, r0                   |     
    0x00001b8c adds r2, r2, 1                |     r2++;
    0x00001b8e movs r0, r0                   |     
    0x00001b90 subs r2, r1, r6               |     r2 = r1 - r6;
    0x00001b92 movs r0, r0                   |     
    0x00001b94 adds r4, r3, 2                |     r4 = r3 + 2;
    0x00001b96 movs r0, r0                   |     
    0x00001b98 subs r4, r0, 3                |     r4 = r0 - 3;
    0x00001b9a movs r0, r0                   |     
    0x00001b9c subs r2, r3, 1                |     r2 = r3 - 1;
    0x00001b9e movs r0, r0                   |     
    0x00001ba0 movs r5, 0x50                 |     r5 = 0x50;
    0x00001ba2 movs r1, r0                   |     r1 = r0;
    0x00001ba4 subs r2, r2, r3               |     r2 -= r3;
    0x00001ba6 movs r0, r0                   |     
    0x00001ba8 movs r5, 0x32                 |     r5 = 0x32;
    0x00001baa movs r1, r0                   |     r1 = r0;
    0x00001bac subs r4, r5, 1                |     r4 = r5 - 1;
    0x00001bae movs r0, r0                   |     
    0x00001bb0 movs r5, 0x26                 |     r5 = 0x26;
    0x00001bb2 movs r1, r0                   |     r1 = r0;
    0x00001bb4 subs r0, r5, r2               |     r0 = r5 - r2;
    0x00001bb6 movs r0, r0                   |     
    0x00001bec adds r0, 0x14                 |     r0 += 0x14;
    0x00001bee b 0x1730                      |     goto label_9;
                                             | }
    ; 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 @ 0x29b0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000029b0 ()              | void fcn_000029b0 (int16_t arg1) {
                                         |     r0 = arg1;
    0x000029b0 push {r3, lr}             |     
    0x000029b2 mov r4, r0                |     r4 = r0;
    0x000029b4 ldr r3, [pc, 0x20]        |     
    0x000029b6 ldr.w ip, [pc, 0x24]      |     ip = *(0x29de);
    0x000029ba add r3, pc                |     r3 = 0x5396;
    0x000029bc ldr r1, [pc, 0x20]        |     
    0x000029be ldr r2, [pc, 0x24]        |     
    0x000029c0 ldr.w r0, [r3, ip]        |     
    0x000029c4 add r1, pc                |     r1 = 0x53a8;
    0x000029c6 ldr r3, [r1]              |     r3 = *(0x53a8);
    0x000029c8 add r2, pc                |     r2 = 0x53b2;
    0x000029ca ldr r0, [r0]              |     r0 = *(0x5396);
    0x000029cc movs r1, 1                |     r1 = 1;
    0x000029ce blx 0x12c0                |     fprintf_chk ()
    0x000029d2 mov r0, r4                |     r0 = r4;
    0x000029d4 blx 0x11f4                |     exit (r0);
    0x000029d8 asrs r2, r6, 0x13         |     r2 = r6 >> 0x13;
    0x000029da movs r1, r0               |     r1 = r0;
    0x000029dc lsls r4, r7, 4            |     r4 = r7 << 4;
    0x000029de movs r0, r0               |     
    0x000029e0 asrs r4, r0, 0x19         |     r4 = r0 >> 0x19;
    0x000029e2 movs r1, r0               |     r1 = r0;
    0x000029e4 lsrs r0, r1, 0xa          |     r0 = r1 >> 0xa;
    0x000029e6 movs r0, r0               |     
                                         | }
    ; 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 @ 0x29e8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000029e8 ()                  | void fcn_000029e8 (int16_t arg1) {
                                             |     int16_t var_0h;
                                             |     r0 = arg1;
                                             |     if (? >= ?) {
    0x000029e8 ldrlt r4, [r0, -0x936]!       |         r4 = *((r0 -= 0x936));
                                             |     }
    0x000029ec sub sp, 0xc                   |     
    0x000029ee ldr r5, [pc, 0xd8]            |     
    0x000029f0 mov r4, r0                    |     r4 = r0;
    0x000029f2 add r1, pc                    |     r1 += pc;
    0x000029f4 blx 0x10c8                    |     strcmp (r0, r1);
    0x000029f8 add r5, pc                    |     r5 = 0x54c6;
                                             |     if (r0 != 0) {
    0x000029fa cbz r0, 0x2a0e                |         
    0x000029fc ldr r1, [pc, 0xcc]            |         
    0x000029fe mov r0, r4                    |         r0 = r4;
    0x00002a00 add r1, pc                    |         r1 = 0x54d0;
    0x00002a02 blx 0x10c8                    |         r0 = strcmp (r0, r1);
                                             |         if (r0 != 0) {
    0x00002a06 cbnz r0, 0x2a14               |             goto label_1;
                                             |         }
    0x00002a08 movs r0, 0x6e                 |         r0 = 0x6e;
    0x00002a0a add sp, 0xc                   |         
    0x00002a0c pop {r4, r5, pc}              |         
                                             |     }
    0x00002a0e movs r0, 0x73                 |     r0 = 0x73;
                                             |     do {
                                             | label_0:
    0x00002a10 add sp, 0xc                   |         
    0x00002a12 pop {r4, r5, pc}              |         
                                             | label_1:
    0x00002a14 ldr r1, [pc, 0xb8]            |         
    0x00002a16 mov r0, r4                    |         r0 = r4;
    0x00002a18 add r1, pc                    |         r1 = 0x54ec;
    0x00002a1a blx 0x10c8                    |         r0 = strcmp (r0, r1);
                                             |         if (r0 == 0) {
    0x00002a1e cbz r0, 0x2a84                |             goto label_2;
                                             |         }
    0x00002a20 ldr r1, [pc, 0xb0]            |         
    0x00002a22 mov r0, r4                    |         r0 = r4;
    0x00002a24 add r1, pc                    |         r1 = 0x54fc;
    0x00002a26 blx 0x10c8                    |         r0 = strcmp (r0, r1);
                                             |         if (r0 == 0) {
    0x00002a2a cbz r0, 0x2a8a                |             goto label_3;
                                             |         }
    0x00002a2c ldr r1, [pc, 0xa8]            |         
    0x00002a2e mov r0, r4                    |         r0 = r4;
    0x00002a30 add r1, pc                    |         r1 = 0x550c;
    0x00002a32 blx 0x10c8                    |         r0 = strcmp (r0, r1);
                                             |         if (r0 == 0) {
    0x00002a36 cbz r0, 0x2a8e                |             goto label_4;
                                             |         }
    0x00002a38 ldr r1, [pc, 0xa0]            |         
    0x00002a3a mov r0, r4                    |         r0 = r4;
    0x00002a3c add r1, pc                    |         r1 = 0x551c;
    0x00002a3e blx 0x10c8                    |         r0 = strcmp (r0, r1);
                                             |         if (r0 == 0) {
    0x00002a42 cbz r0, 0x2a92                |             goto label_5;
                                             |         }
    0x00002a44 ldr r1, [pc, 0x98]            |         
    0x00002a46 mov r0, r4                    |         r0 = r4;
    0x00002a48 add r1, pc                    |         r1 = 0x552c;
    0x00002a4a blx 0x10c8                    |         r0 = strcmp (r0, r1);
                                             |         if (r0 == 0) {
    0x00002a4e cbz r0, 0x2a96                |             goto label_6;
                                             |         }
    0x00002a50 ldr r1, [pc, 0x90]            |         
    0x00002a52 mov r0, r4                    |         r0 = r4;
    0x00002a54 add r1, pc                    |         r1 = 0x553c;
    0x00002a56 blx 0x10c8                    |         r0 = strcmp (r0, r1);
                                             |         if (r0 == 0) {
    0x00002a5a cbz r0, 0x2a9a                |             goto label_7;
                                             |         }
    0x00002a5c ldr r1, [pc, 0x88]            |         
    0x00002a5e mov r0, r4                    |         r0 = r4;
    0x00002a60 add r1, pc                    |         r1 = 0x554c;
    0x00002a62 blx 0x10c8                    |         r0 = strcmp (r0, r1);
                                             |         if (r0 == 0) {
    0x00002a66 cbz r0, 0x2a9e                |             goto label_8;
                                             |         }
    0x00002a68 ldr r1, [pc, 0x80]            |         
    0x00002a6a mov r0, r4                    |         r0 = r4;
    0x00002a6c add r1, pc                    |         r1 = 0x555c;
    0x00002a6e blx 0x10c8                    |         r0 = strcmp (r0, r1);
                                             |         if (r0 == 0) {
    0x00002a72 cbz r0, 0x2aa2                |             goto label_9;
                                             |         }
    0x00002a74 ldr r1, [pc, 0x78]            |         
    0x00002a76 mov r0, r4                    |         r0 = r4;
    0x00002a78 add r1, pc                    |         r1 = 0x556c;
    0x00002a7a blx 0x10c8                    |         r0 = strcmp (r0, r1);
                                             |         if (r0 != 0) {
    0x00002a7e cbnz r0, 0x2aa6               |             goto label_10;
                                             |         }
    0x00002a80 movs r0, 0x6f                 |         r0 = 0x6f;
    0x00002a82 b 0x2a10                      |         
                                             |     } while (1);
                                             | label_2:
    0x00002a84 movs r0, 0x71                 |     r0 = 0x71;
    0x00002a86 add sp, 0xc                   |     
    0x00002a88 pop {r4, r5, pc}              |     
                                             | label_3:
    0x00002a8a movs r0, 0x69                 |     r0 = 0x69;
    0x00002a8c b 0x2a10                      |     goto label_0;
                                             | label_4:
    0x00002a8e movs r0, 0x75                 |     r0 = 0x75;
    0x00002a90 b 0x2a10                      |     goto label_0;
                                             | label_5:
    0x00002a92 movs r0, 0x78                 |     r0 = 0x78;
    0x00002a94 b 0x2a10                      |     goto label_0;
                                             | label_6:
    0x00002a96 movs r0, 0x74                 |     r0 = 0x74;
    0x00002a98 b 0x2a10                      |     goto label_0;
                                             | label_7:
    0x00002a9a movs r0, 0x64                 |     r0 = 0x64;
    0x00002a9c b 0x2a10                      |     goto label_0;
                                             | label_8:
    0x00002a9e movs r0, 0x79                 |     r0 = 0x79;
    0x00002aa0 b 0x2a10                      |     goto label_0;
                                             | label_9:
    0x00002aa2 movs r0, 0x62                 |     r0 = 0x62;
    0x00002aa4 b 0x2a10                      |     goto label_0;
                                             | label_10:
    0x00002aa6 ldr r1, [pc, 0x4c]            |     r1 = *(0x2af6);
    0x00002aa8 ldr r3, [pc, 0x4c]            |     
    0x00002aaa ldr r2, [pc, 0x50]            |     
    0x00002aac ldr r0, [r5, r1]              |     r0 = *((r5 + r1));
    0x00002aae movs r1, 1                    |     r1 = 1;
    0x00002ab0 add r3, pc                    |     
    0x00002ab2 ldr r3, [r3]                  |     r3 = *(0x55ac);
    0x00002ab4 add r2, pc                    |     r2 = 0x55b6;
    0x00002ab6 str r4, [sp]                  |     *(sp) = r4;
    0x00002ab8 ldr r0, [r0]                  |     r0 = *(r0);
    0x00002aba blx 0x12c0                    |     fprintf_chk ()
    0x00002abe movs r0, 1                    |     r0 = 1;
    0x00002ac0 blx 0x11f4                    |     exit (r0);
    0x00002ac4 lsls r2, r4, 0x1e             |     r2 = r4 << 0x1e;
    0x00002ac6 movs r0, r0                   |     
    0x00002ac8 asrs r4, r6, 0x12             |     r4 = r6 >> 0x12;
    0x00002aca movs r1, r0                   |     r1 = r0;
    0x00002acc lsrs r4, r4, 0xc              |     r4 >>= 0xc;
    0x00002ace movs r0, r0                   |     
    0x00002ad0 lsrs r4, r2, 0xc              |     r4 = r2 >> 0xc;
    0x00002ad2 movs r0, r0                   |     
    0x00002ad4 lsrs r0, r2, 0xc              |     r0 = r2 >> 0xc;
    0x00002ad6 movs r0, r0                   |     
    0x00002ad8 lsrs r4, r1, 0xc              |     r4 = r1 >> 0xc;
    0x00002ada movs r0, r0                   |     
    0x00002adc lsrs r0, r1, 0xc              |     r0 = r1 >> 0xc;
    0x00002ade movs r0, r0                   |     
    0x00002ae0 lsrs r4, r0, 0xc              |     r4 = r0 >> 0xc;
    0x00002ae2 movs r0, r0                   |     
    0x00002ae4 lsrs r0, r0, 0xc              |     r0 >>= 0xc;
    0x00002ae6 movs r0, r0                   |     
    0x00002ae8 lsrs r4, r7, 0xb              |     r4 = r7 >> 0xb;
    0x00002aea movs r0, r0                   |     
    0x00002aec lsrs r0, r7, 0xb              |     r0 = r7 >> 0xb;
    0x00002aee movs r0, r0                   |     
    0x00002af0 lsrs r4, r6, 0xb              |     r4 = r6 >> 0xb;
    0x00002af2 movs r0, r0                   |     
    0x00002af4 lsls r4, r7, 4                |     r4 = r7 << 4;
    0x00002af6 movs r0, r0                   |     
    0x00002af8 asrs r0, r3, 0x15             |     r0 = r3 >> 0x15;
    0x00002afa movs r1, r0                   |     r1 = r0;
    0x00002afc lsrs r0, r0, 0xb              |     r0 >>= 0xb;
    0x00002afe movs r0, r0                   |     
                                             | }
    ; 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 @ 0x2b00 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00002b00 ()                  | void fcn_00002b00 () {
    0x00002b00 mrshs fp, apsr                |     __asm ("mrshs fp, apsr");
    0x00002b04 ldr r3, [pc, 0x20]            |     
    0x00002b06 ldr.w ip, [pc, 0x24]          |     ip = *(0x2b2e);
    0x00002b0a add r3, pc                    |     r3 = 0x5636;
    0x00002b0c ldr r0, [pc, 0x20]            |     
    0x00002b0e ldr r2, [pc, 0x24]            |     
    0x00002b10 ldr.w r4, [r3, ip]            |     r4 = *(0x5636);
    0x00002b14 add r0, pc                    |     r0 = 0x5648;
    0x00002b16 ldr r3, [r0]                  |     r3 = *(0x5648);
    0x00002b18 add r2, pc                    |     r2 = 0x5652;
    0x00002b1a ldr r0, [r4]                  |     r0 = *(0x5636);
    0x00002b1c blx 0x12c0                    |     fprintf_chk ()
    0x00002b20 movs r0, 1                    |     r0 = 1;
    0x00002b22 blx 0x11f4                    |     exit (r0);
    0x00002b26 nop                           |     
    0x00002b28 asrs r2, r4, 0xe              |     r2 = r4 >> 0xe;
    0x00002b2a movs r1, r0                   |     r1 = r0;
    0x00002b2c lsls r4, r7, 4                |     r4 = r7 << 4;
    0x00002b2e movs r0, r0                   |     
    0x00002b30 asrs r4, r6, 0x13             |     r4 = r6 >> 0x13;
    0x00002b32 movs r1, r0                   |     r1 = r0;
    0x00002b34 lsrs r4, r6, 9                |     r4 = r6 >> 9;
    0x00002b36 movs r0, r0                   |     
                                             | }
    ; 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 @ 0x2b38 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00002b38 ()                      | void fcn_00002b38 (int16_t arg1, int16_t arg2, char * arg3) {
                                                 |     int16_t var_0h_2;
                                                 |     char * str;
                                                 |     int16_t var_17h;
                                                 |     int16_t var_18h;
                                                 |     int16_t var_1ah;
                                                 |     int16_t var_1ch;
                                                 |     int16_t var_20h;
                                                 |     int16_t var_24h;
                                                 |     int16_t var_28h;
                                                 |     int16_t var_30h;
                                                 |     int16_t var_38h;
                                                 |     int16_t var_44h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     r2 = arg3;
    0x00002b38 invalid                           |     
    0x00002b3c sub sp, 0x4c                      |     
    0x00002b3e ldr r0, [pc, 0x1bc]               |     
    0x00002b40 sub.w r3, r1, 0x62                |     r3 = r1 - 0x62;
    0x00002b44 str r2, [sp, 0xc]                 |     str = r2;
    0x00002b46 ldr r2, [pc, 0x1b8]               |     r2 = *(0x2d02);
    0x00002b48 add r0, pc                        |     r0 = 0x584a;
    0x00002b4a ldr r5, [pc, 0x1b8]               |     
    0x00002b4c ldr r2, [r0, r2]                  |     
    0x00002b4e add r5, pc                        |     r5 = 0x5858;
    0x00002b50 ldr r2, [r2]                      |     r2 = *(0x584a);
    0x00002b52 str r2, [sp, 0x44]                |     var_44h = r2;
    0x00002b54 mov.w r2, 0                       |     r2 = 0;
    0x00002b58 cmp r3, 0x17                      |     
                                                 |     if (r3 > 0x17) {
    0x00002b5a bhi.w 0x2cc0                      |         goto label_1;
                                                 |     }
                                                 |     /* switch table (24 cases) at 0x2b62 */
    0x00002b5e tbb [pc, r3]                      |     __asm ("tbb [0x00002b64]");
    0x00002b7a ldr r6, [sp, 0xc]                 |     r6 = str;
    0x00002b7c ldr r1, [pc, 0x188]               |     
    0x00002b7e mov r0, r6                        |     r0 = r6;
    0x00002b80 add r1, pc                        |     r1 = 0x588c;
    0x00002b82 blx 0x10c8                        |     strcmp (r0, r1);
    0x00002b86 movs r3, 1                        |     r3 = 1;
                                                 |     if (r0 != 0) {
    0x00002b88 cbz r0, 0x2b9c                    |         
    0x00002b8a ldr r1, [pc, 0x180]               |         
    0x00002b8c mov r0, r6                        |         r0 = r6;
    0x00002b8e add r1, pc                        |         r1 = 0x58a0;
    0x00002b90 blx 0x10c8                        |         r0 = strcmp (r0, r1);
    0x00002b94 mov r3, r0                        |         r3 = r0;
    0x00002b96 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x00002b98 bne.w 0x2ce8                      |             goto label_2;
                                                 |         }
                                                 |     }
    0x00002b9c add r2, sp, 0x24                  |     r2 += var_24h;
    0x00002b9e movs r1, 0x62                     |     r1 = 0x62;
    0x00002ba0 mov r0, r4                        |     r0 = r4;
    0x00002ba2 str r3, [sp, 0x24]                |     var_24h = r3;
    0x00002ba4 blx 0x10f8                        |     r0 = dbus_message_iter_append_basic ();
                                                 |     do {
                                                 | label_0:
    0x00002ba8 cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x00002baa beq.w 0x2ce4                      |             goto label_3;
                                                 |         }
    0x00002bae ldr r2, [pc, 0x160]               |         
    0x00002bb0 ldr r3, [pc, 0x14c]               |         r3 = *(0x2d00);
    0x00002bb2 add r2, pc                        |         r2 = 0x58c8;
    0x00002bb4 ldr r3, [r2, r3]                  |         r3 = *(0x58c8);
    0x00002bb6 ldr r2, [r3]                      |         r2 = *(0x58c8);
    0x00002bb8 ldr r3, [sp, 0x44]                |         r3 = var_44h;
    0x00002bba eors r2, r3                       |         r2 ^= r3;
    0x00002bbc mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00002bc0 bne.w 0x2ce0                      |             goto label_4;
                                                 |         }
    0x00002bc4 add sp, 0x4c                      |         
    0x00002bc6 pop {r4, r5, r6, r7, pc}          |         
    0x00002bc8 ldr r0, [sp, 0xc]                 |         r0 = str;
    0x00002bca movs r1, 0                        |         r1 = 0;
    0x00002bcc blx 0x12a8                        |         strtod (r0, r1);
    0x00002bd0 add r2, sp, 0x38                  |         r2 += var_38h;
    0x00002bd2 movs r1, 0x64                     |         r1 = 0x64;
    0x00002bd4 mov r0, r4                        |         r0 = r4;
    0x00002bd6 vstr d0, [sp, 0x38]               |         __asm ("vstr d0, [sp, 0x38]");
    0x00002bda blx 0x10f8                        |         dbus_message_iter_append_basic ();
    0x00002bde b 0x2ba8                          |         
                                                 |     } while (1);
    0x00002be0 movs r2, 0                        |     r2 = 0;
    0x00002be2 ldr r0, [sp, 0xc]                 |     r0 = str;
    0x00002be4 mov r1, r2                        |     r1 = r2;
    0x00002be6 blx 0x10e0                        |     strtol (r0, r1, r2);
    0x00002bea add r2, sp, 0x20                  |     r2 += var_20h;
    0x00002bec mov r3, r0                        |     r3 = r0;
    0x00002bee movs r1, 0x69                     |     r1 = 0x69;
    0x00002bf0 mov r0, r4                        |     r0 = r4;
    0x00002bf2 str r3, [sp, 0x20]                |     var_20h = r3;
    0x00002bf4 blx 0x10f8                        |     dbus_message_iter_append_basic ();
    0x00002bf8 b 0x2ba8                          |     goto label_0;
    0x00002bfa movs r2, 0                        |     r2 = 0;
    0x00002bfc ldr r0, [sp, 0xc]                 |     r0 = str;
    0x00002bfe mov r1, r2                        |     r1 = r2;
    0x00002c00 blx 0x10e0                        |     strtol (r0, r1, r2);
    0x00002c04 add.w r2, sp, 0x1a                |     r2 += var_1ah;
    0x00002c08 mov r3, r0                        |     r3 = r0;
    0x00002c0a movs r1, 0x6e                     |     r1 = 0x6e;
    0x00002c0c mov r0, r4                        |     r0 = r4;
    0x00002c0e strh.w r3, [sp, 0x1a]             |     var_1ah = r3;
    0x00002c12 blx 0x10f8                        |     dbus_message_iter_append_basic ();
    0x00002c16 b 0x2ba8                          |     goto label_0;
    0x00002c18 add r2, sp, 0xc                   |     r2 += str;
    0x00002c1a movs r1, 0x6f                     |     r1 = 0x6f;
    0x00002c1c mov r0, r4                        |     r0 = r4;
    0x00002c1e blx 0x10f8                        |     dbus_message_iter_append_basic ();
    0x00002c22 b 0x2ba8                          |     goto label_0;
    0x00002c24 movs r2, 0                        |     r2 = 0;
    0x00002c26 ldr r0, [sp, 0xc]                 |     r0 = str;
    0x00002c28 mov r1, r2                        |     r1 = r2;
    0x00002c2a blx 0x120c                        |     strtoul (r0, r1, r2);
    0x00002c2e add r2, sp, 0x18                  |     r2 += var_18h;
    0x00002c30 mov r3, r0                        |     r3 = r0;
    0x00002c32 movs r1, 0x71                     |     r1 = 0x71;
    0x00002c34 mov r0, r4                        |     r0 = r4;
    0x00002c36 strh.w r3, [sp, 0x18]             |     var_18h = r3;
    0x00002c3a blx 0x10f8                        |     dbus_message_iter_append_basic ();
    0x00002c3e b 0x2ba8                          |     goto label_0;
    0x00002c40 add r2, sp, 0xc                   |     r2 += str;
    0x00002c42 movs r1, 0x73                     |     r1 = 0x73;
    0x00002c44 mov r0, r4                        |     r0 = r4;
    0x00002c46 blx 0x10f8                        |     dbus_message_iter_append_basic ();
    0x00002c4a b 0x2ba8                          |     goto label_0;
    0x00002c4c movs r2, 0                        |     r2 = 0;
    0x00002c4e ldr r0, [sp, 0xc]                 |     r0 = str;
    0x00002c50 mov r1, r2                        |     r1 = r2;
    0x00002c52 blx 0x1284                        |     strtoull (r0, r1, r2);
    0x00002c56 add r2, sp, 0x28                  |     r2 += var_28h;
    0x00002c58 mov r6, r0                        |     r6 = r0;
    0x00002c5a mov r7, r1                        |     r7 = r1;
    0x00002c5c mov r0, r4                        |     r0 = r4;
    0x00002c5e movs r1, 0x74                     |     r1 = 0x74;
    0x00002c60 strd r6, r7, [sp, 0x28]           |     __asm ("strd r6, r7, [sp, 0x28]");
    0x00002c64 blx 0x10f8                        |     dbus_message_iter_append_basic ();
    0x00002c68 b 0x2ba8                          |     goto label_0;
    0x00002c6a movs r2, 0                        |     r2 = 0;
    0x00002c6c ldr r0, [sp, 0xc]                 |     r0 = str;
    0x00002c6e mov r1, r2                        |     r1 = r2;
    0x00002c70 blx 0x120c                        |     strtoul (r0, r1, r2);
    0x00002c74 add r2, sp, 0x1c                  |     r2 += var_1ch;
    0x00002c76 mov r3, r0                        |     r3 = r0;
    0x00002c78 movs r1, 0x75                     |     r1 = 0x75;
    0x00002c7a mov r0, r4                        |     r0 = r4;
    0x00002c7c str r3, [sp, 0x1c]                |     var_1ch = r3;
    0x00002c7e blx 0x10f8                        |     dbus_message_iter_append_basic ();
    0x00002c82 b 0x2ba8                          |     goto label_0;
    0x00002c84 movs r2, 0                        |     r2 = 0;
    0x00002c86 ldr r0, [sp, 0xc]                 |     r0 = str;
    0x00002c88 mov r1, r2                        |     r1 = r2;
    0x00002c8a blx 0x11b8                        |     strtoll (r0, r1, r2);
    0x00002c8e add r2, sp, 0x30                  |     r2 += var_30h;
    0x00002c90 mov r6, r0                        |     r6 = r0;
    0x00002c92 mov r7, r1                        |     r7 = r1;
    0x00002c94 mov r0, r4                        |     r0 = r4;
    0x00002c96 movs r1, 0x78                     |     r1 = 0x78;
    0x00002c98 strd r6, r7, [sp, 0x30]           |     __asm ("strd r6, r7, [sp, 0x30]");
    0x00002c9c blx 0x10f8                        |     dbus_message_iter_append_basic ();
    0x00002ca0 b 0x2ba8                          |     goto label_0;
    0x00002ca2 movs r2, 0                        |     r2 = 0;
    0x00002ca4 ldr r0, [sp, 0xc]                 |     r0 = str;
    0x00002ca6 mov r1, r2                        |     r1 = r2;
    0x00002ca8 blx 0x120c                        |     strtoul (r0, r1, r2);
    0x00002cac add.w r2, sp, 0x17                |     r2 += var_17h;
    0x00002cb0 mov r3, r0                        |     r3 = r0;
    0x00002cb2 movs r1, 0x79                     |     r1 = 0x79;
    0x00002cb4 mov r0, r4                        |     r0 = r4;
    0x00002cb6 strb.w r3, [sp, 0x17]             |     var_17h = r3;
    0x00002cba blx 0x10f8                        |     dbus_message_iter_append_basic ();
    0x00002cbe b 0x2ba8                          |     goto label_0;
                                                 | label_1:
    0x00002cc0 ldr r2, [pc, 0x50]                |     
    0x00002cc2 uxtb r1, r1                       |     r1 = (int8_t) r1;
    0x00002cc4 ldr r3, [pc, 0x50]                |     
    0x00002cc6 ldr r0, [pc, 0x54]                |     r0 = *(0x2d1e);
    0x00002cc8 add r2, pc                        |     r2 = 0x59e0;
    0x00002cca add r3, pc                        |     
    0x00002ccc ldr r0, [r5, r0]                  |     r0 = *((r5 + r0));
    0x00002cce ldr r3, [r3]                      |     r3 = *(0x59e6);
    0x00002cd0 str r1, [sp]                      |     *(sp) = r1;
                                                 |     do {
    0x00002cd2 ldr r0, [r0]                      |         r0 = *(r0);
    0x00002cd4 movs r1, 1                        |         r1 = 1;
    0x00002cd6 blx 0x12c0                        |         fprintf_chk ()
    0x00002cda movs r0, 1                        |         r0 = 1;
    0x00002cdc blx 0x11f4                        |         r0 = exit (r0);
                                                 | label_4:
    0x00002ce0 blx 0x1164                        |         stack_chk_fail ();
                                                 | label_3:
    0x00002ce4 bl 0x2b00                         |         fcn_00002b00 ();
                                                 | label_2:
    0x00002ce8 ldr r3, [pc, 0x34]                |         
    0x00002cea ldr r1, [pc, 0x30]                |         r1 = *(0x2d1e);
    0x00002cec ldr r2, [pc, 0x34]                |         
    0x00002cee add r3, pc                        |         
    0x00002cf0 ldr r0, [r5, r1]                  |         r0 = *((r5 + r1));
    0x00002cf2 ldr r3, [r3]                      |         r3 = *(0x5a12);
    0x00002cf4 add r2, pc                        |         r2 = 0x5a1c;
    0x00002cf6 str r6, [sp]                      |         *(sp) = r6;
    0x00002cf8 b 0x2cd2                          |         
                                                 |     } while (1);
                                                 | }
    ; 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 @ 0x2d28 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00002d28 ()                          | uint32_t fcn_00002d28 (int16_t arg1) {
                                                     |     r0 = arg1;
    0x00002d28 ldr.w ip, [pc, 0x24]                  |     ip = *(0x00002d50);
    0x00002d2c movs r1, 1                            |     r1 = 1;
    0x00002d2e push {r3, lr}                         |     
    0x00002d30 mov r3, r0                            |     r3 = r0;
    0x00002d32 ldr.w lr, [pc, 0x20]                  |     lr = *(0x2d56);
    0x00002d36 add ip, pc                            |     
    0x00002d38 ldr r2, [pc, 0x1c]                    |     
    0x00002d3a mov r0, ip                            |     r0 = ip;
    0x00002d3c ldr.w r4, [ip, lr]                    |     r4 = *((ip + lr));
    0x00002d40 add r2, pc                            |     r2 = 0x5a9c;
    0x00002d42 ldr r0, [r4]                          |     r0 = *(r4);
    0x00002d44 blx 0x12c0                            |     fprintf_chk ()
    0x00002d48 movs r0, 1                            |     r0 = 1;
    0x00002d4a blx 0x11f4                            |     exit (r0);
    0x00002d4e nop                                   |     
    0x00002d50 asrs r6, r6, 5                        |     r6 >>= 5;
    0x00002d52 movs r1, r0                           |     r1 = r0;
    0x00002d54 lsls r4, r7, 4                        |     r4 = r7 << 4;
    0x00002d56 movs r0, r0                           |     
    0x00002d58 lsrs r0, r6, 0x10                     |     r0 = r6 >> 0x10;
    0x00002d5a movs r0, r0                           |     
                                                     |     if (r2 == 0) {
    0x00002d5c cbz r2, 0x2d92                        |         goto label_1;
                                                     |     }
    0x00002d5e push {r3, r4, r5, r6, r7, lr}         |     
    0x00002d60 mov r7, r0                            |     r7 = r0;
    0x00002d62 mov r5, r1                            |     r5 = r1;
    0x00002d64 mov r6, r2                            |     r6 = r2;
    0x00002d66 movs r4, 0                            |     r4 = 0;
                                                     |     do {
    0x00002d68 subs r2, r6, r4                       |         r2 = r6 - r4;
    0x00002d6a mov r1, r5                            |         r1 = r5;
    0x00002d6c mov r0, r7                            |         r0 = r7;
    0x00002d6e blx 0x12b4                            |         r0 = write (r0, r1, r2);
    0x00002d72 cmp r0, 0                             |         
    0x00002d74 itt ge                                |         
                                                     |         if (r0 < 0) {
    0x00002d76 addge r4, r4, r0                      |             r4 += r0;
                                                     |         }
                                                     |         if (r0 < 0) {
    0x00002d78 addge r5, r5, r0                      |             r5 += r0;
                                                     |         }
                                                     |         if (r0 < 0) {
    0x00002d7a blt 0x2d84                            |             goto label_2;
                                                     |         }
                                                     | label_0:
    0x00002d7c cmp r4, r6                            |         
    0x00002d7e blo 0x2d68                            |         
                                                     |     } while (r4 <= r6);
    0x00002d80 movs r0, 1                            |     r0 = 1;
    0x00002d82 pop {r3, r4, r5, r6, r7, pc}          |     
                                                     | label_2:
    0x00002d84 blx 0x1254                            |     r0 = errno_location ();
    0x00002d88 ldr r3, [r0]                          |     r3 = *(r0);
    0x00002d8a cmp r3, 4                             |     
                                                     |     if (r3 == 4) {
    0x00002d8c beq 0x2d7c                            |         goto label_0;
                                                     |     }
    0x00002d8e movs r0, 0                            |     r0 = 0;
    0x00002d90 pop {r3, r4, r5, r6, r7, pc}          |     
                                                     | label_1:
    0x00002d92 movs r0, 1                            |     r0 = 1;
    0x00002d94 bx lr                                 |     return r0;
                                                     | }

[*] Function fprintf used 8 times dbus-send