[*] Binary protection state of systemctl

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


[*] Function fprintf tear down of systemctl

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/systemctl @ 0x16408 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.00016408 ()                                      | void fcn_00016408 (int16_t arg_0h, int16_t arg_1h, int16_t arg_24h, int16_t arg_2ch, int16_t arg_30h, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_44h, int16_t arg_48h, int16_t arg_4ch, int16_t arg_50h, int16_t arg_54h, int16_t arg_58h, int16_t arg_64h, int16_t arg_68h, int16_t arg_6ch, int16_t arg_70h, int16_t arg_74h, int16_t arg_78h, int16_t arg_80h, int16_t arg_84h, int16_t arg_88h, int16_t arg_8ch, int16_t arg_90h, int16_t arg_98h, int16_t arg_a0h, int16_t c, int16_t arg_b8h, int16_t arg_c0h, int16_t arg_264h, int16_t arg_274h, int16_t arg_29ch, int16_t arg_2c4h, int16_t arg_3c4h, int16_t arg_4c4h, int16_t arg_4f8h, int16_t arg_4fch, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00016408 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0001640c mov r8, r2                                        |     r8 = r2;
    0x0001640e ldr.w r2, [pc, 0xb38]                             |     
    0x00016412 mov r6, r3                                        |     r6 = r3;
    0x00016414 mov.w sl, 0                                       |     sl = 0;
    0x00016416 lsrs r0, r0, 8                                    |     r0 >>= 8;
    0x00016418 mov r5, r1                                        |     r5 = r1;
    0x0001641a ldr.w r3, [pc, 0xb30]                             |     r3 = *(0x16f4e);
    0x0001641e mov r1, sl                                        |     r1 = sl;
    0x00016420 vpush {d8}                                        |     __asm ("vpush {d8}");
    0x00016424 subw sp, sp, 0x4cc                                |     __asm ("subw sp, sp, 0x4cc");
    0x00016428 add r2, pc                                        |     r2 = 0x2d376;
    0x0001642a add r7, sp, 0x68                                  |     r7 += arg_68h;
    0x0001642c str r0, [sp, 0x2c]                                |     *(arg_2ch) = r0;
    0x0001642e add r4, sp, 0xc0                                  |     r4 += arg_c0h;
    0x00016430 str r7, [sp, 0x38]                                |     *(arg_38h) = r7;
    0x00016432 mov r0, r4                                        |     r0 = r4;
    0x00016434 ldr r3, [r2, r3]                                  |     
    0x00016436 mov.w r2, 0x1a0                                   |     r2 = 0x1a0;
    0x0001643a vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0001643e ldr.w sb, [sp, 0x4f8]                             |     sb = *(arg_4f8h);
    0x00016442 ldr r3, [r3]                                      |     r3 = *(0x2d376);
    0x00016444 str.w r3, [sp, 0x4c4]                             |     __asm ("str.w r3, [arg_4c4h]");
    0x00016448 mov.w r3, 0                                       |     r3 = 0;
    0x0001644c add r3, sp, 0x90                                  |     r3 += arg_90h;
    0x0001644e str r3, [sp, 0x34]                                |     *(arg_34h) = r3;
    0x00016450 add r3, sp, 0x64                                  |     r3 += arg_64h;
    0x00016452 str r3, [sp, 0x30]                                |     *(arg_30h) = r3;
    0x00016454 ldr.w r3, [sp, 0x4fc]                             |     r3 = *(arg_4fch);
    0x00016458 vstr d16, [sp, 0x90]                              |     __asm ("vstr d16, [sp, 0x90]");
    0x0001645c str.w sl, [r7]                                    |     __asm ("str.w sl, [r7]");
    0x00016460 str r3, [sp, 0x40]                                |     *(arg_40h) = r3;
    0x00016462 str.w sl, [sp, 0x98]                              |     __asm ("str.w sl, [arg_98h]");
    0x00016464 adr r0, 0x260                                     |     r0 = 0x260;
    0x00016466 str.w sl, [sp, 0x64]                              |     __asm ("str.w sl, [arg_64h]");
    0x0001646a blx 0x5d50                                        |     fcn_00005d50 ();
    0x0001646e ldr.w r3, [pc, 0xae0]                             |     
    0x00016472 vmov.i8 q8, 0xff                                  |     __asm ("vmov.i8 q8, 0xff");
    0x00016476 vmov.i8 d18, 0xff                                 |     __asm ("vmov.i8 d18, 0xff");
    0x0001647a add r3, pc                                        |     r3 = 0x2d3d0;
    0x0001647c vstr d16, [r4, 0x128]                             |     __asm ("vstr d16, [r4, 0x128]");
    0x00016480 vstr d17, [r4, 0x130]                             |     __asm ("vstr d17, [r4, 0x130]");
    0x00016484 vstr d18, [r4, 0x110]                             |     __asm ("vstr d18, [r4, 0x110]");
    0x00016486 cmp r3, 0x44                                      |     
    0x00016488 vstr d16, [r4, 0x138]                             |     __asm ("vstr d16, [r4, 0x138]");
    0x0001648c vstr d17, [r4, 0x140]                             |     __asm ("vstr d17, [r4, 0x140]");
    0x00016490 str r3, [sp, 0x3c]                                |     *(arg_3ch) = r3;
    0x00016492 vstr d16, [r4, 0x148]                             |     __asm ("vstr d16, [r4, 0x148]");
    0x00016496 vstr d17, [r4, 0x150]                             |     __asm ("vstr d17, [r4, 0x150]");
    0x0001649a vstr d16, [r4, 0x158]                             |     __asm ("vstr d16, [r4, 0x158]");
    0x0001649e vstr d17, [r4, 0x160]                             |     __asm ("vstr d17, [r4, 0x160]");
    0x000164a2 vstr d16, [r4, 0x168]                             |     __asm ("vstr d16, [r4, 0x168]");
    0x000164a6 vstr d17, [r4, 0x170]                             |     __asm ("vstr d17, [r4, 0x170]");
    0x000164aa vstr d16, [r4, 0x178]                             |     __asm ("vstr d16, [r4, 0x178]");
    0x000164ae vstr d17, [r4, 0x180]                             |     __asm ("vstr d17, [r4, 0x180]");
    0x000164b2 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x000164b4 beq.w 0x16a4c                                     |         goto label_76;
                                                                 |     }
    0x000164b8 blx 0x5cd4                                        |     r0 = gethostname_full ();
    0x000164bc cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x000164be bgt.w 0x16606                                     |         goto label_77;
                                                                 |     }
                                                                 | label_4:
    0x000164c2 cmp r6, 1                                         |     
                                                                 |     if (r6 == 1) {
    0x000164c4 beq.w 0x165fe                                     |         goto label_78;
                                                                 |     }
    0x000164c8 ldr.w r3, [pc, 0xa88]                             |     
    0x000164cc add r3, pc                                        |     r3 = 0x2d424;
                                                                 | label_3:
    0x000164ce ldr r1, [sp, 0x30]                                |     r1 = *(arg_30h);
    0x000164d0 mov r2, r5                                        |     r2 = r5;
    0x000164d2 ldr r0, [sp, 0x2c]                                |     r0 = *(arg_2ch);
    0x000164d4 str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x000164d6 str r1, [sp, 8]                                   |     var_8h = r1;
    0x000164d8 ldr r1, [sp, 0x34]                                |     r1 = *(arg_34h);
    0x000164da str r1, [sp, 4]                                   |     var_4h = r1;
    0x000164dc movs r1, 2                                        |     r1 = 2;
    0x000164de str r1, [sp]                                      |     *(sp) = r1;
    0x000164e0 ldr.w r1, [pc, 0xa74]                             |     
    0x000164e4 add r1, pc                                        |     r1 = 0x2d440;
    0x000164e6 blx 0x5fcc                                        |     r0 = fcn_00005fcc ();
    0x000164ea subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x000164ec blt.w 0x1662e                                     |         goto label_79;
                                                                 |     }
    0x000164f0 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x000164f4 beq 0x164fc                                       |         
    0x000164f6 ldr r0, [r4, 4]                                   |         r0 = *((r4 + 4));
    0x000164f8 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000164fa bne 0x165ba                                       |             goto label_80;
                                                                 |         }
                                                                 |     }
                                                                 | label_1:
    0x000164fc ldrb.w r3, [sb]                                   |     r3 = *(sb);
    0x00016500 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00016502 bne.w 0x167c8                                     |         goto label_81;
                                                                 |     }
    0x00016506 movs r3, 1                                        |     r3 = 1;
    0x00016508 cmp r6, r3                                        |     
    0x0001650a strb.w r3, [sb]                                   |     *(sb) = r3;
                                                                 |     if (r6 == r3) {
    0x0001650e beq.w 0x167da                                     |         goto label_82;
                                                                 |     }
    0x00016510 strh r4, [r4, 0xa]                                |     *((r4 + 0xa)) = r4;
                                                                 | label_9:
    0x00016512 cmp r6, 2                                         |     
                                                                 |     if (r6 == 2) {
    0x00016514 beq.w 0x16a68                                     |         goto label_83;
                                                                 |     }
    0x00016516 strh r0, [r5, 0x14]                               |     *((r5 + 0x14)) = r0;
                                                                 | label_2:
    0x00016518 ldr r3, [sp, 0x30]                                |     r3 = *(arg_30h);
    0x0001651a movs r1, 1                                        |     r1 = 1;
    0x0001651c ldr r0, [r3]                                      |     r0 = *(r3);
    0x0001651e blx 0x6180                                        |     r0 = fcn_00006180 ();
    0x00016522 subs r6, r0, 0                                    |     r6 = r0 - 0;
                                                                 |     if (r6 < r0) {
    0x00016524 blt.w 0x168ca                                     |         goto label_84;
                                                                 |     }
    0x00016528 ldr r1, [sp, 0x3c]                                |     r1 = *(arg_3ch);
    0x0001652a ldr.w r2, [pc, 0xa30]                             |     r2 = *(0x16f5e);
    0x0001652e ldr.w r3, [pc, 0xa30]                             |     
    0x00016532 ldr r6, [r1, r2]                                  |     r6 = *((r1 + r2));
    0x00016534 ldr r3, [r1, r3]                                  |     r3 = *((r1 + r3));
    0x00016536 ldr r2, [sp, 0x38]                                |     r2 = *(arg_38h);
    0x00016538 ldr.w r1, [pc, 0xa28]                             |     r1 = *(0x00016f64);
    0x0001653c ldr r3, [r3]                                      |     r3 = *(0x16f62);
    0x0001653e str r2, [sp]                                      |     *(sp) = r2;
    0x00016540 ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x00016542 add r1, pc                                        |     r1 += pc;
    0x00016544 ldr r0, [r2]                                      |     r0 = *(0x16f5e);
    0x00016546 ldr r2, [r6]                                      |     r2 = *(r6);
    0x00016548 blx 0x5f24                                        |     r0 = fcn_00005f24 ();
    0x0001654c subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x0001654e blt.w 0x166de                                     |         goto label_85;
                                                                 |     }
    0x00016552 ldr.w sb, [r6]                                    |     sb = *(r6);
    0x00016556 cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x0001655a beq.w 0x16af2                                     |         goto label_86;
                                                                 |     }
    0x0001655e ldr.w r1, [sb]                                    |     r1 = *(sb);
    0x00016562 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00016564 beq.w 0x16aec                                     |         goto label_87;
                                                                 |     }
    0x00016568 ldr.w r8, [pc, 0x9fc]                             |     
    0x0001656c ldr.w r6, [pc, 0x9fc]                             |     
    0x00016570 ldr r7, [sp, 0x38]                                |     r7 = *(arg_38h);
    0x00016572 add r8, pc                                        |     r8 = 0x2d4de;
    0x00016574 add.w r8, r8, 7                                   |     r8 += 7;
    0x00016578 add r6, pc                                        |     r6 = 0x2d4e8;
    0x0001657a b 0x16586                                         |     
                                                                 |     while (r0 != 0) {
                                                                 | label_0:
    0x0001657c ldr r1, [sb, 4]!                                  |         r1 = *((sb += 4));
    0x00016580 cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x00016582 beq.w 0x16aec                                     |             goto label_87;
                                                                 |         }
    0x00016586 ldr r0, [r7]                                      |         r0 = *(r7);
    0x00016588 blx 0x6694                                        |         r0 = strextend_with_separator_internal ();
    0x0001658c mov r5, r0                                        |         r5 = r0;
    0x0001658e cmp r0, 0                                         |         
    0x00016590 bne 0x1657c                                       |         
                                                                 |     }
    0x00016592 blx 0x5cd4                                        |     r0 = gethostname_full ();
    0x00016596 cmp r0, 6                                         |     
                                                                 |     if (r0 <= 6) {
    0x00016598 ble 0x1657c                                       |         goto label_0;
                                                                 |     }
    0x0001659a ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x0001659e mov r1, r5                                        |     r1 = r5;
    0x000165a0 mov r2, r8                                        |     r2 = r8;
    0x000165a2 movs r0, 7                                        |     r0 = 7;
    0x000165a4 strd r6, r3, [sp, 4]                              |     __asm ("strd r6, r3, [sp, 4]");
    0x000165a8 ldr.w r3, [pc, 0x9c4]                             |     
    0x000165ac add r3, pc                                        |     r3 = 0x2d520;
    0x000165ae str r3, [sp]                                      |     *(sp) = r3;
    0x000165b0 mov.w r3, 0x7f8                                   |     r3 = 0x7f8;
    0x000165b4 blx 0x6008                                        |     fcn_00006008 ();
    0x000165b8 b 0x1657c                                         |     goto label_0;
                                                                 | label_80:
    0x000165ba ldr.w r1, [pc, 0x9b8]                             |     
    0x000165be add r1, pc                                        |     r1 = 0x2d538;
    0x000165c0 blx 0x6670                                        |     r0 = hashmap_contains ();
    0x000165c4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000165c6 bne 0x164fc                                       |         goto label_1;
                                                                 |     }
    0x000165c8 ldr r0, [r4, 8]                                   |     r0 = *((r4 + 8));
    0x000165ca cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000165cc beq 0x164fc                                       |         goto label_1;
                                                                 |     }
    0x000165ce ldr.w r1, [pc, 0x9a8]                             |     
    0x000165d2 add r1, pc                                        |     r1 = 0x2d550;
    0x000165d4 blx 0x6670                                        |     r0 = hashmap_contains ();
    0x000165d8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000165da bne 0x164fc                                       |         goto label_1;
                                                                 |     }
    0x000165dc blx 0x5cd4                                        |     gethostname_full ();
    0x000165e0 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x000165e2 bne.w 0x16af8                                     |         goto label_88;
                                                                 |     }
    0x000165e6 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x000165e8 bgt.w 0x16ba0                                     |         goto label_89;
                                                                 |     }
                                                                 | label_13:
    0x000165ec ldrb.w r3, [sb]                                   |     r3 = *(sb);
    0x000165f0 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000165f2 bne.w 0x17998                                     |         goto label_90;
                                                                 |     }
    0x000165f6 movs r3, 1                                        |     r3 = 1;
    0x000165f8 strb.w r3, [sb]                                   |     *(sb) = r3;
    0x000165fc b 0x16518                                         |     goto label_2;
                                                                 | label_78:
    0x000165fe ldr.w r3, [pc, 0x97c]                             |     
    0x00016602 add r3, pc                                        |     r3 = 0x2d584;
    0x00016604 b 0x164ce                                         |     goto label_3;
                                                                 | label_77:
    0x00016606 ldr.w r3, [pc, 0x978]                             |     
    0x0001660a mov r1, sl                                        |     r1 = sl;
    0x0001660c ldr.w r2, [pc, 0x974]                             |     
    0x00016610 movs r0, 7                                        |     r0 = 7;
    0x00016612 str r5, [sp, 8]                                   |     var_8h = r5;
    0x00016614 add r3, pc                                        |     r3 = 0x2d59a;
    0x00016616 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00016618 add r2, pc                                        |     r2 = 0x2d5a0;
    0x0001661a ldr.w r3, [pc, 0x96c]                             |     
    0x0001661e adds r2, 7                                        |     r2 += 7;
    0x00016620 add r3, pc                                        |     r3 = 0x2d5ae;
    0x00016622 str r3, [sp]                                      |     *(sp) = r3;
    0x00016624 movw r3, 0x7c4                                    |     r3 = 0x7c4;
    0x00016628 blx 0x6008                                        |     fcn_00006008 ();
    0x0001662c b 0x164c2                                         |     goto label_4;
                                                                 | label_79:
    0x0001662e blx 0x5cd4                                        |     r0 = gethostname_full ();
    0x00016632 cmp r0, 2                                         |     
                                                                 |     if (r0 > 2) {
    0x00016634 bgt 0x166ac                                       |         goto label_91;
                                                                 |     }
                                                                 | label_7:
    0x00016636 rsbs r6, r5, 0                                    |     r6 = r5 - ;
    0x00016638 bic r6, r6, 0x40000000                            |     r6 = BIT_MASK (r6, 0x40000000);
    0x0001663c rsbs r6, r6, 0                                    |     r6 -= ;
                                                                 | label_6:
    0x0001663e ldr r5, [r4, 0x24]                                |     r5 = *((r4 + 0x24));
    0x00016640 cmp r6, 0                                         |     
    0x00016642 it ge                                             |     
                                                                 |     if (r6 < 0) {
    0x00016644 mvnge r6, 0x55                                    |         r6 = ~0x55;
                                                                 |     }
                                                                 | label_11:
    0x00016648 mov r0, r5                                        |     r0 = r5;
    0x0001664a blx 0x67b4                                        |     mktime (r0);
    0x0001664e ldr r0, [r4, 0x34]                                |     r0 = *((r4 + 0x34));
    0x00016650 blx 0x67b4                                        |     mktime (r0);
    0x00016654 ldr r0, [r4, 0x38]                                |     r0 = *((r4 + 0x38));
    0x00016656 blx 0x67b4                                        |     mktime (r0);
    0x0001665a ldr r0, [r4, 0x3c]                                |     r0 = *((r4 + 0x3c));
    0x0001665c blx 0x67b4                                        |     mktime (r0);
    0x00016660 ldr.w r0, [r4, 0x100]                             |     r0 = *((r4 + 0x100));
    0x00016662 lsls r0, r0, 4                                    |     r0 <<= 4;
    0x00016664 blx 0x67b4                                        |     mktime (r0);
    0x00016668 ldr.w r5, [r4, 0xc4]                              |     r5 = *((r4 + 0xc4));
                                                                 |     if (r5 != 0) {
    0x0001666c cbnz r5, 0x1668e                                  |         goto label_92;
                                                                 |     }
    0x0001666e b 0x1670e                                         |     goto label_93;
                                                                 |     do {
    0x00016670 ldr r2, [r5, 0x10]                                |         r2 = *((r5 + 0x10));
    0x00016672 str r2, [r3, 0x10]                                |         *((r3 + 0x10)) = r2;
                                                                 | label_5:
    0x00016674 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00016676 blx 0x59e0                                        |         unit_file_state_to_string ();
    0x0001667a ldr r0, [r5, 4]                                   |         r0 = *((r5 + 4));
    0x0001667c blx 0x59e0                                        |         unit_file_state_to_string ();
    0x00016680 mov r0, r5                                        |         r0 = r5;
    0x00016682 blx 0x59e0                                        |         unit_file_state_to_string ();
    0x00016686 ldr.w r5, [r4, 0xc4]                              |         r5 = *((r4 + 0xc4));
    0x0001668a cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x0001668c beq 0x1670e                                       |             goto label_93;
                                                                 |         }
                                                                 | label_92:
    0x0001668e ldr r3, [r5, 0x10]                                |         r3 = *((r5 + 0x10));
                                                                 |         if (r3 != 0) {
    0x00016690 cbz r3, 0x16696                                   |             
    0x00016692 ldr r2, [r5, 0x14]                                |             r2 = *((r5 + 0x14));
    0x00016694 str r2, [r3, 0x14]                                |             *((r3 + 0x14)) = r2;
                                                                 |         }
    0x00016696 ldr r3, [r5, 0x14]                                |         r3 = *((r5 + 0x14));
    0x00016698 cmp r3, 0                                         |         
    0x0001669a bne 0x16670                                       |         
                                                                 |     } while (r3 != 0);
    0x0001669c ldr.w r3, [r4, 0xc4]                              |     r3 = *((r4 + 0xc4));
    0x000166a0 cmp r3, r5                                        |     
                                                                 |     if (r3 != r5) {
    0x000166a2 bne 0x16760                                       |         goto label_94;
                                                                 |     }
    0x000166a4 ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
    0x000166a6 str.w r3, [r4, 0xc4]                              |     __asm ("str.w r3, [r4, 0xc4]");
    0x000166aa b 0x16674                                         |     goto label_5;
                                                                 | label_91:
    0x000166ac mov r1, r5                                        |     r1 = r5;
    0x000166ae ldr r0, [sp, 0x34]                                |     r0 = *(arg_34h);
    0x000166b0 blx 0x663c                                        |     fcn_0000663c ();
    0x000166b4 ldr.w r3, [pc, 0x8d4]                             |     
    0x000166b8 mov r1, r5                                        |     r1 = r5;
    0x000166ba ldr.w r2, [pc, 0x8d4]                             |     
    0x000166bc cmp r0, 0xd4                                      |     
    0x000166be str r0, [sp, 8]                                   |     var_8h = r0;
    0x000166c0 movs r0, 3                                        |     r0 = 3;
    0x000166c2 add r3, pc                                        |     r3 = 0x2d652;
    0x000166c4 str r3, [sp, 4]                                   |     var_4h = r3;
    0x000166c6 add r2, pc                                        |     r2 = 0x2d65c;
    0x000166c8 ldr.w r3, [pc, 0x8c8]                             |     
    0x000166cc adds r2, 7                                        |     r2 += 7;
    0x000166ce add r3, pc                                        |     r3 = 0x2d666;
    0x000166d0 str r3, [sp]                                      |     *(sp) = r3;
    0x000166d2 mov.w r3, 0x7d0                                   |     r3 = 0x7d0;
    0x000166d6 blx 0x6008                                        |     r0 = fcn_00006008 ();
    0x000166da mov r6, r0                                        |     r6 = r0;
    0x000166dc b 0x1663e                                         |     goto label_6;
                                                                 | label_85:
    0x000166de blx 0x5cd4                                        |     r0 = gethostname_full ();
    0x000166e2 cmp r0, 2                                         |     
                                                                 |     if (r0 <= 2) {
    0x000166e4 ble 0x16636                                       |         goto label_7;
                                                                 |     }
    0x000166e6 ldr.w r3, [pc, 0x8b0]                             |     
    0x000166ea mov r1, r5                                        |     r1 = r5;
    0x000166ec ldr.w r2, [pc, 0x8ac]                             |     
    0x000166f0 movs r0, 3                                        |     r0 = 3;
    0x000166f2 add r3, pc                                        |     r3 = 0x2d690;
    0x000166f4 str r3, [sp, 4]                                   |     var_4h = r3;
    0x000166f6 add r2, pc                                        |     r2 = 0x2d696;
    0x000166f8 ldr.w r3, [pc, 0x8a4]                             |     
    0x000166fc adds r2, 7                                        |     r2 += 7;
    0x000166fe add r3, pc                                        |     r3 = 0x2d6a2;
    0x00016700 str r3, [sp]                                      |     *(sp) = r3;
    0x00016702 movw r3, 0x7f4                                    |     r3 = 0x7f4;
    0x00016706 blx 0x6008                                        |     r0 = fcn_00006008 ();
    0x00016708 stc p6, c4, [r0], {6}                             |     __asm ("stc p6, c4, [r0], {6}");
    0x0001670c b 0x1663e                                         |     goto label_6;
                                                                 | label_93:
    0x0001670e ldr.w r5, [r4, 0x198]                             |     r5 = *((r4 + 0x198));
                                                                 |     if (r5 == 0) {
    0x00016712 cbz r5, 0x1677c                                   |         goto label_95;
                                                                 |     }
    0x00016714 vmov.i32 d8, 0                                    |     __asm ("vmov.i32 d8, 0");
    0x00016718 b 0x16740                                         |     
                                                                 |     while (r3 != 0) {
    0x0001671a ldr r2, [r5, 0x30]                                |         r2 = *((r5 + 0x30));
    0x0001671c str r2, [r3, 0x30]                                |         *((r3 + 0x30)) = r2;
                                                                 | label_8:
    0x0001671e ldr r0, [r5]                                      |         r0 = *(r5);
    0x00016720 vstr d8, [r5, 0x30]                               |         __asm ("vstr d8, [r5, 0x30]");
    0x00016724 blx 0x59e0                                        |         unit_file_state_to_string ();
    0x00016726 ldrd r6, r8, [ip, -0x1a0]                         |         __asm ("ldrd r6, r8, [ip, -0x1a0]");
    0x00016728 ldr r0, [r5, 4]                                   |         r0 = *((r5 + 4));
    0x0001672a blx 0x59e0                                        |         unit_file_state_to_string ();
    0x0001672e ldr r0, [r5, 8]                                   |         r0 = *((r5 + 8));
    0x00016730 blx 0x67b4                                        |         mktime (r0);
    0x00016734 mov r0, r5                                        |         r0 = r5;
    0x00016736 blx 0x59e0                                        |         unit_file_state_to_string ();
    0x0001673a ldr.w r5, [r4, 0x198]                             |         r5 = *((r4 + 0x198));
    0x0001673c str r0, [r3, r6]                                  |         *((r3 + r6)) = r0;
                                                                 |         if (r5 == 0) {
    0x0001673e cbz r5, 0x1677c                                   |             goto label_95;
                                                                 |         }
    0x00016740 ldr r3, [r5, 0x30]                                |         r3 = *((r5 + 0x30));
                                                                 |         if (r3 != 0) {
    0x00016742 cbz r3, 0x16748                                   |             
    0x00016744 ldr r2, [r5, 0x34]                                |             r2 = *((r5 + 0x34));
    0x00016746 str r2, [r3, 0x34]                                |             *((r3 + 0x34)) = r2;
                                                                 |         }
    0x00016748 ldr r3, [r5, 0x34]                                |         r3 = *((r5 + 0x34));
    0x0001674a cmp r3, 0                                         |         
    0x0001674c bne 0x1671a                                       |         
                                                                 |     }
    0x0001674e ldr.w r3, [r4, 0x198]                             |     r3 = *((r4 + 0x198));
    0x00016752 cmp r3, r5                                        |     
                                                                 |     if (r3 != r5) {
    0x00016754 bne.w 0x16ad0                                     |         goto label_96;
                                                                 |     }
    0x00016758 ldr r3, [r5, 0x30]                                |     r3 = *((r5 + 0x30));
    0x0001675a str.w r3, [r4, 0x198]                             |     __asm ("str.w r3, [r4, 0x198]");
    0x0001675e b 0x1671e                                         |     goto label_8;
                                                                 | label_94:
    0x00016760 ldr.w r1, [pc, 0x840]                             |     
    0x00016764 mov.w r2, 0x118                                   |     r2 = 0x118;
    0x00016768 ldr.w r3, [pc, 0x83c]                             |     
    0x0001676c ldr.w r0, [pc, 0x83c]                             |     
    0x00016770 add r1, pc                                        |     r1 = 0x2d718;
    0x00016772 add r3, pc                                        |     r3 = 0x2d71e;
    0x00016774 adds r1, 7                                        |     r1 += 7;
    0x00016776 add r0, pc                                        |     r0 = 0x2d726;
    0x00016778 blx 0x59a0                                        |     fcn_000059a0 ();
                                                                 | label_95:
    0x0001677c ldr r3, [sp, 0x38]                                |     r3 = *(arg_38h);
    0x0001677e ldr r0, [r3]                                      |     r0 = *(r3);
                                                                 |     if (r0 != 0) {
    0x00016780 cbz r0, 0x1678e                                   |         
    0x00016782 movs r2, 0                                        |         r2 = 0;
    0x00016784 mov r1, r2                                        |         r1 = r2;
    0x00016786 blx 0x60e4                                        |         fcn_000060e4 ();
    0x0001678a ldr r3, [sp, 0x38]                                |         r3 = *(arg_38h);
    0x0001678c str r0, [r3]                                      |         *(r3) = r0;
                                                                 |     }
    0x0001678e ldr r0, [sp, 0x34]                                |     r0 = *(arg_34h);
    0x00016790 blx 0x5f0c                                        |     fcn_00005f0c ();
    0x00016794 ldr r3, [sp, 0x30]                                |     r3 = *(arg_30h);
    0x00016796 ldr r0, [r3]                                      |     r0 = *(r3);
                                                                 |     if (r0 != 0) {
    0x00016798 cbz r0, 0x1679e                                   |         
    0x0001679a blx 0x62ac                                        |         fcn_000062ac ();
                                                                 |     }
    0x0001679e ldr.w r2, [pc, 0x810]                             |     
    0x000167a2 ldr.w r3, [pc, 0x7a8]                             |     r3 = *(0x16f4e);
    0x000167a6 add r2, pc                                        |     r2 = 0x2d75c;
    0x000167a8 ldr r3, [r2, r3]                                  |     r3 = *(0x2d75c);
    0x000167aa ldr r2, [r3]                                      |     r2 = *(0x2d75c);
    0x000167ac ldr.w r3, [sp, 0x4c4]                             |     r3 = *(arg_4c4h);
    0x000167b0 eors r2, r3                                       |     r2 ^= r3;
    0x000167b2 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x000167b6 bne.w 0x18096                                     |         goto label_97;
                                                                 |     }
    0x000167ba mov r0, r6                                        |     r0 = r6;
    0x000167bc addw sp, sp, 0x4cc                                |     __asm ("addw sp, var_0h");
    0x000167c0 vpop {d8}                                         |     __asm ("vpop {d8}");
    0x000167c2 ldrh r2, [r0, 0x18]                               |     r2 = *((r0 + 0x18));
    0x000167c4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_81:
    0x000167c8 movs r0, 0xa                                      |     r0 = 0xa;
    0x000167ca blx 0x5d1c                                        |     get_process_comm ();
    0x000167ce movs r3, 1                                        |     r3 = 1;
    0x000167d0 cmp r6, r3                                        |     
    0x000167d2 strb.w r3, [sb]                                   |     *(sb) = r3;
                                                                 |     if (r6 != r3) {
    0x000167d6 bne.w 0x16512                                     |         goto label_9;
                                                                 |     }
                                                                 | label_82:
    0x000167da add r3, sp, 0x8c                                  |     r3 += arg_8ch;
    0x000167dc add r5, sp, 0x70                                  |     r5 += arg_70h;
    0x000167de add r6, sp, 0x6c                                  |     r6 += arg_6ch;
    0x000167e0 ldr r0, [r4, 8]                                   |     r0 = *((r4 + 8));
    0x000167e2 mov r2, r5                                        |     r2 = r5;
    0x000167e4 mov r1, r6                                        |     r1 = r6;
    0x000167e6 mov r7, r3                                        |     r7 = r3;
    0x000167e8 str r3, [sp, 0x50]                                |     *(arg_50h) = r3;
    0x000167ea movs r3, 0                                        |     r3 = 0;
    0x000167ec add.w fp, sp, 0x7c                                |     
    0x000167f0 str r3, [r7]                                      |     *(r7) = r3;
    0x000167f2 add.w sl, sp, 0x88                                |     sl += arg_88h;
    0x000167f6 bl 0x12d1c                                        |     fcn_00012d1c (r0, r1, r2);
    0x000167fa add r3, sp, 0x80                                  |     r3 += arg_80h;
    0x000167fc ldr r0, [r4, 0x14]                                |     r0 = *((r4 + 0x14));
    0x000167fe mov r2, r3                                        |     r2 = r3;
    0x00016800 mov r1, fp                                        |     r1 = fp;
    0x00016802 mov sb, r3                                        |     sb = r3;
    0x00016804 bl 0x12e14                                        |     fcn_00012e14 (r0, r1, r2);
    0x00016808 add r3, sp, 0x84                                  |     r3 += arg_84h;
    0x0001680a mov r2, sl                                        |     r2 = sl;
    0x0001680c mov r1, r3                                        |     r1 = r3;
    0x0001680e ldr r0, [r4, 0x18]                                |     r0 = *((r4 + 0x18));
    0x00016810 str r3, [sp, 0x44]                                |     *(arg_44h) = r3;
    0x00016812 bl 0x12e14                                        |     fcn_00012e14 (r0, r1, r2);
    0x00016816 ldr r0, [r4, 8]                                   |     r0 = *((r4 + 8));
    0x00016818 blx 0x5aac                                        |     sd_bus_get_property ();
    0x0001681c blx 0x68bc                                        |     printf_chk ();
    0x00016820 blx 0x6198                                        |     fcn_00006198 ();
    0x00016822 ldc p8, c6, [sl], 0x88                            |     __asm ("ldc p8, c6, [sl], 0x88");
    0x00016824 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00016826 ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x00016828 ldr.w r8, [sp, 0x6c]                              |     r8 = *(arg_6ch);
    0x0001682c str r3, [sp, 0x48]                                |     *(arg_48h) = r3;
    0x0001682e mov r3, r0                                        |     r3 = r0;
    0x00016830 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00016832 beq.w 0x178f8                                     |         goto label_98;
                                                                 |     }
                                                                 | label_32:
    0x00016836 str r2, [sp, 4]                                   |     var_4h = r2;
    0x00016838 movs r0, 1                                        |     r0 = 1;
    0x0001683a ldr r2, [sp, 0x48]                                |     r2 = *(arg_48h);
    0x0001683c ldr.w r1, [pc, 0x774]                             |     
    0x00016840 str r2, [sp]                                      |     *(sp) = r2;
    0x00016842 mov r2, r8                                        |     r2 = r8;
    0x00016844 add r1, pc                                        |     r1 = 0x2d7fc;
    0x00016846 blx 0x68e0                                        |     touch ();
    0x0001684a ldr r5, [r4, 0x1c]                                |     r5 = *((r4 + 0x1c));
                                                                 |     if (r5 != 0) {
    0x0001684c cbz r5, 0x16864                                   |         
    0x0001684e ldr r0, [r4]                                      |         r0 = *(r4);
    0x00016850 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00016852 bne.w 0x16b16                                     |             goto label_99;
                                                                 |         }
    0x00016854 strh r0, [r4, 0xa]                                |         *((r4 + 0xa)) = r0;
                                                                 | label_14:
    0x00016856 ldr.w r1, [pc, 0x760]                             |         
    0x0001685a mov r2, r5                                        |         r2 = r5;
    0x0001685c movs r0, 1                                        |         r0 = 1;
    0x0001685e add r1, pc                                        |         r1 = 0x2d81c;
    0x00016860 blx 0x68e0                                        |         touch ();
                                                                 |     }
                                                                 | label_15:
    0x00016864 movs r0, 0xa                                      |     r0 = 0xa;
    0x00016866 blx 0x5d1c                                        |     get_process_comm ();
    0x00016868 orrs.w sl, sl, r2, asr 24                         |     sl |= (r2 >> 24);
    0x0001686a ldr r2, [r4, 0x20]                                |     r2 = *((r4 + 0x20));
                                                                 |     if (r2 != 0) {
    0x0001686c cbz r2, 0x1687a                                   |         
    0x0001686e ldr.w r1, [pc, 0x74c]                             |         
    0x00016872 movs r0, 1                                        |         r0 = 1;
    0x00016874 add r1, pc                                        |         r1 = 0x2d836;
    0x00016876 blx 0x68e0                                        |         touch ();
                                                                 |     }
    0x0001687a ldr r5, [r4, 4]                                   |     r5 = *((r4 + 4));
    0x0001687c cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0001687e beq 0x16910                                       |         goto label_100;
                                                                 |     }
    0x00016880 ldr.w r3, [pc, 0x73c]                             |     
    0x00016884 add r6, sp, 0x264                                 |     r6 += arg_264h;
    0x00016886 add r3, pc                                        |     r3 = 0x2d84a;
    0x00016888 adds r3, 0xac                                     |     r3 += 0xac;
    0x0001688a ldm r3, {r0, r1, r2, r3}                          |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
                                                                 |     r2 = *((r3 + 8));
                                                                 |     r3 = *((r3 + 12));
    0x0001688c stm.w r6, {r0, r1, r2, r3}                        |     *(r6) = r0;
                                                                 |     *((r6 + 4)) = r1;
                                                                 |     *((r6 + 8)) = r2;
                                                                 |     *((r6 + 12)) = r3;
    0x00016890 mov r1, r5                                        |     r1 = r5;
    0x00016892 mov r0, r6                                        |     r0 = r6;
    0x00016894 blx 0x5914                                        |     r0 = strv_find ();
    0x00016898 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001689a beq 0x16910                                       |         goto label_100;
                                                                 |     }
    0x0001689c blx 0x5ac4                                        |     r0 = table_add_cell_full ();
    0x000168a0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000168a2 beq.w 0x17a78                                     |         goto label_101;
                                                                 |     }
    0x000168a6 ldr.w r7, [pc, 0x71c]                             |     
    0x000168aa add r7, pc                                        |     r7 = 0x2d874;
                                                                 | label_44:
    0x000168ac add r3, sp, 0x74                                  |     r3 += arg_74h;
    0x000168ae str r7, [sp, 0x74]                                |     *(arg_74h) = r7;
    0x000168b0 str r3, [sp, 0x4c]                                |     *(arg_4ch) = r3;
    0x000168b2 blx 0x5ac4                                        |     r0 = table_add_cell_full ();
    0x000168b6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000168b8 beq.w 0x17a6e                                     |         goto label_102;
                                                                 |     }
    0x000168bc ldr.w r6, [pc, 0x708]                             |     
    0x000168c0 add r6, pc                                        |     r6 = 0x2d88c;
                                                                 | label_43:
    0x000168c2 add r3, sp, 0x78                                  |     r3 += arg_78h;
    0x000168c4 str r6, [sp, 0x78]                                |     *(arg_78h) = r6;
    0x000168c6 str r3, [sp, 0x54]                                |     *(arg_54h) = r3;
    0x000168c8 b 0x16926                                         |     goto label_103;
                                                                 | label_84:
    0x000168ca blx 0x5cd4                                        |     r0 = gethostname_full ();
    0x000168ce cmp r0, 2                                         |     
    0x000168d0 ittt le                                           |     
                                                                 |     if (r0 <= 2) {
    0x000168d2 rsble r6, r6, 0                                   |         __asm ("rsble r6, r6, 0");
                                                                 |     }
                                                                 |     if (r0 <= 2) {
    0x000168d4 bicle r6, r6, 0x40000000                          |         __asm ("bicle r6, r6, 0x40000000");
                                                                 |     }
                                                                 |     if (r0 > 2) {
    0x000168d8 rsbs r6, r6, 0                                    |         r6 -= ;
                                                                 |         goto label_104;
                                                                 |     }
                                                                 |     if (r0 <= 2) {
                                                                 | label_104:
    0x000168da ble.w 0x1663e                                     |         goto label_6;
                                                                 |     }
    0x000168de mov r1, r6                                        |     r1 = r6;
    0x000168e0 ldr r0, [sp, 0x34]                                |     r0 = *(arg_34h);
    0x000168e2 blx 0x663c                                        |     fcn_0000663c ();
    0x000168e6 ldr.w r3, [pc, 0x6e4]                             |     
    0x000168ea mov r1, r6                                        |     r1 = r6;
    0x000168ec ldr.w r2, [pc, 0x6e0]                             |     
    0x000168f0 str r0, [sp, 8]                                   |     var_8h = r0;
    0x000168f2 movs r0, 3                                        |     r0 = 3;
    0x000168f4 add r3, pc                                        |     r3 = 0x2d8c6;
    0x000168f6 str r3, [sp, 4]                                   |     var_4h = r3;
    0x000168f8 add r2, pc                                        |     r2 = 0x2d8cc;
    0x000168fa ldr.w r3, [pc, 0x6d8]                             |     
    0x000168fe adds r2, 7                                        |     r2 += 7;
    0x00016900 add r3, pc                                        |     r3 = 0x2d8da;
    0x00016902 str r3, [sp]                                      |     *(sp) = r3;
    0x00016904 mov.w r3, 0x7f0                                   |     r3 = 0x7f0;
    0x00016906 str r6, [r7, 0x3c]                                |     *((r7 + 0x3c)) = r6;
    0x00016908 blx 0x6008                                        |     r0 = fcn_00006008 ();
    0x0001690c mov r6, r0                                        |     r6 = r0;
    0x0001690e b 0x1663e                                         |     goto label_6;
                                                                 | label_100:
    0x00016910 ldr.w r3, [pc, 0x6c4]                             |     
    0x00016914 add r2, sp, 0x78                                  |     r2 += arg_78h;
    0x00016916 str r2, [sp, 0x54]                                |     *(arg_54h) = r2;
    0x00016918 add r2, sp, 0x74                                  |     r2 += arg_74h;
    0x0001691a str r2, [sp, 0x4c]                                |     *(arg_4ch) = r2;
    0x0001691c add r3, pc                                        |     r3 = 0x2d8f8;
    0x0001691e mov r6, r3                                        |     r6 = r3;
    0x00016920 mov r7, r3                                        |     r7 = r3;
    0x00016922 str r3, [sp, 0x78]                                |     *(arg_78h) = r3;
    0x00016924 str r3, [sp, 0x74]                                |     *(arg_74h) = r3;
                                                                 | label_103:
    0x00016926 ldr r5, [r4, 0x2c]                                |     r5 = *((r4 + 0x2c));
    0x00016928 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0001692a beq.w 0x176fc                                     |         goto label_105;
                                                                 |     }
                                                                 | label_23:
    0x0001692e ldr r2, [sp, 0x50]                                |     r2 = *(arg_50h);
    0x00016930 movs r1, 0                                        |     r1 = 0;
    0x00016932 mov r0, r5                                        |     r0 = r5;
    0x00016934 blx 0x63c0                                        |     r0 = fcn_000063c0 ();
    0x00016938 cmp r0, 0                                         |     
    0x0001693a ldr r2, [r4, 0x40]                                |     r2 = *((r4 + 0x40));
                                                                 |     if (r0 < 0) {
    0x0001693c blt.w 0x178e6                                     |         goto label_106;
                                                                 |     }
    0x00016940 ldr r3, [sp, 0x50]                                |     r3 = *(arg_50h);
    0x00016942 ldr r5, [r3]                                      |     r5 = *(r3);
    0x00016944 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00016946 beq.w 0x16b24                                     |         goto label_107;
                                                                 |     }
    0x0001694a ldrb r3, [r2]                                     |     r3 = *(r2);
    0x0001694c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001694e beq.w 0x16b24                                     |         goto label_107;
                                                                 |     }
                                                                 | label_24:
    0x00016952 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00016954 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016956 beq.w 0x17c74                                     |         goto label_108;
                                                                 |     }
                                                                 | label_52:
    0x0001695a ldr.w r1, [pc, 0x680]                             |     
    0x0001695e movs r0, 1                                        |     r0 = 1;
    0x00016960 strd r6, r2, [sp]                                 |     __asm ("strd r6, r2, [sp]");
    0x00016964 mov r2, r7                                        |     r2 = r7;
    0x00016966 add r1, pc                                        |     r1 = 0x2d948;
    0x00016968 blx 0x68e0                                        |     touch ();
    0x0001696a invalid                                           |     
                                                                 | label_16:
    0x0001696c ldrb.w r3, [r4, 0x79]                             |     r3 = *((r4 + 0x79));
    0x00016970 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00016972 bne.w 0x17902                                     |         goto label_109;
                                                                 |     }
                                                                 | label_33:
    0x00016976 ldr.w fp, [r4, 0x34]                              |     fp = *((r4 + 0x34));
    0x0001697a cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x0001697e beq.w 0x16bda                                     |         goto label_110;
                                                                 |     }
    0x00016982 ldr.w r3, [fp]                                    |     r3 = *(fp);
    0x00016986 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016988 beq.w 0x16bda                                     |         goto label_110;
                                                                 |     }
    0x0001698c ldr.w r6, [pc, 0x650]                             |     
    0x00016990 movs r3, 0                                        |     r3 = 0;
    0x00016992 ldr.w r1, [pc, 0x650]                             |     
    0x00016996 add r5, sp, 0xb0                                  |     r5 += c;
    0x00016998 ldr.w sl, [pc, 0x64c]                             |     
    0x0001699c mov sb, r3                                        |     sb = r3;
    0x0001699e add r6, pc                                        |     r6 = 0x2d982;
    0x000169a0 strd r4, r8, [sp, 0x58]                           |     __asm ("strd r4, r8, [sp, 0x58]");
    0x000169a2 ldr r0, [pc, 0x58]                                |     r0 = *(0x169fe);
    0x000169a4 add r1, pc                                        |     r1 = 0x2d98e;
    0x000169a6 str r6, [sp, 0x44]                                |     *(arg_44h) = r6;
    0x000169a8 add sl, pc                                        |     sl = 0x2d994;
    0x000169aa str r3, [r5]                                      |     *(r5) = r3;
    0x000169ac b 0x169d4                                         |     
                                                                 |     while (r7 != 0) {
    0x000169ae ldr.w r3, [pc, 0x63c]                             |         
    0x000169b2 add r3, pc                                        |         r3 = 0x2d9a4;
                                                                 | label_10:
    0x000169b4 mov r1, r4                                        |         r1 = r4;
    0x000169b6 movs r0, 1                                        |         r0 = 1;
    0x000169b8 blx 0x68e0                                        |         touch ();
    0x000169bc ldr r0, [r5]                                      |         r0 = *(r5);
    0x000169be blx 0x59e0                                        |         unit_file_state_to_string ();
    0x000169c0 invalid                                           |         
    0x000169c4 subs r7, 4                                        |         r7 -= 4;
    0x000169c6 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000169c8 beq.w 0x16bd0                                     |             goto label_111;
                                                                 |         }
    0x000169cc movs r3, 0                                        |         r3 = 0;
    0x000169ce mov r1, sl                                        |         r1 = sl;
    0x000169d0 str r3, [r5]                                      |         *(r5) = r3;
                                                                 |         if (r6 != 0) {
    0x000169d2 cbz r6, 0x16a0a                                   |             
    0x000169d4 movs r0, 1                                        |             r0 = 1;
    0x000169d6 blx 0x68e0                                        |             touch ();
    0x000169da mov r0, sb                                        |             r0 = sb;
    0x000169dc blx 0x59e0                                        |             unit_file_state_to_string ();
    0x000169e0 ldr.w r0, [fp]                                    |             r0 = *(fp);
    0x000169e4 blx 0x5cb0                                        |             r0 = fprintf_chk ()
    0x000169e8 mov sb, r0                                        |             sb = r0;
    0x000169ea cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000169ec beq.w 0x17f84                                     |                 goto label_112;
                                                                 |             }
    0x000169f0 ldr.w r8, [pc, 0x5fc]                             |             
    0x000169f4 movs r0, 2                                        |             r0 = 2;
    0x000169f6 blx 0x6198                                        |             fcn_00006198 ();
    0x000169fa ldr r1, [sp, 0x44]                                |             r1 = *(arg_44h);
    0x000169fc mov r3, r0                                        |             r3 = r0;
    0x000169fe add r8, pc                                        |             r8 = 0x2d9f2;
    0x00016a00 mov r2, sb                                        |             r2 = sb;
    0x00016a02 mov r4, r8                                        |             r4 = r8;
    0x00016a04 movs r0, 1                                        |             r0 = 1;
    0x00016a06 blx 0x68e0                                        |             touch ();
                                                                 |         }
    0x00016a0a ldr.w r0, [fp, 4]                                 |         r0 = *(arg_80h);
    0x00016a0e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00016a10 beq.w 0x16bca                                     |             goto label_113;
                                                                 |         }
    0x00016a12 strh r3, [r3, 6]                                  |         *((r3 + 6)) = r3;
    0x00016a14 mov r1, sb                                        |         r1 = sb;
    0x00016a16 blx 0x5c58                                        |         r0 = fcn_00005c58 ();
    0x00016a1a clz r6, r0                                        |         r6 &= r0;
    0x00016a1e lsrs r6, r6, 5                                    |         r6 >>= 5;
    0x00016a20 mov r7, r6                                        |         r7 = r6;
                                                                 | label_18:
    0x00016a22 ldr.w r8, [fp]                                    |         r8 = *(fp);
    0x00016a26 mov r0, r8                                        |         r0 = r8;
    0x00016a28 blx 0x6264                                        |         fcn_00006264 ();
    0x00016a2c mov r2, r5                                        |         r2 = r5;
    0x00016a2e mov r1, r0                                        |         r1 = r0;
    0x00016a30 mov r0, r8                                        |         r0 = r8;
    0x00016a32 blx 0x63c0                                        |         r0 = fcn_000063c0 ();
    0x00016a36 cmp r0, 0                                         |         
    0x00016a38 ite ge                                            |         
                                                                 |         if (r0 < 0) {
    0x00016a3a ldrge r2, [r5]                                    |             r2 = *(r5);
                                                                 |         }
                                                                 |         if (r0 >= 0) {
    0x00016a3c ldrlt r2, [fp]                                    |             r2 = *(fp);
                                                                 |         }
    0x00016a40 cmp r7, 0                                         |         
    0x00016a42 bne 0x169ae                                       |         
                                                                 |     }
    0x00016a44 ldr.w r3, [pc, 0x5ac]                             |     
    0x00016a48 add r3, pc                                        |     r3 = 0x2da40;
    0x00016a4a b 0x169b4                                         |     goto label_10;
                                                                 | label_76:
    0x00016a4c ldr.w r1, [pc, 0x5a8]                             |     
    0x00016a50 movw r2, 0x7c1                                    |     r2 = 0x7c1;
    0x00016a54 ldr.w r3, [pc, 0x5a4]                             |     
    0x00016a58 ldr.w r0, [pc, 0x5a4]                             |     
    0x00016a5c add r1, pc                                        |     r1 = 0x2da58;
    0x00016a5e add r3, pc                                        |     r3 = 0x2da5e;
    0x00016a60 adds r1, 7                                        |     r1 += 7;
    0x00016a62 add r0, pc                                        |     r0 = 0x2da66;
    0x00016a64 blx 0x59a0                                        |     fcn_000059a0 ();
                                                                 | label_83:
    0x00016a68 ldr r5, [r4, 0x24]                                |     r5 = *((r4 + 0x24));
    0x00016a6a cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00016a6c beq.w 0x17d78                                     |         goto label_114;
                                                                 |     }
    0x00016a70 ldr r6, [r5]                                      |     r6 = *(r5);
    0x00016a72 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00016a74 beq.w 0x16648                                     |         goto label_11;
                                                                 |     }
    0x00016a78 ldr.w sl, [pc, 0x588]                             |     
    0x00016a7c ldr.w sb, [pc, 0x588]                             |     
    0x00016a80 add sl, pc                                        |     sl = 0x2da88;
    0x00016a82 add.w sl, sl, 7                                   |     sl += 7;
    0x00016a86 add sb, pc                                        |     sb = 0x2da92;
    0x00016a88 b 0x16a98                                         |     
                                                                 |     while (r0 != 0) {
    0x00016a8a adds r0, r6, 4                                    |         r0 = r6 + 4;
    0x00016a8c movs r1, 0                                        |         r1 = 0;
    0x00016a8e blx 0x66ac                                        |         sigchld_code_to_string ();
                                                                 | label_12:
    0x00016a92 ldr r6, [r5, 4]!                                  |         r6 = *((r5 += 4));
                                                                 |         if (r6 == 0) {
    0x00016a96 cbz r6, 0x16af4                                   |             goto label_115;
                                                                 |         }
    0x00016a98 mov r1, sb                                        |         r1 = sb;
    0x00016a9a mov r0, r6                                        |         r0 = r6;
    0x00016a9c blx 0x5c58                                        |         fcn_00005c58 ();
    0x00016a9e invalid                                           |         
    0x00016aa0 mov r7, r0                                        |         r7 = r0;
    0x00016aa2 cmp r0, 0                                         |         
    0x00016aa4 bne 0x16a8a                                       |         
                                                                 |     }
    0x00016aa6 blx 0x5cd4                                        |     r0 = gethostname_full ();
    0x00016aaa cmp r0, 5                                         |     
                                                                 |     if (r0 <= 5) {
    0x00016aac ble 0x16a92                                       |         goto label_12;
                                                                 |     }
    0x00016aae ldr.w r3, [pc, 0x55c]                             |     
    0x00016ab2 mov r1, r7                                        |     r1 = r7;
    0x00016ab4 mov r2, sl                                        |     r2 = sl;
    0x00016ab6 str r6, [sp, 8]                                   |     var_8h = r6;
    0x00016ab8 movs r0, 6                                        |     r0 = 6;
    0x00016aba add r3, pc                                        |     r3 = 0x2dacc;
    0x00016abc str r3, [sp, 4]                                   |     var_4h = r3;
    0x00016abe ldr.w r3, [pc, 0x550]                             |     
    0x00016ac2 add r3, pc                                        |     r3 = 0x2dad8;
    0x00016ac4 str r3, [sp]                                      |     *(sp) = r3;
    0x00016ac6 movw r3, 0x321                                    |     r3 = 0x321;
    0x00016aca blx 0x6008                                        |     fcn_00006008 ();
    0x00016ace b 0x16a92                                         |     goto label_12;
                                                                 | label_96:
    0x00016ad0 ldr.w r1, [pc, 0x540]                             |     
    0x00016ad4 movw r2, 0x11d                                    |     r2 = 0x11d;
    0x00016ad8 ldr.w r3, [pc, 0x53c]                             |     
    0x00016adc ldr.w r0, [pc, 0x53c]                             |     
    0x00016ae0 add r1, pc                                        |     r1 = 0x2daf8;
    0x00016ae2 add r3, pc                                        |     r3 = 0x2dafe;
    0x00016ae4 adds r1, 7                                        |     r1 += 7;
    0x00016ae6 add r0, pc                                        |     r0 = 0x2db06;
    0x00016ae8 blx 0x59a0                                        |     fcn_000059a0 ();
                                                                 | label_87:
    0x00016aec ldr r5, [r4, 0x24]                                |     r5 = *((r4 + 0x24));
                                                                 | label_19:
    0x00016aee movs r6, 0                                        |     r6 = 0;
    0x00016af0 b 0x16648                                         |     goto label_11;
                                                                 | label_86:
    0x00016af2 mov r6, sb                                        |     r6 = sb;
                                                                 | label_115:
    0x00016af4 ldr r5, [r4, 0x24]                                |     r5 = *((r4 + 0x24));
    0x00016af6 b 0x16648                                         |     goto label_11;
                                                                 | label_88:
    0x00016af8 cmp r0, 2                                         |     
    0x00016afa it gt                                             |     
                                                                 |     if (r0 <= 2) {
    0x00016afc movgt r0, 3                                       |         r0 = 3;
                                                                 |     }
                                                                 |     if (r0 > 2) {
    0x00016afe bgt 0x16ba2                                       |         goto label_116;
                                                                 |     }
                                                                 | label_17:
    0x00016b00 cmp r6, 1                                         |     
                                                                 |     if (r6 == 1) {
    0x00016b02 beq.w 0x17fc8                                     |         goto label_117;
                                                                 |     }
    0x00016b06 cmp r6, 2                                         |     
    0x00016b08 itt eq                                            |     
                                                                 |     if (r6 != 2) {
    0x00016b0a ldreq r5, [r4, 0x24]                              |         r5 = *((r4 + 0x24));
                                                                 |     }
                                                                 |     if (r6 != 2) {
    0x00016b0c mvneq r6, 1                                       |         r6 = ~1;
                                                                 |     }
    0x00016b0e lsls r1, r0, 0x18                                 |     r1 = r0 << 0x18;
                                                                 |     if (r1 != r0) {
    0x00016b10 bne.w 0x165ec                                     |         goto label_13;
                                                                 |     }
    0x00016b14 b 0x16648                                         |     goto label_11;
                                                                 | label_99:
    0x00016b16 mov r1, r5                                        |     r1 = r5;
    0x00016b18 blx 0x6670                                        |     r0 = hashmap_contains ();
    0x00016b1c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016b1e bne.w 0x16856                                     |         goto label_14;
                                                                 |     }
    0x00016b20 add r6, sp, 0x268                                 |     r6 = sp + 0x268;
    0x00016b22 b 0x16864                                         |     goto label_15;
                                                                 | label_107:
    0x00016b24 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00016b26 beq.w 0x17710                                     |         goto label_118;
                                                                 |     }
                                                                 | label_31:
    0x00016b2a ldr r0, [r4, 0x14]                                |     r0 = *((r4 + 0x14));
    0x00016b2c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00016b2e beq.w 0x179b6                                     |         goto label_119;
                                                                 |     }
    0x00016b32 ldrb r3, [r0]                                     |     r3 = *(r0);
    0x00016b34 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016b36 beq.w 0x179b6                                     |         goto label_119;
                                                                 |     }
    0x00016b3a ldr r3, [r4, 0x18]                                |     r3 = *((r4 + 0x18));
    0x00016b3c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016b3e beq.w 0x17dd8                                     |         goto label_120;
                                                                 |     }
    0x00016b42 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00016b44 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016b46 beq.w 0x17dd8                                     |         goto label_120;
                                                                 |     }
    0x00016b4a blx 0x67fc                                        |     bus_message_new_method_call ();
    0x00016b4e bl 0x1cb78                                        |     fcn_0001cb78 (r0);
    0x00016b52 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00016b54 mov r2, r0                                        |     r2 = r0;
    0x00016b56 ldr r0, [r4, 0x14]                                |     r0 = *((r4 + 0x14));
    0x00016b58 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016b5a beq.w 0x18056                                     |         goto label_121;
                                                                 |     }
                                                                 | label_73:
    0x00016b5e ldr r1, [sp, 0x44]                                |     r1 = *(arg_44h);
    0x00016b60 ldr.w fp, [fp]                                    |     fp = *(fp);
    0x00016b64 ldr.w lr, [sb]                                    |     
    0x00016b68 ldr r1, [r1]                                      |     r1 = *(r1);
    0x00016b6a cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00016b6c beq.w 0x17de8                                     |         goto label_122;
                                                                 |     }
    0x00016b70 ldr.w r2, [pc, 0x4ac]                             |     
    0x00016b74 ldr.w ip, [r4, 0x18]                              |     ip = *((r4 + 0x18));
    0x00016b78 add r2, pc                                        |     r2 = 0x2db9c;
                                                                 | label_58:
    0x00016b7a strd r1, ip, [sp, 0x18]                           |     __asm ("strd r1, ip, [sp, 0x18]");
    0x00016b7e strd fp, r0, [sp, 8]                              |     __asm ("strd fp, r0, [sp, 8]");
    0x00016b82 movs r0, 1                                        |     r0 = 1;
    0x00016b84 strd lr, r2, [sp, 0x10]                           |     __asm ("strd lr, r2, [sp, 0x10]");
    0x00016b86 b 0x16f92                                         |     void (*0x16f92)() ();
    0x00016b88 strd r6, r5, [sp]                                 |     __asm ("strd r6, r5, [sp]");
    0x00016b8c ldr.w r1, [pc, 0x494]                             |     
    0x00016b90 ldr.w r2, [sl]                                    |     r2 = *(sl);
    0x00016b94 add r1, pc                                        |     r1 = 0x2dbbc;
    0x00016b96 str r2, [sp, 0x20]                                |     var_20h = r2;
    0x00016b98 mov r2, r7                                        |     r2 = r7;
    0x00016b9a blx 0x68e0                                        |     touch ();
    0x00016b9e b 0x1696c                                         |     goto label_16;
                                                                 | label_89:
    0x00016ba0 movs r0, 7                                        |     r0 = 7;
                                                                 | label_116:
    0x00016ba2 ldr.w r3, [pc, 0x484]                             |     
    0x00016ba6 movs r1, 0                                        |     r1 = 0;
    0x00016ba8 ldr.w r2, [pc, 0x480]                             |     
    0x00016bac str.w r8, [sp, 8]                                 |     __asm ("str.w r8, [var_8h]");
    0x00016bb0 add r3, pc                                        |     r3 = 0x2dbde;
    0x00016bb2 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00016bb4 add r2, pc                                        |     r2 = 0x2dbe4;
    0x00016bb6 ldr.w r3, [pc, 0x478]                             |     
    0x00016bba adds r2, 7                                        |     r2 += 7;
    0x00016bbc add r3, pc                                        |     r3 = 0x2dbf2;
    0x00016bbe str r3, [sp]                                      |     *(sp) = r3;
    0x00016bc0 movw r3, 0x7d3                                    |     r3 = 0x7d3;
    0x00016bc4 blx 0x6008                                        |     fcn_00006008 ();
    0x00016bc8 b 0x16b00                                         |     goto label_17;
                                                                 | label_113:
    0x00016bca movs r7, 1                                        |     r7 = 1;
    0x00016bcc mov r6, r7                                        |     r6 = r7;
    0x00016bce b 0x16a22                                         |     goto label_18;
                                                                 | label_111:
    0x00016bd0 mov r0, sb                                        |     r0 = sb;
    0x00016bd2 ldrd r4, r8, [sp, 0x58]                           |     __asm ("ldrd r4, r8, [arg_58h]");
    0x00016bd6 blx 0x59e0                                        |     unit_file_state_to_string ();
                                                                 | label_110:
    0x00016bda ldr r6, [r4, 0x10]                                |     r6 = *((r4 + 0x10));
    0x00016bdc ldr r5, [r4, 8]                                   |     r5 = *((r4 + 8));
    0x00016bde subs r3, r6, 0                                    |     r3 = r6 - 0;
    0x00016be0 it ne                                             |     
                                                                 |     if (r3 == r6) {
    0x00016be2 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00016be4 cmp r5, 0                                         |     
    0x00016be6 ite eq                                            |     
                                                                 |     if (r5 != 0) {
    0x00016be8 moveq r2, 0                                       |         r2 = 0;
                                                                 |     }
                                                                 |     if (r5 == 0) {
    0x00016bea andne r2, r3, 1                                   |         r2 = r3 & 1;
                                                                 |     }
    0x00016bee cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x00016bf0 bne.w 0x17930                                     |         goto label_123;
                                                                 |     }
    0x00016bf4 cmp r5, r6                                        |     
                                                                 |     if (r5 <= r6) {
    0x00016bf6 blo.w 0x1808a                                     |         goto label_124;
                                                                 |     }
    0x00016bfa and r3, r3, 1                                     |     r3 &= 1;
    0x00016bfe it ls                                             |     
                                                                 |     if (r5 > r6) {
    0x00016c00 movls r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x00016c02 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00016c04 bne.w 0x1793e                                     |         goto label_75;
                                                                 |     }
                                                                 |     if (r5 == 0) {
    0x00016c08 cbnz r5, 0x16c10                                  |         
    0x00016c0a ldr.w r5, [pc, 0x428]                             |         
    0x00016c0e add r5, pc                                        |         r5 = 0x2dc48;
                                                                 |     }
                                                                 | label_35:
    0x00016c10 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x00016c12 mov r2, r8                                        |     r2 = r8;
    0x00016c14 ldr.w r1, [pc, 0x420]                             |     
    0x00016c16 asrs r0, r4, 0x10                                 |     r0 = r4 >> 0x10;
    0x00016c18 movs r0, 1                                        |     r0 = 1;
    0x00016c1a str r3, [sp]                                      |     *(sp) = r3;
    0x00016c1c mov r3, r5                                        |     r3 = r5;
    0x00016c1e add r1, pc                                        |     r1 = 0x2dc5a;
    0x00016c20 blx 0x68e0                                        |     touch ();
    0x00016c24 ldr r5, [r4, 0xc]                                 |     r5 = *((r4 + 0xc));
                                                                 |     if (r5 != 0) {
    0x00016c26 cbz r5, 0x16c3e                                   |         
    0x00016c28 ldrb r3, [r5]                                     |         r3 = *(r5);
                                                                 |         if (r3 == 0) {
    0x00016c2a cbz r3, 0x16c3e                                   |             goto label_48;
                                                                 |         }
    0x00016c2c ldr.w r1, [pc, 0x40c]                             |         
    0x00016c30 mov r0, r5                                        |         r0 = r5;
    0x00016c32 add r1, pc                                        |         r1 = 0x2dc72;
    0x00016c34 blx 0x6670                                        |         r0 = hashmap_contains ();
    0x00016c38 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00016c3a bne.w 0x17be2                                     |             goto label_125;
                                                                 |         }
    0x00016c3c strh r2, [r2, 0x3e]                               |         *((r2 + 0x3e)) = r2;
                                                                 |     }
                                                                 | label_48:
    0x00016c3e ldr r5, [r4, 0x44]                                |     r5 = *((r4 + 0x44));
                                                                 |     if (r5 != 0) {
    0x00016c40 cbz r5, 0x16c56                                   |         
    0x00016c42 ldrb r3, [r5]                                     |         r3 = *(r5);
                                                                 |         if (r3 == 0) {
    0x00016c44 cbz r3, 0x16c56                                   |             goto label_49;
                                                                 |         }
    0x00016c46 ldr r1, [pc, 0x3f8]                               |         
    0x00016c48 mov r0, r5                                        |         r0 = r5;
    0x00016c4a add r1, pc                                        |         r1 = 0x2dc90;
    0x00016c4c blx 0x6670                                        |         r0 = hashmap_contains ();
    0x00016c50 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00016c52 bne.w 0x17c18                                     |             goto label_126;
                                                                 |         }
                                                                 |     }
                                                                 | label_49:
    0x00016c56 ldr.w sb, [r4, 8]                                 |     sb = *((r4 + 8));
    0x00016c5a cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x00016c5e beq.w 0x17dd0                                     |         goto label_127;
                                                                 |     }
    0x00016c62 ldr r5, [pc, 0x3e0]                               |     
    0x00016c64 add r6, sp, 0x264                                 |     r6 += arg_264h;
    0x00016c66 add r5, pc                                        |     r5 = 0x2dcb0;
    0x00016c68 ldm.w r5, {r0, r1, r2}                            |     r0 = *(r5);
                                                                 |     r1 = *((r5 + 4));
                                                                 |     r2 = *((r5 + 8));
    0x00016c6c stm.w r6, {r0, r1, r2}                            |     *(r6) = r0;
                                                                 |     *((r6 + 4)) = r1;
                                                                 |     *((r6 + 8)) = r2;
    0x00016c70 mov r1, sb                                        |     r1 = sb;
    0x00016c72 mov r0, r6                                        |     r0 = r6;
    0x00016c74 blx 0x5914                                        |     r0 = strv_find ();
    0x00016c78 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00016c7a beq.w 0x17910                                     |         goto label_128;
                                                                 |     }
    0x00016c7e ldrd r5, r6, [r4, 0x58]                           |     __asm ("ldrd r5, r6, [r4, 0x58]");
                                                                 | label_34:
    0x00016c82 subs r2, r5, 1                                    |     r2 = r5 - 1;
    0x00016c84 adc r3, r6, -1                                    |     __asm ("adc r3, r6, -1");
    0x00016c88 adds r2, 2                                        |     r2 += 2;
    0x00016c8a sbcs r3, r3, -1                                   |     __asm ("sbcs r3, r3, -1");
                                                                 |     if (r2 >= 2) {
    0x00016c8e bhs.w 0x1772c                                     |         goto label_129;
                                                                 |     }
    0x00016c92 add r3, sp, 0x29c                                 |     r3 += arg_29ch;
    0x00016c94 movs r2, 0x26                                     |     r2 = 0x26;
    0x00016c96 movs r1, 0                                        |     r1 = 0;
    0x00016c98 mov r0, r3                                        |     r0 = r3;
    0x00016c9a blx 0x5d50                                        |     fcn_00005d50 ();
    0x00016c9e ldr r2, [sp, 0x3c]                                |     r2 = *(arg_3ch);
    0x00016ca0 add.w sb, sp, 0x3c4                               |     sb += arg_3c4h;
    0x00016ca4 ldr r3, [pc, 0x3a0]                               |     r3 = *(0x17048);
    0x00016ca6 movs r1, 0x26                                     |     r1 = 0x26;
    0x00016ca8 ldr.w fp, [r2, r3]                                |     fp = *((r2 + r3));
    0x00016cac mov r3, r6                                        |     r3 = r6;
    0x00016cae mov r2, r5                                        |     r2 = r5;
    0x00016cb0 ldr.w r7, [fp]                                    |     r7 = *(fp);
    0x00016cb4 str r7, [sp]                                      |     *(sp) = r7;
    0x00016cb6 blx 0x5a10                                        |     json_variant_dump ();
    0x00016cba movs r1, 0                                        |     r1 = 0;
    0x00016cbc mov sl, r0                                        |     sl = r0;
    0x00016cbe mov.w r2, 0x100                                   |     r2 = 0x100;
    0x00016cc2 mov r0, sb                                        |     r0 = sb;
    0x00016cc4 blx 0x5d50                                        |     fcn_00005d50 ();
    0x00016cc8 mov r2, r5                                        |     r2 = r5;
    0x00016cca mov r3, r6                                        |     r3 = r6;
    0x00016ccc mov r0, sb                                        |     r0 = sb;
    0x00016cce mov.w r1, 0x100                                   |     r1 = 0x100;
    0x00016cd2 blx 0x5ed0                                        |     fcn_00005ed0 ();
    0x00016cd6 ldr r1, [pc, 0x374]                               |     
    0x00016cd8 mov r3, r0                                        |     r3 = r0;
    0x00016cda mov r2, sl                                        |     r2 = sl;
    0x00016cdc movs r0, 1                                        |     r0 = 1;
    0x00016cde add r1, pc                                        |     r1 = 0x2dd30;
    0x00016ce0 blx 0x68e0                                        |     touch ();
    0x00016ce4 ldr.w sb, [r4, 8]                                 |     sb = *((r4 + 8));
    0x00016ce8 cmp.w sb, 0                                       |     
                                                                 |     if (sb != 0) {
    0x00016cec bne.w 0x1773e                                     |         goto label_130;
                                                                 |     }
                                                                 | label_25:
    0x00016cf0 ldr r6, [r4, 0x38]                                |     r6 = *((r4 + 0x38));
    0x00016cf2 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00016cf4 beq 0x16d7a                                       |         goto label_131;
                                                                 |     }
    0x00016cf6 ldr r3, [r6]                                      |     r3 = *(r6);
    0x00016cf8 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016cfa beq 0x16d7a                                       |         goto label_131;
                                                                 |     }
    0x00016cfc ldr.w r8, [pc, 0x350]                             |     
    0x00016d00 add r5, sp, 0xb0                                  |     r5 += c;
    0x00016d02 ldr.w fp, [pc, 0x350]                             |     
    0x00016d06 mov sb, r4                                        |     sb = r4;
    0x00016d08 ldr.w sl, [pc, 0x34c]                             |     
    0x00016d0c add r8, pc                                        |     r8 = 0x2dd60;
    0x00016d0e ldr r7, [sp, 0x4c]                                |     r7 = *(arg_4ch);
    0x00016d10 str.w r8, [sp, 0x44]                              |     __asm ("str.w r8, [arg_44h]");
    0x00016d14 add fp, pc                                        |     fp = 0x2dd6e;
    0x00016d16 ldr.w r8, [sp, 0x54]                              |     r8 = *(arg_54h);
    0x00016d1a add sl, pc                                        |     sl = 0x2dd76;
    0x00016d1c str.w sl, [sp, 0x48]                              |     __asm ("str.w sl, [arg_48h]");
    0x00016d1e adr r0, 0x120                                     |     r0 = 0x120;
                                                                 |     do {
    0x00016d20 mvn r3, 0x15                                      |         r3 = ~0x15;
    0x00016d24 mov r2, r5                                        |         r2 = r5;
    0x00016d26 str r3, [r5]                                      |         *(r5) = r3;
    0x00016d28 ldr r0, [sp, 0x2c]                                |         r0 = *(arg_2ch);
    0x00016d2a ldr r1, [r6]                                      |         r1 = *(r6);
    0x00016d2c bl 0x1ae00                                        |         fcn_0001ae00 (r0, r1, r2, r3, r4, r5, r6);
    0x00016d30 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00016d32 blx 0x6754                                        |         lookup_paths_init ();
    0x00016d36 mov r2, r8                                        |         r2 = r8;
    0x00016d38 mov r1, r7                                        |         r1 = r7;
    0x00016d3a bl 0x12d1c                                        |         fcn_00012d1c (r0, r1, r2);
    0x00016d3e ldr.w r3, [sb, 0x38]                              |         r3 = *((sb + 0x38));
    0x00016d42 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00016d44 ldr r4, [r7]                                      |         r4 = *(r7);
    0x00016d46 cmp r3, r6                                        |         
    0x00016d48 ldr r3, [sp, 0x48]                                |         r3 = *(arg_48h);
    0x00016d4a ite eq                                            |         
                                                                 |         if (r3 != r6) {
    0x00016d4c moveq sl, fp                                      |             sl = fp;
                                                                 |         }
                                                                 |         if (r3 == r6) {
    0x00016d4e movne sl, r3                                      |             sl = r3;
                                                                 |         }
    0x00016d50 blx 0x68bc                                        |         printf_chk ();
    0x00016d54 blx 0x6198                                        |         fcn_00006198 ();
    0x00016d58 ldr r1, [r6]                                      |         r1 = *(r6);
    0x00016d5a mov r3, r4                                        |         r3 = r4;
    0x00016d5c str r0, [sp]                                      |         *(sp) = r0;
    0x00016d5e mov r2, sl                                        |         r2 = sl;
    0x00016d60 movs r0, 1                                        |         r0 = 1;
    0x00016d62 str r1, [sp, 8]                                   |         var_8h = r1;
    0x00016d64 ldr.w r1, [r8]                                    |         r1 = *(r8);
    0x00016d68 str r1, [sp, 4]                                   |         var_4h = r1;
    0x00016d6a ldr r1, [sp, 0x44]                                |         r1 = *(arg_44h);
    0x00016d6c blx 0x68e0                                        |         touch ();
    0x00016d70 ldr r3, [r6, 4]!                                  |         r3 = *((r6 += 4));
    0x00016d74 cmp r3, 0                                         |         
    0x00016d76 bne 0x16d20                                       |         
                                                                 |     } while (r3 != 0);
    0x00016d78 mov r4, sb                                        |     r4 = sb;
                                                                 | label_131:
    0x00016d7a ldr r1, [pc, 0x2e0]                               |     
    0x00016d7c ldr r0, [r4]                                      |     r0 = *(r4);
    0x00016d7e add r1, pc                                        |     r1 = 0x2dde0;
    0x00016d80 blx 0x5d68                                        |     r0 = fcn_00005d68 ();
    0x00016d84 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016d86 beq 0x16e0a                                       |         
    0x00016d88 vldr d16, [r4, 0xe0]                              |         __asm ("vldr d16, [r4, 0xe0]");
    0x00016d8c vldr d17, [r4, 0xe8]                              |         __asm ("vldr d17, [r4, 0xe8]");
    0x00016d90 add r6, sp, 0xa0                                  |         r6 += arg_a0h;
    0x00016d92 add r5, sp, 0xb0                                  |         r5 += c;
    0x00016d94 mov r0, r6                                        |         r0 = r6;
    0x00016d96 vstr d16, [sp, 0xb0]                              |         __asm ("vstr d16, [sp, 0xb0]");
    0x00016d9a vstr d17, [sp, 0xb8]                              |         __asm ("vstr d17, [sp, 0xb8]");
    0x00016d9c subs r6, r5, r4                                   |         r6 = r5 - r4;
    0x00016d9e blx 0x5e1c                                        |         fcn_00005e1c ();
    0x00016da2 mov r1, r5                                        |         r1 = r5;
    0x00016da4 mov r0, r6                                        |         r0 = r6;
    0x00016da6 bl 0xf628                                         |         r0 = fcn_0000f628 (r0, r1, r2);
    0x00016daa subs r2, r0, 1                                    |         r2 = r0 - 1;
    0x00016dac mov r5, r0                                        |         r5 = r0;
    0x00016dae adc r3, r1, -1                                    |         __asm ("adc r3, r1, -1");
    0x00016db2 adds r2, 2                                        |         r2 += 2;
    0x00016db4 sbcs r3, r3, -1                                   |         __asm ("sbcs r3, r3, -1");
    0x00016db8 mov sl, r1                                        |         sl = r1;
                                                                 |         if (r2 >= 2) {
    0x00016dba bhs.w 0x179a8                                     |             goto label_132;
                                                                 |         }
    0x00016dbe add r3, sp, 0x2c4                                 |         r3 += arg_2c4h;
    0x00016dc0 movs r2, 0x26                                     |         r2 = 0x26;
    0x00016dc2 movs r1, 0                                        |         r1 = 0;
    0x00016dc4 mov r0, r3                                        |         r0 = r3;
    0x00016dc6 blx 0x5d50                                        |         fcn_00005d50 ();
    0x00016dca ldr r2, [sp, 0x3c]                                |         r2 = *(arg_3ch);
    0x00016dcc movs r1, 0x26                                     |         r1 = 0x26;
    0x00016dce ldr r3, [pc, 0x278]                               |         
    0x00016dd0 add r6, sp, 0x3c4                                 |         r6 += arg_3c4h;
    0x00016dd2 ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x00016dd4 mov r2, r5                                        |         r2 = r5;
    0x00016dd6 ldr r3, [r3]                                      |         r3 = *(0x1704a);
    0x00016dd8 str r3, [sp]                                      |         *(sp) = r3;
    0x00016dda mov r3, sl                                        |         r3 = sl;
    0x00016ddc blx 0x5a10                                        |         json_variant_dump ();
    0x00016dde cdp p1, 1, c2, c8, c0, 0                          |         __asm ("cdp p1, 1, c2, c8, c0, 0");
    0x00016de2 mov sb, r0                                        |         sb = r0;
    0x00016de4 mov.w r2, 0x100                                   |         r2 = 0x100;
    0x00016de8 mov r0, r6                                        |         r0 = r6;
    0x00016dea blx 0x5d50                                        |         fcn_00005d50 ();
    0x00016dec vext.16 d4, d2, d26, 3                            |         __asm ("vext.16 d4, d2, d26, 3");
    0x00016df0 mov r3, sl                                        |         r3 = sl;
    0x00016df2 mov.w r1, 0x100                                   |         r1 = 0x100;
    0x00016df6 mov r0, r6                                        |         r0 = r6;
    0x00016df8 blx 0x5ed0                                        |         fcn_00005ed0 ();
    0x00016dfc ldr r1, [pc, 0x260]                               |         
    0x00016dfe mov r3, r0                                        |         r3 = r0;
    0x00016e00 mov r2, sb                                        |         r2 = sb;
    0x00016e02 movs r0, 1                                        |         r0 = 1;
    0x00016e04 add r1, pc                                        |         r1 = 0x2de68;
    0x00016e06 blx 0x68e0                                        |         touch ();
    0x00016e08 invalid                                           |         
                                                                 |     }
                                                                 | label_38:
    0x00016e0a ldr r6, [r4, 0x3c]                                |     r6 = *((r4 + 0x3c));
    0x00016e0c cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00016e0e beq 0x16e82                                       |         goto label_133;
                                                                 |     }
    0x00016e10 ldr r3, [r6]                                      |     r3 = *(r6);
    0x00016e12 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016e14 beq 0x16e82                                       |         goto label_133;
                                                                 |     }
    0x00016e16 ldr.w fp, [pc, 0x24c]                             |     
    0x00016e1a add r5, sp, 0xb0                                  |     r5 += c;
    0x00016e1c ldr.w sl, [pc, 0x248]                             |     
    0x00016e20 ldr.w sb, [pc, 0x248]                             |     
    0x00016e24 ldr r7, [sp, 0x4c]                                |     r7 = *(arg_4ch);
    0x00016e26 add fp, pc                                        |     fp = 0x2de90;
    0x00016e28 ldr.w r8, [sp, 0x54]                              |     r8 = *(arg_54h);
    0x00016e2c add sl, pc                                        |     sl = 0x2de98;
    0x00016e2e add sb, pc                                        |     sb = 0x2de9e;
    0x00016e30 str.w sb, [sp, 0x44]                              |     __asm ("str.w sb, [arg_44h]");
                                                                 |     do {
    0x00016e34 mvn r3, 0x15                                      |         r3 = ~0x15;
    0x00016e38 mov r2, r5                                        |         r2 = r5;
    0x00016e3a str r3, [r5]                                      |         *(r5) = r3;
    0x00016e3c ldr r0, [sp, 0x2c]                                |         r0 = *(arg_2ch);
    0x00016e3e ldr r1, [r6]                                      |         r1 = *(r6);
    0x00016e40 bl 0x1ae00                                        |         fcn_0001ae00 (r0, r1, r2, r3, r4, r5, r6);
    0x00016e44 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00016e46 blx 0x6754                                        |         lookup_paths_init ();
    0x00016e4a mov r2, r8                                        |         r2 = r8;
    0x00016e4c mov r1, r7                                        |         r1 = r7;
    0x00016e4e bl 0x12d1c                                        |         fcn_00012d1c (r0, r1, r2);
    0x00016e52 ldr r3, [r4, 0x3c]                                |         r3 = *((r4 + 0x3c));
    0x00016e54 movs r0, 7                                        |         r0 = 7;
    0x00016e56 cmp r3, r6                                        |         
    0x00016e58 ite eq                                            |         
                                                                 |         if (r3 != r6) {
    0x00016e5a moveq sb, fp                                      |             sb = fp;
                                                                 |         }
                                                                 |         if (r3 == r6) {
    0x00016e5c movne sb, sl                                      |             sb = sl;
                                                                 |         }
    0x00016e5e blx 0x6198                                        |         fcn_00006198 ();
    0x00016e62 ldr r3, [r6]                                      |         r3 = *(r6);
    0x00016e64 mov r2, sb                                        |         r2 = sb;
    0x00016e66 str r0, [sp]                                      |         *(sp) = r0;
    0x00016e68 movs r0, 1                                        |         r0 = 1;
    0x00016e6a str r3, [sp, 8]                                   |         var_8h = r3;
    0x00016e6c ldr.w r1, [r8]                                    |         r1 = *(r8);
    0x00016e70 ldr r3, [r7]                                      |         r3 = *(r7);
    0x00016e72 str r1, [sp, 4]                                   |         var_4h = r1;
    0x00016e74 ldr r1, [sp, 0x44]                                |         r1 = *(arg_44h);
    0x00016e76 blx 0x68e0                                        |         touch ();
    0x00016e7a ldr r3, [r6, 4]!                                  |         r3 = *((r6 += 4));
    0x00016e7e cmp r3, 0                                         |         
    0x00016e80 bne 0x16e34                                       |         
                                                                 |     } while (r3 != 0);
                                                                 | label_133:
    0x00016e82 ldrb.w r3, [r4, 0xc0]                             |     r3 = *((r4 + 0xc0));
                                                                 |     if (r3 == 0) {
    0x00016e86 cbnz r3, 0x16e92                                  |         
    0x00016e88 ldrd r3, r2, [r4, 0xb8]                           |         __asm ("ldrd r3, r2, [r4, 0xb8]");
    0x00016e8c orrs r3, r2                                       |         r3 |= r2;
                                                                 |         if (r3 != r2) {
    0x00016e8e bne.w 0x17c7c                                     |             goto label_134;
                                                                 |         }
                                                                 |     }
                                                                 | label_53:
    0x00016e92 ldrb.w r3, [r4, 0xd0]                             |     r3 = *((r4 + 0xd0));
                                                                 |     if (r3 == 0) {
    0x00016e96 cbnz r3, 0x16ea2                                  |         
    0x00016e98 ldrd r3, r2, [r4, 0xc8]                           |         __asm ("ldrd r3, r2, [r4, 0xc8]");
    0x00016e9c orrs r3, r2                                       |         r3 |= r2;
                                                                 |         if (r3 != r2) {
    0x00016e9e bne.w 0x17b42                                     |             goto label_135;
                                                                 |         }
                                                                 |     }
                                                                 | label_47:
    0x00016ea2 ldr.w r2, [r4, 0x104]                             |     r2 = *((r4 + 0x104));
                                                                 |     if (r2 != 0) {
    0x00016ea6 cbz r2, 0x16eb2                                   |         
    0x00016ea8 ldr r1, [pc, 0x1c4]                               |         
    0x00016eaa movs r0, 1                                        |         r0 = 1;
    0x00016eac add r1, pc                                        |         r1 = 0x2df20;
    0x00016eae blx 0x68e0                                        |         touch ();
                                                                 |     }
    0x00016eb2 ldr.w r2, [r4, 0x108]                             |     r2 = *((r4 + 0x108));
                                                                 |     if (r2 != 0) {
    0x00016eb6 cbz r2, 0x16ec2                                   |         
    0x00016eb8 ldr r1, [pc, 0x1b8]                               |         
    0x00016eba movs r0, 1                                        |         r0 = 1;
    0x00016ebc add r1, pc                                        |         r1 = 0x2df34;
    0x00016ebe blx 0x68e0                                        |         touch ();
                                                                 |     }
    0x00016ec2 ldr.w r2, [r4, 0x10c]                             |     r2 = *((r4 + 0x10c));
                                                                 |     if (r2 != 0) {
    0x00016ec6 cbz r2, 0x16ed2                                   |         
    0x00016ec8 ldr r1, [pc, 0x1ac]                               |         
    0x00016eca movs r0, 1                                        |         r0 = 1;
    0x00016ecc add r1, pc                                        |         r1 = 0x2df48;
    0x00016ece blx 0x68e0                                        |         touch ();
                                                                 |     }
    0x00016ed2 ldr r6, [r4, 0x24]                                |     r6 = *((r4 + 0x24));
                                                                 |     if (r6 == 0) {
    0x00016ed4 cbz r6, 0x16f2a                                   |         goto label_136;
                                                                 |     }
    0x00016ed6 ldr r3, [r6]                                      |     r3 = *(r6);
                                                                 |     if (r3 == 0) {
    0x00016ed8 cbz r3, 0x16f2a                                   |         goto label_136;
                                                                 |     }
    0x00016eda ldr.w fp, [pc, 0x1a0]                             |     
    0x00016ede add r5, sp, 0xb0                                  |     r5 += c;
    0x00016ee0 ldr.w sl, [pc, 0x19c]                             |     
    0x00016ee4 ldr.w sb, [pc, 0x19c]                             |     
    0x00016ee8 add fp, pc                                        |     fp = 0x2df6a;
    0x00016eea add sl, pc                                        |     sl = 0x2df6e;
    0x00016eec add sb, pc                                        |     sb = 0x2df74;
                                                                 |     do {
    0x00016eee movs r1, 0                                        |         r1 = 0;
    0x00016ef0 mov r2, r5                                        |         r2 = r5;
    0x00016ef2 str r1, [r5]                                      |         *(r5) = r1;
    0x00016ef4 ldr r0, [r6]                                      |         r0 = *(r6);
    0x00016ef6 blx 0x6378                                        |         r0 = fcn_00006378 ();
    0x00016efa cmp r0, 0                                         |         
    0x00016efc mov.w r2, 9                                       |         r2 = 9;
    0x00016efe lsls r1, r1, 8                                    |         r1 <<= 8;
    0x00016f00 it lt                                             |         
                                                                 |         if (r1 >= r1) {
    0x00016f02 ldrlt r3, [r6]                                    |             r3 = *(r6);
                                                                 |         }
    0x00016f04 mov r1, sb                                        |         r1 = sb;
    0x00016f06 it ge                                             |         
                                                                 |         if (r1 < r1) {
    0x00016f08 ldrge r3, [r5]                                    |             r3 = *(r5);
                                                                 |         }
    0x00016f0a movs r0, 1                                        |         r0 = 1;
    0x00016f0c str r3, [sp]                                      |         *(sp) = r3;
    0x00016f0e ldr r3, [r4, 0x24]                                |         r3 = *((r4 + 0x24));
    0x00016f10 cmp r3, r6                                        |         
    0x00016f12 ite eq                                            |         
                                                                 |         if (r3 != r6) {
    0x00016f14 moveq r3, fp                                      |             r3 = fp;
                                                                 |         }
                                                                 |         if (r3 == r6) {
    0x00016f16 movne r3, sl                                      |             r3 = sl;
                                                                 |         }
    0x00016f18 blx 0x68e0                                        |         touch ();
    0x00016f1c ldr r0, [r5]                                      |         r0 = *(r5);
    0x00016f1e blx 0x59e0                                        |         unit_file_state_to_string ();
    0x00016f22 ldr r3, [r6, 4]!                                  |         r3 = *((r6 += 4));
    0x00016f26 cmp r3, 0                                         |         
    0x00016f28 bne 0x16eee                                       |         
                                                                 |     } while (r3 != 0);
                                                                 | label_136:
    0x00016f2a ldr.w r5, [r4, 0x100]                             |     r5 = *((r4 + 0x100));
    0x00016f2e cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00016f30 beq.w 0x170bc                                     |         goto label_137;
                                                                 |     }
    0x00016f34 ldr.w sl, [pc, 0x150]                             |     
    0x00016f38 ldr.w sb, [pc, 0x150]                             |     
    0x00016f3c ldr r6, [pc, 0x150]                               |     
    0x00016f3e add sl, pc                                        |     sl = 0x2dfca;
    0x00016f40 add sb, pc                                        |     sb = 0x2dfd0;
    0x00016f42 add r6, pc                                        |     r6 = 0x2dfd6;
    0x00016f44 b 0x170b6                                         |     
                                                                 |     while (r3 != 0) {
    0x00017094 ldr r2, [r5, 4]                                   |         r2 = *((r5 + 4));
                                                                 |         if (r2 == 0) {
    0x00017096 cbz r2, 0x170bc                                   |             goto label_137;
                                                                 |         }
    0x00017098 strd r2, r3, [sp]                                 |         __asm ("strd r2, r3, [sp]");
    0x0001709c mov r1, r6                                        |         r1 = r6;
    0x0001709e ldr.w r3, [r4, 0x100]                             |         r3 = *((r4 + 0x100));
    0x000170a2 movs r2, 9                                        |         r2 = 9;
    0x000170a4 movs r0, 1                                        |         r0 = 1;
    0x000170a6 cmp r3, r5                                        |         
    0x000170a8 add.w r5, r5, 8                                   |         r5 += 8;
    0x000170ac ite eq                                            |         
                                                                 |         if (r3 != r5) {
    0x000170ae moveq r3, sl                                      |             r3 = sl;
                                                                 |         }
                                                                 |         if (r3 == r5) {
    0x000170b0 movne r3, sb                                      |             r3 = sb;
                                                                 |         }
    0x000170b2 blx 0x68e0                                        |         touch ();
    0x000170b6 ldr r3, [r5]                                      |         r3 = *(r5);
    0x000170b8 cmp r3, 0                                         |         
    0x000170ba bne 0x17094                                       |         
                                                                 |     }
                                                                 | label_137:
    0x000170bc ldrb.w r3, [r4, 0xfc]                             |     r3 = *((r4 + 0xfc));
    0x000170c0 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000170c2 bne.w 0x17974                                     |         goto label_138;
                                                                 |     }
                                                                 | label_37:
    0x000170c6 ldr.w fp, [r4, 0x198]                             |     fp = *((r4 + 0x198));
    0x000170ca cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x000170ce beq 0x17108                                       |         goto label_139;
                                                                 |     }
    0x000170d0 ldr.w r3, [pc, 0xd24]                             |     
    0x000170d4 mov r6, fp                                        |     r6 = fp;
    0x000170d6 ldr.w sb, [pc, 0xd24]                             |     
    0x000170da ldr.w fp, [sp, 0x54]                              |     fp = *(arg_54h);
    0x000170de add r3, pc                                        |     r3 = 0x2eeda;
    0x000170e0 str r3, [sp, 0x44]                                |     *(arg_44h) = r3;
    0x000170e2 add sb, pc                                        |     sb = 0x2eee4;
    0x000170e4 ldr.w r3, [pc, 0xd18]                             |     
    0x000170e8 add r3, pc                                        |     r3 = 0x2eeec;
    0x000170ea str r3, [sp, 0x48]                                |     *(arg_48h) = r3;
                                                                 |     do {
    0x000170ec mov r5, r6                                        |         r5 = r6;
    0x000170ee ldr r6, [r6, 0x30]                                |         r6 = *((r6 + 0x30));
    0x000170f0 ldr r3, [r5, 0x24]                                |         r3 = *((r5 + 0x24));
                                                                 |         if (r3 != 0) {
    0x000170f2 cbz r3, 0x17104                                   |             
    0x000170f4 ldr r0, [r5]                                      |             r0 = *(r5);
    0x000170f6 mov r1, sb                                        |             r1 = sb;
    0x000170f8 blx 0x5d68                                        |             r0 = fcn_00005d68 ();
    0x000170fc mov r3, r0                                        |             r3 = r0;
    0x000170fe cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x00017100 beq.w 0x175cc                                     |                 goto label_140;
                                                                 |             }
                                                                 |         }
                                                                 | label_20:
    0x00017104 cmp r6, 0                                         |         
    0x00017106 bne 0x170ec                                       |         
                                                                 |     } while (r6 != 0);
                                                                 | label_139:
    0x00017108 ldr r2, [r4, 0x7c]                                |     r2 = *((r4 + 0x7c));
    0x0001710a cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x0001710c ble.w 0x1787c                                     |         goto label_141;
                                                                 |     }
    0x00017110 ldr.w r1, [pc, 0xcf0]                             |     
    0x00017114 movs r0, 1                                        |     r0 = 1;
    0x00017116 add r1, pc                                        |     r1 = 0x2ef1e;
    0x00017118 blx 0x68e0                                        |     touch ();
    0x0001711c ldrb.w r3, [r4, 0x8c]                             |     r3 = *((r4 + 0x8c));
    0x00017120 lsls r3, r3, 0x1f                                 |     r3 <<= 0x1f;
                                                                 |     if (r3 >= r3) {
    0x00017122 bpl.w 0x17c28                                     |         goto label_142;
                                                                 |     }
    0x00017126 ldr.w r3, [pc, 0xce0]                             |     
    0x0001712a ldr r2, [sp, 0x3c]                                |     r2 = *(arg_3ch);
    0x0001712c ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0001712e ldr r3, [r3]                                      |     r3 = *(0x17e0a);
    0x00017130 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00017132 beq.w 0x17ffa                                     |         goto label_143;
                                                                 |     }
                                                                 | label_50:
    0x00017136 ldr.w r3, [r4, 0x80]                              |     r3 = *((r4 + 0x80));
    0x0001713a cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x0001713c bgt.w 0x179d4                                     |         goto label_144;
                                                                 |     }
    0x0001713e strh r2, [r1, 0x22]                               |     *((r1 + 0x22)) = r2;
                                                                 | label_28:
    0x00017140 movs r0, 0xa                                      |     r0 = 0xa;
    0x00017142 blx 0x5d1c                                        |     get_process_comm ();
                                                                 | label_27:
    0x00017146 ldr.w r2, [r4, 0x84]                              |     r2 = *((r4 + 0x84));
                                                                 |     if (r2 != 0) {
    0x0001714a cbz r2, 0x17158                                   |         
    0x0001714c ldr.w r1, [pc, 0xcbc]                             |         
    0x00017150 movs r0, 1                                        |         r0 = 1;
    0x00017152 add r1, pc                                        |         r1 = 0x2ef62;
    0x00017154 blx 0x68e0                                        |         touch ();
                                                                 |     }
    0x00017158 ldr.w r5, [r4, 0x90]                              |     r5 = *((r4 + 0x90));
    0x0001715c cmp r5, 0                                         |     
                                                                 |     if (r5 > 0) {
    0x0001715e ble 0x17176                                       |         
    0x00017160 mov r0, r5                                        |         r0 = r5;
    0x00017162 blx 0x5b98                                        |         fcn_00005b98 ();
    0x00017166 ldr.w r1, [pc, 0xca8]                             |         
    0x0001716a mov r3, r0                                        |         r3 = r0;
    0x0001716c mov r2, r5                                        |         r2 = r5;
    0x0001716e movs r0, 1                                        |         r0 = 1;
    0x00017170 add r1, pc                                        |         r1 = 0x2ef86;
    0x00017172 blx 0x68e0                                        |         touch ();
                                                                 |     }
    0x00017176 ldrd r2, r3, [r4, 0x168]                          |     __asm ("ldrd r2, r3, [r4, 0x168]");
    0x0001717a cmp.w r3, -1                                      |     
    0x0001717e it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00017180 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 != -1) {
    0x00017184 beq 0x171d4                                       |         
    0x00017186 ldrd r0, r1, [r4, 0x170]                          |         __asm ("ldrd r0, r1, [r4, 0x170]");
    0x0001718a cmp.w r1, -1                                      |         
    0x0001718e it eq                                             |         
                                                                 |         if (r1 == -1) {
    0x00017190 cmpeq r0, -1                                      |             __asm ("cmpeq r0, -1");
                                                                 |         }
                                                                 |         if (r1 == -1) {
    0x00017194 beq 0x171d4                                       |             goto label_145;
                                                                 |         }
    0x00017196 movs r5, 0                                        |         r5 = 0;
    0x00017198 movs r6, 7                                        |         r6 = 7;
    0x0001719a add r0, sp, 0x3c4                                 |         r0 += arg_3c4h;
    0x0001719c str r6, [sp]                                      |         *(sp) = r6;
    0x0001719e movs r1, 0x10                                     |         r1 = 0x10;
    0x000171a0 strd r5, r5, [r0]                                 |         __asm ("strd r5, r5, [r0]");
    0x000171a4 strd r5, r5, [r0, 8]                              |         __asm ("strd r5, r5, [r0, 8]");
    0x000171a8 blx 0x651c                                        |         fcn_0000651c ();
    0x000171ac str r6, [sp]                                      |         *(sp) = r6;
    0x000171ae mov r6, r0                                        |         r6 = r0;
    0x000171b0 add r0, sp, 0x2c4                                 |         r0 += arg_2c4h;
    0x000171b2 ldrd r2, r3, [r4, 0x170]                          |         __asm ("ldrd r2, r3, [r4, 0x170]");
    0x000171b6 movs r1, 0x10                                     |         r1 = 0x10;
    0x000171b8 strd r5, r5, [r0]                                 |         __asm ("strd r5, r5, [r0]");
    0x000171bc strd r5, r5, [r0, 8]                              |         __asm ("strd r5, r5, [r0, 8]");
    0x000171c0 blx 0x651c                                        |         fcn_0000651c ();
    0x000171c4 ldr.w r1, [pc, 0xc4c]                             |         
    0x000171c8 mov r3, r0                                        |         r3 = r0;
    0x000171ca mov r2, r6                                        |         r2 = r6;
    0x000171cc movs r0, 1                                        |         r0 = 1;
    0x000171ce add r1, pc                                        |         r1 = 0x2efe6;
    0x000171d0 blx 0x68e0                                        |         touch ();
                                                                 |     }
                                                                 | label_145:
    0x000171d4 ldrd r2, r3, [r4, 0x178]                          |     __asm ("ldrd r2, r3, [r4, 0x178]");
    0x000171d8 cmp.w r3, -1                                      |     
    0x000171dc it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x000171de cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 != -1) {
    0x000171e2 beq 0x17232                                       |         
    0x000171e4 ldrd r0, r1, [r4, 0x180]                          |         __asm ("ldrd r0, r1, [r4, 0x180]");
    0x000171e8 cmp.w r1, -1                                      |         
    0x000171ec it eq                                             |         
                                                                 |         if (r1 == -1) {
    0x000171ee cmpeq r0, -1                                      |             __asm ("cmpeq r0, -1");
                                                                 |         }
                                                                 |         if (r1 == -1) {
    0x000171f2 beq 0x17232                                       |             goto label_146;
                                                                 |         }
    0x000171f4 movs r5, 0                                        |         r5 = 0;
    0x000171f6 movs r6, 7                                        |         r6 = 7;
    0x000171f8 add r0, sp, 0x3c4                                 |         r0 += arg_3c4h;
    0x000171fa str r6, [sp]                                      |         *(sp) = r6;
    0x000171fc movs r1, 0x10                                     |         r1 = 0x10;
    0x000171fe strd r5, r5, [r0]                                 |         __asm ("strd r5, r5, [r0]");
    0x00017202 strd r5, r5, [r0, 8]                              |         __asm ("strd r5, r5, [r0, 8]");
    0x00017206 blx 0x651c                                        |         fcn_0000651c ();
    0x00017208 invalid                                           |         
    0x0001720c mov r6, r0                                        |         r6 = r0;
    0x0001720e add r0, sp, 0x2c4                                 |         r0 += arg_2c4h;
    0x00017210 ldrd r2, r3, [r4, 0x180]                          |         __asm ("ldrd r2, r3, [r4, 0x180]");
    0x00017212 movs r3, 0x60                                     |         r3 = 0x60;
    0x00017214 movs r1, 0x10                                     |         r1 = 0x10;
    0x00017216 strd r5, r5, [r0]                                 |         __asm ("strd r5, r5, [r0]");
    0x00017218 strb r0, [r0, r4]                                 |         *((r0 + r4)) = r0;
    0x0001721a strd r5, r5, [r0, 8]                              |         __asm ("strd r5, r5, [r0, 8]");
    0x0001721e blx 0x651c                                        |         fcn_0000651c ();
    0x00017222 ldr.w r1, [pc, 0xbf4]                             |         
    0x00017226 mov r3, r0                                        |         r3 = r0;
    0x00017228 mov r2, r6                                        |         r2 = r6;
    0x0001722a movs r0, 1                                        |         r0 = 1;
    0x0001722c add r1, pc                                        |         r1 = 0x2f04a;
    0x0001722e blx 0x68e0                                        |         touch ();
                                                                 |     }
                                                                 | label_146:
    0x00017232 ldrd r2, r3, [r4, 0x158]                          |     __asm ("ldrd r2, r3, [r4, 0x158]");
    0x00017236 cmp.w r3, -1                                      |     
    0x0001723a it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x0001723c cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 != -1) {
    0x00017240 beq 0x1726c                                       |         
    0x00017242 ldr.w r1, [pc, 0xbd8]                             |         
    0x00017246 movs r0, 1                                        |         r0 = 1;
    0x00017248 add r1, pc                                        |         r1 = 0x2f06a;
    0x0001724a blx 0x68e0                                        |         touch ();
    0x0001724e ldrd r2, r3, [r4, 0x160]                          |         __asm ("ldrd r2, r3, [r4, 0x160]");
    0x00017252 cmp.w r3, -1                                      |         
    0x00017256 it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x00017258 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x0001725c beq.w 0x17c6a                                     |             goto label_147;
                                                                 |         }
    0x00017260 ldr.w r1, [pc, 0xbbc]                             |         
    0x00017264 movs r0, 1                                        |         r0 = 1;
    0x00017266 add r1, pc                                        |         r1 = 0x2f08a;
    0x00017268 blx 0x68e0                                        |         touch ();
                                                                 |     }
                                                                 | label_51:
    0x0001726c ldrd r2, r3, [r4, 0x110]                          |     __asm ("ldrd r2, r3, [r4, 0x110]");
    0x00017270 cmp.w r3, -1                                      |     
    0x00017274 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00017276 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x0001727a beq.w 0x174c4                                     |         goto label_148;
                                                                 |     }
    0x0001727e movs r1, 7                                        |     r1 = 7;
    0x00017280 add r0, sp, 0x3c4                                 |     r0 += arg_3c4h;
    0x00017282 str r1, [sp]                                      |     *(sp) = r1;
    0x00017284 movs r1, 0                                        |     r1 = 0;
    0x00017286 strd r1, r1, [r0]                                 |     __asm ("strd r1, r1, [r0]");
    0x0001728a strd r1, r1, [r0, 8]                              |     __asm ("strd r1, r1, [r0, 8]");
    0x0001728e movs r1, 0x10                                     |     r1 = 0x10;
    0x00017290 blx 0x651c                                        |     fcn_0000651c ();
    0x00017294 ldr.w r1, [pc, 0xb8c]                             |     
    0x00017298 mov r2, r0                                        |     r2 = r0;
    0x0001729a movs r0, 1                                        |     r0 = 1;
    0x0001729c add r1, pc                                        |     r1 = 0x2f0c4;
    0x0001729e blx 0x68e0                                        |     touch ();
    0x000172a2 ldrd r3, r2, [r4, 0x118]                          |     __asm ("ldrd r3, r2, [r4, 0x118]");
    0x000172a6 ldr.w r1, [r4, 0x120]                             |     r1 = *((r4 + 0x120));
    0x000172aa orrs r3, r1                                       |     r3 |= r1;
    0x000172ac ldr.w r1, [r4, 0x124]                             |     r1 = *((r4 + 0x124));
    0x000172b0 orrs r2, r1                                       |     r2 |= r1;
    0x000172b2 orrs r3, r2                                       |     r3 |= r2;
                                                                 |     if (r3 == r2) {
    0x000172b4 bne 0x172f8                                       |         
    0x000172b6 ldrd r2, r3, [r4, 0x128]                          |         __asm ("ldrd r2, r3, [r4, 0x128]");
    0x000172ba ldr.w r1, [r4, 0x130]                             |         r1 = *((r4 + 0x130));
    0x000172be ands r2, r1                                       |         r2 &= r1;
    0x000172c0 ldr.w r1, [r4, 0x134]                             |         r1 = *((r4 + 0x134));
    0x000172c4 ands r3, r1                                       |         r3 &= r1;
    0x000172c6 ldr.w r1, [r4, 0x138]                             |         r1 = *((r4 + 0x138));
    0x000172ca ands r2, r1                                       |         r2 &= r1;
    0x000172cc ldr.w r1, [r4, 0x13c]                             |         r1 = *((r4 + 0x13c));
    0x000172d0 ands r3, r1                                       |         r3 &= r1;
    0x000172d2 ldr.w r1, [r4, 0x148]                             |         r1 = *((r4 + 0x148));
    0x000172d6 ands r2, r1                                       |         r2 &= r1;
    0x000172d8 ldr.w r1, [r4, 0x14c]                             |         r1 = *((r4 + 0x14c));
    0x000172dc ands r3, r1                                       |         r3 &= r1;
    0x000172de ldr.w r1, [r4, 0x140]                             |         r1 = *((r4 + 0x140));
    0x000172e0 asrs r0, r0, 5                                    |         r0 >>= 5;
    0x000172e2 ands r2, r1                                       |         r2 &= r1;
    0x000172e4 ldr.w r1, [r4, 0x144]                             |         r1 = *((r4 + 0x144));
    0x000172e6 asrs r4, r0, 5                                    |         r4 = r0 >> 5;
    0x000172e8 ands r3, r1                                       |         r3 &= r1;
    0x000172ea cmp.w r3, -1                                      |         
    0x000172ee it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x000172f0 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
    0x000172f2 subs r7, 0xff                                     |         r7 -= 0xff;
                                                                 |         if (r7 == 0xff) {
    0x000172f4 beq.w 0x174be                                     |             goto label_149;
                                                                 |         }
                                                                 |     }
    0x000172f8 ldr.w r1, [pc, 0xb2c]                             |     
    0x000172fc movs r0, 1                                        |     r0 = 1;
    0x000172fe add r1, pc                                        |     r1 = 0x2f12a;
    0x00017300 blx 0x68e0                                        |     touch ();
    0x00017304 ldrd r2, r3, [r4, 0x118]                          |     __asm ("ldrd r2, r3, [r4, 0x118]");
    0x00017308 orrs.w r1, r2, r3                                 |     r1 = r2 | r3;
                                                                 |     if (r1 == r2) {
    0x0001730c beq.w 0x179fc                                     |         goto label_150;
                                                                 |     }
    0x00017310 cmp.w r3, -1                                      |     
    0x00017314 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00017316 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 == -1) {
    0x0001731a beq.w 0x17fb4                                     |         goto label_151;
                                                                 |     }
    0x0001731e movs r1, 7                                        |     r1 = 7;
    0x00017320 add r0, sp, 0x2c4                                 |     r0 += arg_2c4h;
    0x00017322 str r1, [sp]                                      |     *(sp) = r1;
    0x00017324 movs r1, 0                                        |     r1 = 0;
    0x00017326 strd r1, r1, [r0]                                 |     __asm ("strd r1, r1, [r0]");
    0x0001732a strd r1, r1, [r0, 8]                              |     __asm ("strd r1, r1, [r0, 8]");
    0x0001732e movs r1, 0x10                                     |     r1 = 0x10;
    0x00017330 blx 0x651c                                        |     r0 = fcn_0000651c ();
    0x00017334 mov r3, r0                                        |     r3 = r0;
                                                                 | label_61:
    0x00017336 ldr.w r5, [pc, 0xaf4]                             |     
    0x0001733a movs r0, 1                                        |     r0 = 1;
    0x0001733c ldr.w r2, [pc, 0xaf0]                             |     
    0x00017340 ldr.w r1, [pc, 0xaf0]                             |     
    0x00017344 add r5, pc                                        |     r5 = 0x2f176;
    0x00017346 add r2, pc                                        |     r2 = 0x2f17a;
    0x00017348 add r1, pc                                        |     r1 = 0x2f180;
    0x0001734a blx 0x68e0                                        |     touch ();
                                                                 | label_41:
    0x0001734e ldrd r2, r3, [r4, 0x120]                          |     __asm ("ldrd r2, r3, [r4, 0x120]");
    0x00017352 orrs.w r1, r2, r3                                 |     r1 = r2 | r3;
                                                                 |     if (r1 != r2) {
    0x00017356 beq 0x17392                                       |         
    0x00017358 cmp.w r3, -1                                      |         
    0x0001735c it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x0001735e cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r3 == -1) {
    0x00017362 beq.w 0x17fac                                     |             goto label_152;
                                                                 |         }
    0x00017366 movs r1, 7                                        |         r1 = 7;
    0x00017368 add r0, sp, 0x2c4                                 |         r0 += arg_2c4h;
    0x0001736a str r1, [sp]                                      |         *(sp) = r1;
    0x0001736c movs r1, 0                                        |         r1 = 0;
    0x0001736e strd r1, r1, [r0]                                 |         __asm ("strd r1, r1, [r0]");
    0x00017372 strd r1, r1, [r0, 8]                              |         __asm ("strd r1, r1, [r0, 8]");
    0x00017376 movs r1, 0x10                                     |         r1 = 0x10;
    0x00017378 blx 0x651c                                        |         r0 = fcn_0000651c ();
    0x0001737c mov r3, r0                                        |         r3 = r0;
                                                                 | label_60:
    0x0001737e ldr.w r1, [pc, 0xab8]                             |         
    0x00017382 mov r2, r5                                        |         r2 = r5;
    0x00017384 ldr.w r5, [pc, 0xab4]                             |         
    0x00017388 movs r0, 1                                        |         r0 = 1;
    0x0001738a add r1, pc                                        |         r1 = 0x2f1c8;
    0x0001738c add r5, pc                                        |         r5 = 0x2f1cc;
    0x0001738e blx 0x68e0                                        |         touch ();
                                                                 |     }
    0x00017392 ldrd r2, r3, [r4, 0x128]                          |     __asm ("ldrd r2, r3, [r4, 0x128]");
    0x00017396 cmp.w r3, -1                                      |     
    0x0001739a it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x0001739c cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 != -1) {
    0x000173a0 beq 0x173ce                                       |         
    0x000173a2 movs r1, 7                                        |         r1 = 7;
    0x000173a4 add r0, sp, 0x2c4                                 |         r0 += arg_2c4h;
    0x000173a6 str r1, [sp]                                      |         *(sp) = r1;
    0x000173a8 movs r1, 0                                        |         r1 = 0;
    0x000173aa strd r1, r1, [r0]                                 |         __asm ("strd r1, r1, [r0]");
    0x000173ae strd r1, r1, [r0, 8]                              |         __asm ("strd r1, r1, [r0, 8]");
    0x000173b2 movs r1, 0x10                                     |         r1 = 0x10;
    0x000173b4 blx 0x651c                                        |         fcn_0000651c ();
    0x000173b8 ldr.w r1, [pc, 0xa84]                             |         
    0x000173bc mov r2, r5                                        |         r2 = r5;
    0x000173be ldr.w r5, [pc, 0xa84]                             |         
    0x000173c2 mov r3, r0                                        |         r3 = r0;
    0x000173c4 movs r0, 1                                        |         r0 = 1;
    0x000173c6 add r1, pc                                        |         r1 = 0x2f20a;
    0x000173c8 add r5, pc                                        |         r5 = 0x2f212;
    0x000173ca blx 0x68e0                                        |         touch ();
                                                                 |     }
    0x000173ce ldrd r2, r3, [r4, 0x130]                          |     __asm ("ldrd r2, r3, [r4, 0x130]");
    0x000173d2 cmp.w r3, -1                                      |     
    0x000173d6 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x000173d8 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
                                                                 |     if (r3 != -1) {
    0x000173dc beq 0x1740a                                       |         
    0x000173de movs r1, 7                                        |         r1 = 7;
    0x000173e0 add r0, sp, 0x2c4                                 |         r0 += arg_2c4h;
    0x000173e2 str r1, [sp]                                      |         *(sp) = r1;
    0x000173e4 movs r1, 0                                        |         r1 = 0;
    0x000173e6 strd r1, r1, [r0]                                 |         __asm ("strd r1, r1, [r0]");
    0x000173ea strd r1, r1, [r0, 8]                              |         __asm ("strd r1, r1, [r0, 8]");
    0x000173ee movs r1, 0x10                                     |         r1 = 0x10;
    0x000173f0 blx 0x651c                                        |         fcn_0000651c ();
    0x000173f4 ldr.w r1, [pc, 0xa50]                             |         
    0x000173f6 subs r0, r2, r1                                   |         r0 = r2 - r1;
    0x000173f8 mov r2, r5                                        |         r2 = r5;
    0x000173fa ldr.w r5, [pc, 0xa50]                             |         
    0x000173fe mov r3, r0                                        |         r3 = r0;
    0x00017400 movs r0, 1                                        |         r0 = 1;
    0x00017402 add r1, pc                                        |         r1 = 0x2f24e;
    0x00017404 add r5, pc                                        |         r5 = 0x2f256;
    0x00017406 blx 0x68e0                                        |         touch ();
    0x00017408 invalid                                           |         
                                                                 |     }
    0x0001740a ldrd r2, r3, [r4, 0x138]                          |     __asm ("ldrd r2, r3, [r4, 0x138]");
    0x0001740e cmp.w r3, -1                                      |     
    0x00017412 it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x00017414 cmpeq r2, -1                                      |         __asm ("cmpeq r2, -1");
                                                                 |     }
    0x00017416 subs r7, 0xff                                     |     r7 -= 0xff;
                                                                 |     if (r7 == 0xff) {
    0x00017418 beq 0x17446                                       |         void (*0x17446)() ();
                                                                 |     }
                                                                 | label_149:
    0x000174be movs r0, 0xa                                      |     r0 = 0xa;
    0x000174c0 blx 0x5d1c                                        |     get_process_comm ();
                                                                 | label_148:
    0x000174c4 ldrd r8, r5, [r4, 0x150]                          |     __asm ("ldrd r8, r5, [r4, 0x150]");
    0x000174c8 cmp.w r5, -1                                      |     
    0x000174cc it eq                                             |     
                                                                 |     if (r5 == -1) {
    0x000174ce cmpeq r8, -1                                      |         __asm ("cmpeq r8, -1");
                                                                 |     }
                                                                 |     if (r5 != -1) {
    0x000174d2 beq 0x17514                                       |         
    0x000174d4 add r6, sp, 0x3c4                                 |         r6 += arg_3c4h;
    0x000174d6 movs r2, 0x40                                     |         r2 = 0x40;
    0x000174d8 movs r1, 0                                        |         r1 = 0;
    0x000174da mov r0, r6                                        |         r0 = r6;
    0x000174dc blx 0x5d50                                        |         fcn_00005d50 ();
    0x000174e0 mov.w sb, 0                                       |         sb = 0;
    0x000174e4 mov r0, r8                                        |         r0 = r8;
    0x000174e6 mov.w r2, 0x3e8                                   |         r2 = 0x3e8;
    0x000174e8 strb r2, [r7, 9]                                  |         *((r7 + 9)) = r2;
    0x000174ea movs r3, 0                                        |         r3 = 0;
    0x000174ec mov r1, r5                                        |         r1 = r5;
    0x000174ee mov.w r8, 0x3e8                                   |         r8 = 0x3e8;
    0x000174f2 bl 0x1ec4c                                        |         fcn_0001ec4c (r0, r1, r2, r3);
    0x000174f6 strd r8, sb, [sp]                                 |         __asm ("strd r8, sb, [sp]");
    0x000174f8 ldrh r0, [r0, 8]                                  |         r0 = *((r0 + 8));
    0x000174fa mov r2, r0                                        |         r2 = r0;
    0x000174fc mov r3, r1                                        |         r3 = r1;
    0x000174fe mov r0, r6                                        |         r0 = r6;
    0x00017500 movs r1, 0x40                                     |         r1 = 0x40;
    0x00017502 blx 0x6790                                        |         strv_free ();
    0x00017506 ldr.w r1, [pc, 0x95c]                             |         
    0x00017508 adds r4, r3, r5                                   |         r4 = r3 + r5;
    0x0001750a mov r2, r0                                        |         r2 = r0;
    0x0001750c movs r0, 1                                        |         r0 = 1;
    0x0001750e add r1, pc                                        |         r1 = 0x2f378;
    0x00017510 blx 0x68e0                                        |         touch ();
    0x00017512 invalid                                           |         
                                                                 |     }
    0x00017514 ldr r2, [r4, 0x30]                                |     r2 = *((r4 + 0x30));
                                                                 |     if (r2 != 0) {
    0x00017516 cbz r2, 0x17578                                   |         
    0x00017518 vmov.i32 d16, 0                                   |         __asm ("vmov.i32 d16, 0");
    0x0001751c movs r3, 0                                        |         r3 = 0;
    0x0001751e ldr.w r1, [pc, 0x948]                             |         
    0x00017522 movs r0, 1                                        |         r0 = 1;
    0x00017524 str r3, [sp, 0xb8]                                |         *(arg_b8h) = r3;
    0x00017526 add r5, sp, 0xb0                                  |         r5 += c;
    0x00017528 vstr d16, [r5]                                    |         __asm ("vstr d16, [r5]");
    0x0001752c add r1, pc                                        |         r1 = 0x2f39a;
    0x0001752e blx 0x68e0                                        |         touch ();
    0x00017532 blx 0x5d40                                        |         bus_print_property_valuef ();
    0x00017534 invalid                                           |         
    0x00017538 ldr r6, [r4]                                      |         r6 = *(r4);
    0x0001753a it lo                                             |         
                                                                 |         if (r0 >= 1) {
    0x0001753c movlo r0, 0xd                                     |             r0 = 0xd;
                                                                 |         }
    0x0001753e ldr.w sb, [r4, 0x30]                              |         sb = *((r4 + 0x30));
    0x00017540 str r0, [sp, 0xc0]                                |         *((sp + 0xc0)) = r0;
    0x00017542 sub.w r8, r0, 0xd                                 |         r8 = r0 - 0xd;
    0x00017546 bl 0x125a0                                        |         fcn_000125a0 ();
    0x0001754a ldr.w r3, [pc, 0x920]                             |         
    0x0001754e mov r1, r6                                        |         r1 = r6;
    0x00017550 str r0, [sp, 4]                                   |         var_4h = r0;
    0x00017552 mov r2, sb                                        |         r2 = sb;
    0x00017554 ldr r0, [sp, 0x2c]                                |         r0 = *(arg_2ch);
    0x00017556 add r3, pc                                        |         r3 = 0x2f3c8;
    0x00017558 str r5, [sp, 8]                                   |         var_8h = r5;
    0x0001755a str.w r8, [sp]                                    |         __asm ("str.w r8, [sp]");
    0x0001755e blx 0x630c                                        |         fcn_0000630c ();
    0x00017560 mrc p1, 6, apsr_nzcv, c6, c0, 0                   |         __asm ("mrc p1, 6, apsr_nzcv, c6, c0, 0");
    0x00017564 lsrs r5, r6, 0x1c                                 |         r5 = r6 >> 0x1c;
    0x00017566 mov r6, r0                                        |         r6 = r0;
                                                                 |         if (r5 == r6) {
    0x00017568 beq.w 0x17af2                                     |             goto label_153;
                                                                 |         }
    0x0001756a strh r3, [r0, 0x16]                               |         *((r0 + 0x16)) = r3;
    0x0001756c cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x0001756e blt.w 0x17ab2                                     |             goto label_46;
                                                                 |         }
                                                                 | label_45:
    0x00017572 mov r0, r5                                        |         r0 = r5;
    0x00017574 blx 0x5f0c                                        |         fcn_00005f0c ();
                                                                 |     }
    0x00017578 ldr r1, [r4]                                      |     r1 = *(r4);
                                                                 |     if (r1 != 0) {
    0x0001757a cbz r1, 0x1758c                                   |         
    0x0001757c ldr.w r3, [pc, 0x888]                             |         r3 = *(0x17e08);
    0x00017580 ldr r2, [sp, 0x3c]                                |         r2 = *(arg_3ch);
    0x00017582 ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x00017584 ldr r6, [r3]                                      |         r6 = *(0x17e08);
    0x00017586 cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x00017588 beq.w 0x17a04                                     |             goto label_154;
                                                                 |         }
                                                                 |     }
                                                                 | label_42:
    0x0001758c ldrb.w r3, [r4, 0x78]                             |     r3 = *((r4 + 0x78));
    0x00017590 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00017592 bne.w 0x17958                                     |         goto label_155;
                                                                 |     }
    0x00017596 ldr r3, [sp, 0x50]                                |     r3 = *(arg_50h);
    0x00017598 ldr r0, [r3]                                      |     r0 = *(r3);
    0x0001759a blx 0x59e0                                        |     unit_file_state_to_string ();
    0x0001759c invalid                                           |     
                                                                 | label_59:
    0x0001759e ldr r6, [r4, 8]                                   |     r6 = *((r4 + 8));
    0x000175a0 ldr r5, [r4, 0x24]                                |     r5 = *((r4 + 0x24));
    0x000175a2 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x000175a4 beq.w 0x16aee                                     |         goto label_19;
                                                                 |     }
    0x000175a8 ldr.w r3, [pc, 0x8c4]                             |     
    0x000175ac add r3, pc                                        |     r3 = 0x2f420;
    0x000175ae ldm.w r3, {r0, r1, r2}                            |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
                                                                 |     r2 = *((r3 + 8));
    0x000175b0 movs r7, r0                                       |     r7 = r0;
    0x000175b2 add r3, sp, 0x264                                 |     r3 += arg_264h;
    0x000175b4 stm.w r3, {r0, r1, r2}                            |     *(r3) = r0;
                                                                 |     *((r3 + 4)) = r1;
                                                                 |     *((r3 + 8)) = r2;
    0x000175b8 mov r1, r6                                        |     r1 = r6;
    0x000175ba mov r0, r3                                        |     r0 = r3;
    0x000175bc movs r6, 3                                        |     r6 = 3;
    0x000175be blx 0x5914                                        |     r0 = strv_find ();
    0x000175c2 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000175c4 bne.w 0x16aee                                     |         goto label_19;
                                                                 |     }
                                                                 | label_140:
    0x000175cc mov r2, r3                                        |     r2 = r3;
    0x000175ce ldr r1, [sp, 0x44]                                |     r1 = *(arg_44h);
    0x000175d0 ldr r0, [r5, 8]                                   |     r0 = *((r5 + 8));
    0x000175d2 blx 0x5b3c                                        |     bus_log_connect_error ();
    0x000175d6 ldr r2, [r5, 0x20]                                |     r2 = *((r5 + 0x20));
    0x000175d8 mov r7, r0                                        |     r7 = r0;
    0x000175da ldr r3, [r5]                                      |     r3 = *(r5);
    0x000175dc mov r1, r0                                        |     r1 = r0;
    0x000175de cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000175e0 beq.w 0x17736                                     |         goto label_156;
                                                                 |     }
                                                                 | label_26:
    0x000175e4 str r1, [sp]                                      |     *(sp) = r1;
    0x000175e6 movs r0, 1                                        |     r0 = 1;
    0x000175e8 ldr r1, [sp, 0x48]                                |     r1 = *(arg_48h);
    0x000175ea blx 0x68e0                                        |     touch ();
    0x000175ee movs r3, 0                                        |     r3 = 0;
    0x000175f0 ldrd r0, r1, [r5, 0x24]                           |     __asm ("ldrd r0, r1, [r5, 0x24]");
    0x000175f4 mov r2, r3                                        |     r2 = r3;
    0x000175f6 blx 0x6528                                        |     r0 = fcn_00006528 ();
    0x000175fa cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000175fc bne 0x17698                                       |         goto label_157;
                                                                 |     }
    0x000175fe ldrb r3, [r5, 0xc]                                |     r3 = *((r5 + 0xc));
    0x00017600 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00017602 beq.w 0x178d4                                     |         goto label_158;
                                                                 |     }
    0x00017606 blx 0x5ac4                                        |     r0 = table_add_cell_full ();
    0x0001760a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001760c beq.w 0x178de                                     |         goto label_159;
                                                                 |     }
    0x00017610 cmp r0, 2                                         |     
                                                                 |     if (r0 == 2) {
    0x00017612 beq.w 0x17a8a                                     |         goto label_160;
                                                                 |     }
    0x00017616 ldr.w sl, [pc, 0x85c]                             |     
    0x0001761a add sl, pc                                        |     sl = 0x2f494;
                                                                 | label_30:
    0x0001761c ldr r3, [sp, 0x4c]                                |     r3 = *(arg_4ch);
    0x0001761e str.w sl, [r3]                                    |     __asm ("str.w sl, [r3]");
    0x00017622 blx 0x5ac4                                        |     r0 = table_add_cell_full ();
    0x00017624 orrs.w r8, r0, r0, lsl 8                          |     r8 = r0 | (r0 << 8);
                                                                 |     if (r8 == r0) {
    0x00017628 beq.w 0x178cc                                     |         goto label_161;
                                                                 |     }
    0x0001762c ldr.w r8, [pc, 0x848]                             |     
    0x00017630 add r8, pc                                        |     r8 = 0x2f4ac;
                                                                 | label_29:
    0x00017632 str.w r8, [fp]                                    |     __asm ("str.w r8, [fp]");
                                                                 |     do {
    0x00017636 ldr r0, [r5, 0x24]                                |         r0 = *((r5 + 0x24));
    0x00017638 blx 0x66d0                                        |         memchr (r0, r1, r2);
    0x0001763c ldr.w r1, [pc, 0x83c]                             |         
    0x00017640 mov r3, r0                                        |         r3 = r0;
    0x00017642 mov r2, sl                                        |         r2 = sl;
    0x00017644 movs r0, 1                                        |         r0 = 1;
    0x00017646 add r1, pc                                        |         r1 = 0x2f4c6;
    0x00017648 blx 0x68e0                                        |         touch ();
    0x0001764c ldr.w sl, [r5, 0x24]                              |         sl = *((r5 + 0x24));
    0x00017650 cmp.w sl, 1                                       |         
    0x00017652 lsrs r1, r0, 0x1c                                 |         r1 = r0 >> 0x1c;
                                                                 |         if (r1 == r0) {
    0x00017654 beq 0x176d2                                       |             goto label_162;
                                                                 |         }
    0x00017656 ldr r0, [r5, 0x28]                                |         r0 = *((r5 + 0x28));
    0x00017658 blx 0x6240                                        |         fcn_00006240 ();
    0x0001765a ldcl p8, c15, [r2, 0x37c]!                        |         __asm ("ldcl p8, c15, [r2, 0x37c]!");
    0x0001765e adds r0, r4, r0                                   |         r0 = r4 + r0;
    0x00017660 mov r2, r0                                        |         r2 = r0;
    0x00017662 movs r0, 1                                        |         r0 = 1;
    0x00017664 add r1, pc                                        |         r1 += pc;
    0x00017666 blx 0x68e0                                        |         touch ();
                                                                 | label_22:
    0x0001766a ldr.w r1, [pc, 0x818]                             |         
    0x0001766e mov r2, r8                                        |         r2 = r8;
    0x00017670 movs r0, 1                                        |         r0 = 1;
    0x00017672 add r1, pc                                        |         r1 = 0x2f4fc;
    0x00017674 blx 0x68e0                                        |         touch ();
    0x00017678 ldr.w ip, [r5, 0x20]                              |         ip = *((r5 + 0x20));
    0x0001767a stm r0!, {r5}                                     |         *(r0!) = r5;
    0x0001767c ldr r2, [r4, 0x7c]                                |         r2 = *((r4 + 0x7c));
    0x0001767e cmp r2, ip                                        |         
                                                                 |         if (r2 == ip) {
    0x00017680 beq 0x176ac                                       |             goto label_163;
                                                                 |         }
                                                                 | label_21:
    0x00017682 ldr.w r2, [r4, 0x80]                              |         r2 = *((r4 + 0x80));
    0x00017686 mov r0, r7                                        |         r0 = r7;
    0x00017688 cmp r2, ip                                        |         
    0x0001768a itt eq                                            |         
                                                                 |         if (r2 != ip) {
    0x0001768c moveq r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r2 != ip) {
    0x0001768e streq r3, [r4, 0x80]                              |             *((r4 + 0x80)) = r3;
                                                                 |         }
    0x00017692 blx 0x59e0                                        |         unit_file_state_to_string ();
    0x00017696 b 0x17104                                         |         goto label_20;
                                                                 | label_157:
    0x00017698 ldr.w r3, [pc, 0x7ec]                             |         
    0x0001769c ldr r2, [sp, 0x4c]                                |         r2 = *(arg_4ch);
    0x0001769e add r3, pc                                        |         r3 = 0x2f52a;
    0x000176a0 mov r8, r3                                        |         r8 = r3;
    0x000176a2 mov sl, r3                                        |         sl = r3;
    0x000176a4 str.w r3, [fp]                                    |         __asm ("str.w r3, [fp]");
    0x000176a6 adds r0, 0                                        |         r0 += 0;
    0x000176a8 str r3, [r2]                                      |         *(r2) = r3;
    0x000176aa b 0x17636                                         |         
                                                                 |     } while (1);
                                                                 | label_163:
    0x000176ac ldrd r1, r2, [r5, 0x10]                           |     __asm ("ldrd r1, r2, [r5, 0x10]");
    0x000176b0 ldrd r0, r3, [r4, 0x98]                           |     __asm ("ldrd r0, r3, [r4, 0x98]");
    0x000176b4 cmp r3, r2                                        |     
    0x000176b6 it eq                                             |     
                                                                 |     if (r3 != r2) {
    0x000176b8 cmpeq r0, r1                                      |         __asm ("cmpeq r0, r1");
                                                                 |         goto label_164;
                                                                 |     }
                                                                 |     if (r3 != r2) {
                                                                 | label_164:
    0x000176ba bne 0x17682                                       |         goto label_21;
                                                                 |     }
    0x000176bc ldrd r0, r3, [r4, 0xa0]                           |     __asm ("ldrd r0, r3, [r4, 0xa0]");
    0x000176c0 cmp r2, r3                                        |     
    0x000176c2 it eq                                             |     
                                                                 |     if (r2 == r3) {
    0x000176c4 cmpeq r1, r0                                      |         __asm ("cmpeq r1, r0");
                                                                 |     }
    0x000176c6 ittt eq                                           |     
                                                                 |     if (r2 != r3) {
    0x000176c8 moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r2 != r3) {
    0x000176ca streq r3, [r4, 0x7c]                              |         *((r4 + 0x7c)) = r3;
                                                                 |     }
                                                                 |     if (r2 != r3) {
    0x000176cc ldreq ip, [r5, 0x20]                              |         ip = *((r5 + 0x20));
                                                                 |     }
    0x000176d0 b 0x17682                                         |     goto label_21;
                                                                 | label_162:
    0x000176d2 ldr.w r1, [pc, 0x7b8]                             |     
    0x000176d6 mov r0, sl                                        |     r0 = sl;
    0x000176d8 ldr r2, [r5, 0x28]                                |     r2 = *((r5 + 0x28));
    0x000176da add r1, pc                                        |     r1 = 0x2f56c;
    0x000176dc blx 0x68e0                                        |     touch ();
    0x000176e0 ldr r0, [r5, 0x28]                                |     r0 = *((r5 + 0x28));
    0x000176e2 movs r1, 3                                        |     r1 = 3;
    0x000176e4 blx 0x63cc                                        |     fcn_000063cc ();
    0x000176e6 cdp p6, 7, c4, c2, c2, 0                          |     __asm ("cdp p6, 7, c4, c2, c2, 0");
    0x000176e8 mov r2, r0                                        |     r2 = r0;
    0x000176ea cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000176ec beq 0x1766a                                       |         goto label_22;
                                                                 |     }
    0x000176ee ldr.w r1, [pc, 0x7a0]                             |     
    0x000176f2 mov r0, sl                                        |     r0 = sl;
    0x000176f4 add r1, pc                                        |     r1 = 0x2f58a;
    0x000176f6 blx 0x68e0                                        |     touch ();
    0x000176fa b 0x1766a                                         |     goto label_22;
                                                                 | label_105:
    0x000176fc ldr r5, [r4, 0x28]                                |     r5 = *((r4 + 0x28));
    0x000176fe cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00017700 bne.w 0x1692e                                     |         goto label_23;
                                                                 |     }
    0x00017704 ldr r2, [r4, 0x40]                                |     r2 = *((r4 + 0x40));
                                                                 |     if (r2 == 0) {
    0x00017706 cbz r2, 0x17710                                   |         goto label_118;
                                                                 |     }
    0x00017708 ldrb r3, [r2]                                     |     r3 = *(r2);
    0x0001770a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001770c bne.w 0x16952                                     |         goto label_24;
                                                                 |     }
                                                                 | label_118:
    0x00017710 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00017712 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00017714 beq.w 0x18020                                     |         goto label_165;
                                                                 |     }
                                                                 | label_70:
    0x00017718 ldr.w r1, [pc, 0x778]                             |     
    0x0001771c mov r2, r7                                        |     r2 = r7;
    0x0001771e str r6, [sp]                                      |     *(sp) = r6;
    0x00017720 movs r0, 1                                        |     r0 = 1;
    0x00017722 add r1, pc                                        |     r1 = 0x2f5ba;
    0x00017724 blx 0x68e0                                        |     touch ();
    0x00017726 invalid                                           |     
                                                                 |     if (r0 == 0) {
    0x0001772a cbnz r0, 0x17736                                  |         
                                                                 | label_129:
    0x0001772c movs r0, 0xa                                      |         r0 = 0xa;
    0x0001772e blx 0x5d1c                                        |         get_process_comm ();
    0x00017732 b.w 0x16cf0                                       |         goto label_25;
                                                                 |     }
                                                                 | label_156:
    0x00017736 ldr.w r1, [pc, 0x760]                             |     
    0x0001773a add r1, pc                                        |     r1 = 0x2f5d8;
    0x0001773c b 0x175e4                                         |     goto label_26;
                                                                 | label_130:
    0x0001773e ldr.w r1, [pc, 0x75c]                             |     
    0x00017742 mov r0, sb                                        |     r0 = sb;
    0x00017744 add r1, pc                                        |     r1 = 0x2f5e6;
    0x00017746 blx 0x6670                                        |     hashmap_contains ();
    0x00017748 vmlal.s16 q1, d4, d0                              |     __asm ("vmlal.s16 q1, d4, d0");
                                                                 |     if (r0 != 0xa) {
    0x0001774c bne.w 0x17960                                     |         goto label_166;
                                                                 |     }
    0x0001774e strh r0, [r1, 8]                                  |     *((r1 + 8)) = r0;
    0x00017750 ldrd r3, r2, [r4, 0x70]                           |     __asm ("ldrd r3, r2, [r4, 0x70]");
    0x00017754 cmp.w r2, -1                                      |     
    0x00017758 it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x0001775a cmpeq r3, -1                                      |         __asm ("cmpeq r3, -1");
                                                                 |     }
                                                                 |     if (r2 == -1) {
    0x0001775e beq.w 0x17960                                     |         goto label_166;
                                                                 |     }
    0x00017762 adds r1, r3, r5                                   |     r1 = r3 + r5;
    0x00017764 adcs.w r1, r2, r6                                 |     __asm ("adcs.w r1, r2, r6");
    0x00017768 it hs                                             |     
                                                                 |     if (r1 < r3) {
    0x0001776a movhs r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x0001776c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001776e bne.w 0x1804c                                     |         goto label_167;
                                                                 |     }
    0x00017772 adds.w sb, r5, r3                                 |     sb = r5 + r3;
    0x00017776 adc.w sl, r6, r2                                  |     __asm ("adc.w sl, r6, r2");
                                                                 | label_72:
    0x0001777a add r3, sp, 0x274                                 |     r3 += arg_274h;
    0x0001777c movs r2, 0x26                                     |     r2 = 0x26;
    0x0001777e movs r1, 0                                        |     r1 = 0;
    0x00017780 mov r0, r3                                        |     r0 = r3;
    0x00017782 blx 0x5d50                                        |     fcn_00005d50 ();
    0x00017786 ldr.w r2, [fp]                                    |     r2 = *(fp);
    0x0001778a mov r3, sl                                        |     r3 = sl;
    0x0001778c movs r1, 0x26                                     |     r1 = 0x26;
    0x0001778e add r5, sp, 0x2c4                                 |     r5 += arg_2c4h;
    0x00017790 str r2, [sp]                                      |     *(sp) = r2;
    0x00017792 mov r2, sb                                        |     r2 = sb;
    0x00017794 blx 0x5a10                                        |     json_variant_dump ();
    0x00017798 movs r1, 0                                        |     r1 = 0;
    0x0001779a mov r6, r0                                        |     r6 = r0;
    0x0001779c mov.w r2, 0x100                                   |     r2 = 0x100;
    0x000177a0 mov r0, r5                                        |     r0 = r5;
    0x000177a2 blx 0x5d50                                        |     fcn_00005d50 ();
    0x000177a6 mov r2, sb                                        |     r2 = sb;
    0x000177a8 mov r3, sl                                        |     r3 = sl;
    0x000177aa mov.w r1, 0x100                                   |     r1 = 0x100;
    0x000177ac strb r0, [r0, 6]                                  |     *((r0 + 6)) = r0;
    0x000177ae mov r0, r5                                        |     r0 = r5;
    0x000177b0 blx 0x5ed0                                        |     fcn_00005ed0 ();
    0x000177b4 ldr.w r1, [pc, 0x6e8]                             |     
    0x000177b8 mov r3, r0                                        |     r3 = r0;
    0x000177ba mov r2, r6                                        |     r2 = r6;
    0x000177bc movs r0, 1                                        |     r0 = 1;
    0x000177be add r1, pc                                        |     r1 = 0x2f662;
    0x000177c0 blx 0x68e0                                        |     touch ();
    0x000177c2 invalid                                           |     
    0x000177c4 ldr.w r1, [pc, 0x6dc]                             |     
    0x000177c8 ldr r0, [r4]                                      |     r0 = *(r4);
    0x000177ca add r1, pc                                        |     r1 = 0x2f672;
    0x000177cc blx 0x5d68                                        |     r0 = fcn_00005d68 ();
    0x000177ce pkhbt r8, ip, r0, lsl 8                           |     __asm ("pkhbt r8, ip, r0, lsl 8");
                                                                 |     if (r0 != 1) {
    0x000177d2 bne.w 0x16cf0                                     |         goto label_25;
                                                                 |     }
    0x000177d6 ldr.w sb, [r4, 8]                                 |     sb = *((r4 + 8));
    0x000177da cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x000177de beq.w 0x16cf0                                     |         goto label_25;
                                                                 |     }
                                                                 | label_36:
    0x000177e2 ldr.w r3, [pc, 0x6c4]                             |     
    0x000177e6 add r6, sp, 0x264                                 |     r6 += arg_264h;
    0x000177e8 add r3, pc                                        |     r3 = 0x2f696;
    0x000177ea adds r3, 0xbc                                     |     r3 += 0xbc;
    0x000177ec ldm.w r3, {r0, r1, r2}                            |     r0 = *(r3);
                                                                 |     r1 = *((r3 + 4));
                                                                 |     r2 = *((r3 + 8));
    0x000177f0 stm.w r6, {r0, r1, r2}                            |     *(r6) = r0;
                                                                 |     *((r6 + 4)) = r1;
                                                                 |     *((r6 + 8)) = r2;
    0x000177f4 mov r1, sb                                        |     r1 = sb;
    0x000177f6 mov r0, r6                                        |     r0 = r6;
    0x000177f8 blx 0x5914                                        |     strv_find ();
    0x000177fa invalid                                           |     
                                                                 |     if (r3 == 0xbc) {
    0x000177fe beq.w 0x16cf0                                     |         goto label_25;
                                                                 |     }
    0x00017802 ldrd sb, fp, [r4, 0x58]                           |     __asm ("ldrd sb, fp, [r4, 0x58]");
    0x00017806 adds.w r2, sb, -1                                 |     r2 = sb + -1;
    0x0001780a adc r3, fp, -1                                    |     __asm ("adc r3, fp, -1");
    0x0001780e adds r2, 2                                        |     r2 += 2;
    0x00017810 sbcs r3, r3, -1                                   |     __asm ("sbcs r3, r3, -1");
                                                                 |     if (r2 >= 2) {
    0x00017814 bhs.w 0x16cf0                                     |         goto label_25;
                                                                 |     }
    0x00017818 ldrd r6, sl, [r4, 0x60]                           |     __asm ("ldrd r6, sl, [r4, 0x60]");
    0x0001781c subs r2, r6, 1                                    |     r2 = r6 - 1;
    0x0001781e adc r3, sl, -1                                    |     __asm ("adc r3, sl, -1");
    0x00017822 adds r2, 2                                        |     r2 += 2;
    0x00017824 sbcs r3, r3, -1                                   |     __asm ("sbcs r3, r3, -1");
    0x00017828 ite lo                                            |     
                                                                 |     if (r2 >= 2) {
    0x0001782a movlo r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r2 < 2) {
    0x0001782c movhs r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0001782e cmp r6, sb                                        |     
    0x00017830 and r3, r3, 1                                     |     r3 &= 1;
    0x00017834 sbcs.w r2, sl, fp                                 |     __asm ("sbcs.w r2, sl, fp");
    0x00017838 it lo                                             |     
                                                                 |     if (r6 >= sb) {
    0x0001783a movlo r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0001783c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001783e beq.w 0x16cf0                                     |         goto label_25;
                                                                 |     }
    0x00017842 add r5, sp, 0x2c4                                 |     r5 += arg_2c4h;
    0x00017844 movs r2, 0x40                                     |     r2 = 0x40;
    0x00017846 movs r1, 0                                        |     r1 = 0;
    0x00017848 mov r0, r5                                        |     r0 = r5;
    0x0001784a blx 0x5d50                                        |     fcn_00005d50 ();
    0x0001784c eor.w fp, r2, r6, ror 26                          |     
    0x00017850 lsls r1, r1, 8                                    |     r1 <<= 8;
    0x00017852 mov r0, r5                                        |     r0 = r5;
    0x00017854 sbc.w r3, sl, fp                                  |     __asm ("sbc.w r3, sl, fp");
    0x00017858 mov.w sl, 0x3e8                                   |     sl = 0x3e8;
    0x0001785c mov.w fp, 0                                       |     
    0x00017860 movs r1, 0x40                                     |     r1 = 0x40;
    0x00017862 strd sl, fp, [sp]                                 |     __asm ("strd sl, fp, [sp]");
    0x00017866 blx 0x6790                                        |     strv_free ();
    0x0001786a ldr.w r1, [pc, 0x640]                             |     
    0x0001786e mov r2, r0                                        |     r2 = r0;
    0x00017870 movs r0, 1                                        |     r0 = 1;
    0x00017872 add r1, pc                                        |     r1 = 0x2f724;
    0x00017874 blx 0x68e0                                        |     touch ();
    0x00017878 b.w 0x16cf0                                       |     goto label_25;
                                                                 | label_141:
    0x0001787c ldr.w r3, [r4, 0x80]                              |     r3 = *((r4 + 0x80));
    0x00017880 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00017882 ble.w 0x17146                                     |         goto label_27;
                                                                 |     }
    0x00017886 movs r2, 0                                        |     r2 = 0;
    0x00017888 ldr.w r3, [pc, 0x624]                             |     
    0x0001788c str r2, [sp, 0xb0]                                |     *(c) = r2;
    0x0001788e add r5, sp, 0xb0                                  |     r5 += c;
    0x00017890 ldr r2, [sp, 0x3c]                                |     r2 = *(arg_3ch);
    0x00017892 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00017894 ldr r3, [r3]                                      |     r3 = *(0x17eb0);
                                                                 | label_39:
    0x00017896 ldr.w r0, [pc, 0x61c]                             |     
    0x0001789a movs r2, 0xb                                      |     r2 = 0xb;
    0x0001789c movs r1, 1                                        |     r1 = 1;
    0x0001789e add r0, pc                                        |     r0 = 0x2f758;
    0x000178a0 blx 0x642c                                        |     fcn_0000642c ();
                                                                 | label_40:
    0x000178a4 ldr.w r1, [pc, 0x610]                             |     
    0x000178a8 movs r0, 1                                        |     r0 = 1;
    0x000178aa ldr.w r2, [r4, 0x80]                              |     r2 = *((r4 + 0x80));
    0x000178ae add r1, pc                                        |     r1 = 0x2f76a;
    0x000178b0 blx 0x68e0                                        |     touch ();
    0x000178b4 ldr.w r3, [pc, 0x550]                             |     
    0x000178b8 ldr r2, [sp, 0x3c]                                |     r2 = *(arg_3ch);
    0x000178ba ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000178bc ldr r3, [r3]                                      |     r3 = *(0x17e08);
    0x000178be cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000178c0 beq.w 0x17db0                                     |         goto label_168;
                                                                 |     }
                                                                 | label_57:
    0x000178c4 ldr r0, [r5]                                      |     r0 = *(r5);
                                                                 | label_56:
    0x000178c6 blx 0x59e0                                        |     unit_file_state_to_string ();
    0x000178ca b 0x17140                                         |     goto label_28;
                                                                 | label_161:
    0x000178cc ldr.w r8, [pc, 0x5ec]                             |     
    0x000178d0 add r8, pc                                        |     r8 = 0x2f790;
    0x000178d2 b 0x17632                                         |     goto label_29;
                                                                 | label_158:
    0x000178d4 blx 0x5ac4                                        |     r0 = table_add_cell_full ();
    0x000178d8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000178da bne.w 0x17a82                                     |         goto label_169;
                                                                 |     }
                                                                 | label_159:
    0x000178de ldr.w sl, [pc, 0x5e0]                             |     
    0x000178e2 add sl, pc                                        |     sl = 0x2f7a8;
    0x000178e4 b 0x1761c                                         |     goto label_30;
                                                                 | label_106:
    0x000178e6 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000178e8 beq.w 0x16b2a                                     |         goto label_31;
                                                                 |     }
    0x000178ec ldrb r3, [r2]                                     |     r3 = *(r2);
    0x000178ee cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000178f0 beq.w 0x16b2a                                     |         goto label_31;
                                                                 |     }
    0x000178f4 b.w 0x16952                                       |     goto label_24;
                                                                 | label_98:
    0x000178f8 ldr.w r2, [pc, 0x5c8]                             |     
    0x000178fc add r2, pc                                        |     r2 = 0x2f7c4;
    0x000178fe b.w 0x16836                                       |     goto label_32;
                                                                 | label_109:
    0x00017902 ldr.w r0, [pc, 0x5c4]                             |     
    0x00017906 add r0, pc                                        |     r0 = 0x2f7d4;
    0x00017908 blx 0x5bf8                                        |     fcn_00005bf8 ();
    0x0001790c b.w 0x16976                                       |     goto label_33;
                                                                 | label_128:
    0x00017910 adds r5, 0xbc                                     |     r5 += 0xbc;
    0x00017912 ldm.w r5, {r0, r1, r2}                            |     r0 = *(r5);
                                                                 |     r1 = *((r5 + 4));
                                                                 |     r2 = *((r5 + 8));
    0x00017916 stm.w r6, {r0, r1, r2}                            |     *(r6) = r0;
                                                                 |     *((r6 + 4)) = r1;
                                                                 |     *((r6 + 8)) = r2;
    0x0001791a mov r1, sb                                        |     r1 = sb;
    0x0001791c mov r0, r6                                        |     r0 = r6;
    0x0001791e blx 0x5914                                        |     strv_find ();
    0x00017920 invalid                                           |     
                                                                 |     if (r5 == 0xbc) {
    0x00017924 beq.w 0x17a92                                     |         goto label_170;
                                                                 |     }
    0x00017928 ldrd r5, r6, [r4, 0x68]                           |     __asm ("ldrd r5, r6, [r4, 0x68]");
    0x0001792c b.w 0x16c82                                       |     goto label_34;
                                                                 | label_123:
    0x00017930 mov r1, r6                                        |     r1 = r6;
    0x00017932 mov r0, r5                                        |     r0 = r5;
    0x00017934 blx 0x6670                                        |     r0 = hashmap_contains ();
    0x00017938 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001793a beq.w 0x16c10                                     |         goto label_35;
                                                                 |     }
                                                                 | label_75:
    0x0001793e ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x00017940 mov r2, r8                                        |     r2 = r8;
    0x00017942 ldr.w r1, [pc, 0x588]                             |     
    0x00017946 movs r0, 1                                        |     r0 = 1;
    0x00017948 strd r6, r3, [sp]                                 |     __asm ("strd r6, r3, [sp]");
    0x0001794c mov r3, r5                                        |     r3 = r5;
    0x0001794e add r1, pc                                        |     r1 = 0x2f820;
    0x00017950 blx 0x68e0                                        |     touch ();
    0x00017952 invalid                                           |     
                                                                 |     if (r6 != 0) {
    0x00017956 cbnz r6, 0x17972                                  |         goto label_171;
                                                                 |     }
                                                                 | label_155:
    0x00017958 ldr r0, [r4]                                      |     r0 = *(r4);
    0x0001795a bl 0x1b304                                        |     fcn_0001b304 (r0, r1, r2);
    0x0001795c ldc2l p6, c14, [r3], {0x1a}                       |     __asm ("ldc2l p6, c14, [r3], {0x1a}");
                                                                 | label_166:
    0x00017960 ldr.w r1, [pc, 0x56c]                             |     
    0x00017964 ldr r0, [r4]                                      |     r0 = *(r4);
    0x00017966 add r1, pc                                        |     r1 = 0x2f83a;
    0x00017968 blx 0x5d68                                        |     r0 = fcn_00005d68 ();
    0x0001796c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001796e bne.w 0x16cf0                                     |         goto label_25;
                                                                 |     }
                                                                 | label_171:
    0x00017972 b 0x177e2                                         |     goto label_36;
                                                                 | label_138:
    0x00017974 ldr.w r1, [pc, 0x55c]                             |     
    0x00017978 movs r0, 1                                        |     r0 = 1;
    0x0001797a ldrd r2, r3, [r4, 0xf0]                           |     __asm ("ldrd r2, r3, [r4, 0xf0]");
    0x0001797e add r1, pc                                        |     r1 = 0x2f856;
    0x00017980 blx 0x68e0                                        |     touch ();
    0x00017982 invalid                                           |     
    0x00017986 movs r0, 0xf8                                     |     r0 = 0xf8;
    0x00017988 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x0001798a bne.w 0x17fbc                                     |         goto label_172;
                                                                 |     }
                                                                 | label_62:
    0x0001798e movs r0, 0xa                                      |     r0 = 0xa;
    0x00017990 blx 0x5d1c                                        |     get_process_comm ();
    0x00017994 b.w 0x170c6                                       |     goto label_37;
                                                                 | label_90:
    0x00017998 movs r0, 0xa                                      |     r0 = 0xa;
    0x0001799a blx 0x5d1c                                        |     get_process_comm ();
    0x0001799e movs r3, 1                                        |     r3 = 1;
    0x000179a0 strb.w r3, [sb]                                   |     *(sb) = r3;
    0x000179a4 b.w 0x16518                                       |     goto label_2;
                                                                 | label_132:
    0x000179a8 ldr.w r0, [pc, 0x52c]                             |     
    0x000179ac add r0, pc                                        |     r0 = 0x2f888;
    0x000179ae blx 0x5bf8                                        |     fcn_00005bf8 ();
    0x000179b2 b.w 0x16e0a                                       |     goto label_38;
                                                                 | label_119:
    0x000179b6 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x000179b8 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000179ba beq.w 0x17fe8                                     |         goto label_173;
                                                                 |     }
                                                                 | label_67:
    0x000179be ldr.w r1, [pc, 0x51c]                             |     
    0x000179c2 mov r2, r7                                        |     r2 = r7;
    0x000179c4 strd r6, r5, [sp]                                 |     __asm ("strd r6, r5, [sp]");
    0x000179c8 movs r0, 1                                        |     r0 = 1;
    0x000179ca add r1, pc                                        |     r1 = 0x2f8ac;
    0x000179cc blx 0x68e0                                        |     touch ();
    0x000179d0 b.w 0x1696c                                       |     goto label_16;
                                                                 | label_144:
    0x000179d4 movs r2, 0                                        |     r2 = 0;
    0x000179d6 ldr.w r3, [pc, 0x4d8]                             |     
    0x000179da str r2, [sp, 0xb0]                                |     *(c) = r2;
    0x000179dc add r5, sp, 0xb0                                  |     r5 += c;
    0x000179de ldr r2, [sp, 0x3c]                                |     r2 = *(arg_3ch);
    0x000179e0 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000179e2 ldr r2, [r4, 0x7c]                                |     r2 = *((r4 + 0x7c));
    0x000179e4 ldr r3, [r3]                                      |     r3 = *(0x17eb2);
    0x000179e6 cmp r2, 0                                         |     
                                                                 |     if (r2 <= 0) {
    0x000179e8 ble.w 0x17896                                     |         goto label_39;
                                                                 |     }
    0x000179ec ldr.w r0, [pc, 0x4f0]                             |     
    0x000179f0 movs r2, 0xf                                      |     r2 = 0xf;
    0x000179f2 movs r1, 1                                        |     r1 = 1;
    0x000179f4 add r0, pc                                        |     r0 = 0x2f8d8;
    0x000179f6 blx 0x642c                                        |     fcn_0000642c ();
    0x000179fa b 0x178a4                                         |     goto label_40;
                                                                 | label_150:
    0x000179fc ldr.w r5, [pc, 0x4e4]                             |     
    0x00017a00 add r5, pc                                        |     r5 = 0x2f8e8;
    0x00017a02 b 0x1734e                                         |     goto label_41;
                                                                 | label_154:
    0x00017a04 ldr.w r3, [pc, 0x4a8]                             |     r3 = *(0x17eb0);
    0x00017a08 mov r7, r2                                        |     r7 = r2;
    0x00017a0a str r1, [sp, 0x2c]                                |     *(arg_2ch) = r1;
    0x00017a0c ldr.w fp, [r4, 0xb0]                              |     fp = *((r4 + 0xb0));
    0x00017a10 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00017a12 vldr d8, [r4, 0x50]                               |     __asm ("vldr d8, [r4, 0x50]");
    0x00017a16 ldr r5, [r3]                                      |     r5 = *(0x17eb0);
    0x00017a18 ldr.w r3, [pc, 0x4cc]                             |     r3 = *(0x17ee8);
    0x00017a1a adds r4, 0xcc                                     |     r4 += 0xcc;
    0x00017a1c ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00017a1e ldr.w sl, [r3]                                    |     sl = *(0x17ee8);
    0x00017a20 adr r0, 0                                         |     r0 = 0;
    0x00017a22 ldr.w r3, [pc, 0x4c8]                             |     r3 = *(0x17eee);
    0x00017a26 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00017a28 ldr.w sb, [r3]                                    |     sb = *(0x17eee);
    0x00017a2c blx 0x62dc                                        |     r0 = fcn_000062dc ();
    0x00017a30 mov r8, r0                                        |     r8 = r0;
    0x00017a32 bl 0x125a0                                        |     fcn_000125a0 ();
    0x00017a36 ldr r3, [sp, 0x40]                                |     r3 = *(arg_40h);
    0x00017a38 orr ip, r0, 0x20                                  |     
    0x00017a3c mov r0, r5                                        |     r0 = r5;
    0x00017a3e ldr.w r5, [pc, 0x4b0]                             |     
    0x00017a42 ldr r1, [sp, 0x2c]                                |     r1 = *(arg_2ch);
    0x00017a44 mov r2, fp                                        |     r2 = fp;
    0x00017a46 str r3, [sp, 0x24]                                |     *(arg_24h) = r3;
    0x00017a48 mov r3, sl                                        |     r3 = sl;
    0x00017a4a ldr r5, [r7, r5]                                  |     r5 = *((r7 + r5));
    0x00017a4c vstr d8, [sp, 8]                                  |     __asm ("vstr d8, [sp, 8]");
    0x00017a50 strd r8, ip, [sp, 0x14]                           |     __asm ("strd r8, ip, [sp, 0x14]");
    0x00017a52 ldrh r5, [r0, 0x20]                               |     r5 = *((r0 + 0x20));
    0x00017a54 str.w sb, [sp, 0x10]                              |     __asm ("str.w sb, [var_10h]");
    0x00017a58 str r6, [sp]                                      |     *(sp) = r6;
    0x00017a5a ldr r5, [r5]                                      |     r5 = *(0x17ef2);
    0x00017a5c clz r5, r5                                        |     r5 &= r5;
    0x00017a60 lsrs r5, r5, 5                                    |     r5 >>= 5;
    0x00017a62 str r5, [sp, 0x20]                                |     var_20h = r5;
    0x00017a64 movs r5, 1                                        |     r5 = 1;
    0x00017a66 str r5, [sp, 0x1c]                                |     var_1ch = r5;
    0x00017a68 blx 0x68a4                                        |     unit_name_from_dbus_path ();
    0x00017a6c b 0x1758c                                         |     goto label_42;
                                                                 | label_102:
    0x00017a6e ldr.w r6, [pc, 0x484]                             |     
    0x00017a72 add r6, pc                                        |     r6 = 0x2f96c;
    0x00017a74 b.w 0x168c2                                       |     goto label_43;
                                                                 | label_101:
    0x00017a78 ldr.w r7, [pc, 0x47c]                             |     
    0x00017a7c add r7, pc                                        |     r7 = 0x2f978;
    0x00017a7e b.w 0x168ac                                       |     goto label_44;
                                                                 | label_169:
    0x00017a82 ldr.w sl, [pc, 0x478]                             |     
    0x00017a86 add sl, pc                                        |     sl = 0x2f988;
    0x00017a88 b 0x1761c                                         |     goto label_30;
                                                                 | label_160:
    0x00017a8a ldr.w sl, [pc, 0x474]                             |     
    0x00017a8e add sl, pc                                        |     sl = 0x2f994;
    0x00017a90 b 0x1761c                                         |     goto label_30;
                                                                 | label_170:
    0x00017a92 ldr.w r3, [pc, 0x470]                             |     
    0x00017a96 mov r1, sb                                        |     r1 = sb;
    0x00017a98 str r0, [r6, 4]                                   |     *((r6 + 4)) = r0;
    0x00017a9a mov r0, r6                                        |     r0 = r6;
    0x00017a9c add r3, pc                                        |     r3 = 0x2f9a6;
    0x00017a9e str r3, [r6]                                      |     *(r6) = r3;
    0x00017aa0 blx 0x5914                                        |     strv_find ();
    0x00017aa2 vadd.i64 d2, d8, d0                               |     __asm ("vadd.i64 d2, d8, d0");
                                                                 |     if (r5 == 1) {
    0x00017aa6 beq.w 0x17dd0                                     |         goto label_127;
                                                                 |     }
    0x00017aa8 strh r3, [r2, 0xc]                                |     *((r2 + 0xc)) = r3;
    0x00017aaa ldrd r5, r6, [r4, 0x48]                           |     __asm ("ldrd r5, r6, [r4, 0x48]");
    0x00017aae b.w 0x16c82                                       |     goto label_34;
                                                                 | label_46:
    0x00017ab2 blx 0x5cd4                                        |     r0 = gethostname_full ();
    0x00017ab6 cmp r0, 3                                         |     
                                                                 |     if (r0 <= 3) {
    0x00017ab8 ble.w 0x17572                                     |         goto label_45;
                                                                 |     }
    0x00017aba add r5, sp, 0x16c                                 |     r5 = sp + 0x16c;
    0x00017abc mov r1, r6                                        |     r1 = r6;
    0x00017abe mov r0, r5                                        |     r0 = r5;
    0x00017ac0 ldr.w r8, [r4]                                    |     r8 = *(r4);
    0x00017ac4 blx 0x663c                                        |     fcn_0000663c ();
    0x00017ac8 ldr.w r3, [pc, 0x43c]                             |     
    0x00017acc mov r1, r6                                        |     r1 = r6;
    0x00017ace ldr.w r2, [pc, 0x43c]                             |     
    0x00017ad2 strd r8, r0, [sp, 8]                              |     __asm ("strd r8, r0, [sp, 8]");
    0x00017ad6 movs r0, 4                                        |     r0 = 4;
    0x00017ad8 add r3, pc                                        |     r3 = 0x2f9e4;
    0x00017ada str r3, [sp, 4]                                   |     var_4h = r3;
    0x00017adc add r2, pc                                        |     r2 = 0x2f9ee;
    0x00017ade ldr.w r3, [pc, 0x430]                             |     
    0x00017ae2 adds r2, 7                                        |     r2 += 7;
    0x00017ae4 add r3, pc                                        |     r3 = 0x2f9fa;
    0x00017ae6 str r3, [sp]                                      |     *(sp) = r3;
    0x00017ae8 movw r3, 0x2fe                                    |     r3 = 0x2fe;
    0x00017aec blx 0x6008                                        |     fcn_00006008 ();
    0x00017af0 b 0x17572                                         |     goto label_45;
                                                                 | label_153:
    0x00017af2 ldr r3, [pc, 0x314]                               |     
    0x00017af4 ldr r2, [sp, 0x3c]                                |     r2 = *(arg_3ch);
    0x00017af6 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00017af8 ldr r3, [r3]                                      |     r3 = *(0x17e0a);
    0x00017afa cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00017afc bne 0x17ab2                                       |         goto label_46;
                                                                 |     }
    0x00017afe ldr r2, [r4, 0x7c]                                |     r2 = *((r4 + 0x7c));
    0x00017b00 ldr.w sb, [r4, 0x30]                              |     sb = *((r4 + 0x30));
    0x00017b04 cmp r2, 0                                         |     
    0x00017b06 it le                                             |     
                                                                 |     if (r2 > 0) {
    0x00017b08 movle sl, r3                                      |         sl = r3;
                                                                 |     }
    0x00017b0a ldr.w r3, [r4, 0x80]                              |     r3 = *((r4 + 0x80));
    0x00017b0e ittte gt                                          |     
                                                                 |     if (r2 <= 0) {
    0x00017b10 addgt r6, sp, 0x264                               |         r6 += arg_264h;
                                                                 |     }
                                                                 |     if (r2 <= 0) {
    0x00017b12 movgt sl, 1                                       |         sl = 1;
                                                                 |     }
                                                                 |     if (r2 > 0) {
    0x00017b16 strle r2, [r6]                                    |         *(r6) = r2;
                                                                 |     }
                                                                 |     if (r2 <= 0) {
    0x00017b18 add r6, sp, 0x264                                 |         r6 += arg_264h;
                                                                 |     }
    0x00017b1a cmp r3, 0                                         |     
    0x00017b1c itt gt                                            |     
                                                                 |     if (r3 <= 0) {
    0x00017b1e strgt r3, [r6, sl, lsl 2]                         |         offset_0 = sl << 2;
                                                                 |         *((r6 + offset_0)) = r3;
                                                                 |     }
                                                                 |     if (r3 > 0) {
    0x00017b22 add.w sl, sl, 1                                   |         sl++;
                                                                 |     }
    0x00017b26 bl 0x125a0                                        |     fcn_000125a0 ();
    0x00017b2a ldr r2, [pc, 0x3e8]                               |     
    0x00017b2c mov r3, r8                                        |     r3 = r8;
    0x00017b2e strd sl, r0, [sp, 4]                              |     __asm ("strd sl, r0, [sp, 4]");
    0x00017b32 mov r1, sb                                        |     r1 = sb;
    0x00017b34 ldr r0, [pc, 0x3e0]                               |     
    0x00017b36 add r2, pc                                        |     r2 = 0x2fa50;
    0x00017b38 str r6, [sp]                                      |     *(sp) = r6;
    0x00017b3a add r0, pc                                        |     r0 = 0x2fa56;
    0x00017b3c blx 0x63b4                                        |     fcn_000063b4 ();
    0x00017b40 b 0x17572                                         |     goto label_45;
                                                                 | label_135:
    0x00017b42 blx 0x5ac4                                        |     r0 = table_add_cell_full ();
    0x00017b46 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00017b48 beq.w 0x17ff4                                     |         goto label_174;
                                                                 |     }
    0x00017b4c ldr r6, [pc, 0x3cc]                               |     
    0x00017b4e add r6, pc                                        |     r6 = 0x2fa6e;
                                                                 | label_69:
    0x00017b50 blx 0x5ac4                                        |     r0 = table_add_cell_full ();
    0x00017b54 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00017b56 beq.w 0x17fee                                     |         goto label_175;
                                                                 |     }
    0x00017b58 strh r2, [r1, 0x12]                               |     *((r1 + 0x12)) = r2;
    0x00017b5a ldr r5, [pc, 0x3c4]                               |     
    0x00017b5c add r5, pc                                        |     r5 = 0x2fa82;
                                                                 | label_68:
    0x00017b5e add r3, sp, 0x2c4                                 |     r3 += arg_2c4h;
    0x00017b60 movs r2, 0x26                                     |     r2 = 0x26;
    0x00017b62 movs r1, 0                                        |     r1 = 0;
    0x00017b64 mov r0, r3                                        |     r0 = r3;
    0x00017b66 blx 0x5d50                                        |     fcn_00005d50 ();
    0x00017b6a ldr r2, [sp, 0x3c]                                |     r2 = *(arg_3ch);
    0x00017b6c movs r1, 0x26                                     |     r1 = 0x26;
    0x00017b6e ldr r3, [pc, 0x3b4]                               |     
    0x00017b70 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00017b72 ldr r3, [r3]                                      |     r3 = *(0x17f26);
    0x00017b74 str r3, [sp]                                      |     *(sp) = r3;
    0x00017b76 ldrd r2, r3, [r4, 0xc8]                           |     __asm ("ldrd r2, r3, [r4, 0xc8]");
    0x00017b7a blx 0x5a10                                        |     json_variant_dump ();
    0x00017b7e add r3, sp, 0x3c4                                 |     r3 += arg_3c4h;
    0x00017b80 mov sb, r0                                        |     sb = r0;
    0x00017b82 mov.w r2, 0x100                                   |     r2 = 0x100;
    0x00017b86 movs r1, 0                                        |     r1 = 0;
    0x00017b88 mov r0, r3                                        |     r0 = r3;
    0x00017b8a blx 0x5d50                                        |     fcn_00005d50 ();
    0x00017b8e ldrd r2, r3, [r4, 0xc8]                           |     __asm ("ldrd r2, r3, [r4, 0xc8]");
    0x00017b92 mov.w r1, 0x100                                   |     r1 = 0x100;
    0x00017b96 blx 0x5ed0                                        |     fcn_00005ed0 ();
    0x00017b9a ldr r1, [pc, 0x38c]                               |     
    0x00017b9c mov r3, r5                                        |     r3 = r5;
    0x00017b9e strd sb, r0, [sp]                                 |     __asm ("strd sb, r0, [sp]");
    0x00017ba0 str r0, [sp]                                      |     *(sp) = r0;
    0x00017ba2 mov r2, r6                                        |     r2 = r6;
    0x00017ba4 movs r0, 1                                        |     r0 = 1;
    0x00017ba6 add r1, pc                                        |     r1 = 0x2fad4;
    0x00017ba8 blx 0x68e0                                        |     touch ();
    0x00017bac ldrb.w r3, [r4, 0xd1]                             |     r3 = *((r4 + 0xd1));
    0x00017bb0 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00017bb2 bne.w 0x18034                                     |         goto label_176;
                                                                 |     }
    0x00017bb4 strh r7, [r7, 0x10]                               |     *((r7 + 0x10)) = r7;
    0x00017bb6 ldr.w r2, [r4, 0xd4]                              |     r2 = *((r4 + 0xd4));
    0x00017bba cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00017bbc beq.w 0x16ea2                                     |         goto label_47;
                                                                 |     }
    0x00017bc0 ldrb.w r3, [r4, 0xd2]                             |     r3 = *((r4 + 0xd2));
    0x00017bc4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00017bc6 beq.w 0x18040                                     |         goto label_177;
                                                                 |     }
    0x00017bca ldr r3, [pc, 0x360]                               |     
    0x00017bcc add r3, pc                                        |     r3 = 0x2fafe;
                                                                 | label_71:
    0x00017bce ldr.w r1, [r4, 0xd8]                              |     r1 = *((r4 + 0xd8));
    0x00017bd2 movs r0, 1                                        |     r0 = 1;
    0x00017bd4 str r1, [sp]                                      |     *(sp) = r1;
    0x00017bd6 ldr r1, [pc, 0x358]                               |     
    0x00017bd8 add r1, pc                                        |     r1 = 0x2fb0e;
    0x00017bda blx 0x68e0                                        |     touch ();
    0x00017bde b.w 0x16ea2                                       |     goto label_47;
                                                                 | label_125:
    0x00017be2 blx 0x5ac4                                        |     r0 = table_add_cell_full ();
    0x00017be6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00017be8 beq.w 0x1802e                                     |         goto label_178;
                                                                 |     }
    0x00017bec cmp r0, 2                                         |     
                                                                 |     if (r0 == 2) {
    0x00017bee beq.w 0x17fd0                                     |         goto label_179;
                                                                 |     }
    0x00017bf2 ldr r6, [pc, 0x340]                               |     
    0x00017bf4 add r6, pc                                        |     r6 = 0x2fb2e;
                                                                 | label_63:
    0x00017bf6 blx 0x5ac4                                        |     r0 = table_add_cell_full ();
    0x00017bfa cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00017bfc beq.w 0x17fe2                                     |         goto label_180;
                                                                 |     }
    0x00017c00 ldr r3, [pc, 0x334]                               |     
    0x00017c02 add r3, pc                                        |     r3 = 0x2fb3e;
                                                                 | label_66:
    0x00017c04 ldr r1, [pc, 0x334]                               |     
    0x00017c06 mov r2, r6                                        |     r2 = r6;
    0x00017c08 str r3, [sp]                                      |     *(sp) = r3;
    0x00017c0a movs r0, 1                                        |     r0 = 1;
    0x00017c0c mov r3, r5                                        |     r3 = r5;
    0x00017c0e add r1, pc                                        |     r1 = 0x2fb4e;
    0x00017c10 blx 0x68e0                                        |     touch ();
    0x00017c14 b.w 0x16c3e                                       |     goto label_48;
                                                                 | label_126:
    0x00017c18 ldr r1, [pc, 0x324]                               |     
    0x00017c1a mov r2, r5                                        |     r2 = r5;
    0x00017c1c movs r0, 1                                        |     r0 = 1;
    0x00017c1e add r1, pc                                        |     r1 = 0x2fb62;
    0x00017c20 blx 0x68e0                                        |     touch ();
    0x00017c24 b.w 0x16c56                                       |     goto label_49;
                                                                 | label_142:
    0x00017c28 ldr.w r0, [r4, 0xa8]                              |     r0 = *((r4 + 0xa8));
    0x00017c2c cmp r0, 0                                         |     
                                                                 |     if (r0 <= 0) {
    0x00017c2e ble.w 0x17136                                     |         goto label_50;
                                                                 |     }
    0x00017c32 blx 0x66d0                                        |     memchr (r0, r1, r2);
    0x00017c36 ldr r1, [pc, 0x30c]                               |     
    0x00017c38 mov r2, r0                                        |     r2 = r0;
    0x00017c3a movs r0, 1                                        |     r0 = 1;
    0x00017c3c add r1, pc                                        |     r1 = 0x2fb86;
    0x00017c3e blx 0x68e0                                        |     touch ();
    0x00017c42 ldr.w r5, [r4, 0xa8]                              |     r5 = *((r4 + 0xa8));
    0x00017c46 cmp r5, 1                                         |     
                                                                 |     if (r5 == 1) {
    0x00017c48 beq.w 0x1805e                                     |         goto label_181;
                                                                 |     }
    0x00017c4c ldr.w r0, [r4, 0xac]                              |     r0 = *((r4 + 0xac));
    0x00017c50 blx 0x6240                                        |     fcn_00006240 ();
    0x00017c54 ldr r1, [pc, 0x2f0]                               |     
    0x00017c56 mov r2, r0                                        |     r2 = r0;
    0x00017c58 movs r0, 1                                        |     r0 = 1;
    0x00017c5a add r1, pc                                        |     r1 = 0x2fba6;
    0x00017c5c blx 0x68e0                                        |     touch ();
                                                                 | label_74:
    0x00017c60 movs r0, 0x29                                     |     r0 = 0x29;
    0x00017c62 blx 0x5d1c                                        |     get_process_comm ();
    0x00017c66 b.w 0x17136                                       |     goto label_50;
                                                                 | label_147:
    0x00017c6a movs r0, 0xa                                      |     r0 = 0xa;
    0x00017c6c blx 0x5d1c                                        |     get_process_comm ();
    0x00017c70 b.w 0x1726c                                       |     goto label_51;
                                                                 | label_108:
    0x00017c74 ldr r3, [pc, 0x2d4]                               |     
    0x00017c76 add r3, pc                                        |     r3 = 0x2fbc6;
    0x00017c78 b.w 0x1695a                                       |     goto label_52;
                                                                 | label_134:
    0x00017c7c blx 0x5ac4                                        |     r0 = table_add_cell_full ();
    0x00017c80 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00017c82 beq.w 0x18028                                     |         goto label_182;
                                                                 |     }
    0x00017c86 cmp r0, 2                                         |     
                                                                 |     if (r0 == 2) {
    0x00017c88 beq.w 0x17fdc                                     |         goto label_183;
                                                                 |     }
    0x00017c8c ldr r5, [pc, 0x2c0]                               |     
    0x00017c8e add r5, pc                                        |     r5 = 0x2fbe2;
                                                                 | label_65:
    0x00017c90 blx 0x5ac4                                        |     r0 = table_add_cell_full ();
    0x00017c94 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00017c96 beq.w 0x17fd6                                     |         goto label_184;
                                                                 |     }
    0x00017c9a ldr r6, [pc, 0x2b8]                               |     
    0x00017c9c add r6, pc                                        |     r6 = 0x2fbf6;
                                                                 | label_64:
    0x00017c9e add r3, sp, 0x2c4                                 |     r3 += arg_2c4h;
    0x00017ca0 movs r2, 0x26                                     |     r2 = 0x26;
    0x00017ca2 movs r1, 0                                        |     r1 = 0;
    0x00017ca4 mov r0, r3                                        |     r0 = r3;
    0x00017ca6 blx 0x5d50                                        |     fcn_00005d50 ();
    0x00017caa ldr r2, [sp, 0x3c]                                |     r2 = *(arg_3ch);
    0x00017cac movs r1, 0x26                                     |     r1 = 0x26;
    0x00017cae ldr r3, [pc, 0x274]                               |     
    0x00017cb0 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00017cb2 ldr r3, [r3]                                      |     r3 = *(0x17f26);
    0x00017cb4 str r3, [sp]                                      |     *(sp) = r3;
    0x00017cb6 ldrd r2, r3, [r4, 0xb8]                           |     __asm ("ldrd r2, r3, [r4, 0xb8]");
    0x00017cba blx 0x5a10                                        |     json_variant_dump ();
    0x00017cbe add r3, sp, 0x3c4                                 |     r3 += arg_3c4h;
    0x00017cc0 mov sb, r0                                        |     sb = r0;
    0x00017cc2 mov.w r2, 0x100                                   |     r2 = 0x100;
    0x00017cc6 movs r1, 0                                        |     r1 = 0;
    0x00017cc8 mov r0, r3                                        |     r0 = r3;
    0x00017cca blx 0x5d50                                        |     fcn_00005d50 ();
    0x00017cce ldrd r2, r3, [r4, 0xb8]                           |     __asm ("ldrd r2, r3, [r4, 0xb8]");
    0x00017cd2 mov.w r1, 0x100                                   |     r1 = 0x100;
    0x00017cd6 blx 0x5ed0                                        |     fcn_00005ed0 ();
    0x00017cda ldr r1, [pc, 0x27c]                               |     
    0x00017cdc mov r2, r5                                        |     r2 = r5;
    0x00017cde strd sb, r0, [sp]                                 |     __asm ("strd sb, r0, [sp]");
    0x00017ce2 mov r3, r6                                        |     r3 = r6;
    0x00017ce4 movs r0, 1                                        |     r0 = 1;
    0x00017ce6 add r1, pc                                        |     r1 = 0x2fc44;
    0x00017ce8 blx 0x68e0                                        |     touch ();
    0x00017cec ldr.w r5, [r4, 0xc4]                              |     r5 = *((r4 + 0xc4));
    0x00017cf0 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00017cf2 beq.w 0x16e92                                     |         goto label_53;
                                                                 |     }
    0x00017cf6 mov r3, r5                                        |     r3 = r5;
    0x00017cf8 movs r6, 0                                        |     r6 = 0;
                                                                 |     do {
    0x00017cfa mov r2, r3                                        |         r2 = r3;
    0x00017cfc ldr r3, [r3, 0x10]                                |         r3 = *((r3 + 0x10));
    0x00017cfe ldr r2, [r2, 0xc]                                 |         r2 = *((r2 + 0xc));
    0x00017d00 cmp r2, 0                                         |         
    0x00017d02 it lt                                             |         
                                                                 |         if (r2 >= 0) {
    0x00017d04 addlt r6, 1                                       |             r6++;
                                                                 |         }
    0x00017d06 cmp r3, 0                                         |         
    0x00017d08 bne 0x17cfa                                       |         
                                                                 |     } while (r3 != 0);
    0x00017d0a ldr r7, [pc, 0x250]                               |     
    0x00017d0c ldr.w sb, [pc, 0x250]                             |     
    0x00017d10 ldr.w sl, [pc, 0x250]                             |     
    0x00017d14 add r7, pc                                        |     r7 = 0x2fc76;
    0x00017d16 add sb, pc                                        |     sb = 0x2fc7a;
    0x00017d18 add sl, pc                                        |     sl = 0x2fc80;
                                                                 |     do {
                                                                 | label_54:
    0x00017d1a mov r8, r5                                        |         r8 = r5;
    0x00017d1c ldr r5, [r5, 0x10]                                |         r5 = *((r5 + 0x10));
    0x00017d1e ldr.w r3, [r8, 0xc]                               |         r3 = *((r8 + 0xc));
    0x00017d22 cmp r3, 0                                         |         
                                                                 |         if (r3 < 0) {
    0x00017d24 blt 0x17d2e                                       |             goto label_185;
                                                                 |         }
    0x00017d26 cmp r5, 0                                         |         
    0x00017d28 bne 0x17d1a                                       |         
                                                                 |     } while (r5 != 0);
    0x00017d2a b.w 0x16e92                                       |     goto label_53;
                                                                 | label_185:
    0x00017d2e subs r6, 1                                        |     r6--;
    0x00017d30 ite ne                                            |     
                                                                 |     if (r6 == 1) {
    0x00017d32 movne r0, 1                                       |         r0 = 1;
                                                                 |     }
                                                                 |     if (r6 != 1) {
    0x00017d34 moveq r0, 2                                       |         r0 = 2;
                                                                 |     }
    0x00017d36 blx 0x6198                                        |     fcn_00006198 ();
    0x00017d3a ldrb.w r1, [r8, 8]                                |     r1 = *((r8 + 8));
    0x00017d3e mov r2, r0                                        |     r2 = r0;
    0x00017d40 ldr.w r3, [r8]                                    |     r3 = *(r8);
                                                                 |     if (r1 == 0) {
    0x00017d44 cbz r1, 0x17d72                                   |         goto label_186;
                                                                 |     }
    0x00017d46 ldr r0, [pc, 0x220]                               |     
    0x00017d48 add r0, pc                                        |     r0 = 0x2fcb6;
                                                                 | label_55:
    0x00017d4a ldrb.w r1, [r8, 9]                                |     r1 = *((r8 + 9));
    0x00017d4e cmp r1, 0                                         |     
    0x00017d50 ldr.w r1, [r8, 4]                                 |     r1 = *((r8 + 4));
    0x00017d54 str r0, [sp]                                      |     *(sp) = r0;
    0x00017d56 mov.w r0, 1                                       |     r0 = 1;
    0x00017d5a str r1, [sp, 8]                                   |     var_8h = r1;
    0x00017d5c ite eq                                            |     
                                                                 |     if (r1 != 0) {
    0x00017d5e moveq r1, sb                                      |         r1 = sb;
                                                                 |     }
                                                                 |     if (r1 == 0) {
    0x00017d60 movne r1, sl                                      |         r1 = sl;
                                                                 |     }
    0x00017d62 str r1, [sp, 4]                                   |     var_4h = r1;
    0x00017d64 mov r1, r7                                        |     r1 = r7;
    0x00017d66 blx 0x68e0                                        |     touch ();
    0x00017d6a cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00017d6c bne 0x17d1a                                       |         goto label_54;
                                                                 |     }
    0x00017d6e b.w 0x16e92                                       |     goto label_53;
                                                                 | label_186:
    0x00017d72 ldr r0, [pc, 0x1f8]                               |     
    0x00017d74 add r0, pc                                        |     r0 = 0x2fce6;
    0x00017d76 b 0x17d4a                                         |     goto label_55;
                                                                 | label_114:
    0x00017d78 blx 0x5cd4                                        |     r0 = gethostname_full ();
    0x00017d7c cmp r0, 5                                         |     
    0x00017d7e it le                                             |     
                                                                 |     if (r0 <= 5) {
    0x00017d80 movle r6, r5                                      |         r6 = r5;
                                                                 |         goto label_187;
                                                                 |     }
                                                                 |     if (r0 <= 5) {
                                                                 | label_187:
    0x00017d82 ble.w 0x16648                                     |         goto label_11;
                                                                 |     }
    0x00017d86 ldr r3, [r4]                                      |     r3 = *(r4);
    0x00017d88 mov r1, r5                                        |     r1 = r5;
    0x00017d8a ldr r2, [pc, 0x1e4]                               |     
    0x00017d8c movs r0, 6                                        |     r0 = 6;
    0x00017d8e movs r6, 0                                        |     r6 = 0;
    0x00017d90 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00017d92 ldr r3, [pc, 0x1e0]                               |     
    0x00017d94 add r2, pc                                        |     r2 = 0x2fd0a;
    0x00017d96 adds r2, 7                                        |     r2 += 7;
    0x00017d98 add r3, pc                                        |     r3 = 0x2fd12;
    0x00017d9a str r3, [sp, 4]                                   |     var_4h = r3;
    0x00017d9c ldr r3, [pc, 0x1d8]                               |     
    0x00017d9e add r3, pc                                        |     r3 = 0x2fd1a;
    0x00017da0 str r3, [sp]                                      |     *(sp) = r3;
    0x00017da2 movw r3, 0x319                                    |     r3 = 0x319;
    0x00017da6 blx 0x6008                                        |     fcn_00006008 ();
    0x00017daa ldr r5, [r4, 0x24]                                |     r5 = *((r4 + 0x24));
    0x00017dac b.w 0x16648                                       |     goto label_11;
                                                                 | label_168:
    0x00017db0 ldr.w r0, [r4, 0x80]                              |     r0 = *((r4 + 0x80));
    0x00017db4 mov r1, r5                                        |     r1 = r5;
    0x00017db6 blx 0x5d34                                        |     memset (r0, r1, r2);
    0x00017dba ldr r0, [r5]                                      |     r0 = *(r5);
    0x00017dbc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00017dbe beq.w 0x178c6                                     |         goto label_56;
                                                                 |     }
    0x00017dc2 ldr r1, [pc, 0x1b8]                               |     
    0x00017dc4 mov r2, r0                                        |     r2 = r0;
    0x00017dc6 movs r0, 1                                        |     r0 = 1;
    0x00017dc8 add r1, pc                                        |     r1 = 0x2fd4a;
    0x00017dca blx 0x68e0                                        |     touch ();
    0x00017dce b 0x178c4                                         |     goto label_57;
                                                                 | label_127:
    0x00017dd0 ldrd r5, r6, [r4, 0x60]                           |     __asm ("ldrd r5, r6, [r4, 0x60]");
    0x00017dd4 b.w 0x16c82                                       |     goto label_34;
                                                                 | label_120:
    0x00017dd8 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00017dda ldr.w fp, [fp]                                    |     fp = *(fp);
    0x00017dde ldr.w lr, [sb]                                    |     
    0x00017de2 cmp r3, 0                                         |     
    0x00017de4 beq.w 0x18046                                     |     
                                                                 |     while (1) {
                                                                 | label_122:
    0x00017de8 ldr r2, [sp, 0x44]                                |         r2 = *(arg_44h);
    0x00017dea ldr r1, [r2]                                      |         r1 = *(r2);
    0x00017dec ldr r2, [pc, 0x190]                               |         
    0x00017dee add r2, pc                                        |         r2 = 0x2fd72;
    0x00017df0 mov ip, r2                                        |         
    0x00017df2 b.w 0x16b7a                                       |         goto label_58;
                                                                 | label_112:
    0x00017f84 ldr r1, [pc, 0x114]                               |         
    0x00017f86 mov.w r2, 0x18e                                   |         r2 = 0x18e;
    0x00017f8a ldr r3, [pc, 0x114]                               |         
    0x00017f8c movs r0, 3                                        |         r0 = 3;
    0x00017f8e ldr r4, [sp, 0x58]                                |         r4 = *(arg_58h);
    0x00017f90 add r1, pc                                        |         r1 = 0x30030;
    0x00017f92 adds r1, 7                                        |         r1 += 7;
    0x00017f94 add r3, pc                                        |         r3 = 0x3003a;
    0x00017f96 blx 0x6920                                        |         fcn_00006920 ();
    0x00017f9a ldr r0, [r5]                                      |         r0 = *(r5);
    0x00017f9c blx 0x59e0                                        |         unit_file_state_to_string ();
    0x00017fa0 ldr r3, [sp, 0x50]                                |         r3 = *(arg_50h);
    0x00017fa2 ldr r0, [r3]                                      |         r0 = *(0x3003a);
    0x00017fa4 blx 0x59e0                                        |         unit_file_state_to_string ();
    0x00017fa8 b.w 0x1759e                                       |         goto label_59;
                                                                 | label_152:
    0x00017fac ldr r3, [pc, 0xf4]                                |         
    0x00017fae add r3, pc                                        |         r3 = 0x30056;
    0x00017fb0 b.w 0x1737e                                       |         goto label_60;
                                                                 | label_151:
    0x00017fb4 ldr r3, [pc, 0xf0]                                |         
    0x00017fb6 add r3, pc                                        |         r3 = 0x30062;
    0x00017fb8 b.w 0x17336                                       |         goto label_61;
                                                                 | label_172:
    0x00017fbc ldr r1, [pc, 0xec]                                |         
    0x00017fbe movs r0, 1                                        |         r0 = 1;
    0x00017fc0 add r1, pc                                        |         r1 = 0x30070;
    0x00017fc2 blx 0x68e0                                        |         touch ();
    0x00017fc6 b 0x1798e                                         |         goto label_62;
                                                                 | label_117:
    0x00017fc8 ldr r5, [r4, 0x24]                                |         r5 = *((r4 + 0x24));
    0x00017fca movs r6, 4                                        |         r6 = 4;
    0x00017fcc b.w 0x16648                                       |         goto label_11;
                                                                 | label_179:
    0x00017fd0 ldr r6, [pc, 0xdc]                                |         
    0x00017fd2 add r6, pc                                        |         r6 = 0x30086;
    0x00017fd4 b 0x17bf6                                         |         goto label_63;
                                                                 | label_184:
    0x00017fd6 ldr r6, [pc, 0xdc]                                |         
    0x00017fd8 add r6, pc                                        |         r6 = 0x30092;
    0x00017fda b 0x17c9e                                         |         goto label_64;
                                                                 | label_183:
    0x00017fdc ldr r5, [pc, 0xd8]                                |         
    0x00017fde add r5, pc                                        |         r5 = 0x3009a;
    0x00017fe0 b 0x17c90                                         |         goto label_65;
                                                                 | label_180:
    0x00017fe2 ldr r3, [pc, 0xd8]                                |         
    0x00017fe4 add r3, pc                                        |         r3 = 0x300a6;
    0x00017fe6 b 0x17c04                                         |         goto label_66;
                                                                 | label_173:
    0x00017fe8 ldr r3, [pc, 0xd4]                                |         
    0x00017fea add r3, pc                                        |         r3 = 0x300ae;
    0x00017fec b 0x179be                                         |         goto label_67;
                                                                 | label_175:
    0x00017fee ldr r5, [pc, 0xd4]                                |         
    0x00017ff0 add r5, pc                                        |         r5 = 0x300ba;
    0x00017ff2 b 0x17b5e                                         |         goto label_68;
                                                                 | label_174:
    0x00017ff4 ldr r6, [pc, 0xd0]                                |         
    0x00017ff6 add r6, pc                                        |         r6 = 0x300c2;
    0x00017ff8 b 0x17b50                                         |         goto label_69;
                                                                 | label_143:
    0x00017ffa add r5, sp, 0xb0                                  |         r5 += c;
    0x00017ffc ldr r0, [r4, 0x7c]                                |         r0 = *((r4 + 0x7c));
    0x00017ffe mov r1, r5                                        |         r1 = r5;
    0x00018000 str r3, [sp, 0xb0]                                |         *(c) = r3;
    0x00018002 blx 0x5d34                                        |         memset (r0, r1, r2);
    0x00018006 ldr r2, [sp, 0xb0]                                |         r2 = *(c);
                                                                 |         if (r2 != 0) {
    0x00018008 cbz r2, 0x18016                                   |             
    0x0001800a ldr r1, [pc, 0xc0]                                |             
    0x0001800c movs r0, 1                                        |             r0 = 1;
    0x0001800e add r1, pc                                        |             r1 = 0x300e0;
    0x00018010 blx 0x68e0                                        |             touch ();
    0x00018014 ldr r2, [sp, 0xb0]                                |             r2 = *(c);
                                                                 |         }
    0x00018016 mov r0, r2                                        |         r0 = r2;
    0x00018018 blx 0x59e0                                        |         unit_file_state_to_string ();
    0x0001801c b.w 0x17136                                       |         goto label_50;
                                                                 | label_165:
    0x00018020 ldr r3, [pc, 0xac]                                |         
    0x00018022 add r3, pc                                        |         r3 = 0x300f6;
    0x00018024 b.w 0x17718                                       |         goto label_70;
                                                                 | label_182:
    0x00018028 ldr r5, [pc, 0xa8]                                |         
    0x0001802a add r5, pc                                        |         r5 = 0x30102;
    0x0001802c b 0x17c90                                         |         goto label_65;
                                                                 | label_178:
    0x0001802e ldr r6, [pc, 0xa8]                                |         
    0x00018030 add r6, pc                                        |         r6 = 0x3010e;
    0x00018032 b 0x17bf6                                         |         goto label_63;
                                                                 | label_176:
    0x00018034 ldr r0, [pc, 0xa4]                                |         
    0x00018036 add r0, pc                                        |         r0 = 0x30116;
    0x00018038 blx 0x5bf8                                        |         fcn_00005bf8 ();
    0x0001803c b.w 0x16ea2                                       |         goto label_47;
                                                                 | label_177:
    0x00018040 ldr r3, [pc, 0x9c]                                |         
    0x00018042 add r3, pc                                        |         r3 = 0x30126;
    0x00018044 b 0x17bce                                         |         goto label_71;
    0x00018046 ldr r3, [pc, 0x9c]                                |         
    0x00018048 add r3, pc                                        |         r3 = 0x30132;
    0x0001804a b 0x17de8                                         |         
                                                                 |     }
                                                                 | label_167:
    0x0001804c mov.w sb, -1                                      |     sb = -1;
    0x00018050 mov sl, sb                                        |     sl = sb;
    0x00018052 b.w 0x1777a                                       |     goto label_72;
                                                                 | label_121:
    0x00018056 ldr r3, [pc, 0x90]                                |     
    0x00018058 add r3, pc                                        |     r3 = 0x30146;
    0x0001805a b.w 0x16b5e                                       |     goto label_73;
                                                                 | label_181:
    0x0001805e ldr r1, [pc, 0x8c]                                |     
    0x00018060 mov r0, r5                                        |     r0 = r5;
    0x00018062 ldr.w r2, [r4, 0xac]                              |     r2 = *((r4 + 0xac));
    0x00018064 movs r0, 0xac                                     |     r0 = 0xac;
    0x00018066 add r1, pc                                        |     r1 = 0x30158;
    0x00018068 blx 0x68e0                                        |     touch ();
    0x0001806c ldr.w r0, [r4, 0xac]                              |     r0 = *((r4 + 0xac));
    0x0001806e lsls r4, r5, 2                                    |     r4 = r5 << 2;
    0x00018070 movs r1, 3                                        |     r1 = 3;
    0x00018072 blx 0x63cc                                        |     r0 = fcn_000063cc ();
    0x00018076 mov r2, r0                                        |     r2 = r0;
    0x00018078 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001807a beq.w 0x17c60                                     |         goto label_74;
                                                                 |     }
    0x0001807e ldr r1, [pc, 0x70]                                |     
    0x00018080 mov r0, r5                                        |     r0 = r5;
    0x00018082 add r1, pc                                        |     r1 = 0x30178;
    0x00018084 blx 0x68e0                                        |     touch ();
    0x00018088 b 0x17c60                                         |     goto label_74;
                                                                 | label_124:
    0x0001808a cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x0001808c bne.w 0x1793e                                     |         goto label_75;
                                                                 |     }
    0x00018090 ldr r5, [pc, 0x60]                                |     
    0x00018092 add r5, pc                                        |     r5 = 0x3018a;
    0x00018094 b 0x1793e                                         |     goto label_75;
                                                                 | label_97:
    0x00018096 blx 0x60c0                                        |     fcn_000060c0 ();
    0x0001809a nop                                               |     
    0x0001809c add sp, 0xf0                                      |     
    0x0001809e movs r0, r0                                       |     
    0x000180a0 stm r4!, {r3, r6}                                 |     *(r4!) = r3;
                                                                 |     *((r4! + 4)) = r6;
    0x000180a2 movs r0, r0                                       |     
    0x000180a4 invalid                                           |     
                                                                 | }

[*] Function fprintf used 2 times systemctl