[*] Binary protection state of dbus-monitor

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


[*] Function printf tear down of dbus-monitor

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/dbus-monitor @ 0x1dfc */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00001dfc ()              | void fcn_00001dfc (int16_t arg_18h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                         |     int16_t var_0h;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
                                         |     r2 = arg3;
                                         |     r3 = arg4;
    0x00001dfc push {r4, r5, lr}         |     
    0x00001dfe mov r4, r1                |     r4 = r1;
    0x00001e00 ldr r1, [pc, 0x10c]       |     
    0x00001e02 sub sp, 0xc               |     
    0x00001e04 mov r5, r3                |     r5 = r3;
    0x00001e06 mov r3, r2                |     r3 = r2;
    0x00001e08 str r5, [sp]              |     *(sp) = r5;
    0x00001e0a mov r2, r0                |     r2 = r0;
    0x00001e0c add r1, pc                |     r1 = 0x3d20;
    0x00001e0e movs r0, 1                |     r0 = 1;
    0x00001e10 ldr r5, [sp, 0x18]        |     r5 = *(arg_18h);
    0x00001e12 blx 0x1388                |     printf_chk ()
    0x00001e16 mov r0, r4                |     r0 = r4;
    0x00001e18 blx 0x13ec                |     fcn_000013ec ();
    0x00001e1c ldr r1, [pc, 0xf4]        |     
    0x00001e1e mov r2, r0                |     r2 = r0;
    0x00001e20 movs r0, 1                |     r0 = 1;
    0x00001e22 add r1, pc                |     r1 = 0x3d3a;
    0x00001e24 blx 0x1388                |     printf_chk ()
    0x00001e28 mov r0, r4                |     r0 = r4;
    0x00001e2a blx 0x1358                |     r0 = dbus_message_get_sender ();
                                         |     if (r0 == 0) {
    0x00001e2e cbz r0, 0x1e78            |         goto label_5;
                                         |     }
    0x00001e30 mov r0, r4                |     r0 = r4;
    0x00001e32 blx 0x1358                |     r0 = dbus_message_get_sender ();
    0x00001e36 mov r2, r0                |     r2 = r0;
                                         |     do {
    0x00001e38 ldr r1, [pc, 0xdc]        |         
    0x00001e3a movs r0, 1                |         r0 = 1;
    0x00001e3c add r1, pc                |         r1 = 0x3d58;
    0x00001e3e blx 0x1388                |         printf_chk ()
    0x00001e42 mov r0, r4                |         r0 = r4;
    0x00001e44 blx 0x15e4                |         r0 = fcn_000015e4 ();
                                         |         if (r0 == 0) {
    0x00001e48 cbz r0, 0x1e7e            |             goto label_6;
                                         |         }
    0x00001e4a mov r0, r4                |         r0 = r4;
    0x00001e4c blx 0x15e4                |         r0 = fcn_000015e4 ();
    0x00001e50 mov r2, r0                |         r2 = r0;
                                         | label_0:
    0x00001e52 ldr r1, [pc, 0xc8]        |         
    0x00001e54 movs r0, 1                |         r0 = 1;
    0x00001e56 add r1, pc                |         r1 = 0x3d78;
    0x00001e58 blx 0x1388                |         printf_chk ()
    0x00001e5c lsls r0, r5, 0x1e         |         r0 = r5 << 0x1e;
                                         |         if (r0 < r5) {
    0x00001e5e bmi 0x1eac                |             goto label_7;
                                         |         }
    0x00001e60 lsls r1, r5, 0x1b         |         r1 = r5 << 0x1b;
                                         |         if (r1 < r5) {
    0x00001e62 bmi 0x1ec2                |             goto label_8;
                                         |         }
                                         | label_1:
    0x00001e64 lsls r2, r5, 0x1a         |         r2 = r5 << 0x1a;
                                         |         if (r2 < r5) {
    0x00001e66 bmi 0x1ee0                |             goto label_9;
                                         |         }
                                         | label_2:
    0x00001e68 lsls r3, r5, 0x19         |         r3 = r5 << 0x19;
                                         |         if (r3 < r5) {
    0x00001e6a bmi 0x1e84                |             goto label_10;
                                         |         }
    0x00001e6c movs r0, 0xa              |         r0 = 0xa;
    0x00001e6e add sp, 0xc               |         
    0x00001e70 pop.w {r4, r5, lr}        |         
    0x00001e74 b.w 0x1394                |         void (*0x1394)() ();
                                         | label_5:
    0x00001e78 ldr r2, [pc, 0xa4]        |         
    0x00001e7a add r2, pc                |         r2 = 0x3d9e;
    0x00001e7c b 0x1e38                  |         
                                         |     } while (1);
                                         | label_6:
    0x00001e7e ldr r2, [pc, 0xa4]        |     
    0x00001e80 add r2, pc                |     r2 = 0x3daa;
    0x00001e82 b 0x1e52                  |     goto label_0;
                                         | label_10:
    0x00001e84 mov r0, r4                |     r0 = r4;
    0x00001e86 blx 0x141c                |     r0 = fcn_0000141c ();
    0x00001e8a cmp r0, 0                 |     
                                         |     if (r0 == 0) {
    0x00001e8c beq 0x1f08                |         goto label_11;
                                         |     }
    0x00001e8e mov r0, r4                |     r0 = r4;
    0x00001e90 blx 0x141c                |     r0 = fcn_0000141c ();
    0x00001e94 mov r2, r0                |     r2 = r0;
                                         | label_4:
    0x00001e96 ldr r1, [pc, 0x90]        |     
    0x00001e98 movs r0, 1                |     r0 = 1;
    0x00001e9a add r1, pc                |     r1 = 0x3dc8;
    0x00001e9c blx 0x1388                |     printf_chk ()
    0x00001ea0 movs r0, 0xa              |     r0 = 0xa;
    0x00001ea2 add sp, 0xc               |     
    0x00001ea4 pop.w {r4, r5, lr}        |     
    0x00001ea8 b.w 0x1394                |     void (*0x1394)() ();
                                         | label_7:
    0x00001eac mov r0, r4                |     r0 = r4;
    0x00001eae blx 0x13f8                |     fcn_000013f8 ();
    0x00001eb2 ldr r1, [pc, 0x78]        |     
    0x00001eb4 mov r2, r0                |     r2 = r0;
    0x00001eb6 movs r0, 1                |     r0 = 1;
    0x00001eb8 add r1, pc                |     r1 = 0x3dea;
    0x00001eba blx 0x1388                |     printf_chk ()
    0x00001ebe lsls r1, r5, 0x1b         |     r1 = r5 << 0x1b;
                                         |     if (r1 >= r5) {
    0x00001ec0 bpl 0x1e64                |         goto label_1;
                                         |     }
                                         | label_8:
    0x00001ec2 mov r0, r4                |     r0 = r4;
    0x00001ec4 blx 0x1494                |     r0 = fcn_00001494 ();
                                         |     if (r0 == 0) {
    0x00001ec8 cbz r0, 0x1efc            |         goto label_12;
                                         |     }
    0x00001eca mov r0, r4                |     r0 = r4;
    0x00001ecc blx 0x1494                |     r0 = fcn_00001494 ();
    0x00001ed0 mov r2, r0                |     r2 = r0;
                                         | label_3:
    0x00001ed2 ldr r1, [pc, 0x5c]        |     
    0x00001ed4 movs r0, 1                |     r0 = 1;
    0x00001ed6 add r1, pc                |     r1 = 0x3e0c;
    0x00001ed8 blx 0x1388                |     printf_chk ()
    0x00001edc lsls r2, r5, 0x1a         |     r2 = r5 << 0x1a;
                                         |     if (r2 >= r5) {
    0x00001ede bpl 0x1e68                |         goto label_2;
                                         |     }
                                         | label_9:
    0x00001ee0 mov r0, r4                |     r0 = r4;
    0x00001ee2 blx 0x159c                |     r0 = fcn_0000159c ();
                                         |     if (r0 == 0) {
    0x00001ee6 cbz r0, 0x1f02            |         goto label_13;
                                         |     }
    0x00001ee8 mov r0, r4                |     r0 = r4;
    0x00001eea blx 0x159c                |     r0 = fcn_0000159c ();
    0x00001eee mov r2, r0                |     r2 = r0;
                                         |     do {
    0x00001ef0 ldr r1, [pc, 0x40]        |         
    0x00001ef2 movs r0, 1                |         r0 = 1;
    0x00001ef4 add r1, pc                |         r1 = 0x3e2c;
    0x00001ef6 blx 0x1388                |         printf_chk ()
    0x00001efa b 0x1e68                  |         goto label_2;
                                         | label_12:
    0x00001efc ldr r2, [pc, 0x38]        |         
    0x00001efe add r2, pc                |         r2 = 0x3e3a;
    0x00001f00 b 0x1ed2                  |         goto label_3;
                                         | label_13:
    0x00001f02 ldr r2, [pc, 0x38]        |         
    0x00001f04 add r2, pc                |         r2 = 0x3e46;
    0x00001f06 b 0x1ef0                  |         
                                         |     } while (1);
                                         | label_11:
    0x00001f08 ldr r2, [pc, 0x34]        |     
    0x00001f0a add r2, pc                |     r2 = 0x3e4e;
    0x00001f0c b 0x1e96                  |     goto label_4;
                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/dbus-monitor @ 0x2144 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00002144 ()                                      | void fcn_00002144 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_94h;
                                                                 |     int16_t var_96h;
                                                                 |     int16_t var_97h;
                                                                 |     int16_t var_98h;
                                                                 |     int16_t var_9ch;
                                                                 |     int16_t var_114h;
                                                                 |     int16_t var_116h;
                                                                 |     int16_t var_118h;
                                                                 |     int16_t var_11ch;
                                                                 |     int16_t var_194h;
                                                                 |     int16_t var_1c4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00002144 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00002148 mov sl, r2                                        |     sl = r2;
    0x0000214a ldr.w r2, [pc, 0x9a8]                             |     
    0x0000214e sub sp, 0x1cc                                     |     
    0x00002150 mov fp, r0                                        |     
    0x00002152 mov sb, r1                                        |     sb = r1;
    0x00002154 ldr.w r3, [pc, 0x9a0]                             |     r3 = *(0x2af8);
    0x00002158 add r2, pc                                        |     r2 = 0x4c52;
    0x0000215a ldr.w r4, [pc, 0x9a0]                             |     
    0x0000215e ldr r3, [r2, r3]                                  |     
    0x00002160 add r4, pc                                        |     r4 = 0x4c62;
    0x00002162 ldr r3, [r3]                                      |     r3 = *(0x4c52);
    0x00002164 str r3, [sp, 0x1c4]                               |     var_1c4h = r3;
    0x00002166 mov.w r3, 0                                       |     r3 = 0;
                                                                 | label_0:
    0x0000216a mov r0, fp                                        |     r0 = fp;
    0x0000216c blx 0x1584                                        |     r0 = fcn_00001584 ();
    0x00002170 mov r7, r0                                        |     r7 = r0;
    0x00002172 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00002174 beq 0x21e8                                        |         goto label_15;
                                                                 |     }
    0x00002176 cmp.w sl, 0                                       |     
    0x0000217a add.w r5, sl, -1                                  |     r5 = sl + -1;
    0x0000217e it gt                                             |     
                                                                 |     if (sl <= 0) {
    0x00002180 movgt r6, r5                                      |         r6 = r5;
                                                                 |     }
                                                                 |     if (sl <= 0) {
    0x00002182 ble 0x2192                                        |         goto label_16;
                                                                 |     }
                                                                 |     do {
    0x00002184 mov r1, r4                                        |         r1 = r4;
    0x00002186 movs r0, 1                                        |         r0 = 1;
    0x00002188 subs r6, 1                                        |         r6--;
    0x0000218a blx 0x1388                                        |         printf_chk ()
    0x0000218e adds r2, r6, 1                                    |         r2 = r6 + 1;
    0x00002190 bne 0x2184                                        |         
                                                                 |     } while (r2 != r6);
                                                                 | label_16:
    0x00002192 sub.w r3, r7, 0x61                                |     r3 = r7 - 0x61;
    0x00002196 cmp r3, 0x18                                      |     
                                                                 |     if (r3 <= 0x18) {
    0x00002198 bhi 0x21d0                                        |         
                                                                 |         /* switch table (26 cases) at 0x219e */
    0x0000219a tbh [pc, r3, lsl 1]                               |         __asm ("tbh [pc, r3, lsl 1]");
                                                                 |     }
    0x000021d0 ldr.w r1, [pc, 0x92c]                             |     
    0x000021d4 mov r2, r7                                        |     r2 = r7;
    0x000021d6 movs r0, 1                                        |     r0 = 1;
    0x000021d8 add r1, pc                                        |     r1 = 0x4cdc;
    0x000021da blx 0x1388                                        |     printf_chk ()
                                                                 | label_1:
    0x000021de mov r0, fp                                        |     r0 = fp;
    0x000021e0 blx 0x1458                                        |     r0 = fcn_00001458 ();
    0x000021e4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000021e6 bne 0x216a                                        |         goto label_0;
                                                                 |     }
                                                                 | label_15:
    0x000021e8 ldr.w r2, [pc, 0x918]                             |     
    0x000021ec ldr.w r3, [pc, 0x908]                             |     r3 = *(0x2af8);
    0x000021f0 add r2, pc                                        |     r2 = 0x4cf8;
    0x000021f2 ldr r3, [r2, r3]                                  |     r3 = *(0x4cf8);
    0x000021f4 ldr r2, [r3]                                      |     r2 = *(0x4cf8);
    0x000021f6 ldr r3, [sp, 0x1c4]                               |     r3 = var_1c4h;
    0x000021f8 eors r2, r3                                       |     r2 ^= r3;
    0x000021fa mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x000021fe bne.w 0x2ac8                                      |         goto label_17;
                                                                 |     }
    0x00002202 add sp, 0x1cc                                     |     
    0x00002204 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
    0x00002208 add r5, sp, 0x28                                  |     r5 += var_28h;
    0x0000220a mov r0, fp                                        |     r0 = fp;
    0x0000220c mov r1, r5                                        |     r1 = r5;
    0x0000220e blx 0x1428                                        |     fcn_00001428 ();
    0x00002212 ldr.w r1, [pc, 0x8f4]                             |     r1 = sym.imp.dbus_error_is_set;
    0x00002216 movs r0, 1                                        |     r0 = 1;
    0x00002218 ldrb.w r2, [sp, 0x28]                             |     r2 = var_28h;
    0x0000221c add r1, pc                                        |     r1 += pc;
    0x0000221e blx 0x1388                                        |     printf_chk ()
    0x00002222 b 0x21de                                          |     goto label_1;
    0x00002224 add r1, sp, 0x28                                  |     r1 += var_28h;
    0x00002226 mov r0, fp                                        |     r0 = fp;
    0x00002228 blx 0x1428                                        |     fcn_00001428 ();
    0x0000222c ldr.w r1, [pc, 0x8dc]                             |     r1 = *(0x00002b0c);
    0x00002230 movs r0, 1                                        |     r0 = 1;
    0x00002232 ldrd r2, r3, [sp, 0x28]                           |     __asm ("ldrd r2, r3, [var_28h]");
    0x00002236 add r1, pc                                        |     r1 += pc;
    0x00002238 blx 0x1388                                        |     printf_chk ()
    0x0000223c b 0x21de                                          |     goto label_1;
    0x0000223e add r5, sp, 0x28                                  |     r5 += var_28h;
    0x00002240 mov r0, fp                                        |     r0 = fp;
    0x00002242 mov r1, r5                                        |     r1 = r5;
    0x00002244 blx 0x1340                                        |     dbus_message_iter_recurse ();
    0x00002248 ldr.w r1, [pc, 0x8c4]                             |     r1 = *(0x00002b10);
    0x0000224c movs r0, 1                                        |     r0 = 1;
    0x0000224e add r1, pc                                        |     r1 += pc;
    0x00002250 blx 0x1388                                        |     printf_chk ()
    0x00002254 mov r0, r5                                        |     r0 = r5;
    0x00002256 add.w r2, sl, 1                                   |     r2 = sl + 1;
    0x0000225a mov r1, sb                                        |     r1 = sb;
    0x0000225c bl 0x2144                                         |     fcn_00002144 (r0, r1, r2);
    0x00002260 b 0x21de                                          |     goto label_1;
    0x00002262 add r5, sp, 0x28                                  |     r5 += var_28h;
    0x00002264 mov r0, fp                                        |     r0 = fp;
    0x00002266 mov r1, r5                                        |     r1 = r5;
    0x00002268 blx 0x1428                                        |     fcn_00001428 ();
    0x0000226c ldr.w r1, [pc, 0x8a4]                             |     r1 = fcn.00001518;
    0x00002270 movs r0, 1                                        |     r0 = 1;
    0x00002272 ldr r2, [sp, 0x28]                                |     r2 = var_28h;
    0x00002274 add r1, pc                                        |     r1 += pc;
    0x00002276 blx 0x1388                                        |     printf_chk ()
    0x0000227a b 0x21de                                          |     goto label_1;
    0x0000227c add r1, sp, 0x28                                  |     r1 += var_28h;
    0x0000227e mov r0, fp                                        |     r0 = fp;
    0x00002280 blx 0x1428                                        |     fcn_00001428 ();
    0x00002284 ldr.w r1, [pc, 0x890]                             |     r1 = *(0x00002b18);
    0x00002288 movs r0, 1                                        |     r0 = 1;
    0x0000228a ldrd r2, r3, [sp, 0x28]                           |     __asm ("ldrd r2, r3, [var_28h]");
    0x0000228e add r1, pc                                        |     r1 += pc;
    0x00002290 blx 0x1388                                        |     printf_chk ()
    0x00002294 b 0x21de                                          |     goto label_1;
    0x00002296 add r5, sp, 0x28                                  |     r5 += var_28h;
    0x00002298 mov r0, fp                                        |     r0 = fp;
    0x0000229a mov r1, r5                                        |     r1 = r5;
    0x0000229c blx 0x1428                                        |     fcn_00001428 ();
    0x000022a0 cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x000022a4 beq.w 0x268e                                      |         goto label_18;
                                                                 |     }
    0x000022a8 ldr.w r1, [pc, 0x870]                             |     
    0x000022ac movs r0, 1                                        |     r0 = 1;
    0x000022ae ldr r2, [r5]                                      |     r2 = *(r5);
    0x000022b0 add r1, pc                                        |     r1 = 0x4dd0;
    0x000022b2 blx 0x1388                                        |     printf_chk ()
    0x000022b6 b 0x21de                                          |     goto label_1;
    0x000022b8 add r6, sp, 0x28                                  |     r6 += var_28h;
    0x000022ba mov r0, fp                                        |     r0 = fp;
    0x000022bc mov r1, r6                                        |     r1 = r6;
    0x000022be add.w r7, sl, 1                                   |     r7 = sl + 1;
    0x000022c2 blx 0x1340                                        |     dbus_message_iter_recurse ();
    0x000022c6 ldr.w r0, [pc, 0x858]                             |     r0 = *(0x00002b20);
    0x000022ca add r0, pc                                        |     r0 += pc;
    0x000022cc blx 0x1590                                        |     fcn_00001590 ();
                                                                 |     do {
    0x000022d0 mov r0, r6                                        |         r0 = r6;
    0x000022d2 blx 0x1584                                        |         r0 = fcn_00001584 ();
                                                                 |         if (r0 == 0) {
    0x000022d6 cbz r0, 0x2302                                    |             goto label_19;
                                                                 |         }
                                                                 | label_2:
    0x000022d8 mov r2, r7                                        |         r2 = r7;
    0x000022da mov r1, sb                                        |         r1 = sb;
    0x000022dc mov r0, r6                                        |         r0 = r6;
    0x000022de bl 0x2144                                         |         fcn_00002144 (r0, r1, r2);
    0x000022e2 mov r0, r6                                        |         r0 = r6;
    0x000022e4 blx 0x1458                                        |         fcn_00001458 ();
    0x000022e8 mov r0, r6                                        |         r0 = r6;
    0x000022ea blx 0x1584                                        |         r0 = fcn_00001584 ();
    0x000022ee cmp r0, 0                                         |         
    0x000022f0 beq 0x22d0                                        |         
                                                                 |     } while (r0 == 0);
    0x000022f2 movs r0, 0x2c                                     |     r0 = 0x2c;
    0x000022f4 blx 0x1398                                        |     fcn_00001398 ();
    0x000022f8 mov r0, r6                                        |     r0 = r6;
    0x000022fa blx 0x1584                                        |     r0 = fcn_00001584 ();
    0x000022fe cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00002300 bne 0x22d8                                        |         goto label_2;
                                                                 |     }
                                                                 | label_19:
    0x00002302 cmp.w sl, 0                                       |     
                                                                 |     if (sl <= 0) {
    0x00002306 ble 0x231c                                        |         goto label_20;
                                                                 |     }
    0x00002308 ldr.w r6, [pc, 0x818]                             |     r6 = sym.imp.dbus_message_new_method_call;
    0x0000230c add r6, pc                                        |     r6 += pc;
                                                                 |     do {
    0x0000230e mov r1, r6                                        |         r1 = r6;
    0x00002310 movs r0, 1                                        |         r0 = 1;
    0x00002312 subs r5, 1                                        |         r5--;
    0x00002314 blx 0x1388                                        |         printf_chk ()
    0x00002318 adds r7, r5, 1                                    |         r7 = r5 + 1;
    0x0000231a bne 0x230e                                        |         
                                                                 |     } while (r7 != r5);
                                                                 | label_20:
    0x0000231c ldr.w r0, [pc, 0x808]                             |     r0 = sym.imp.setvbuf;
    0x00002320 add r0, pc                                        |     r0 += pc;
    0x00002322 blx 0x1590                                        |     fcn_00001590 ();
    0x00002326 b 0x21de                                          |     goto label_1;
    0x00002328 add r5, sp, 0x28                                  |     r5 += var_28h;
    0x0000232a mov r0, fp                                        |     r0 = fp;
    0x0000232c mov r1, r5                                        |     r1 = r5;
    0x0000232e blx 0x1428                                        |     fcn_00001428 ();
    0x00002332 ldr.w r1, [pc, 0x7f8]                             |     
    0x00002336 movs r0, 1                                        |     r0 = 1;
    0x00002338 ldrh.w r2, [sp, 0x28]                             |     r2 = var_28h;
    0x0000233c add r1, pc                                        |     r1 = 0x4e6e;
    0x0000233e blx 0x1388                                        |     printf_chk ()
    0x00002342 b 0x21de                                          |     goto label_1;
    0x00002344 add r5, sp, 0x28                                  |     r5 += var_28h;
    0x00002346 mov r0, fp                                        |     r0 = fp;
    0x00002348 mov r1, r5                                        |     r1 = r5;
    0x0000234a blx 0x1428                                        |     fcn_00001428 ();
    0x0000234e cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x00002352 beq.w 0x26da                                      |         goto label_21;
                                                                 |     }
    0x00002356 ldr.w r1, [pc, 0x7d8]                             |     r1 = *(0x00002b30);
    0x0000235a movs r0, 1                                        |     r0 = 1;
    0x0000235c ldr r2, [r5]                                      |     r2 = *(r5);
    0x0000235e add r1, pc                                        |     r1 += pc;
    0x00002360 blx 0x1388                                        |     printf_chk ()
    0x00002364 b 0x21de                                          |     goto label_1;
    0x00002366 add r5, sp, 0x28                                  |     r5 += var_28h;
    0x00002368 mov r0, fp                                        |     r0 = fp;
    0x0000236a mov r1, r5                                        |     r1 = r5;
    0x0000236c blx 0x1428                                        |     fcn_00001428 ();
    0x00002370 ldr.w r1, [pc, 0x7c0]                             |     r1 = *(0x00002b34);
    0x00002374 movs r0, 1                                        |     r0 = 1;
    0x00002376 ldrsh.w r2, [sp, 0x28]                            |     r2 = var_28h;
    0x0000237a add r1, pc                                        |     r1 += pc;
    0x0000237c blx 0x1388                                        |     printf_chk ()
    0x00002380 b 0x21de                                          |     goto label_1;
    0x00002382 add r5, sp, 0x28                                  |     r5 += var_28h;
    0x00002384 mov r0, fp                                        |     r0 = fp;
    0x00002386 mov r1, r5                                        |     r1 = r5;
    0x00002388 blx 0x1428                                        |     fcn_00001428 ();
    0x0000238c ldr.w r1, [pc, 0x7a8]                             |     r1 = fcn.000013ec;
    0x00002390 movs r0, 1                                        |     r0 = 1;
    0x00002392 ldr r2, [sp, 0x28]                                |     r2 = var_28h;
    0x00002394 add r1, pc                                        |     r1 += pc;
    0x00002396 blx 0x1388                                        |     printf_chk ()
    0x0000239a b 0x21de                                          |     goto label_1;
    0x0000239c add r3, sp, 0x1c                                  |     r3 += var_1ch;
    0x0000239e mov r0, fp                                        |     r0 = fp;
    0x000023a0 mov r5, r3                                        |     r5 = r3;
    0x000023a2 mov r1, r3                                        |     r1 = r3;
    0x000023a4 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x000023a6 add r6, sp, 0x28                                  |     r6 += var_28h;
    0x000023a8 blx 0x1428                                        |     fcn_00001428 ();
    0x000023ac ldr r5, [r5]                                      |     r5 = *(r5);
    0x000023ae movs r2, 0x68                                     |     r2 = 0x68;
    0x000023b0 movs r1, 0                                        |     r1 = 0;
    0x000023b2 mov r0, r6                                        |     r0 = r6;
    0x000023b4 add r7, sp, 0x20                                  |     r7 += var_20h;
    0x000023b6 str r5, [sp, 0x14]                                |     var_14h = r5;
    0x000023b8 blx 0x13bc                                        |     fcn_000013bc ();
    0x000023bc ldr.w r0, [pc, 0x77c]                             |     r0 = fcn.00001494;
    0x000023c0 movs r3, 0x80                                     |     r3 = 0x80;
    0x000023c2 add r2, sp, 0x24                                  |     r2 += var_24h;
    0x000023c4 str r3, [r7]                                      |     *(r7) = r3;
    0x000023c6 str r2, [sp, 8]                                   |     var_8h = r2;
    0x000023c8 add r0, pc                                        |     r0 += pc;
    0x000023ca str r3, [sp, 0x24]                                |     var_24h = r3;
    0x000023cc blx 0x1590                                        |     fcn_00001590 ();
    0x000023d0 adds r0, r5, 1                                    |     r0 = r5 + 1;
                                                                 |     if (r0 == r5) {
    0x000023d2 beq 0x24a6                                        |         goto label_6;
                                                                 |     }
    0x000023d4 mov r1, r6                                        |     r1 = r6;
    0x000023d6 mov r0, r5                                        |     r0 = r5;
    0x000023d8 blx 0x14a0                                        |     fcn_000014a0 ();
    0x000023dc adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x000023de beq 0x24a6                                        |         goto label_6;
                                                                 |     }
    0x000023e0 add.w r3, sl, 2                                   |     r3 = sl + 2;
    0x000023e4 add.w r2, sl, 1                                   |     r2 = sl + 1;
    0x000023e8 cmp r3, 0                                         |     
    0x000023ea str r3, [sp, 0x10]                                |     var_10h = r3;
    0x000023ec str r2, [sp, 4]                                   |     var_4h = r2;
                                                                 |     if (r3 <= 0) {
    0x000023ee ble.w 0x2a36                                      |         goto label_22;
                                                                 |     }
    0x000023f2 ldr.w r5, [pc, 0x74c]                             |     
    0x000023f6 mov r8, r2                                        |     r8 = r2;
    0x000023f8 add r5, pc                                        |     r5 = 0x4f3e;
                                                                 |     do {
    0x000023fa add.w r8, r8, -1                                  |         r8 += -1;
    0x000023fe mov r1, r5                                        |         r1 = r5;
    0x00002400 movs r0, 1                                        |         r0 = 1;
    0x00002402 blx 0x1388                                        |         printf_chk ()
    0x00002406 cmp.w r8, -1                                      |         
    0x0000240a bne 0x23fa                                        |         
                                                                 |     } while (r8 != -1);
    0x0000240c ldr.w r1, [pc, 0x734]                             |     r1 = sym.imp.dbus_message_iter_next;
    0x00002410 movs r0, 1                                        |     r0 = 1;
    0x00002412 ldr r2, [r6, 0x60]                                |     r2 = *((r6 + 0x60));
    0x00002414 ldr.w r8, [sp, 4]                                 |     r8 = var_4h;
    0x00002418 add r1, pc                                        |     r1 += pc;
    0x0000241a blx 0x1388                                        |     printf_chk ()
                                                                 |     do {
    0x0000241e add.w r8, r8, -1                                  |         r8 += -1;
    0x00002422 mov r1, r5                                        |         r1 = r5;
    0x00002424 movs r0, 1                                        |         r0 = 1;
    0x00002426 blx 0x1388                                        |         printf_chk ()
    0x0000242a cmp.w r8, -1                                      |         
    0x0000242e bne 0x241e                                        |         
                                                                 |     } while (r8 != -1);
                                                                 | label_14:
    0x00002430 ldr.w r1, [pc, 0x714]                             |     r1 = *(0x00002b48);
    0x00002434 movs r0, 1                                        |     r0 = 1;
    0x00002436 add r1, pc                                        |     r1 += pc;
    0x00002438 blx 0x1388                                        |     printf_chk ()
    0x0000243c ldr r3, [r6, 0x10]                                |     r3 = *((r6 + 0x10));
    0x0000243e and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00002442 cmp.w r3, 0x8000                                  |     
                                                                 |     if (r3 == 0x8000) {
    0x00002446 beq.w 0x2a26                                      |         goto label_23;
                                                                 |     }
                                                                 | label_13:
    0x0000244a cmp.w r3, 0x4000                                  |     
                                                                 |     if (r3 == 0x4000) {
    0x0000244e beq.w 0x2a16                                      |         goto label_24;
                                                                 |     }
                                                                 | label_12:
    0x00002452 cmp.w r3, 0x2000                                  |     
                                                                 |     if (r3 == 0x2000) {
    0x00002456 beq.w 0x2a06                                      |         goto label_25;
                                                                 |     }
                                                                 | label_11:
    0x0000245a cmp.w r3, 0x6000                                  |     
                                                                 |     if (r3 == 0x6000) {
    0x0000245e beq.w 0x29f6                                      |         goto label_26;
                                                                 |     }
                                                                 | label_10:
    0x00002462 cmp.w r3, 0x1000                                  |     
                                                                 |     if (r3 == 0x1000) {
    0x00002466 beq.w 0x29e6                                      |         goto label_27;
                                                                 |     }
                                                                 | label_9:
    0x0000246a cmp.w r3, 0xa000                                  |     
                                                                 |     if (r3 == 0xa000) {
    0x0000246e beq.w 0x29d6                                      |         goto label_28;
                                                                 |     }
                                                                 | label_8:
    0x00002472 cmp.w r3, 0xc000                                  |     
                                                                 |     if (r3 == 0xc000) {
    0x00002476 beq.w 0x29cc                                      |         goto label_29;
                                                                 |     }
                                                                 | label_7:
    0x0000247a add r6, sp, 0x94                                  |     r6 += var_94h;
    0x0000247c movs r2, 0x80                                     |     r2 = 0x80;
    0x0000247e movs r1, 0                                        |     r1 = 0;
    0x00002480 mov r0, r6                                        |     r0 = r6;
    0x00002482 add r5, sp, 0x114                                 |     r5 += var_114h;
    0x00002484 blx 0x13bc                                        |     fcn_000013bc ();
    0x00002488 movs r2, 0x80                                     |     r2 = 0x80;
    0x0000248a movs r1, 0                                        |     r1 = 0;
    0x0000248c mov r0, r5                                        |     r0 = r5;
    0x0000248e blx 0x13bc                                        |     fcn_000013bc ();
    0x00002492 ldr.w r8, [sp, 0x14]                              |     r8 = var_14h;
    0x00002496 mov r2, r7                                        |     r2 = r7;
    0x00002498 mov r1, r6                                        |     r1 = r6;
    0x0000249a mov r0, r8                                        |     r0 = r8;
    0x0000249c blx 0x131c                                        |     r0 = getsockname (r0, r1, r2);
    0x000024a0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000024a2 beq.w 0x27ce                                      |         goto label_30;
                                                                 |     }
                                                                 | label_6:
    0x000024a6 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000024a8 ldr r0, [r3]                                      |     r0 = *(r3);
    0x000024aa blx 0x1518                                        |     fcn_00001518 ();
    0x000024ae b 0x21de                                          |     goto label_1;
    0x000024b0 add r5, sp, 0x28                                  |     r5 += var_28h;
    0x000024b2 mov r0, fp                                        |     r0 = fp;
    0x000024b4 mov r1, r5                                        |     r1 = r5;
    0x000024b6 blx 0x1428                                        |     fcn_00001428 ();
    0x000024ba cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x000024be beq.w 0x26b4                                      |         goto label_31;
                                                                 |     }
    0x000024c2 ldr.w r1, [pc, 0x688]                             |     r1 = *(0x00002b4c);
    0x000024c6 movs r0, 1                                        |     r0 = 1;
    0x000024c8 ldr r2, [r5]                                      |     r2 = *(r5);
    0x000024ca add r1, pc                                        |     r1 += pc;
    0x000024cc blx 0x1388                                        |     printf_chk ()
    0x000024d0 b 0x21de                                          |     goto label_1;
    0x000024d2 add r6, sp, 0x28                                  |     r6 += var_28h;
    0x000024d4 mov r0, fp                                        |     r0 = fp;
    0x000024d6 mov r1, r6                                        |     r1 = r6;
    0x000024d8 add.w r7, sl, 1                                   |     r7 = sl + 1;
    0x000024dc blx 0x1340                                        |     dbus_message_iter_recurse ();
    0x000024e0 ldr.w r0, [pc, 0x66c]                             |     
    0x000024e4 add r0, pc                                        |     r0 = 0x5038;
    0x000024e6 blx 0x1590                                        |     fcn_00001590 ();
    0x000024ea mov r2, r7                                        |     r2 = r7;
    0x000024ec mov r1, sb                                        |     r1 = sb;
    0x000024ee mov r0, r6                                        |     r0 = r6;
    0x000024f0 bl 0x2144                                         |     fcn_00002144 (r0, r1, r2);
    0x000024f4 mov r0, r6                                        |     r0 = r6;
    0x000024f6 blx 0x1458                                        |     fcn_00001458 ();
    0x000024fa mov r2, r7                                        |     r2 = r7;
    0x000024fc mov r1, sb                                        |     r1 = sb;
    0x000024fe mov r0, r6                                        |     r0 = r6;
    0x00002500 bl 0x2144                                         |     fcn_00002144 (r0, r1, r2);
    0x00002504 cmp.w sl, 0                                       |     
                                                                 |     if (sl <= 0) {
    0x00002508 ble 0x251e                                        |         goto label_32;
                                                                 |     }
    0x0000250a ldr.w r6, [pc, 0x648]                             |     r6 = *(0x00002b54);
    0x0000250e add r6, pc                                        |     r6 += pc;
                                                                 |     do {
    0x00002510 mov r1, r6                                        |         r1 = r6;
    0x00002512 movs r0, 1                                        |         r0 = 1;
    0x00002514 subs r5, 1                                        |         r5--;
    0x00002516 blx 0x1388                                        |         printf_chk ()
    0x0000251a adds r3, r5, 1                                    |         r3 = r5 + 1;
    0x0000251c bne 0x2510                                        |         
                                                                 |     } while (r3 != r5);
                                                                 | label_32:
    0x0000251e ldr.w r0, [pc, 0x638]                             |     r0 = *(0x00002b58);
    0x00002522 add r0, pc                                        |     r0 += pc;
    0x00002524 blx 0x1590                                        |     fcn_00001590 ();
    0x00002528 b 0x21de                                          |     goto label_1;
    0x0000252a add r5, sp, 0x28                                  |     r5 += var_28h;
    0x0000252c mov r0, fp                                        |     r0 = fp;
    0x0000252e mov r1, r5                                        |     r1 = r5;
    0x00002530 blx 0x1428                                        |     fcn_00001428 ();
    0x00002534 ldr.w r1, [pc, 0x624]                             |     r1 = *(0x00002b5c);
    0x00002538 movs r0, 1                                        |     r0 = 1;
    0x0000253a ldrd r2, r3, [sp, 0x28]                           |     __asm ("ldrd r2, r3, [var_28h]");
    0x0000253e add r1, pc                                        |     r1 += pc;
    0x00002540 blx 0x1388                                        |     printf_chk ()
    0x00002544 b 0x21de                                          |     goto label_1;
    0x00002546 add r5, sp, 0x28                                  |     r5 += var_28h;
    0x00002548 mov r0, fp                                        |     r0 = fp;
    0x0000254a mov r1, r5                                        |     r1 = r5;
    0x0000254c blx 0x1428                                        |     fcn_00001428 ();
    0x00002550 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00002552 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00002554 bne.w 0x2686                                      |         goto label_33;
                                                                 |     }
    0x00002558 ldr.w r2, [pc, 0x604]                             |     
    0x0000255c add r2, pc                                        |     r2 = 0x50c0;
                                                                 | label_5:
    0x0000255e ldr.w r1, [pc, 0x604]                             |     
    0x00002562 movs r0, 1                                        |     r0 = 1;
    0x00002564 add r1, pc                                        |     r1 = 0x50ce;
    0x00002566 blx 0x1388                                        |     printf_chk ()
    0x0000256a b 0x21de                                          |     goto label_1;
    0x0000256c add r6, sp, 0x28                                  |     r6 += var_28h;
    0x0000256e mov r0, fp                                        |     r0 = fp;
    0x00002570 mov r1, r6                                        |     r1 = r6;
    0x00002572 blx 0x1340                                        |     dbus_message_iter_recurse ();
    0x00002576 mov r0, r6                                        |     r0 = r6;
    0x00002578 blx 0x1584                                        |     r0 = fcn_00001584 ();
    0x0000257c cmp r0, 0x79                                      |     
    0x0000257e mov r7, r0                                        |     r7 = r0;
                                                                 |     if (r0 != 0x79) {
    0x00002580 bne.w 0x2700                                      |         goto label_34;
                                                                 |     }
    0x00002584 add r3, sp, 0x24                                  |     r3 += var_24h;
    0x00002586 add r7, sp, 0x20                                  |     r7 += var_20h;
    0x00002588 mov r0, r6                                        |     r0 = r6;
    0x0000258a mov r2, r3                                        |     r2 = r3;
    0x0000258c mov r6, r3                                        |     r6 = r3;
    0x0000258e mov r1, r7                                        |     r1 = r7;
    0x00002590 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00002592 blx 0x1334                                        |     dbus_message_iter_get_fixed_array ();
    0x00002596 ldr.w r8, [r6]                                    |     r8 = *(r6);
    0x0000259a cmp.w r8, 0                                       |     
                                                                 |     if (r8 <= 0) {
    0x0000259e ble.w 0x279a                                      |         goto label_35;
                                                                 |     }
    0x000025a2 ldr r2, [r7]                                      |     r2 = *(r7);
    0x000025a4 movs r3, 0                                        |     r3 = 0;
    0x000025a6 add.w lr, r8, -1                                  |     lr = r8 + -1;
    0x000025aa subs r6, r2, 1                                    |     r6 = r2 - 1;
    0x000025ac mov r0, r6                                        |     r0 = r6;
    0x000025ae b 0x25b8                                          |     
                                                                 |     while (ip < 0x5e) {
                                                                 | label_3:
    0x000025b0 adds r3, 1                                        |         r3++;
    0x000025b2 cmp r3, r8                                        |         
                                                                 |         if (r3 == r8) {
    0x000025b4 beq.w 0x278e                                      |             goto label_36;
                                                                 |         }
    0x000025b8 ldrb r1, [r0, 1]!                                 |         r1 = *((r0 += 1));
    0x000025bc sub.w ip, r1, 0x20                                |         
    0x000025c0 cmp.w ip, 0x5e                                    |         
    0x000025c4 bls 0x25b0                                        |         
                                                                 |     }
    0x000025c6 cmp lr, r3                                        |     
    0x000025c8 it le                                             |     
                                                                 |     if (lr > r3) {
    0x000025ca cmple r1, 0                                       |         __asm ("cmple r1, 0");
                                                                 |         goto label_37;
                                                                 |     }
                                                                 |     if (lr == r3) {
                                                                 | label_37:
    0x000025cc beq 0x25b0                                        |         goto label_3;
                                                                 |     }
    0x000025ce ldr.w r0, [pc, 0x598]                             |     r0 = fcn.000013bc;
    0x000025d2 str r2, [sp, 4]                                   |     var_4h = r2;
    0x000025d4 add r0, pc                                        |     r0 += pc;
    0x000025d6 blx 0x1590                                        |     fcn_00001590 ();
    0x000025da add.w r3, sl, 1                                   |     r3 = sl + 1;
    0x000025de ldr r2, [sp, 4]                                   |     r2 = var_4h;
    0x000025e0 cmp r3, 0                                         |     
    0x000025e2 str r3, [sp, 0x10]                                |     var_10h = r3;
                                                                 |     if (r3 <= 0) {
    0x000025e4 ble 0x260a                                        |         goto label_38;
                                                                 |     }
    0x000025e6 ldr.w r3, [pc, 0x584]                             |     r3 = *(0x00002b6c);
    0x000025ea mov r7, r4                                        |     r7 = r4;
    0x000025ec strd r2, r5, [sp, 4]                              |     __asm ("strd r2, r5, [var_8h]");
    0x000025f0 mov r5, sl                                        |     r5 = sl;
    0x000025f2 add r3, pc                                        |     r3 += pc;
    0x000025f4 mov r4, r3                                        |     r4 = r3;
                                                                 |     do {
    0x000025f6 subs r5, 1                                        |         r5--;
    0x000025f8 mov r1, r4                                        |         r1 = r4;
    0x000025fa movs r0, 1                                        |         r0 = 1;
    0x000025fc blx 0x1388                                        |         printf_chk ()
    0x00002600 adds r3, r5, 1                                    |         r3 = r5 + 1;
    0x00002602 bne 0x25f6                                        |         
                                                                 |     } while (r3 != r5);
    0x00002604 ldrd r2, r5, [sp, 4]                              |     __asm ("ldrd r2, r5, [var_8h]");
    0x00002608 mov r4, r7                                        |     r4 = r7;
                                                                 | label_38:
    0x0000260a add.w r3, r2, r8                                  |     r3 = r2 + r8;
    0x0000260e rsb.w r8, r2, 1                                   |     r8 = 1 - r2;
    0x00002612 subs r3, 1                                        |     r3--;
    0x00002614 movw r2, 0x5556                                   |     
    0x00002618 str r3, [sp, 4]                                   |     var_4h = r3;
                                                                 |     /* if there is a right shift of 0, then it's a division by 1/3 */
    0x0000261a movt r2, 0x5555                                   |     r2 = 0x55555556;
    0x0000261e ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00002620 ldr.w r7, [pc, 0x54c]                             |     r7 = *(0x00002b70);
    0x00002624 str r4, [sp, 0x14]                                |     var_14h = r4;
    0x00002626 sub.w r3, r3, r3, lsl 2                           |     r3 -= (r3 << 2);
    0x0000262a add r7, pc                                        |     r7 += pc;
    0x0000262c adds r3, 0x50                                     |     r3 += 0x50;
    0x0000262e smull r1, r2, r2, r3                              |     r1:r2 = r2 * r3;
    0x00002632 sub.w r3, r2, r3, asr 31                          |     r3 = r2 - (r3 >> 31);
    0x00002636 cmp r3, 8                                         |     
    0x00002638 it lo                                             |     
                                                                 |     if (r3 >= 8) {
    0x0000263a movlo r3, 8                                       |         r3 = 8;
                                                                 |     }
    0x0000263c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0000263e ldr.w r3, [pc, 0x534]                             |     r3 = *(0x00002b74);
    0x00002642 add r3, pc                                        |     r3 += pc;
    0x00002644 str r3, [sp, 8]                                   |     var_8h = r3;
                                                                 |     do {
                                                                 | label_4:
    0x00002646 ldrb r2, [r6, 1]!                                 |         r2 = *((r6 += 1));
    0x0000264a movs r0, 1                                        |         r0 = 1;
    0x0000264c ldr r1, [sp, 8]                                   |         r1 = var_8h;
    0x0000264e blx 0x1388                                        |         printf_chk ()
    0x00002652 ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x00002654 add.w r0, r8, r6                                  |         r0 = r8 + r6;
    0x00002658 cmp r6, r3                                        |         
                                                                 |         if (r6 == r3) {
    0x0000265a beq.w 0x2760                                      |             goto label_39;
                                                                 |         }
    0x0000265e ldr r1, [sp, 0xc]                                 |         r1 = var_ch;
    0x00002660 bl 0x3174                                         |         fcn_00003174 (r0);
    0x00002664 cmp r1, 0                                         |         
                                                                 |         if (r1 != 0) {
    0x00002666 bne 0x2758                                        |             goto label_40;
                                                                 |         }
    0x00002668 movs r0, 0xa                                      |         r0 = 0xa;
    0x0000266a blx 0x1398                                        |         fcn_00001398 ();
    0x0000266e ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x00002670 cmp r3, 0                                         |         
    0x00002672 ble 0x2646                                        |         
                                                                 |     } while (r3 <= 0);
    0x00002674 mov r4, sl                                        |     r4 = sl;
                                                                 |     do {
    0x00002676 subs r4, 1                                        |         r4--;
    0x00002678 mov r1, r7                                        |         r1 = r7;
    0x0000267a movs r0, 1                                        |         r0 = 1;
    0x0000267c blx 0x1388                                        |         printf_chk ()
    0x00002680 adds r0, r4, 1                                    |         r0 = r4 + 1;
    0x00002682 bne 0x2676                                        |         
                                                                 |     } while (r0 != r4);
    0x00002684 b 0x2646                                          |     goto label_4;
                                                                 | label_33:
    0x00002686 ldr.w r2, [pc, 0x4f0]                             |     r2 = *(0x00002b78);
    0x0000268a add r2, pc                                        |     r2 += pc;
    0x0000268c b 0x255e                                          |     goto label_5;
                                                                 | label_18:
    0x0000268e ldr.w r1, [pc, 0x4ec]                             |     
    0x00002692 movs r0, 1                                        |     r0 = 1;
    0x00002694 add r1, pc                                        |     
    0x00002696 blx 0x1388                                        |     printf_chk ()
    0x0000269a ldr.w r1, [pc, 0x4e4]                             |     r1 = *(0x00002b80);
    0x0000269e movs r0, 1                                        |     r0 = 1;
    0x000026a0 ldr r2, [r5]                                      |     r2 = *(r5);
    0x000026a2 add r1, pc                                        |     r1 = 0x78bc;
    0x000026a4 blx 0x1388                                        |     printf_chk ()
    0x000026a8 ldr.w r0, [pc, 0x4d8]                             |     
    0x000026ac add r0, pc                                        |     r0 = 0x5234;
    0x000026ae blx 0x1590                                        |     fcn_00001590 ();
    0x000026b2 b 0x21de                                          |     goto label_1;
                                                                 | label_31:
    0x000026b4 ldr.w r1, [pc, 0x4d0]                             |     r1 = *(0x00002b88);
    0x000026b8 movs r0, 1                                        |     r0 = 1;
    0x000026ba add r1, pc                                        |     r1 += pc;
    0x000026bc blx 0x1388                                        |     printf_chk ()
    0x000026c0 ldr.w r1, [pc, 0x4c8]                             |     
    0x000026c4 movs r0, 1                                        |     r0 = 1;
    0x000026c6 ldr r2, [r5]                                      |     r2 = *(r5);
    0x000026c8 add r1, pc                                        |     r1 = 0x5258;
    0x000026ca blx 0x1388                                        |     printf_chk ()
    0x000026ce ldr.w r0, [pc, 0x4c0]                             |     r0 = *(0x00002b90);
    0x000026d2 add r0, pc                                        |     r0 += pc;
    0x000026d4 blx 0x1590                                        |     fcn_00001590 ();
    0x000026d8 b 0x21de                                          |     goto label_1;
                                                                 | label_21:
    0x000026da ldr.w r1, [pc, 0x4b8]                             |     
    0x000026de movs r0, 1                                        |     r0 = 1;
    0x000026e0 add r1, pc                                        |     
    0x000026e2 blx 0x1388                                        |     printf_chk ()
    0x000026e6 ldr.w r1, [pc, 0x4b0]                             |     r1 = *(0x00002b98);
    0x000026ea movs r0, 1                                        |     r0 = 1;
    0x000026ec ldr r2, [r5]                                      |     r2 = *(r5);
    0x000026ee add r1, pc                                        |     r1 = 0x796c;
    0x000026f0 blx 0x1388                                        |     printf_chk ()
    0x000026f4 ldr.w r0, [pc, 0x4a4]                             |     
    0x000026f8 add r0, pc                                        |     r0 = 0x5298;
    0x000026fa blx 0x1590                                        |     fcn_00001590 ();
    0x000026fe b 0x21de                                          |     goto label_1;
                                                                 | label_34:
    0x00002700 ldr.w r0, [pc, 0x49c]                             |     
    0x00002704 add r0, pc                                        |     r0 = 0x52a8;
    0x00002706 blx 0x1590                                        |     fcn_00001590 ();
                                                                 |     if (r7 == 0) {
    0x0000270a cbz r7, 0x2732                                    |         goto label_41;
                                                                 |     }
    0x0000270c add.w r7, sl, 1                                   |     r7 = sl + 1;
    0x00002710 b 0x2718                                          |     
                                                                 |     while (r0 != 0) {
    0x00002712 movs r0, 0x2c                                     |         r0 = 0x2c;
    0x00002714 blx 0x1398                                        |         fcn_00001398 ();
    0x00002718 mov r2, r7                                        |         r2 = r7;
    0x0000271a mov r1, sb                                        |         r1 = sb;
    0x0000271c mov r0, r6                                        |         r0 = r6;
    0x0000271e bl 0x2144                                         |         fcn_00002144 (r0, r1, r2);
    0x00002722 mov r0, r6                                        |         r0 = r6;
    0x00002724 blx 0x1458                                        |         fcn_00001458 ();
    0x00002728 mov r0, r6                                        |         r0 = r6;
    0x0000272a blx 0x1584                                        |         r0 = fcn_00001584 ();
    0x0000272e cmp r0, 0                                         |         
    0x00002730 bne 0x2712                                        |         
                                                                 |     }
                                                                 | label_41:
    0x00002732 cmp.w sl, 0                                       |     
                                                                 |     if (sl <= 0) {
    0x00002736 ble 0x274c                                        |         goto label_42;
                                                                 |     }
    0x00002738 ldr.w r6, [pc, 0x468]                             |     
    0x0000273c add r6, pc                                        |     r6 = 0x52e4;
                                                                 |     do {
    0x0000273e subs r5, 1                                        |         r5--;
    0x00002740 mov r1, r6                                        |         r1 = r6;
    0x00002742 movs r0, 1                                        |         r0 = 1;
    0x00002744 blx 0x1388                                        |         printf_chk ()
    0x00002748 adds r2, r5, 1                                    |         r2 = r5 + 1;
    0x0000274a bne 0x273e                                        |         
                                                                 |     } while (r2 != r5);
                                                                 | label_42:
    0x0000274c ldr.w r0, [pc, 0x458]                             |     
    0x00002750 add r0, pc                                        |     r0 = 0x52fc;
    0x00002752 blx 0x1590                                        |     fcn_00001590 ();
    0x00002756 b 0x21de                                          |     goto label_1;
                                                                 | label_40:
    0x00002758 movs r0, 0x20                                     |     r0 = 0x20;
    0x0000275a blx 0x1398                                        |     fcn_00001398 ();
    0x0000275e b 0x2646                                          |     goto label_4;
                                                                 | label_39:
    0x00002760 movs r0, 0xa                                      |     r0 = 0xa;
    0x00002762 ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x00002764 blx 0x1398                                        |     fcn_00001398 ();
    0x00002768 cmp.w sl, 0                                       |     
                                                                 |     if (sl <= 0) {
    0x0000276c ble 0x2782                                        |         goto label_43;
                                                                 |     }
    0x0000276e ldr.w r6, [pc, 0x43c]                             |     r6 = *(0x00002bac);
    0x00002772 add r6, pc                                        |     r6 += pc;
                                                                 |     do {
    0x00002774 mov r1, r6                                        |         r1 = r6;
    0x00002776 subs r5, 1                                        |         r5--;
    0x00002778 movs r0, 1                                        |         r0 = 1;
    0x0000277a blx 0x1388                                        |         printf_chk ()
    0x0000277e adds r1, r5, 1                                    |         r1 = r5 + 1;
    0x00002780 bne 0x2774                                        |         
                                                                 |     } while (r1 != r5);
                                                                 | label_43:
    0x00002782 ldr.w r0, [pc, 0x42c]                             |     r0 = *(0x00002bb0);
    0x00002786 add r0, pc                                        |     r0 += pc;
    0x00002788 blx 0x1590                                        |     fcn_00001590 ();
    0x0000278c b 0x21de                                          |     goto label_1;
                                                                 | label_36:
    0x0000278e add r3, r2                                        |     r3 += r2;
    0x00002790 ldrb r3, [r3, -0x1]                               |     r3 = *((r3 - 0x1));
    0x00002794 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00002796 beq.w 0x29c0                                      |         goto label_44;
                                                                 |     }
                                                                 | label_35:
    0x0000279a add.w r0, r8, 1                                   |     r0 = r8 + 1;
    0x0000279e blx 0x1488                                        |     r0 = fcn_00001488 ();
    0x000027a2 mov r5, r0                                        |     r5 = r0;
    0x000027a4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000027a6 beq.w 0x2ac0                                      |         goto label_45;
                                                                 |     }
    0x000027aa ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x000027ac ldr r1, [r7]                                      |     r1 = *(r7);
    0x000027ae ldr r6, [r3]                                      |     r6 = *(r3);
    0x000027b0 mov r2, r6                                        |     r2 = r6;
    0x000027b2 blx 0x147c                                        |     fcn_0000147c ();
    0x000027b6 ldr r1, [pc, 0x3fc]                               |     
    0x000027b8 movs r3, 0                                        |     r3 = 0;
    0x000027ba mov r2, r5                                        |     r2 = r5;
    0x000027bc strb r3, [r5, r6]                                 |     *((r5 + r6)) = r3;
    0x000027be movs r0, 1                                        |     r0 = 1;
    0x000027c0 add r1, pc                                        |     r1 = 0x537a;
    0x000027c2 blx 0x1388                                        |     printf_chk ()
    0x000027c6 mov r0, r5                                        |     r0 = r5;
    0x000027c8 blx 0x1328                                        |     dbus_free ();
    0x000027cc b 0x21de                                          |     goto label_1;
                                                                 | label_30:
    0x000027ce mov r0, r8                                        |     r0 = r8;
    0x000027d0 ldr r2, [sp, 8]                                   |     r2 = var_8h;
    0x000027d2 mov r1, r5                                        |     r1 = r5;
    0x000027d4 blx 0x15f0                                        |     fcn_000015f0 ();
    0x000027d8 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x000027da mov r8, r0                                        |     r8 = r0;
    0x000027dc cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x000027de ble 0x27fa                                        |         goto label_46;
                                                                 |     }
    0x000027e0 ldr r3, [pc, 0x3d4]                               |     
    0x000027e2 ldr r5, [sp, 4]                                   |     r5 = var_4h;
    0x000027e4 str r4, [sp, 8]                                   |     var_8h = r4;
    0x000027e6 add r3, pc                                        |     r3 = 0x53a2;
    0x000027e8 mov r4, r3                                        |     r4 = r3;
                                                                 |     do {
    0x000027ea mov r1, r4                                        |         r1 = r4;
    0x000027ec subs r5, 1                                        |         r5--;
    0x000027ee movs r0, 1                                        |         r0 = 1;
    0x000027f0 blx 0x1388                                        |         printf_chk ()
    0x000027f4 adds r1, r5, 1                                    |         r1 = r5 + 1;
    0x000027f6 bne 0x27ea                                        |         
                                                                 |     } while (r1 != r5);
    0x000027f8 ldr r4, [sp, 8]                                   |     r4 = var_8h;
                                                                 | label_46:
    0x000027fa ldr r1, [pc, 0x3c0]                               |     
    0x000027fc movs r0, 1                                        |     r0 = 1;
    0x000027fe add r1, pc                                        |     r1 = 0x53c0;
    0x00002800 blx 0x1388                                        |     printf_chk ()
    0x00002804 ldrh r2, [r6]                                     |     r2 = *(r6);
    0x00002806 subs r3, r2, 1                                    |     r3 = r2 - 1;
    0x00002808 cmp r3, 0x1e                                      |     
                                                                 |     if (r3 <= 0x1e) {
    0x0000280a bhi 0x2830                                        |         
                                                                 |         /* switch table (31 cases) at 0x2810 */
    0x0000280c tbb [pc, r3]                                      |         __asm ("tbb [0x00002814]");
                                                                 |     }
    0x00002830 ldr r1, [pc, 0x38c]                               |     
    0x00002832 movs r0, 1                                        |     r0 = 1;
    0x00002834 add r1, pc                                        |     r1 = 0x53f8;
    0x00002836 blx 0x1388                                        |     printf_chk ()
    0x0000283a b 0x24a6                                          |     goto label_6;
    0x0000283c ldr r0, [pc, 0x384]                               |     
    0x0000283e add r0, pc                                        |     r0 = 0x5406;
    0x00002840 blx 0x1590                                        |     fcn_00001590 ();
    0x00002844 b 0x24a6                                          |     goto label_6;
    0x00002846 ldr r0, [pc, 0x380]                               |     
    0x00002848 add r5, sp, 0x194                                 |     r5 += var_194h;
    0x0000284a add r0, pc                                        |     r0 = 0x5418;
    0x0000284c blx 0x1590                                        |     fcn_00001590 ();
    0x00002850 movs r3, 0x2e                                     |     r3 = 0x2e;
    0x00002852 mov r2, r5                                        |     r2 = r5;
    0x00002854 add r1, sp, 0x9c                                  |     r1 += var_9ch;
    0x00002856 movs r0, 0xa                                      |     r0 = 0xa;
    0x00002858 blx 0x1304                                        |     r0 = inet_ntop ();
                                                                 |     if (r0 == 0) {
    0x0000285c cbz r0, 0x2890                                    |         goto label_47;
                                                                 |     }
    0x0000285e ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00002860 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00002862 ble 0x287e                                        |         goto label_48;
                                                                 |     }
    0x00002864 ldr r1, [pc, 0x364]                               |     
    0x00002866 ldr r7, [sp, 4]                                   |     r7 = var_4h;
    0x00002868 str r4, [sp, 8]                                   |     var_8h = r4;
    0x0000286a add r1, pc                                        |     r1 = 0x543a;
    0x0000286c mov r4, r1                                        |     r4 = r1;
                                                                 |     do {
    0x0000286e subs r7, 1                                        |         r7--;
    0x00002870 mov r1, r4                                        |         r1 = r4;
    0x00002872 movs r0, 1                                        |         r0 = 1;
    0x00002874 blx 0x1388                                        |         printf_chk ()
    0x00002878 adds r2, r7, 1                                    |         r2 = r7 + 1;
    0x0000287a bne 0x286e                                        |         
                                                                 |     } while (r2 != r7);
    0x0000287c ldr r4, [sp, 8]                                   |     r4 = var_8h;
                                                                 | label_48:
    0x0000287e ldrh r3, [r6, 2]                                  |     r3 = *((r6 + 2));
    0x00002880 mov r2, r5                                        |     r2 = r5;
    0x00002882 ldr r1, [pc, 0x34c]                               |     
    0x00002884 movs r0, 1                                        |     r0 = 1;
    0x00002886 rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x00002888 uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x0000288a add r1, pc                                        |     r1 = 0x5460;
    0x0000288c blx 0x1388                                        |     printf_chk ()
                                                                 | label_47:
    0x00002890 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00002894 bne.w 0x24a6                                      |         goto label_6;
                                                                 |     }
    0x00002898 movs r3, 0x2e                                     |     r3 = 0x2e;
    0x0000289a mov r2, r5                                        |     r2 = r5;
    0x0000289c add r1, sp, 0x11c                                 |     r1 += var_11ch;
    0x0000289e movs r0, 0xa                                      |     r0 = 0xa;
    0x000028a0 blx 0x1304                                        |     r0 = inet_ntop ();
    0x000028a4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000028a6 beq.w 0x24a6                                      |         goto label_6;
                                                                 |     }
    0x000028aa ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x000028ac cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x000028ae ble 0x28c4                                        |         goto label_49;
                                                                 |     }
    0x000028b0 ldr r6, [pc, 0x320]                               |     
    0x000028b2 ldr r7, [sp, 4]                                   |     r7 = var_4h;
    0x000028b4 add r6, pc                                        |     r6 = 0x548c;
                                                                 |     do {
    0x000028b6 subs r7, 1                                        |         r7--;
    0x000028b8 mov r1, r6                                        |         r1 = r6;
    0x000028ba movs r0, 1                                        |         r0 = 1;
    0x000028bc blx 0x1388                                        |         printf_chk ()
    0x000028c0 adds r3, r7, 1                                    |         r3 = r7 + 1;
    0x000028c2 bne 0x28b6                                        |         
                                                                 |     } while (r3 != r7);
                                                                 | label_49:
    0x000028c4 ldrh.w r3, [sp, 0x116]                            |     r3 = var_116h;
    0x000028c8 mov r2, r5                                        |     r2 = r5;
    0x000028ca ldr r1, [pc, 0x30c]                               |     
    0x000028cc movs r0, 1                                        |     r0 = 1;
    0x000028ce rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x000028d0 uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x000028d2 add r1, pc                                        |     r1 = 0x54b0;
    0x000028d4 blx 0x1388                                        |     printf_chk ()
    0x000028d8 b 0x24a6                                          |     goto label_6;
    0x000028da ldr r0, [pc, 0x300]                               |     
    0x000028dc add r5, sp, 0x194                                 |     r5 += var_194h;
    0x000028de add r0, pc                                        |     r0 = 0x54c0;
    0x000028e0 blx 0x1590                                        |     fcn_00001590 ();
    0x000028e4 movs r3, 0x2e                                     |     r3 = 0x2e;
    0x000028e6 mov r2, r5                                        |     r2 = r5;
    0x000028e8 add r1, sp, 0x98                                  |     r1 += var_98h;
    0x000028ea movs r0, 2                                        |     r0 = 2;
    0x000028ec blx 0x1304                                        |     r0 = inet_ntop ();
                                                                 |     if (r0 == 0) {
    0x000028f0 cbz r0, 0x2924                                    |         goto label_50;
                                                                 |     }
    0x000028f2 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x000028f4 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x000028f6 ble 0x2912                                        |         goto label_51;
                                                                 |     }
    0x000028f8 ldr r1, [pc, 0x2e4]                               |     
    0x000028fa ldr r7, [sp, 4]                                   |     r7 = var_4h;
    0x000028fc str r4, [sp, 8]                                   |     var_8h = r4;
    0x000028fe add r1, pc                                        |     r1 = 0x54e2;
    0x00002900 mov r4, r1                                        |     r4 = r1;
                                                                 |     do {
    0x00002902 subs r7, 1                                        |         r7--;
    0x00002904 mov r1, r4                                        |         r1 = r4;
    0x00002906 movs r0, 1                                        |         r0 = 1;
    0x00002908 blx 0x1388                                        |         printf_chk ()
    0x0000290c adds r0, r7, 1                                    |         r0 = r7 + 1;
    0x0000290e bne 0x2902                                        |         
                                                                 |     } while (r0 != r7);
    0x00002910 ldr r4, [sp, 8]                                   |     r4 = var_8h;
                                                                 | label_51:
    0x00002912 ldrh r3, [r6, 2]                                  |     r3 = *((r6 + 2));
    0x00002914 mov r2, r5                                        |     r2 = r5;
    0x00002916 ldr r1, [pc, 0x2cc]                               |     
    0x00002918 movs r0, 1                                        |     r0 = 1;
    0x0000291a rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x0000291c uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x0000291e add r1, pc                                        |     r1 = 0x5508;
    0x00002920 blx 0x1388                                        |     printf_chk ()
                                                                 | label_50:
    0x00002924 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00002928 bne.w 0x24a6                                      |         goto label_6;
                                                                 |     }
    0x0000292c movs r3, 0x2e                                     |     r3 = 0x2e;
    0x0000292e mov r2, r5                                        |     r2 = r5;
    0x00002930 add r1, sp, 0x118                                 |     r1 += var_118h;
    0x00002932 movs r0, 2                                        |     r0 = 2;
    0x00002934 blx 0x1304                                        |     r0 = inet_ntop ();
    0x00002938 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000293a beq.w 0x24a6                                      |         goto label_6;
                                                                 |     }
    0x0000293e ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00002940 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00002942 ble 0x2958                                        |         goto label_52;
                                                                 |     }
    0x00002944 ldr r6, [pc, 0x2a0]                               |     
    0x00002946 ldr r7, [sp, 4]                                   |     r7 = var_4h;
    0x00002948 add r6, pc                                        |     r6 = 0x5534;
                                                                 |     do {
    0x0000294a mov r1, r6                                        |         r1 = r6;
    0x0000294c subs r7, 1                                        |         r7--;
    0x0000294e movs r0, 1                                        |         r0 = 1;
    0x00002950 blx 0x1388                                        |         printf_chk ()
    0x00002954 adds r1, r7, 1                                    |         r1 = r7 + 1;
    0x00002956 bne 0x294a                                        |         
                                                                 |     } while (r1 != r7);
                                                                 | label_52:
    0x00002958 ldrh.w r3, [sp, 0x116]                            |     r3 = var_116h;
    0x0000295c mov r2, r5                                        |     r2 = r5;
    0x0000295e ldr r1, [pc, 0x28c]                               |     
    0x00002960 movs r0, 1                                        |     r0 = 1;
    0x00002962 rev16 r3, r3                                      |     __asm ("rev16 r3, r3");
    0x00002964 uxth r3, r3                                       |     r3 = (int16_t) r3;
    0x00002966 add r1, pc                                        |     r1 = 0x5558;
    0x00002968 blx 0x1388                                        |     printf_chk ()
    0x0000296c b 0x24a6                                          |     goto label_6;
    0x0000296e ldr r0, [pc, 0x280]                               |     
    0x00002970 add r0, pc                                        |     r0 = 0x5566;
    0x00002972 blx 0x1590                                        |     fcn_00001590 ();
    0x00002976 ldrb r3, [r6, 2]                                  |     r3 = *((r6 + 2));
    0x00002978 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000297a beq 0x2a44                                        |         goto label_53;
                                                                 |     }
    0x0000297c ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0000297e cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00002980 ble.w 0x2acc                                      |         goto label_54;
                                                                 |     }
    0x00002984 ldr r5, [pc, 0x26c]                               |     
    0x00002986 ldr r6, [sp, 4]                                   |     r6 = var_4h;
    0x00002988 add r5, pc                                        |     r5 = 0x5580;
                                                                 |     do {
    0x0000298a subs r6, 1                                        |         r6--;
    0x0000298c mov r1, r5                                        |         r1 = r5;
    0x0000298e movs r0, 1                                        |         r0 = 1;
    0x00002990 blx 0x1388                                        |         printf_chk ()
    0x00002994 adds r3, r6, 1                                    |         r3 = r6 + 1;
    0x00002996 bne 0x298a                                        |         
                                                                 |     } while (r3 != r6);
    0x00002998 ldr r1, [pc, 0x25c]                               |     
    0x0000299a add.w r2, sp, 0x96                                |     r2 += var_96h;
    0x0000299e movs r0, 1                                        |     r0 = 1;
    0x000029a0 add r1, pc                                        |     r1 = 0x559c;
    0x000029a2 blx 0x1388                                        |     printf_chk ()
    0x000029a6 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x000029aa bne.w 0x24a6                                      |         goto label_6;
                                                                 |     }
    0x000029ae ldr r6, [sp, 4]                                   |     r6 = var_4h;
                                                                 |     do {
    0x000029b0 subs r6, 1                                        |         r6--;
    0x000029b2 mov r1, r5                                        |         r1 = r5;
    0x000029b4 movs r0, 1                                        |         r0 = 1;
    0x000029b6 blx 0x1388                                        |         printf_chk ()
    0x000029ba adds r7, r6, 1                                    |         r7 = r6 + 1;
    0x000029bc bne 0x29b0                                        |         
                                                                 |     } while (r7 != r6);
    0x000029be b 0x2ae2                                          |     goto label_55;
                                                                 | label_44:
    0x000029c0 ldr r1, [pc, 0x238]                               |     
    0x000029c2 movs r0, 1                                        |     r0 = 1;
    0x000029c4 add r1, pc                                        |     r1 = 0x55c4;
    0x000029c6 blx 0x1388                                        |     printf_chk ()
    0x000029ca b 0x21de                                          |     goto label_1;
                                                                 | label_29:
    0x000029cc ldr r0, [pc, 0x230]                               |     
    0x000029ce add r0, pc                                        |     r0 = 0x55d2;
    0x000029d0 blx 0x1590                                        |     fcn_00001590 ();
    0x000029d4 b 0x247a                                          |     goto label_7;
                                                                 | label_28:
    0x000029d6 ldr r0, [pc, 0x22c]                               |     
    0x000029d8 add r0, pc                                        |     r0 = 0x55e2;
    0x000029da blx 0x1590                                        |     fcn_00001590 ();
    0x000029de ldr r3, [r6, 0x10]                                |     r3 = *((r6 + 0x10));
    0x000029e0 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x000029e4 b 0x2472                                          |     goto label_8;
                                                                 | label_27:
    0x000029e6 ldr r0, [pc, 0x220]                               |     
    0x000029e8 add r0, pc                                        |     r0 = 0x55f6;
    0x000029ea blx 0x1590                                        |     fcn_00001590 ();
    0x000029ee ldr r3, [r6, 0x10]                                |     r3 = *((r6 + 0x10));
    0x000029f0 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x000029f4 b 0x246a                                          |     goto label_9;
                                                                 | label_26:
    0x000029f6 ldr r0, [pc, 0x214]                               |     
    0x000029f8 add r0, pc                                        |     r0 = 0x560a;
    0x000029fa blx 0x1590                                        |     fcn_00001590 ();
    0x000029fe ldr r3, [r6, 0x10]                                |     r3 = *((r6 + 0x10));
    0x00002a00 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00002a04 b 0x2462                                          |     goto label_10;
                                                                 | label_25:
    0x00002a06 ldr r0, [pc, 0x208]                               |     
    0x00002a08 add r0, pc                                        |     r0 = 0x561e;
    0x00002a0a blx 0x1590                                        |     fcn_00001590 ();
    0x00002a0e ldr r3, [r6, 0x10]                                |     r3 = *((r6 + 0x10));
    0x00002a10 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00002a14 b 0x245a                                          |     goto label_11;
                                                                 | label_24:
    0x00002a16 ldr r0, [pc, 0x1fc]                               |     
    0x00002a18 add r0, pc                                        |     r0 = 0x5632;
    0x00002a1a blx 0x1590                                        |     fcn_00001590 ();
    0x00002a1e ldr r3, [r6, 0x10]                                |     r3 = *((r6 + 0x10));
    0x00002a20 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00002a24 b 0x2452                                          |     goto label_12;
                                                                 | label_23:
    0x00002a26 ldr r0, [pc, 0x1f0]                               |     
    0x00002a28 add r0, pc                                        |     r0 = 0x5646;
    0x00002a2a blx 0x1590                                        |     fcn_00001590 ();
    0x00002a2e ldr r3, [r6, 0x10]                                |     r3 = *((r6 + 0x10));
    0x00002a30 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x00002a34 b 0x244a                                          |     goto label_13;
                                                                 | label_22:
    0x00002a36 ldr r1, [pc, 0x1e4]                               |     
    0x00002a38 movs r0, 1                                        |     r0 = 1;
    0x00002a3a ldr r2, [r6, 0x60]                                |     r2 = *((r6 + 0x60));
    0x00002a3c add r1, pc                                        |     r1 = 0x565e;
    0x00002a3e blx 0x1388                                        |     printf_chk ()
    0x00002a42 b 0x2430                                          |     goto label_14;
                                                                 | label_53:
    0x00002a44 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00002a46 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00002a48 ble 0x2a92                                        |         goto label_56;
                                                                 |     }
    0x00002a4a ldr r6, [pc, 0x1d4]                               |     
    0x00002a4c ldr r5, [sp, 4]                                   |     r5 = var_4h;
    0x00002a4e add r6, pc                                        |     r6 = 0x5674;
                                                                 |     do {
    0x00002a50 subs r5, 1                                        |         r5--;
    0x00002a52 mov r1, r6                                        |         r1 = r6;
    0x00002a54 movs r0, 1                                        |         r0 = 1;
    0x00002a56 blx 0x1388                                        |         printf_chk ()
    0x00002a5a adds r2, r5, 1                                    |         r2 = r5 + 1;
    0x00002a5c bne 0x2a50                                        |         
                                                                 |     } while (r2 != r5);
    0x00002a5e ldr r2, [r7]                                      |     r2 = *(r7);
    0x00002a60 add.w r5, sp, 0x97                                |     r5 += var_97h;
    0x00002a64 ldr r1, [pc, 0x1bc]                               |     
    0x00002a66 mov r3, r5                                        |     r3 = r5;
    0x00002a68 movs r0, 1                                        |     r0 = 1;
    0x00002a6a subs r2, 3                                        |     r2 -= 3;
    0x00002a6c add r1, pc                                        |     r1 = 0x5694;
    0x00002a6e blx 0x1388                                        |     printf_chk ()
    0x00002a72 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00002a76 bne.w 0x24a6                                      |         goto label_6;
                                                                 |     }
    0x00002a7a ldr.w r8, [sp, 4]                                 |     r8 = var_4h;
                                                                 |     do {
    0x00002a7e add.w r8, r8, -1                                  |         r8 += -1;
    0x00002a82 mov r1, r6                                        |         r1 = r6;
    0x00002a84 movs r0, 1                                        |         r0 = 1;
    0x00002a86 blx 0x1388                                        |         printf_chk ()
    0x00002a8a cmp.w r8, -1                                      |         
    0x00002a8e bne 0x2a7e                                        |         
                                                                 |     } while (r8 != -1);
    0x00002a90 b 0x2aae                                          |     goto label_57;
                                                                 | label_56:
    0x00002a92 ldr r2, [r7]                                      |     r2 = *(r7);
    0x00002a94 add.w r5, sp, 0x97                                |     r5 += var_97h;
    0x00002a98 ldr r1, [pc, 0x18c]                               |     
    0x00002a9a mov r3, r5                                        |     r3 = r5;
    0x00002a9c movs r0, 1                                        |     r0 = 1;
    0x00002a9e subs r2, 3                                        |     r2 -= 3;
    0x00002aa0 add r1, pc                                        |     r1 = 0x56cc;
    0x00002aa2 blx 0x1388                                        |     printf_chk ()
    0x00002aa6 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00002aaa bne.w 0x24a6                                      |         goto label_6;
                                                                 |     }
                                                                 | label_57:
    0x00002aae ldr r2, [r7]                                      |     r2 = *(r7);
    0x00002ab0 mov r3, r5                                        |     r3 = r5;
    0x00002ab2 ldr r1, [pc, 0x178]                               |     
    0x00002ab4 movs r0, 1                                        |     r0 = 1;
    0x00002ab6 subs r2, 3                                        |     r2 -= 3;
    0x00002ab8 add r1, pc                                        |     r1 = 0x56ea;
    0x00002aba blx 0x1388                                        |     printf_chk ()
    0x00002abe b 0x24a6                                          |     goto label_6;
                                                                 | label_45:
    0x00002ac0 ldr r0, [pc, 0x16c]                               |     
    0x00002ac2 add r0, pc                                        |     r0 = 0x56f6;
    0x00002ac4 bl 0x2e6c                                         |     tool_oom ();
                                                                 | label_17:
    0x00002ac8 blx 0x1554                                        |     fcn_00001554 ();
                                                                 | label_54:
    0x00002acc ldr r1, [pc, 0x164]                               |     
    0x00002ace add.w r2, sp, 0x96                                |     r2 += var_96h;
    0x00002ad2 movs r0, 1                                        |     r0 = 1;
    0x00002ad4 add r1, pc                                        |     r1 = 0x570c;
    0x00002ad6 blx 0x1388                                        |     printf_chk ()
    0x00002ada cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00002ade bne.w 0x24a6                                      |         goto label_6;
                                                                 |     }
                                                                 | label_55:
    0x00002ae2 ldr r1, [pc, 0x154]                               |     
    0x00002ae4 add.w r2, sp, 0x116                               |     r2 += var_116h;
    0x00002ae8 movs r0, 1                                        |     r0 = 1;
    0x00002aea add r1, pc                                        |     r1 = 0x5728;
    0x00002aec blx 0x1388                                        |     printf_chk ()
    0x00002af0 b 0x24a6                                          |     goto label_6;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/dbus-monitor @ 0x2c3c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.print_message ()                             | void print_message (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;
    0x00002c3c push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00002c40 mov r8, r2                                    |     r8 = r2;
    0x00002c42 ldr r2, [pc, 0x1c8]                           |     
    0x00002c44 mov sl, r3                                    |     sl = r3;
    0x00002c46 sub sp, 0x50                                  |     
    0x00002c48 mov r4, r0                                    |     r4 = r0;
    0x00002c4a ldr r3, [pc, 0x1c4]                           |     r3 = *(0x2e12);
    0x00002c4c mov r6, r1                                    |     r6 = r1;
    0x00002c4e add r2, pc                                    |     r2 = 0x5a60;
    0x00002c50 ldr.w sb, [pc, 0x1c0]                         |     sb = *(0x00002e14);
    0x00002c54 ldr r3, [r2, r3]                              |     
    0x00002c56 add sb, pc                                    |     sb += pc;
    0x00002c58 ldr r3, [r3]                                  |     r3 = *(0x5a60);
    0x00002c5a str r3, [sp, 0x4c]                            |     var_4ch = r3;
    0x00002c5c mov.w r3, 0                                   |     r3 = 0;
    0x00002c60 blx 0x15b4                                    |     r0 = fcn_000015b4 ();
    0x00002c64 mov r5, r0                                    |     r5 = r0;
    0x00002c66 mov r0, r4                                    |     r0 = r4;
    0x00002c68 blx 0x1358                                    |     r0 = dbus_message_get_sender ();
    0x00002c6c mov r7, r0                                    |     r7 = r0;
    0x00002c6e mov r0, r4                                    |     r0 = r4;
    0x00002c70 blx 0x15e4                                    |     fcn_000015e4 ();
                                                             |     if (r6 == 0) {
    0x00002c74 cbnz r6, 0x2cbe                               |         
    0x00002c76 orrs.w r3, r8, sl                             |         r3 = r8 | sl;
    0x00002c7a add.w r5, r5, -1                              |         r5 += -1;
                                                             |         if (r3 == r8) {
    0x00002c7e beq 0x2cf8                                    |             goto label_8;
                                                             |         }
    0x00002c80 cmp r5, 3                                     |         
                                                             |         if (r5 > 3) {
    0x00002c82 bhi.w 0x2e02                                  |             goto label_9;
                                                             |         }
                                                             |         /* switch table (4 cases) at 0x2c8a */
    0x00002c86 tbb [pc, r5]                                  |         __asm ("tbb [0x00002c8c]");
                                                             |     }
                                                             | label_7:
    0x00002cbe mov r0, r4                                    |     r0 = r4;
    0x00002cc0 add r4, sp, 0x14                              |     r4 += var_14h;
    0x00002cc2 mov r1, r4                                    |     r1 = r4;
    0x00002cc4 blx 0x13b0                                    |     fcn_000013b0 ();
    0x00002cc8 movs r2, 1                                    |     r2 = 1;
    0x00002cca mov r0, r4                                    |     r0 = r4;
    0x00002ccc mov r1, r6                                    |     r1 = r6;
    0x00002cce bl 0x2144                                     |     fcn_00002144 (r0, r1, r2);
    0x00002cd2 ldr r3, [pc, 0x148]                           |     r3 = *(0x2e1e);
    0x00002cd4 ldr.w r3, [sb, r3]                            |     r3 = *((sb + r3));
    0x00002cd8 ldr r0, [r3]                                  |     r0 = *(0x2e1e);
    0x00002cda blx 0x1440                                    |     fcn_00001440 ();
    0x00002cde ldr r2, [pc, 0x140]                           |     
    0x00002ce0 ldr r3, [pc, 0x12c]                           |     r3 = *(0x2e10);
    0x00002ce2 add r2, pc                                    |     r2 = 0x5b08;
    0x00002ce4 ldr r3, [r2, r3]                              |     r3 = *(0x5b08);
    0x00002ce6 ldr r2, [r3]                                  |     r2 = *(0x5b08);
    0x00002ce8 ldr r3, [sp, 0x4c]                            |     r3 = var_4ch;
    0x00002cea eors r2, r3                                   |     r2 ^= r3;
    0x00002cec mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r2 != r3) {
    0x00002cf0 bne 0x2dec                                    |         goto label_10;
                                                             |     }
    0x00002cf2 add sp, 0x50                                  |     
    0x00002cf4 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_8:
    0x00002cf8 cmp r5, 3                                     |     
                                                             |     if (r5 > 3) {
    0x00002cfa bhi 0x2df8                                    |         goto label_11;
                                                             |     }
                                                             |     /* switch table (4 cases) at 0x2d00 */
    0x00002cfc tbb [pc, r5]                                  |     __asm ("tbb [0x00002d04]");
    0x00002d04 ldr r2, [pc, 0x11c]                           |     
    0x00002d06 add r2, pc                                    |     r2 = 0x5b2e;
    0x00002d08 cmp r7, 0                                     |     
    0x00002d0a beq 0x2d80                                    |     
                                                             |     while (1) {
                                                             | label_0:
    0x00002d0c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00002d0e beq 0x2de6                                    |             goto label_12;
                                                             |         }
                                                             | label_6:
    0x00002d10 ldr r1, [pc, 0x114]                           |         
    0x00002d12 mov r3, r8                                    |         r3 = r8;
    0x00002d14 strd r7, r0, [sp, 4]                          |         __asm ("strd r7, r0, [var_4h]");
    0x00002d16 strb r1, [r0]                                 |         *(r0) = r1;
    0x00002d18 movs r0, 1                                    |         r0 = 1;
    0x00002d1a str.w sl, [sp]                                |         __asm ("str.w sl, [sp]");
    0x00002d1e add r1, pc                                    |         r1 = 0x5b4a;
    0x00002d20 blx 0x1388                                    |         printf_chk ()
                                                             | label_2:
    0x00002d24 cmp r5, 3                                     |         
                                                             |         if (r5 > 3) {
    0x00002d26 bhi 0x2df0                                    |             goto label_13;
                                                             |         }
    0x00002d28 adr r3, 8                                     |         r3 = 8;
    0x00002d2a ldr.w r5, [r3, r5, lsl 2]                     |         offset_0 = r5 << 2;
                                                             |         r5 = *((r3 + offset_0));
    0x00002d2e add r3, r5                                    |         r3 += r5;
                                                             |         /* switch table (4 cases) at 0x2d34 */
    0x00002d30 bx r3                                         |         return uint32_t (*r3)() ();
                                                             | label_1:
    0x00002d80 ldr r7, [pc, 0xb0]                            |         
    0x00002d82 add r7, pc                                    |         r7 = 0x5bba;
    0x00002d84 b 0x2d0c                                      |         
                                                             |     }
    0x00002d86 ldr r2, [pc, 0xb0]                            |     
    0x00002d88 add r2, pc                                    |     r2 = 0x5bc6;
    0x00002d8a cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00002d8c bne 0x2d0c                                    |         goto label_0;
                                                             |     }
    0x00002d8e b 0x2d80                                      |     goto label_1;
    0x00002d90 ldr r2, [pc, 0xa8]                            |     
    0x00002d92 add r2, pc                                    |     r2 = 0x5bd2;
    0x00002d94 cbz r7, 0x2da8                                |     
                                                             |     if (r0 == 0) {
                                                             |         while (1) {
                                                             | label_3:
    0x00002d96 cbz r0, 0x2de0                                |             goto label_14;
                                                             |         }
                                                             | label_5:
    0x00002d98 ldr r1, [pc, 0xa4]                            |         
    0x00002d9a mov r3, r7                                    |         r3 = r7;
    0x00002d9c str r0, [sp]                                  |         *(sp) = r0;
    0x00002d9e movs r0, 1                                    |         r0 = 1;
    0x00002da0 add r1, pc                                    |         r1 = 0x5be4;
    0x00002da2 blx 0x1388                                    |         printf_chk ()
    0x00002da6 b 0x2d24                                      |         goto label_2;
                                                             | label_4:
    0x00002da8 ldr r7, [pc, 0x98]                            |         
    0x00002daa add r7, pc                                    |         r7 = 0x5bf2;
    0x00002dac b 0x2d96                                      |         
                                                             |     }
    0x00002dae ldr r2, [pc, 0x98]                            |     
    0x00002db0 add r2, pc                                    |     r2 = 0x5bfe;
    0x00002db2 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00002db4 bne 0x2d96                                    |         goto label_3;
                                                             |     }
    0x00002db6 b 0x2da8                                      |     goto label_4;
    0x00002db8 ldr r2, [pc, 0x90]                            |     
    0x00002dba add r2, pc                                    |     r2 = 0x5c0a;
    0x00002dbc cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00002dbe bne 0x2d96                                    |         goto label_3;
                                                             |     }
    0x00002dc0 b 0x2da8                                      |     goto label_4;
    0x00002dc2 ldr r2, [pc, 0x8c]                            |     
    0x00002dc4 add r2, pc                                    |     r2 = 0x5c1a;
    0x00002dc6 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00002dc8 bne 0x2d96                                    |         goto label_3;
                                                             |     }
    0x00002dca b 0x2da8                                      |     goto label_4;
    0x00002dcc ldr r2, [pc, 0x84]                            |     
    0x00002dce add r2, pc                                    |     r2 = 0x5c26;
    0x00002dd0 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00002dd2 bne 0x2d0c                                    |         goto label_0;
                                                             |     }
    0x00002dd4 b 0x2d80                                      |     goto label_1;
    0x00002dd6 ldr r2, [pc, 0x80]                            |     
    0x00002dd8 add r2, pc                                    |     r2 = 0x5c36;
    0x00002dda cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00002ddc bne 0x2d0c                                    |         goto label_0;
                                                             |     }
    0x00002dde b 0x2d80                                      |     goto label_1;
                                                             | label_14:
    0x00002de0 ldr r0, [pc, 0x78]                            |     
    0x00002de2 add r0, pc                                    |     r0 = 0x5c42;
    0x00002de4 b 0x2d98                                      |     goto label_5;
                                                             | label_12:
    0x00002de6 ldr r0, [pc, 0x78]                            |     
    0x00002de8 add r0, pc                                    |     r0 = 0x5c4e;
    0x00002dea b 0x2d10                                      |     goto label_6;
                                                             | label_10:
    0x00002dec blx 0x1554                                    |     fcn_00001554 ();
                                                             | label_13:
    0x00002df0 movs r0, 0xa                                  |     r0 = 0xa;
    0x00002df2 blx 0x1398                                    |     fcn_00001398 ();
    0x00002df6 b 0x2cbe                                      |     goto label_7;
                                                             | label_11:
    0x00002df8 ldr r2, [pc, 0x68]                            |     
    0x00002dfa add r2, pc                                    |     r2 = 0x5c62;
    0x00002dfc cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00002dfe bne 0x2d96                                    |         goto label_3;
                                                             |     }
    0x00002e00 b 0x2da8                                      |     goto label_4;
                                                             | label_9:
    0x00002e02 ldr r2, [pc, 0x64]                            |     
    0x00002e04 add r2, pc                                    |     r2 = 0x5c72;
    0x00002e06 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00002e08 bne 0x2d0c                                    |         goto label_0;
                                                             |     }
    0x00002e0a b 0x2d80                                      |     goto label_1;
                                                             | }

[*] Function printf used 67 times dbus-monitor