[*] Binary protection state of systemctl
Full RELRO Canary found NX enabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function system 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 @ 0xc940 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.0000c940 () | void fcn_0000c940 (int16_t arg_0h, int16_t arg1) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| int32_t var_1ch;
| int32_t var_1ch_2;
| int16_t var_24h;
| int16_t var_28h;
| int16_t var_2ch;
| int16_t var_30h;
| int16_t var_34h;
| int16_t var_38h;
| int16_t var_3ch;
| int16_t var_40h;
| int16_t var_44h;
| int16_t var_48h;
| int16_t var_4ch;
| int16_t var_50h;
| int16_t var_54h;
| int16_t var_5ch;
| int16_t var_60h;
| int16_t var_64h;
| int16_t var_68h;
| int16_t var_6ch;
| r0 = arg1;
0x0000c940 push {r4, lr} |
| if (r0 != 0) {
0x0000c942 cbz r0, 0xc972 |
0x0000c944 mov r4, r0 | r4 = r0;
0x0000c946 ldr r0, [r0, 4] | r0 = *((r0 + 4));
0x0000c948 blx 0x59e0 | unit_file_state_to_string ();
0x0000c94c ldr r0, [r4, 8] | r0 = *((r4 + 8));
0x0000c94e blx 0x59e0 | unit_file_state_to_string ();
0x0000c952 ldr r0, [r4, 0xc] | r0 = *((r4 + 0xc));
0x0000c954 blx 0x59e0 | unit_file_state_to_string ();
0x0000c958 ldr r0, [r4, 0x24] | r0 = *((r4 + 0x24));
0x0000c95a blx 0x59e0 | unit_file_state_to_string ();
0x0000c95e ldr r0, [r4, 0x28] | r0 = *((r4 + 0x28));
0x0000c960 blx 0x59e0 | unit_file_state_to_string ();
0x0000c964 mov r0, r4 | r0 = r4;
0x0000c966 movs r2, 0x30 | r2 = 0x30;
0x0000c968 pop.w {r4, lr} |
0x0000c96c movs r1, 0 | r1 = 0;
0x0000c96e b.w 0x5d4c | void (*0x5d4c)() ();
| }
0x0000c972 ldr r1, [pc, 0x14] |
0x0000c974 movs r2, 0x1f | r2 = 0x1f;
0x0000c976 ldr r3, [pc, 0x14] |
0x0000c978 ldr r0, [pc, 0x14] |
0x0000c97a add r1, pc | r1 = 0x19308;
0x0000c97c add r3, pc | r3 = 0x1930e;
0x0000c97e adds r1, 7 | r1 += 7;
0x0000c980 add r0, pc | r0 = 0x19314;
0x0000c982 blx 0x59a0 | fcn_000059a0 ();
0x0000c986 nop |
0x0000c988 ldr r2, [pc, 0x148] | r2 = *(0xcad4);
0x0000c98a movs r1, r0 | r1 = r0;
0x0000c98c ldr r4, [pc, 0x1a0] | r4 = *(0xcb30);
0x0000c98e movs r1, r0 | r1 = r0;
0x0000c990 ldr r2, [pc, 0x350] | r2 = *(0xcce4);
0x0000c992 movs r1, r0 | r1 = r0;
0x0000c994 ldr.w r2, [pc, 0x734] |
0x0000c996 movs r7, 0x34 | r7 = 0x34;
0x0000c998 movs r0, 1 | r0 = 1;
0x0000c99a ldr.w r3, [pc, 0x734] | r3 = *(0xd0d2);
0x0000c99e push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0000c9a2 sub sp, 0x74 |
0x0000c9a4 add r2, pc | r2 = 0x19a74;
0x0000c9a6 ldr.w r6, [pc, 0x72c] |
0x0000c9aa mov r4, r1 | r4 = r1;
0x0000c9ac add r1, sp, 0x5c | r1 += var_5ch;
0x0000c9ae ldr r3, [r2, r3] |
0x0000c9b0 add r6, pc | r6 = 0x19a8a;
0x0000c9b2 ldr r3, [r3] | r3 = *(0x19a74);
0x0000c9b4 str r3, [sp, 0x6c] | var_6ch = r3;
0x0000c9b6 mov.w r3, 0 | r3 = 0;
0x0000c9b8 lsls r0, r0, 0xc | r0 <<= 0xc;
0x0000c9ba bl 0x1ab9c | r0 = fcn_0001ab9c (r0, r1);
0x0000c9be subs r3, r0, 0 | r3 = r0 - 0;
0x0000c9c0 str r3, [sp, 0x38] | var_38h = r3;
| if (r3 < r0) {
0x0000c9c2 blt.w 0xccc0 | goto label_3;
| }
0x0000c9c4 strh r5, [r7, 0xa] | *((r7 + 0xa)) = r5;
0x0000c9c6 add r3, sp, 0x68 | r3 += var_68h;
0x0000c9c8 movs r1, 1 | r1 = 1;
0x0000c9ca mov r0, r4 | r0 = r4;
0x0000c9cc str r3, [sp, 0x3c] | var_3ch = r3;
0x0000c9ce movs r4, 0 | r4 = 0;
0x0000c9d0 ldr r7, [sp, 0x5c] | r7 = var_5ch;
0x0000c9d2 blx 0x5f9c | fcn_00005f9c ();
0x0000c9d4 invalid |
0x0000c9d8 mov r5, r0 | r5 = r0;
0x0000c9da movs r0, 3 | r0 = 3;
0x0000c9dc str r4, [sp, 0x60] | var_60h = r4;
0x0000c9de str r4, [sp, 0x64] | var_64h = r4;
0x0000c9e0 blx 0x5cec | r0 = bus_call_method_async ();
0x0000c9e4 cmp r0, r4 |
| if (r0 < r4) {
0x0000c9e6 blt.w 0xcd84 | goto label_26;
| }
0x0000c9ea ldr.w r8, [sp, 0x68] | r8 = var_68h;
0x0000c9ee cmp.w r8, 0 |
| if (r8 == 0) {
0x0000c9f2 beq.w 0xcd84 | goto label_26;
| }
| if (r5 != 0) {
0x0000c9f6 cbz r5, 0xca0e |
0x0000c9f8 ldr r3, [r5] | r3 = *(r5);
| if (r3 == 0) {
0x0000c9fa cbz r3, 0xca0e | goto label_27;
| }
0x0000c9fc mov r3, r4 | r3 = r4;
0x0000c9fe movs r2, 2 | r2 = 2;
0x0000ca00 mov r1, r8 | r1 = r8;
0x0000ca02 mov r0, r5 | r0 = r5;
0x0000ca04 blx 0x62b8 | r0 = fcn_000062b8 ();
0x0000ca08 cmp r0, 0 |
| if (r0 == 0) {
0x0000ca0a beq.w 0xcd44 | goto label_28;
| }
| }
| label_27:
0x0000ca0e movs r2, 0x30 | r2 = 0x30;
0x0000ca10 movs r1, 1 | r1 = 1;
0x0000ca12 add r0, sp, 0x60 | r0 += var_60h;
0x0000ca14 blx 0x5dd4 | fcn_00005dd4 ();
0x0000ca16 ldrd r2, r8, [lr] | __asm ("ldrd r2, r8, [lr]");
| if (r1 == 1) {
0x0000ca1a beq.w 0xcf9a | goto label_29;
| }
0x0000ca1e ldr r2, [sp, 0x60] | r2 = var_60h;
0x0000ca20 movs r3, 1 | r3 = 1;
0x0000ca22 mov r0, r7 | r0 = r7;
0x0000ca24 str r3, [sp, 0x38] | var_38h = r3;
0x0000ca26 strb r3, [r2] | *(r2) = r3;
0x0000ca28 ldr r1, [sp, 0x60] | r1 = var_60h;
0x0000ca2a str.w r8, [r1, 4] | __asm ("str.w r8, [r1, 4]");
0x0000ca2c strh r4, [r0] | *(r0) = r4;
0x0000ca2e mov.w r8, 0 | r8 = 0;
0x0000ca30 lsrs r0, r0, 0x20 | r0 >>= 0x20;
0x0000ca32 bl 0xc898 | fcn_0000c898 (r0);
0x0000ca36 add r0, sp, 0x64 | r0 += var_64h;
0x0000ca38 blx 0x5fc0 | fcn_00005fc0 ();
0x0000ca3c subs r4, r0, 0 | r4 -= var_64h;
| if (r4 < var_64h) {
0x0000ca3e blt.w 0xcd52 | goto label_30;
| }
0x0000ca40 strh r0, [r1, 0xc] | *((r1 + 0xc)) = r0;
| label_2:
0x0000ca42 ldr r4, [sp, 0x64] | r4 = var_64h;
| if (r4 == 0) {
0x0000ca44 cbz r4, 0xcaa4 | goto label_31;
| }
0x0000ca46 ldr.w r3, [pc, 0x690] |
0x0000ca4a subs r4, 4 | r4 -= 4;
0x0000ca4c movs r7, 0 | r7 = 0;
0x0000ca4e mov sl, r5 | sl = r5;
0x0000ca50 add r3, pc | r3 = 0x19b2e;
0x0000ca52 str r3, [sp, 0x40] | var_40h = r3;
0x0000ca54 add r3, sp, 0x60 | r3 += var_60h;
0x0000ca56 str r3, [sp, 0x48] | var_48h = r3;
| label_1:
0x0000ca58 ldr r3, [r4, 4]! | r3 = *((r4 += 4));
| if (r3 == 0) {
0x0000ca5c cbz r3, 0xcaa4 | goto label_31;
| }
| do {
0x0000ca5e str r7, [sp, 0x68] | var_68h = r7;
0x0000ca60 ldr r0, [r4] | r0 = *(r4);
0x0000ca62 cmp r0, 0 |
| if (r0 == 0) {
0x0000ca64 beq.w 0xce90 | goto label_32;
| }
0x0000ca68 cmp.w sl, 0 |
| if (sl != 0) {
0x0000ca6c beq 0xca88 |
0x0000ca6e ldr.w r3, [sl] | r3 = *(sl);
| if (r3 == 0) {
0x0000ca72 cbz r3, 0xca88 | goto label_33;
| }
0x0000ca74 mov r1, r0 | r1 = r0;
0x0000ca76 movs r3, 0 | r3 = 0;
0x0000ca78 movs r2, 2 | r2 = 2;
0x0000ca7a mov r0, sl | r0 = sl;
0x0000ca7c blx 0x62b8 | r0 = fcn_000062b8 ();
0x0000ca80 cmp r0, 0 |
| if (r0 == 0) {
0x0000ca82 beq.w 0xcd40 | goto label_34;
| }
0x0000ca86 ldr r0, [r4] | r0 = *(r4);
| }
| label_33:
0x0000ca88 ldr r1, [sp, 0x3c] | r1 = var_3ch;
0x0000ca8a blx 0x6510 | fcn_00006510 ();
0x0000ca8e ldr r5, [sp, 0x68] | r5 = var_68h;
0x0000ca90 cmp r5, 0 |
| if (r5 != 0) {
0x0000ca92 bne.w 0xcce2 | goto label_35;
| }
0x0000ca94 strh r6, [r4, 8] | *((r4 + 8)) = r6;
| label_0:
0x0000ca96 mov r0, r5 | r0 = r5;
0x0000ca98 blx 0x59e0 | unit_file_state_to_string ();
0x0000ca9c ldr r3, [r4, 4]! | r3 = *((r4 += 4));
0x0000caa0 cmp r3, 0 |
0x0000caa2 bne 0xca5e |
| } while (r3 != 0);
| label_31:
0x0000caa4 mov r0, r8 | r0 = r8;
0x0000caa6 ldr.w sb, [sp, 0x60] | sb = var_60h;
0x0000caaa blx 0x59e0 | unit_file_state_to_string ();
0x0000caae ldr r0, [sp, 0x64] | r0 = var_64h;
| if (r0 != 0) {
0x0000cab0 cbz r0, 0xcab6 |
0x0000cab2 blx 0x67b4 | mktime (r0);
| }
0x0000cab6 ldr.w r3, [pc, 0x624] | r3 = *(0xd0de);
0x0000caba ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000cabc ldr r0, [r3] | r0 = *(0xd0de);
0x0000cabe blx 0x67f0 | getenv (r0);
0x0000cac2 ldr r3, [sp, 0x38] | r3 = var_38h;
0x0000cac4 cmp r3, 1 |
| if (r3 <= 1) {
0x0000cac6 ble.w 0xcdc8 | goto label_36;
| }
0x0000caca cmp.w sb, 0 |
| if (sb == 0) {
0x0000cace beq.w 0xd000 | goto label_37;
| }
0x0000cad2 ldr.w r3, [pc, 0x60c] | r3 = *(0x0000d0e0);
0x0000cad6 movs r2, 0x30 | r2 = 0x30;
0x0000cad8 ldr r1, [sp, 0x38] | r1 = var_38h;
0x0000cada mov r0, sb | r0 = sb;
0x0000cadc add r3, pc | r3 += pc;
0x0000cade blx 0x5a58 | unit_name_to_type ();
| label_4:
0x0000cae2 ldr.w r3, [pc, 0x600] |
0x0000cae6 movs r4, 0 | r4 = 0;
0x0000cae8 ldr.w r2, [pc, 0x5fc] |
0x0000caec ldr.w r1, [pc, 0x5fc] |
0x0000caf0 add r3, pc | r3 = 0x19bda;
0x0000caf2 ldr.w r0, [pc, 0x5fc] |
0x0000caf6 strd r3, r4, [sp] | __asm ("strd r3, r4, [sp]");
0x0000cafa add r2, pc | r2 = 0x19be6;
0x0000cafc ldr.w r3, [pc, 0x5f4] |
0x0000cb00 add r1, pc | r1 = 0x19bf0;
0x0000cb02 add r0, pc | r0 = 0x19bf8;
0x0000cb04 add r3, pc | r3 = 0x19bfc;
0x0000cb06 blx 0x5fd8 | r0 = fcn_00005fd8 ();
0x0000cb0a mov r8, r0 | r8 = r0;
0x0000cb0c cmp r0, 0 |
| if (r0 == 0) {
0x0000cb0e beq.w 0xcfd0 | goto label_38;
| }
0x0000cb12 ldr.w r3, [pc, 0x5e4] | r3 = *(0xd0fa);
0x0000cb16 ldr.w fp, [r6, r3] | fp = *((r6 + r3));
0x0000cb1a ldr.w r1, [fp] | r1 = *(fp);
0x0000cb1e subs r1, 0 |
0x0000cb20 it ne |
| if (r1 == 0) {
0x0000cb22 movne r1, 1 | r1 = 1;
| }
0x0000cb24 blx 0x5db0 | fcn_00005db0 ();
0x0000cb28 ldr.w r3, [pc, 0x5d0] | r3 = *(0xd0fc);
0x0000cb2c ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000cb2e ldrb r3, [r3] | r3 = *(r3);
0x0000cb30 cmp r3, 0 |
| if (r3 != 0) {
0x0000cb32 bne.w 0xcf50 | goto label_39;
| }
| label_15:
0x0000cb36 ldr.w r3, [pc, 0x5c8] | r3 = *(0xd102);
0x0000cb3a ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000cb3c ldrb r3, [r3] | r3 = *(r3);
0x0000cb3e cmp r3, 0 |
| if (r3 != 0) {
0x0000cb40 bne.w 0xcf7e | goto label_40;
| }
| label_17:
0x0000cb44 ldr.w r1, [pc, 0x5bc] |
0x0000cb48 mov r0, r8 | r0 = r8;
0x0000cb4a add r1, pc | r1 = 0x19c52;
0x0000cb4c blx 0x6108 | fcn_00006108 ();
0x0000cb50 ldr r3, [sp, 0x38] | r3 = var_38h;
0x0000cb52 add.w ip, r3, r3, lsl 1 |
0x0000cb56 add.w ip, sb, ip, lsl 4 |
0x0000cb5a cmp ip, sb |
| if (ip < sb) {
0x0000cb5c bls.w 0xd054 | goto label_41;
| }
0x0000cb60 ldr.w r3, [pc, 0x5a4] |
0x0000cb64 add.w r4, sb, 0x30 | r4 = sb + 0x30;
0x0000cb68 str.w sb, [sp, 0x50] | __asm ("str.w sb, [var_50h]");
0x0000cb6c mov.w sl, 0 | sl = 0;
0x0000cb70 mov sb, ip | sb = ip;
0x0000cb72 str.w r8, [sp, 0x40] | __asm ("str.w r8, [var_40h]");
0x0000cb76 add r3, pc | r3 = 0x19c82;
0x0000cb78 str.w fp, [sp, 0x54] | __asm ("str.w fp, [var_54h]");
0x0000cb7c str r3, [sp, 0x44] | var_44h = r3;
0x0000cb7e ldr.w r3, [pc, 0x58c] |
0x0000cb82 add r3, pc | r3 = 0x19c94;
0x0000cb84 str r3, [sp, 0x4c] | var_4ch = r3;
0x0000cb86 ldr.w r3, [pc, 0x588] |
0x0000cb8a add r3, pc | r3 = 0x19ca0;
0x0000cb8c str r3, [sp, 0x48] | var_48h = r3;
| do {
0x0000cb8e ldr r8, [r4, -0x8] | r8 = *((r4 - 0x8));
0x0000cb92 mov r7, r4 | r7 = r4;
0x0000cb94 cmp.w r8, 0 |
| if (r8 != 0) {
0x0000cb98 bne.w 0xce0e | goto label_42;
| }
| label_6:
0x0000cb9c blx 0x5ac4 | r0 = table_add_cell_full ();
0x0000cba0 cmp r0, 0 |
| if (r0 == 0) {
0x0000cba2 beq.w 0xce64 | goto label_43;
| }
0x0000cba6 cmp r0, 2 |
| if (r0 == 2) {
0x0000cba8 beq.w 0xced6 | goto label_44;
| }
0x0000cbac ldr.w r6, [pc, 0x564] |
0x0000cbb0 add r6, pc | r6 = 0x19cc8;
| label_10:
0x0000cbb2 ldr r3, [r4, -0x14] | r3 = *((r4 - 0x14));
0x0000cbb6 movs r5, 1 | r5 = 1;
0x0000cbb8 cmp r3, 0 |
| if (r3 != 0) {
0x0000cbba bne.w 0xce74 | goto label_45;
| }
| label_8:
0x0000cbbe ldr.w fp, [pc, 0x558] |
0x0000cbc2 movs r5, 1 | r5 = 1;
0x0000cbc4 add fp, pc | fp = 0x19ce2;
| label_9:
0x0000cbc6 ldr r8, [r4, -0x8] | r8 = *((r4 - 0x8));
0x0000cbca ldrb r1, [r4, -0x30] | r1 = *((r4 - 0x30));
0x0000cbce cmp.w r8, 0 |
0x0000cbd2 it eq |
| if (r8 != 0) {
0x0000cbd4 moveq sl, 1 | sl = 1;
| }
0x0000cbd8 cmp r1, 0 |
| if (r1 == 0) {
0x0000cbda beq.w 0xcdf0 | goto label_46;
| }
0x0000cbde ldr r0, [r4, -0x2c] | r0 = *((r4 - 0x2c));
0x0000cbe2 cmp r0, 0 |
| if (r0 == 0) {
0x0000cbe4 beq.w 0xcec8 | goto label_47;
| }
| label_12:
0x0000cbe8 ldr.w r1, [pc, 0x530] |
0x0000cbec movs r2, 0 | r2 = 0;
0x0000cbee add r1, pc | r1 = 0x19d0e;
0x0000cbf0 blx 0x63d8 | r0 = fcn_000063d8 ();
0x0000cbf4 mov r1, r0 | r1 = r0;
0x0000cbf6 cmp r5, 0 |
| if (r5 == 0) {
0x0000cbf8 beq.w 0xce54 | goto label_48;
| }
0x0000cbfc str r0, [sp, 0x3c] | var_3ch = r0;
0x0000cbfe movs r0, 7 | r0 = 7;
0x0000cc00 blx 0x6198 | fcn_00006198 ();
0x0000cc04 ldrb r2, [r4, -0x30] | r2 = *((r4 - 0x30));
0x0000cc08 mov ip, r0 |
0x0000cc0a ldr r1, [sp, 0x3c] | r1 = var_3ch;
| label_7:
0x0000cc0c cmp r2, 0 |
| if (r2 == 0) {
0x0000cc0e beq.w 0xcf0c | goto label_49;
| }
0x0000cc12 ldr r8, [r4, -0x8] | r8 = *((r4 - 0x8));
0x0000cc16 str r1, [sp, 0x3c] | var_3ch = r1;
| label_5:
0x0000cc18 ldr r3, [sp, 0x44] | r3 = var_44h;
0x0000cc1a cmp.w r8, 0 |
0x0000cc1e ite ne |
| if (r8 == 0) {
0x0000cc20 movne r0, r8 | r0 = r8;
| }
| if (r8 != 0) {
0x0000cc22 moveq r0, r3 | r0 = r3;
| }
| label_11:
0x0000cc24 movs r3, 0x24 | r3 = 0x24;
0x0000cc26 mov r2, ip | r2 = ip;
0x0000cc28 str r3, [sp, 0x34] | var_34h = r3;
0x0000cc2a mov.w ip, 0x16 |
0x0000cc2e ldr r3, [r4, -0x10] | r3 = *((r4 - 0x10));
0x0000cc32 str.w fp, [sp, 0x28] | __asm ("str.w fp, [var_28h]");
0x0000cc36 str.w ip, [sp, 0x2c] | __asm ("str.w ip, [var_2ch]");
0x0000cc3a str r3, [sp, 0x30] | var_30h = r3;
0x0000cc3c movs r3, 0x2a | r3 = 0x2a;
0x0000cc3e str r3, [sp, 0x24] | var_24h = r3;
0x0000cc40 ldr r5, [r4, -0x14] | r5 = *((r4 - 0x14));
0x0000cc44 str r1, [sp, 8] | var_8h = r1;
0x0000cc46 movs r1, 1 | r1 = 1;
0x0000cc48 str r0, [sp, 0x10] | var_10h = r0;
0x0000cc4a strd ip, r5, [sp, 0x1c] | __asm ("strd ip, r5, [var_1ch]");
0x0000cc4e ldr r0, [sp, 0x40] | r0 = var_40h;
0x0000cc50 str r6, [sp, 0x18] | var_18h = r6;
0x0000cc52 str r6, [sp] | *(sp) = r6;
0x0000cc54 str r3, [sp, 0x14] | var_14h = r3;
0x0000cc56 str r1, [sp, 0xc] | var_ch = r1;
0x0000cc58 str r1, [sp, 4] | var_4h = r1;
0x0000cc5a blx 0x60b4 | r0 = fcn_000060b4 ();
0x0000cc5e cmp r0, 0 |
| if (r0 < 0) {
0x0000cc60 blt.w 0xcedc | goto label_50;
| }
0x0000cc64 ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x0000cc66 adds r4, 0x30 | r4 += 0x30;
0x0000cc68 blx 0x59e0 | unit_file_state_to_string ();
0x0000cc6c cmp r7, sb |
0x0000cc6e blo 0xcb8e |
| } while (r7 <= sb);
0x0000cc70 ldr.w sb, [sp, 0x50] | sb = var_50h;
0x0000cc74 ldr.w r8, [sp, 0x40] | r8 = var_40h;
0x0000cc78 ldr.w fp, [sp, 0x54] | fp = var_54h;
| label_22:
0x0000cc7c mov r0, r8 | r0 = r8;
0x0000cc7e bl 0x1cab4 | r0 = fcn_0001cab4 (r0);
0x0000cc82 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 >= r0) {
0x0000cc84 blt 0xcc92 |
0x0000cc86 ldr.w r3, [fp] | r3 = *(fp);
0x0000cc8a cmp r3, 0 |
| if (r3 != 0) {
0x0000cc8c bne.w 0xcfe6 | goto label_51;
| }
| label_21:
0x0000cc90 movs r4, 0 | r4 = 0;
| }
| label_16:
0x0000cc92 mov r0, r8 | r0 = r8;
0x0000cc94 blx 0x6270 | fcn_00006270 ();
| label_20:
0x0000cc98 cmp.w sb, 0 |
| if (sb == 0) {
0x0000cc9c beq 0xccbe | goto label_52;
| }
0x0000cc9e ldr r3, [sp, 0x38] | r3 = var_38h;
| if (r3 == 0) {
0x0000cca0 cbz r3, 0xccb8 | goto label_53;
| }
0x0000cca2 ldr r7, [sp, 0x38] | r7 = var_38h;
0x0000cca4 mov r6, sb | r6 = sb;
0x0000cca6 movs r5, 0 | r5 = 0;
| do {
0x0000cca8 mov r0, r6 | r0 = r6;
0x0000ccaa adds r5, 1 | r5++;
0x0000ccac bl 0xc940 | fcn_0000c940 (r0, r1);
0x0000ccb0 cmp r5, r7 |
0x0000ccb2 add.w r6, r6, 0x30 | r6 += 0x30;
0x0000ccb6 bne 0xcca8 |
| } while (r5 != r7);
| label_53:
0x0000ccb8 mov r0, sb | r0 = sb;
0x0000ccba blx 0x59e0 | unit_file_state_to_string ();
| label_52:
0x0000ccbe str r4, [sp, 0x38] | var_38h = r4;
| label_3:
0x0000ccc0 ldr.w r2, [pc, 0x45c] |
0x0000ccc4 ldr.w r3, [pc, 0x408] | r3 = *(0xd0d0);
0x0000ccc8 add r2, pc | r2 = 0x19dec;
0x0000ccca ldr r3, [r2, r3] | r3 = *(0x19dec);
0x0000cccc ldr r2, [r3] | r2 = *(0x19dec);
0x0000ccce ldr r3, [sp, 0x6c] | r3 = var_6ch;
0x0000ccd0 eors r2, r3 | r2 ^= r3;
0x0000ccd2 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000ccd6 bne.w 0xd08c | goto label_54;
| }
0x0000ccda ldr r0, [sp, 0x38] | r0 = var_38h;
0x0000ccdc add sp, 0x74 |
0x0000ccde pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_35:
0x0000cce2 ldr r1, [sp, 0x40] | r1 = var_40h;
0x0000cce4 mov r0, r5 | r0 = r5;
0x0000cce6 blx 0x6670 | r0 = hashmap_contains ();
0x0000ccea mov sb, r0 | sb = r0;
0x0000ccec cmp r0, 0 |
| if (r0 != 0) {
0x0000ccee bne.w 0xca96 | goto label_0;
| }
0x0000ccf2 ldr r3, [sp, 0x38] | r3 = var_38h;
0x0000ccf4 movs r2, 0x30 | r2 = 0x30;
0x0000ccf6 ldr r0, [sp, 0x48] | r0 = var_48h;
0x0000ccf8 add.w fp, r3, 1 |
0x0000ccfc mov r1, fp | r1 = fp;
0x0000ccfe blx 0x5dd4 | r0 = fcn_00005dd4 ();
0x0000cd02 cmp r0, 0 |
| if (r0 == 0) {
0x0000cd04 beq.w 0xd014 | goto label_55;
| }
0x0000cd08 ldr r3, [sp, 0x38] | r3 = var_38h;
0x0000cd0a add.w r5, r3, r3, lsl 1 | r5 = r3 + (r3 << 1);
0x0000cd0e ldr r3, [sp, 0x60] | r3 = var_60h;
0x0000cd10 lsls r5, r5, 4 | r5 <<= 4;
0x0000cd12 strb.w sb, [r3, r5] | *((r3 + r5)) = sb;
0x0000cd16 ldr r2, [sp, 0x60] | r2 = var_60h;
0x0000cd18 ldr r0, [r4] | r0 = *(r4);
0x0000cd1a add r5, r2 | r5 += r2;
0x0000cd1c str r2, [sp, 0x44] | var_44h = r2;
0x0000cd1e blx 0x68d4 | bus_parse_unit_info ();
0x0000cd22 ldr r2, [sp, 0x44] | r2 = var_44h;
0x0000cd24 str r0, [r5, 4] | *((r5 + 4)) = r0;
0x0000cd26 cmp r0, 0 |
| if (r0 == 0) {
0x0000cd28 beq.w 0xd090 | goto label_56;
| }
0x0000cd2c mov r0, sb | r0 = sb;
0x0000cd2e mov r1, r5 | r1 = r5;
0x0000cd30 bl 0xc898 | fcn_0000c898 (r0);
0x0000cd34 ldr r0, [sp, 0x68] | r0 = var_68h;
0x0000cd36 str.w fp, [sp, 0x38] | __asm ("str.w fp, [var_38h]");
0x0000cd3a blx 0x59e0 | unit_file_state_to_string ();
0x0000cd3e b 0xca58 | goto label_1;
| label_34:
0x0000cd40 ldr r5, [sp, 0x68] | r5 = var_68h;
0x0000cd42 b 0xca96 | goto label_0;
| label_28:
0x0000cd44 str r0, [sp, 0x38] | var_38h = r0;
0x0000cd46 add r0, sp, 0x64 | r0 += var_64h;
0x0000cd48 blx 0x5fc0 | fcn_00005fc0 ();
0x0000cd4c subs r4, r0, 0 | r4 -= var_64h;
| if (r4 >= var_64h) {
0x0000cd4e bge.w 0xca42 | goto label_2;
| }
| label_30:
0x0000cd52 blx 0x5cd4 | r0 = gethostname_full ();
0x0000cd56 cmp r0, 2 |
| if (r0 > 2) {
0x0000cd58 bgt.w 0xcfb0 | goto label_57;
| }
0x0000cd5c rsbs r0, r4, 0 | r0 = r4 - ;
0x0000cd5e bic r0, r0, 0x40000000 | r0 = BIT_MASK (r0, 0x40000000);
0x0000cd62 rsbs r3, r0, 0 | r3 = r0 - ;
0x0000cd64 str r3, [sp, 0x38] | var_38h = r3;
| label_19:
0x0000cd66 ldr r3, [sp, 0x38] | r3 = var_38h;
0x0000cd68 mov r0, r8 | r0 = r8;
0x0000cd6a cmp r3, 0 |
| if (r3 < 0) {
0x0000cd6c blt.w 0xcf88 | goto label_58;
| }
0x0000cd70 blx 0x59e0 | unit_file_state_to_string ();
0x0000cd74 ldr r0, [sp, 0x64] | r0 = var_64h;
| if (r0 != 0) {
0x0000cd76 cbz r0, 0xcd7c |
0x0000cd78 blx 0x67b4 | mktime (r0);
| }
0x0000cd7c mvn r3, 0x55 | r3 = ~0x55;
0x0000cd80 str r3, [sp, 0x38] | var_38h = r3;
0x0000cd82 b 0xccc0 | goto label_3;
| label_26:
0x0000cd84 ldr r1, [pc, 0x39c] |
0x0000cd86 mov.w r8, 0 | r8 = 0;
0x0000cd8a ldr r3, [pc, 0x39c] |
0x0000cd8c movs r2, 0x6a | r2 = 0x6a;
0x0000cd8e movs r0, 3 | r0 = 3;
0x0000cd90 add r1, pc | r1 = 0x19eb8;
0x0000cd92 add r3, pc | r3 = 0x19ec0;
0x0000cd94 adds r1, 7 | r1 += 7;
0x0000cd96 blx 0x6920 | fcn_00006920 ();
0x0000cd9a str r0, [sp, 0x38] | var_38h = r0;
| label_18:
0x0000cd9c mov r0, r8 | r0 = r8;
0x0000cd9e blx 0x59e0 | unit_file_state_to_string ();
0x0000cda2 ldr r0, [sp, 0x64] | r0 = var_64h;
| if (r0 != 0) {
0x0000cda4 cbz r0, 0xcdaa |
0x0000cda6 blx 0x67b4 | mktime (r0);
| }
0x0000cdaa ldr r3, [sp, 0x38] | r3 = var_38h;
0x0000cdac cmp r3, 0 |
| if (r3 < 0) {
0x0000cdae blt 0xccc0 | goto label_3;
| }
0x0000cdb0 ldr r3, [pc, 0x328] | r3 = *(0xd0dc);
0x0000cdb2 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000cdb4 ldr r0, [r3] | r0 = *(0xd0dc);
0x0000cdb6 blx 0x67f0 | getenv (r0);
0x0000cdba ldr r3, [sp, 0x38] | r3 = var_38h;
0x0000cdbc cmp r3, 1 |
0x0000cdbe it le |
| if (r3 > 1) {
0x0000cdc0 movle sb, 0 | sb = 0;
| }
| if (r3 > 1) {
0x0000cdc4 bgt.w 0xd000 | goto label_37;
| }
| label_36:
0x0000cdc8 ldr r3, [sp, 0x38] | r3 = var_38h;
0x0000cdca cmp.w sb, 0 |
0x0000cdce ite ne |
| if (sb == 0) {
0x0000cdd0 movne r3, 0 | r3 = 0;
| }
| if (sb != 0) {
0x0000cdd2 andeq r3, r3, 1 | r3 &= 1;
| }
0x0000cdd6 cmp r3, 0 |
| if (r3 == 0) {
0x0000cdd8 beq.w 0xcae2 | goto label_4;
| }
0x0000cddc ldr r1, [pc, 0x34c] |
0x0000cdde movs r2, 0x9e | r2 = 0x9e;
0x0000cde0 ldr r3, [pc, 0x34c] |
0x0000cde2 ldr r0, [pc, 0x350] |
0x0000cde4 add r1, pc | r1 = 0x19f14;
0x0000cde6 add r3, pc | r3 = 0x19f1a;
0x0000cde8 adds r1, 7 | r1 += 7;
0x0000cdea add r0, pc | r0 = 0x19f24;
0x0000cdec blx 0x59a0 | fcn_000059a0 ();
| label_46:
0x0000cdf0 cmp r5, 0 |
| if (r5 == 0) {
0x0000cdf2 beq.w 0xcf46 | goto label_59;
| }
0x0000cdf6 movs r0, 7 | r0 = 7;
0x0000cdf8 str r1, [sp, 0x3c] | var_3ch = r1;
0x0000cdfa blx 0x6198 | r0 = fcn_00006198 ();
0x0000cdfe mov ip, r0 |
| label_13:
0x0000ce00 ldr r1, [r4, -0x2c] | r1 = *((r4 - 0x2c));
0x0000ce04 cmp r1, 0 |
| if (r1 != 0) {
0x0000ce06 bne.w 0xcc18 | goto label_5;
| }
| label_14:
0x0000ce0a ldr r1, [sp, 0x4c] | r1 = var_4ch;
0x0000ce0c b 0xcc18 | goto label_5;
| label_42:
0x0000ce0e ldr r1, [pc, 0x328] |
0x0000ce10 mov r0, r8 | r0 = r8;
0x0000ce12 add r1, pc | r1 = 0x19f50;
0x0000ce14 blx 0x6670 | hashmap_contains ();
0x0000ce16 stc p3, c11, [ip], -0x20 | __asm ("stc p3, c11, [ip], -0x20");
0x0000ce1a ldr r1, [pc, 0x320] |
0x0000ce1c mov r0, r8 | r0 = r8;
0x0000ce1e add r1, pc | r1 = 0x19f60;
0x0000ce20 blx 0x6670 | r0 = hashmap_contains ();
0x0000ce24 cmp r0, 0 |
| if (r0 != 0) {
0x0000ce26 bne.w 0xcb9c | goto label_6;
| }
0x0000ce2a ldr r3, [r4, -0x14] | r3 = *((r4 - 0x14));
0x0000ce2e cmp r3, 0 |
| if (r3 != 0) {
0x0000ce30 bne 0xcece | goto label_60;
| }
0x0000ce32 ldrb r5, [r4, -0x30] | r5 = *((r4 - 0x30));
| if (r5 == 0) {
0x0000ce36 cbz r5, 0xcea4 | goto label_61;
| }
0x0000ce38 ldr r0, [r4, -0x2c] | r0 = *((r4 - 0x2c));
0x0000ce3c cmp r0, 0 |
| if (r0 == 0) {
0x0000ce3e beq 0xcebe | goto label_62;
| }
0x0000ce40 ldr.w fp, [pc, 0x2fc] |
0x0000ce44 mov r2, r3 | r2 = r3;
0x0000ce46 ldr r1, [pc, 0x2fc] |
0x0000ce48 add fp, pc | fp = 0x19f8c;
0x0000ce4a add r1, pc | r1 = 0x19f94;
0x0000ce4c mov r6, fp | r6 = fp;
0x0000ce4e blx 0x63d8 | r0 = fcn_000063d8 ();
0x0000ce52 mov r1, r0 | r1 = r0;
| label_48:
0x0000ce54 ldrb r2, [r4, -0x30] | r2 = *((r4 - 0x30));
0x0000ce58 ldr.w ip, [sp, 0x48] | ip = var_48h;
0x0000ce5c b 0xcc0c | goto label_7;
0x0000ce5e blx 0x5ac4 | r0 = table_add_cell_full ();
| if (r0 != 0) {
0x0000ce62 cbnz r0, 0xce82 | goto label_63;
| }
| label_43:
0x0000ce64 ldr r3, [r4, -0x14] | r3 = *((r4 - 0x14));
0x0000ce68 movs r5, 1 | r5 = 1;
0x0000ce6a ldr r6, [pc, 0x2dc] |
0x0000ce6c add r6, pc | r6 = 0x19fba;
0x0000ce6e cmp r3, 0 |
| if (r3 == 0) {
0x0000ce70 beq.w 0xcbbe | goto label_8;
| }
| do {
| label_45:
0x0000ce74 blx 0x5ac4 | r0 = table_add_cell_full ();
| if (r0 != 0) {
0x0000ce78 cbz r0, 0xce88 |
0x0000ce7a ldr.w fp, [pc, 0x2d0] |
0x0000ce7e add fp, pc | fp = 0x19fd0;
0x0000ce80 b 0xcbc6 | goto label_9;
| label_63:
0x0000ce82 ldr r6, [pc, 0x2cc] |
0x0000ce84 add r6, pc | r6 = 0x19fda;
0x0000ce86 b 0xcbb2 | goto label_10;
| }
0x0000ce88 ldr.w fp, [pc, 0x2c8] |
0x0000ce8c add fp, pc | fp = 0x19fe4;
0x0000ce8e b 0xcbc6 | goto label_9;
| label_32:
0x0000ce90 ldr r1, [pc, 0x2c4] |
0x0000ce92 movs r2, 0xed | r2 = 0xed;
0x0000ce94 ldr r3, [pc, 0x2c4] |
0x0000ce96 ldr r0, [pc, 0x2c8] |
0x0000ce98 add r1, pc | r1 = 0x19ff4;
0x0000ce9a add r3, pc | r3 = 0x19ffa;
0x0000ce9c adds r1, 7 | r1 += 7;
0x0000ce9e add r0, pc | r0 = 0x1a004;
0x0000cea0 blx 0x59a0 | fcn_000059a0 ();
| label_61:
0x0000cea4 ldr r1, [r4, -0x2c] | r1 = *((r4 - 0x2c));
| if (r1 == 0) {
0x0000cea8 cbz r1, 0xcf14 | goto label_64;
| }
0x0000ceaa ldr.w fp, [pc, 0x2b8] |
0x0000ceae mov r0, r8 | r0 = r8;
0x0000ceb0 ldr.w ip, [pc, 0x2b4] |
0x0000ceb4 str r5, [sp, 0x3c] | var_3ch = r5;
0x0000ceb6 add fp, pc | fp = 0x1a020;
0x0000ceb8 add ip, pc | ip = 0x1a024;
0x0000ceba mov r6, fp | r6 = fp;
0x0000cebc b 0xcc24 | goto label_11;
| label_62:
0x0000cebe ldr.w fp, [pc, 0x2ac] |
0x0000cec2 mov r5, r0 | r5 = r0;
0x0000cec4 add fp, pc | fp = 0x1a036;
0x0000cec6 mov r6, fp | r6 = fp;
| label_47:
0x0000cec8 ldr r0, [pc, 0x2a4] |
0x0000ceca add r0, pc | r0 = 0x1a03e;
0x0000cecc b 0xcbe8 | goto label_12;
| label_60:
0x0000cece ldr r6, [pc, 0x2a4] |
0x0000ced0 mov r5, r0 | r5 = r0;
0x0000ced2 add r6, pc | r6 = 0x1a04c;
0x0000ced4 b 0xce74 |
| } while (1);
| label_44:
0x0000ced6 ldr r6, [pc, 0x2a0] |
0x0000ced8 add r6, pc | r6 = 0x1a056;
0x0000ceda b 0xcbb2 | goto label_10;
| label_50:
0x0000cedc mov r6, r0 | r6 = r0;
0x0000cede ldr.w sb, [sp, 0x50] | sb = var_50h;
0x0000cee2 blx 0x5cd4 | r0 = gethostname_full ();
0x0000cee6 cmp r0, 2 |
0x0000cee8 ldr.w r8, [sp, 0x40] | r8 = var_40h;
0x0000ceec it le |
| if (r0 <= 2) {
0x0000ceee rsble r4, r6, 0 | __asm ("rsble r4, r6, 0");
| }
0x0000cef0 ldr r5, [sp, 0x3c] | r5 = var_3ch;
0x0000cef2 itt le |
| if (r0 <= 2) {
0x0000cef4 bicle r4, r4, 0x40000000 | __asm ("bicle r4, r4, 0x40000000");
| }
| if (r0 <= 2) {
0x0000cef8 rsbs r4, r4, 0 | r4 -= ;
| }
0x0000cefa bgt 0xcf26 |
| while (1) {
0x0000cefc cmp r4, 0 |
0x0000cefe mov r0, r5 | r0 = r5;
0x0000cf00 it ge |
| if (r4 < 0) {
0x0000cf02 mvnge r4, 0x55 | r4 = ~0x55;
| }
0x0000cf06 blx 0x59e0 | unit_file_state_to_string ();
0x0000cf08 stcl p6, c14, [ip, -0x308]! | __asm ("stcl p6, c14, [ip, -0x308]!");
| label_49:
0x0000cf0c ldr r8, [r4, -0x8] | r8 = *((r4 - 0x8));
0x0000cf10 str r1, [sp, 0x3c] | var_3ch = r1;
0x0000cf12 b 0xce00 | goto label_13;
| label_64:
0x0000cf14 ldr.w fp, [pc, 0x264] |
0x0000cf18 ldr.w ip, [pc, 0x264] |
0x0000cf1c str r1, [sp, 0x3c] | var_3ch = r1;
0x0000cf1e add fp, pc | fp = 0x1a09e;
0x0000cf20 add ip, pc | ip = 0x1a0a4;
0x0000cf22 mov r6, fp | r6 = fp;
0x0000cf24 b 0xce0a | goto label_14;
0x0000cf26 ldr r3, [pc, 0x25c] |
0x0000cf28 mov r1, r6 | r1 = r6;
0x0000cf2a ldr r2, [pc, 0x25c] |
0x0000cf2c movs r0, 3 | r0 = 3;
0x0000cf2e add r3, pc | r3 = 0x1a0b8;
0x0000cf30 str r3, [sp, 4] | var_4h = r3;
0x0000cf32 add r2, pc | r2 = 0x1a0c0;
0x0000cf34 ldr r3, [pc, 0x254] |
0x0000cf36 adds r2, 7 | r2 += 7;
0x0000cf38 add r3, pc | r3 = 0x1a0c8;
0x0000cf3a str r3, [sp] | *(sp) = r3;
0x0000cf3c movs r3, 0xd2 | r3 = 0xd2;
0x0000cf3e blx 0x6008 | r0 = fcn_00006008 ();
0x0000cf42 mov r4, r0 | r4 = r0;
0x0000cf44 b 0xcefc |
| }
| label_59:
0x0000cf46 ldr.w ip, [pc, 0x248] |
0x0000cf4a str r5, [sp, 0x3c] | var_3ch = r5;
0x0000cf4c add ip, pc | ip = 0x1a0e2;
0x0000cf4e b 0xce00 | goto label_13;
| label_39:
0x0000cf50 mov r1, r4 | r1 = r4;
0x0000cf52 mov.w r2, -1 | r2 = -1;
0x0000cf56 mov r0, r8 | r0 = r8;
0x0000cf58 blx 0x6300 | r0 = fcn_00006300 ();
0x0000cf5c subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 >= r0) {
0x0000cf5e bge.w 0xcb36 | goto label_15;
| }
0x0000cf62 blx 0x5cd4 | r0 = gethostname_full ();
0x0000cf66 cmp r0, 2 |
0x0000cf68 ittt le |
| if (r0 <= 2) {
0x0000cf6a rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 <= 2) {
0x0000cf6c bicle r4, r4, 0x40000000 | __asm ("bicle r4, r4, 0x40000000");
| }
| if (r0 <= 2) {
0x0000cf70 rsbs r4, r4, 0 | r4 -= ;
| }
| if (r0 > 2) {
0x0000cf72 bgt 0xd06c | goto label_65;
| }
| label_24:
0x0000cf74 cmp r4, 0 |
0x0000cf76 it ge |
| if (r4 < 0) {
0x0000cf78 mvnge r4, 0x55 | r4 = ~0x55;
| }
0x0000cf7c b 0xcc92 | goto label_16;
| label_40:
0x0000cf7e movs r1, 0 | r1 = 0;
0x0000cf80 mov r0, r8 | r0 = r8;
0x0000cf82 blx 0x6324 | fcn_00006324 ();
0x0000cf86 b 0xcb44 | goto label_17;
| label_58:
0x0000cf88 blx 0x59e0 | unit_file_state_to_string ();
0x0000cf8c ldr r0, [sp, 0x64] | r0 = var_64h;
0x0000cf8e cmp r0, 0 |
| if (r0 == 0) {
0x0000cf90 beq.w 0xccc0 | goto label_3;
| }
0x0000cf94 blx 0x67b4 | mktime (r0);
0x0000cf98 b 0xccc0 | goto label_3;
| label_29:
0x0000cf9a ldr r1, [pc, 0x1f8] |
0x0000cf9c movs r2, 0x6e | r2 = 0x6e;
0x0000cf9e ldr r3, [pc, 0x1f8] |
0x0000cfa0 movs r0, 3 | r0 = 3;
0x0000cfa2 add r1, pc | r1 = 0x1a13c;
0x0000cfa4 add r3, pc | r3 = 0x1a142;
0x0000cfa6 adds r1, 7 | r1 += 7;
0x0000cfa8 blx 0x6920 | fcn_00006920 ();
0x0000cfac str r0, [sp, 0x38] | var_38h = r0;
0x0000cfae b 0xcd9c | goto label_18;
| label_57:
0x0000cfb0 ldr r2, [pc, 0x1e8] |
0x0000cfb2 mov r1, r4 | r1 = r4;
0x0000cfb4 ldr r0, [pc, 0x1e8] |
0x0000cfb6 ldr r3, [pc, 0x1ec] |
0x0000cfb8 add r2, pc | r2 = 0x1a158;
0x0000cfba add r0, pc | r0 = 0x1a15e;
0x0000cfbc adds r2, 7 | r2 += 7;
0x0000cfbe add r3, pc | r3 = 0x1a168;
0x0000cfc0 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0000cfc4 movs r3, 0x79 | r3 = 0x79;
0x0000cfc6 movs r0, 3 | r0 = 3;
0x0000cfc8 blx 0x6008 | fcn_00006008 ();
0x0000cfcc str r0, [sp, 0x38] | var_38h = r0;
0x0000cfce b 0xcd66 | goto label_19;
| label_38:
0x0000cfd0 ldr r1, [pc, 0x1d4] |
0x0000cfd2 movs r2, 0xa2 | r2 = 0xa2;
0x0000cfd4 ldr r3, [pc, 0x1d4] |
0x0000cfd6 movs r0, 3 | r0 = 3;
0x0000cfd8 add r1, pc | r1 = 0x1a184;
0x0000cfda add r3, pc | r3 = 0x1a18a;
0x0000cfdc adds r1, 7 | r1 += 7;
0x0000cfde blx 0x6920 | r0 = fcn_00006920 ();
0x0000cfe2 mov r4, r0 | r4 = r0;
0x0000cfe4 b 0xcc98 | goto label_20;
| label_51:
0x0000cfe6 movs r0, 0xa | r0 = 0xa;
0x0000cfe8 blx 0x5d1c | get_process_comm ();
0x0000cfec cmp.w sl, 0 |
| if (sl != 0) {
0x0000cff0 bne 0xd05a | goto label_66;
| }
| label_23:
0x0000cff2 ldr r1, [pc, 0x1bc] |
0x0000cff4 movs r0, 1 | r0 = 1;
0x0000cff6 ldr r2, [sp, 0x38] | r2 = var_38h;
0x0000cff8 add r1, pc | r1 = 0x1a1ae;
0x0000cffa blx 0x68e0 | touch ();
0x0000cffe b 0xcc90 | goto label_21;
| label_37:
0x0000d000 ldr r1, [pc, 0x1b0] |
0x0000d002 movs r2, 0x34 | r2 = 0x34;
0x0000d004 ldr r3, [pc, 0x1b0] |
0x0000d006 ldr r0, [pc, 0x1b4] |
0x0000d008 add r1, pc | r1 = 0x1a1c0;
0x0000d00a add r3, pc | r3 = 0x1a1c6;
0x0000d00c adds r1, 7 | r1 += 7;
0x0000d00e add r0, pc | r0 = 0x1a1d0;
0x0000d010 blx 0x59a0 | fcn_000059a0 ();
| label_55:
0x0000d014 ldr r5, [sp, 0x60] | r5 = var_60h;
| if (r5 == 0) {
0x0000d016 cbz r5, 0xd038 | goto label_67;
| }
0x0000d018 ldr r3, [sp, 0x38] | r3 = var_38h;
0x0000d01a mov r4, r5 | r4 = r5;
0x0000d01c ldr r7, [sp, 0x38] | r7 = var_38h;
| if (r3 == 0) {
0x0000d01e cbz r3, 0xd032 | goto label_68;
| }
| do {
0x0000d020 mov r0, r4 | r0 = r4;
0x0000d022 add.w sb, sb, 1 | sb++;
0x0000d026 bl 0xc940 | fcn_0000c940 (r0, r1);
0x0000d02a cmp sb, r7 |
0x0000d02c add.w r4, r4, 0x30 | r4 += 0x30;
0x0000d030 bne 0xd020 |
| } while (sb != r7);
| label_68:
0x0000d032 mov r0, r5 | r0 = r5;
0x0000d034 blx 0x59e0 | unit_file_state_to_string ();
| label_67:
0x0000d038 ldr r1, [pc, 0x184] |
0x0000d03a movs r2, 0x87 | r2 = 0x87;
0x0000d03c ldr r3, [pc, 0x184] |
0x0000d03e movs r0, 3 | r0 = 3;
0x0000d040 add r1, pc | r1 = 0x1a204;
0x0000d042 add r3, pc | r3 = 0x1a20a;
0x0000d044 adds r1, 7 | r1 += 7;
0x0000d046 blx 0x6920 | fcn_00006920 ();
0x0000d04a str r0, [sp, 0x38] | var_38h = r0;
| label_25:
0x0000d04c ldr r0, [sp, 0x68] | r0 = var_68h;
0x0000d04e blx 0x59e0 | unit_file_state_to_string ();
0x0000d052 b 0xcd9c | goto label_18;
| label_41:
0x0000d054 mov.w sl, 0 | sl = 0;
0x0000d058 b 0xcc7c | goto label_22;
| label_66:
0x0000d05a blx 0x648c | r0 = fcn_0000648c ();
0x0000d05e cmp r0, 0 |
| if (r0 == 0) {
0x0000d060 beq 0xcff2 | goto label_23;
| }
0x0000d062 ldr r0, [pc, 0x164] |
0x0000d064 add r0, pc | r0 = 0x1a232;
0x0000d066 blx 0x5bf8 | fcn_00005bf8 ();
0x0000d06a b 0xcff2 | goto label_23;
| label_65:
0x0000d06c ldr r3, [pc, 0x15c] |
0x0000d06e mov r1, r4 | r1 = r4;
0x0000d070 ldr r2, [pc, 0x15c] |
0x0000d072 movs r0, 3 | r0 = 3;
0x0000d074 add r3, pc | r3 = 0x1a244;
0x0000d076 str r3, [sp, 4] | var_4h = r3;
0x0000d078 add r2, pc | r2 = 0x1a24c;
0x0000d07a ldr r3, [pc, 0x158] |
0x0000d07c adds r2, 7 | r2 += 7;
0x0000d07e add r3, pc | r3 = 0x1a258;
0x0000d080 str r3, [sp] | *(sp) = r3;
0x0000d082 movs r3, 0xa9 | r3 = 0xa9;
0x0000d084 blx 0x6008 | fcn_00006008 ();
0x0000d086 vsubhn.i16 d20, q0, q2 | __asm ("vsubhn.i16 d20, q0, q2");
0x0000d08a b 0xcf74 | goto label_24;
| label_54:
0x0000d08c blx 0x60c0 | fcn_000060c0 ();
| if (r2 == 0) {
| label_56:
0x0000d090 cbz r2, 0xd0b4 | goto label_69;
| }
0x0000d092 ldr r3, [sp, 0x38] | r3 = var_38h;
| if (r3 == 0) {
0x0000d094 cbz r3, 0xd0ae | goto label_70;
| }
0x0000d096 mov r4, r2 | r4 = r2;
0x0000d098 mov r5, r2 | r5 = r2;
| do {
0x0000d09a mov r0, r4 | r0 = r4;
0x0000d09c add.w sb, sb, 1 | sb++;
0x0000d0a0 bl 0xc940 | fcn_0000c940 (r0, r1);
0x0000d0a4 ldr r3, [sp, 0x38] | r3 = var_38h;
0x0000d0a6 adds r4, 0x30 | r4 += 0x30;
0x0000d0a8 cmp sb, r3 |
0x0000d0aa bne 0xd09a |
| } while (sb != r3);
0x0000d0ac mov r2, r5 | r2 = r5;
| label_70:
0x0000d0ae mov r0, r2 | r0 = r2;
0x0000d0b0 blx 0x59e0 | unit_file_state_to_string ();
| label_69:
0x0000d0b4 ldr r1, [pc, 0x120] |
0x0000d0b6 movs r2, 0x8e | r2 = 0x8e;
0x0000d0b8 ldr r3, [pc, 0x120] |
0x0000d0ba movs r0, 3 | r0 = 3;
0x0000d0bc add r1, pc | r1 = 0x1a298;
0x0000d0be add r3, pc | r3 = 0x1a29e;
0x0000d0c0 adds r1, 7 | r1 += 7;
0x0000d0c2 blx 0x6920 | fcn_00006920 ();
0x0000d0c6 str r0, [sp, 0x38] | var_38h = r0;
0x0000d0c8 b 0xd04c | goto label_25;
| }
; 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 @ 0xf628 */
| #include <stdint.h>
|
; (fcn) fcn.0000f628 () | void fcn_0000f628 (int16_t arg_0h, int16_t arg1, int16_t arg2) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_20h;
| int16_t var_30h;
| int16_t var_34h;
| int32_t var_38h;
| int32_t var_38h_2;
| int16_t var_40h;
| int16_t var_48h;
| int16_t var_4ch;
| int16_t var_50h;
| int16_t var_54h;
| int16_t var_58h;
| int16_t var_5ch;
| int16_t var_60h;
| int16_t var_64h;
| int16_t var_6ch;
| int16_t var_70h;
| int16_t var_74h;
| int16_t var_78h;
| int16_t var_7ch;
| int16_t var_80h;
| int16_t var_84h;
| int16_t var_88h;
| int32_t var_88h_2;
| int16_t var_90h;
| int16_t var_98h;
| int16_t var_a0h;
| int16_t var_b0h;
| int32_t var_0h_2;
| int32_t var_8h_2;
| int32_t var_8h_3;
| int16_t var_c0h;
| int16_t var_c8h;
| int16_t var_d4h;
| r0 = arg1;
| r1 = arg2;
0x0000f628 push {r3, r4, r5, lr} |
| if (r0 != 0) {
0x0000f62a cbz r0, 0xf680 |
| if (r1 == 0) {
0x0000f62c cbz r1, 0xf696 | goto label_13;
| }
0x0000f62e mov r2, r0 | r2 = r0;
0x0000f630 ldrd r3, r4, [r1, 8] | __asm ("ldrd r3, r4, [r1, 8]");
0x0000f632 adds r4, 2 | r4 += 2;
0x0000f634 ldrd r0, r1, [r1] | __asm ("ldrd r0, r1, [r1]");
0x0000f638 adds.w lr, r3, -1 | lr = r3 + -1;
0x0000f63c adc ip, r4, -1 | __asm ("adc ip, r4, -1");
0x0000f640 cmn.w lr, 2 |
0x0000f644 adcs ip, ip, 0 | __asm ("adcs ip, ip, 0");
0x0000f646 lsrs r0, r0, 0x10 | r0 >>= 0x10;
| if (r0 < r0) {
0x0000f648 bhs 0xf678 |
0x0000f64a ldr r5, [r2] | r5 = *(r2);
0x0000f64c adds r3, r3, r5 | r3 += r5;
0x0000f64e ldr r5, [r2, 4] | r5 = *((r2 + 4));
0x0000f650 adc.w r4, r4, r5 | __asm ("adc.w r4, r4, r5");
0x0000f654 ldr r5, [r2, 8] | r5 = *((r2 + 8));
0x0000f656 ldr r2, [r2, 0xc] | r2 = *((r2 + 0xc));
0x0000f658 subs r3, r3, r5 | r3 -= r5;
0x0000f65a sbc.w r4, r4, r2 | __asm ("sbc.w r4, r4, r2");
0x0000f65e adds.w ip, r0, -1 |
0x0000f662 adc r2, r1, -1 | __asm ("adc r2, r1, -1");
0x0000f666 cmn.w ip, 2 |
0x0000f66a sbcs r2, r2, -1 | __asm ("sbcs r2, r2, -1");
| if (ip >= 2) {
0x0000f66e bhs 0xf67a | goto label_14;
| }
0x0000f670 cmp r3, r0 |
0x0000f672 sbcs.w r2, r4, r1 | __asm ("sbcs.w r2, r4, r1");
| if (r3 <= r0) {
0x0000f676 blo 0xf67a | goto label_14;
| }
| }
0x0000f678 pop {r3, r4, r5, pc} |
| label_14:
0x0000f67a mov r0, r3 | r0 = r3;
0x0000f67c mov r1, r4 | r1 = r4;
0x0000f67e pop {r3, r4, r5, pc} |
| }
0x0000f680 ldr r1, [pc, 0x28] |
0x0000f682 mov.w r2, 0x29c | r2 = 0x29c;
0x0000f686 ldr r3, [pc, 0x28] |
0x0000f688 ldr r0, [pc, 0x28] |
0x0000f68a add r1, pc | r1 = 0x1ed3a;
0x0000f68c add r3, pc | r3 = 0x1ed42;
0x0000f68e adds r1, 7 | r1 += 7;
0x0000f690 add r0, pc | r0 = 0x1ed48;
0x0000f692 blx 0x59a0 | fcn_000059a0 ();
| label_13:
0x0000f696 ldr r1, [pc, 0x20] |
0x0000f698 movw r2, 0x29d | r2 = 0x29d;
0x0000f69c ldr r3, [pc, 0x1c] |
0x0000f69e ldr r0, [pc, 0x20] |
0x0000f6a0 add r1, pc | r1 = 0x1ed5e;
0x0000f6a2 add r3, pc | r3 = 0x1ed62;
0x0000f6a4 adds r1, 7 | r1 += 7;
0x0000f6a6 add r0, pc | r0 = 0x1ed6c;
0x0000f6a8 blx 0x59a0 | fcn_000059a0 ();
0x0000f6ac movs r2, 0x42 | r2 = 0x42;
0x0000f6ae movs r1, r0 | r1 = r0;
0x0000f6b0 cmp r0, 0x60 |
0x0000f6b2 movs r1, r0 | r1 = r0;
0x0000f6b4 movs r6, 0x88 | r6 = 0x88;
0x0000f6b6 movs r1, r0 | r1 = r0;
0x0000f6b8 movs r2, 0x2c | r2 = 0x2c;
0x0000f6ba movs r1, r0 | r1 = r0;
0x0000f6bc cmp r0, 0x4a |
0x0000f6be movs r1, r0 | r1 = r0;
0x0000f6c0 movs r6, 0x76 | r6 = 0x76;
0x0000f6c2 movs r1, r0 | r1 = r0;
0x0000f6c4 ldr.w r2, [pc, 0x708] |
0x0000f6c8 ldr.w r3, [pc, 0x708] | r3 = *(0xfdd4);
0x0000f6cc push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0000f6d0 movs r5, 0 | r5 = 0;
0x0000f6d2 add r2, pc | r2 = 0x1f4a6;
0x0000f6d4 vpush {d8, d9} | __asm ("vpush {d8, d9}");
0x0000f6d8 sub sp, 0xdc |
0x0000f6da mov r7, r0 | r7 = r0;
0x0000f6dc ldr r3, [r2, r3] |
0x0000f6de mov r6, r1 | r6 = r1;
0x0000f6e0 ldr.w fp, [pc, 0x6f4] |
0x0000f6e4 movs r0, 1 | r0 = 1;
0x0000f6e6 add r1, sp, 0x80 | r1 += var_80h;
0x0000f6e8 ldr r3, [r3] | r3 = *(0x1f4a6);
0x0000f6ea str r3, [sp, 0xd4] | var_d4h = r3;
0x0000f6ec mov.w r3, 0 | r3 = 0;
0x0000f6f0 strd r5, r5, [sp, 0x6c] | __asm ("strd r5, r5, [var_6ch]");
0x0000f6f4 strd r5, r5, [sp, 0x74] | __asm ("strd r5, r5, [var_78h]");
0x0000f6f6 strb r5, [r3, r4] | *((r3 + r4)) = r5;
0x0000f6f8 add fp, pc | fp = 0x1f4d4;
0x0000f6fa str r5, [sp, 0x7c] | var_7ch = r5;
0x0000f6fc bl 0x1ab9c | r0 = fcn_0001ab9c (r0, r1);
0x0000f700 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0000f702 blt.w 0xf928 | goto label_15;
| }
0x0000f706 ldr.w r3, [pc, 0x6d4] | r3 = *(0xfdde);
0x0000f70a ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x0000f70e ldr r0, [r3] | r0 = *(0xfdde);
0x0000f710 blx 0x67f0 | getenv (r0);
0x0000f714 movs r1, 1 | r1 = 1;
0x0000f716 mov r0, r6 | r0 = r6;
0x0000f718 ldr r4, [sp, 0x80] | r4 = var_80h;
0x0000f71a blx 0x5f9c | fcn_00005f9c ();
0x0000f71e ldr.w r2, [pc, 0x6c0] |
0x0000f722 mov r1, r0 | r1 = r0;
0x0000f724 add r3, sp, 0x74 | r3 += var_74h;
0x0000f726 mov r0, r4 | r0 = r4;
0x0000f728 str r5, [sp] | *(sp) = r5;
0x0000f72a add r2, pc | r2 = 0x1f510;
0x0000f72c bl 0x1c234 | r0 = fcn_0001c234 (r0, r1, r2, r3, r4, r5, r6);
0x0000f730 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0000f732 blt.w 0xf928 | goto label_15;
| }
0x0000f736 cmp r7, 1 |
0x0000f738 ldr r1, [sp, 0x74] | r1 = var_74h;
| if (r7 != 1) {
0x0000f73a beq 0xf742 |
0x0000f73c cmp r1, 0 |
| if (r1 == 0) {
0x0000f73e beq.w 0xf9b0 | goto label_16;
| }
| }
0x0000f742 add r2, sp, 0x70 | r2 += var_70h;
0x0000f744 ldr r0, [sp, 0x80] | r0 = var_80h;
0x0000f746 str r2, [sp] | *(sp) = r2;
0x0000f748 add r3, sp, 0x6c | r3 += var_6ch;
0x0000f74a add r2, sp, 0x7c | r2 += var_7ch;
0x0000f74c bl 0xe1dc | r0 = fcn_0000e1dc (r0, r1, r2, r3, r4);
0x0000f750 subs.w sb, r0, 0 | sb = r0 - 0;
| if (sb < r0) {
0x0000f754 blt.w 0xf982 | goto label_17;
| }
0x0000f758 add r3, sp, 0xa0 | r3 += var_a0h;
0x0000f75a mov r0, r3 | r0 = r3;
0x0000f75c str r3, [sp, 0x5c] | var_5ch = r3;
0x0000f75e blx 0x5e1c | fcn_00005e1c ();
0x0000f762 ldr.w sl, [sp, 0x7c] | sl = var_7ch;
0x0000f766 movs r3, 0x2c | r3 = 0x2c;
0x0000f768 mla r3, r3, sb, sl | __asm ("mla r3, r3, sb, sl");
0x0000f76c cmp sl, r3 |
| if (sl >= r3) {
0x0000f76e bhs.w 0xf9b0 | goto label_16;
| }
0x0000f770 strh r7, [r3, 8] | *((r3 + 8)) = r7;
0x0000f772 ldr.w r2, [pc, 0x670] |
0x0000f776 mov r7, sl | r7 = sl;
0x0000f778 vmov.i32 d9, 0 | __asm ("vmov.i32 d9, 0");
0x0000f77c add r6, sp, 0xb0 | r6 += var_b0h;
0x0000f77e str.w sl, [sp, 0x60] | __asm ("str.w sl, [var_60h]");
0x0000f782 add r2, pc | r2 = 0x1f56c;
0x0000f784 str r3, [sp, 0x58] | var_58h = r3;
0x0000f786 str r2, [sp, 0x50] | var_50h = r2;
0x0000f788 ldr.w r2, [pc, 0x65c] |
0x0000f78c str.w fp, [sp, 0x64] | __asm ("str.w fp, [var_64h]");
0x0000f790 add r2, pc | r2 = 0x1f57c;
0x0000f792 str r2, [sp, 0x48] | var_48h = r2;
0x0000f794 movs r2, 0 | r2 = 0;
0x0000f796 str r2, [sp, 0x4c] | var_4ch = r2;
| do {
0x0000f798 movs r5, 0 | r5 = 0;
0x0000f79a vstr d9, [sp, 0x88] | __asm ("vstr d9, [sp, 0x88]");
0x0000f79e str r5, [sp, 0x84] | var_84h = r5;
0x0000f7a0 ldr r0, [r7, 4] | r0 = *((r7 + 4));
0x0000f7a2 ldr r1, [sp, 0x50] | r1 = var_50h;
0x0000f7a4 strd r5, r5, [r6] | __asm ("strd r5, r5, [r6]");
0x0000f7a8 strd r5, r5, [r6, 8] | __asm ("strd r5, r5, [var_8h_2]");
0x0000f7ac blx 0x5d68 | r0 = fcn_00005d68 ();
0x0000f7b0 cmp r0, 0 |
| if (r0 != 0) {
0x0000f7b2 beq.w 0xf8c8 |
0x0000f7b6 ldr r1, [r7, 0x1c] | r1 = *((r7 + 0x1c));
0x0000f7b8 add r2, sp, 0x84 | r2 += var_84h;
0x0000f7ba ldr r0, [sp, 0x80] | r0 = var_80h;
0x0000f7bc bl 0xe0c4 | r0 = fcn_0000e0c4 (r0, r1);
0x0000f7c0 cmp r0, 0 |
| if (r0 < 0) {
0x0000f7c2 blt.w 0xfd6e | goto label_18;
| }
0x0000f7c6 vmov.i32 d8, 0 | __asm ("vmov.i32 d8, 0");
0x0000f7ca ldr.w r8, [sp, 0x80] | r8 = var_80h;
0x0000f7ce ldr r2, [r7, 0x1c] | r2 = *((r7 + 0x1c));
0x0000f7d0 str r5, [sp, 0x98] | var_98h = r5;
0x0000f7d2 vstr d8, [sp, 0x90] | __asm ("vstr d8, [sp, 0x90]");
0x0000f7d6 cmp.w r8, 0 |
| if (r8 == 0) {
0x0000f7da beq.w 0xfc1c | goto label_19;
| }
0x0000f7de cmp r2, 0 |
| if (r2 == 0) {
0x0000f7e0 beq.w 0xfc32 | goto label_20;
| }
0x0000f7e4 ldr.w r3, [pc, 0x604] |
0x0000f7e8 mov.w fp, 0x74 |
0x0000f7ea lsrs r4, r6, 0xd | r4 = r6 >> 0xd;
0x0000f7ec ldr.w sl, [pc, 0x600] |
0x0000f7f0 add.w sb, sp, 0x90 | sb += var_90h;
0x0000f7f4 mov r0, r8 | r0 = r8;
0x0000f7f6 str.w fp, [sp, 8] | __asm ("str.w fp, [var_8h]");
0x0000f7fa add r3, pc | r3 = 0x1f5ea;
0x0000f7fc str.w sb, [sp, 4] | __asm ("str.w sb, [var_4h]");
0x0000f800 str r3, [sp] | *(sp) = r3;
0x0000f802 add sl, pc | sl = 0x1f5f6;
0x0000f804 add r3, sp, 0xc8 | r3 += var_c8h;
0x0000f806 mov r1, sl | r1 = sl;
0x0000f808 str r3, [sp, 0xc] | var_ch = r3;
0x0000f80a add r4, sp, 0xc0 | r4 += var_c0h;
0x0000f80c ldr r3, [sp, 0x48] | r3 = var_48h;
0x0000f80e str r2, [sp, 0x54] | var_54h = r2;
0x0000f810 blx 0x65b8 | r0 = fcn_000065b8 ();
0x0000f814 subs r1, r0, 0 | r1 = r0 - 0;
0x0000f816 ldr r2, [sp, 0x54] | r2 = var_54h;
| if (r1 < r0) {
0x0000f818 blt.w 0xfb2c | goto label_21;
| }
0x0000f81c ldr.w r3, [pc, 0x5d4] |
0x0000f820 mov r0, r8 | r0 = r8;
0x0000f822 mov r1, sl | r1 = sl;
0x0000f824 strd fp, r4, [sp, 8] | __asm ("strd fp, r4, [var_8h]");
0x0000f828 str.w sb, [sp, 4] | __asm ("str.w sb, [var_4h]");
0x0000f82c add r3, pc | r3 = 0x1f624;
0x0000f82e str r3, [sp] | *(sp) = r3;
0x0000f830 ldr r3, [sp, 0x48] | r3 = var_48h;
0x0000f832 blx 0x65b8 | r0 = fcn_000065b8 ();
0x0000f836 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x0000f83a blt.w 0xfba8 | goto label_22;
| }
0x0000f83e ldm.w r4, {r0, r1, r2, r3} | r0 = *(r4);
| r1 = *((r4 + 4));
| r2 = *((r4 + 8));
| r3 = *((r4 + 12));
0x0000f842 stm.w r6, {r0, r1, r2, r3} | *(r6) = r0;
| *((r6 + 4)) = r1;
| *((r6 + 8)) = r2;
| *((r6 + 12)) = r3;
0x0000f844 movs r7, r1 | r7 = r1;
0x0000f846 mov r0, sb | r0 = sb;
0x0000f848 blx 0x5f0c | fcn_00005f0c ();
0x0000f84c ldr r0, [sp, 0x80] | r0 = var_80h;
0x0000f84e ldr r2, [r7, 0x1c] | r2 = *((r7 + 0x1c));
0x0000f850 str r5, [sp, 0xc8] | var_c8h = r5;
0x0000f852 vstr d8, [sp, 0xc0] | __asm ("vstr d8, [sp, 0xc0]");
0x0000f856 cmp r0, 0 |
| if (r0 == 0) {
0x0000f858 beq.w 0xfcbc | goto label_23;
| }
0x0000f85a strh r0, [r6, 0x10] | *((r6 + 0x10)) = r0;
0x0000f85c cmp r2, 0 |
| if (r2 == 0) {
0x0000f85e beq.w 0xfd06 | goto label_24;
| }
0x0000f862 ldr.w r3, [pc, 0x594] |
0x0000f866 mov r1, sl | r1 = sl;
0x0000f868 str.w fp, [sp, 8] | __asm ("str.w fp, [var_8h]");
0x0000f86c str r4, [sp, 4] | var_4h = r4;
0x0000f86e add r3, pc | r3 = 0x1f66c;
0x0000f870 str r3, [sp] | *(sp) = r3;
0x0000f872 add r3, sp, 0x88 | r3 += var_88h;
0x0000f874 str r3, [sp, 0xc] | var_ch = r3;
0x0000f876 ldr r3, [sp, 0x48] | r3 = var_48h;
0x0000f878 blx 0x65b8 | r0 = fcn_000065b8 ();
0x0000f87c subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x0000f87e blt.w 0xfb74 | goto label_25;
| }
| label_4:
0x0000f882 mov r0, r4 | r0 = r4;
0x0000f884 blx 0x5f0c | fcn_00005f0c ();
0x0000f888 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x0000f88a movs r2, 0x20 | r2 = 0x20;
0x0000f88c add r0, sp, 0x78 | r0 += var_78h;
0x0000f88e adds r4, r3, 1 | r4 = r3 + 1;
0x0000f890 mov r1, r4 | r1 = r4;
0x0000f892 lsl.w r8, r3, 5 | r8 = r3 << 5;
0x0000f896 blx 0x6078 | r0 = fcn_00006078 ();
0x0000f89a cmp r0, 0 |
| if (r0 == 0) {
0x0000f89c beq.w 0xfd94 | goto label_26;
| }
0x0000f8a0 ldr r0, [sp, 0x5c] | r0 = var_5ch;
0x0000f8a2 mov r1, r6 | r1 = r6;
0x0000f8a4 str r4, [sp, 0x4c] | var_4ch = r4;
0x0000f8a6 movs r4, 0 | r4 = 0;
0x0000f8a8 bl 0xf628 | fcn_0000f628 (r0, r1, r2);
0x0000f8ac ldr r3, [sp, 0x78] | r3 = var_78h;
0x0000f8ae vld1.32 {d16}, [r7] | __asm ("vld1.32 {d16}, [r7]");
0x0000f8b2 ldr r2, [sp, 0x84] | r2 = var_84h;
0x0000f8b4 add r3, r8 | r3 += r8;
0x0000f8b6 strd r0, r1, [r3, 8] | __asm ("strd r0, r1, [r3, 8]");
0x0000f8ba ldrd r0, r1, [sp, 0x88] | __asm ("ldrd r0, r1, [var_88h]");
0x0000f8be str r2, [r3, 0x18] | *((r3 + 0x18)) = r2;
0x0000f8c0 vstr d16, [r3] | __asm ("vstr d16, [r3]");
0x0000f8c4 strd r0, r1, [r3, 0x10] | __asm ("strd r0, r1, [r3, 0x10]");
| }
0x0000f8c8 ldr r3, [sp, 0x58] | r3 = var_58h;
0x0000f8ca adds r7, 0x2c | r7 += 0x2c;
0x0000f8cc cmp r7, r3 |
0x0000f8ce blo.w 0xf798 |
| } while (r7 <= r3);
0x0000f8d2 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x0000f8d4 ldr.w fp, [sp, 0x64] | fp = var_64h;
0x0000f8d8 ldr r0, [sp, 0x78] | r0 = var_78h;
0x0000f8da cmp r3, 1 |
0x0000f8dc str r3, [sp, 0x50] | var_50h = r3;
| if (r3 > 1) {
0x0000f8de ble 0xf8f6 |
0x0000f8e0 cmp r0, 0 |
| if (r0 == 0) {
0x0000f8e2 beq.w 0xfdb8 | goto label_27;
| }
0x0000f8e6 ldr.w r3, [pc, 0x514] | r3 = *(0x0000fdfc);
0x0000f8ea movs r2, 0x20 | r2 = 0x20;
0x0000f8ec ldr r1, [sp, 0x4c] | r1 = var_4ch;
0x0000f8ee add r3, pc | r3 += pc;
0x0000f8f0 blx 0x5a58 | unit_name_to_type ();
0x0000f8f4 ldr r0, [sp, 0x78] | r0 = var_78h;
| }
0x0000f8f6 ldr r2, [sp, 0x4c] | r2 = var_4ch;
0x0000f8f8 clz r3, r0 | r3 &= r0;
0x0000f8fc lsrs r3, r3, 5 | r3 >>= 5;
0x0000f8fe mov r5, r0 | r5 = r0;
0x0000f900 cmp r2, 0 |
0x0000f902 it eq |
| if (r2 != 0) {
0x0000f904 moveq r3, 0 | r3 = 0;
| }
0x0000f906 cmp r3, 0 |
| if (r3 == 0) {
0x0000f908 beq.w 0xfdb0 | goto label_28;
| }
0x0000f90c ldr.w r1, [pc, 0x4f0] |
0x0000f910 movw r2, 0x25d | r2 = 0x25d;
0x0000f914 ldr.w r3, [pc, 0x4ec] |
0x0000f916 adds r4, 0xec | r4 += 0xec;
0x0000f918 ldr.w r0, [pc, 0x4ec] |
0x0000f91c add r1, pc | r1 = 0x1f720;
0x0000f91e add r3, pc | r3 = 0x1f726;
0x0000f920 adds r1, 7 | r1 += 7;
0x0000f922 add r0, pc | r0 = 0x1f72e;
0x0000f924 blx 0x59a0 | fcn_000059a0 ();
| label_15:
0x0000f928 ldr r0, [sp, 0x78] | r0 = var_78h;
0x0000f92a blx 0x59e0 | unit_file_state_to_string ();
0x0000f92c invalid |
0x0000f930 movs r3, 0 | r3 = 0;
0x0000f932 str r3, [sp, 0x78] | var_78h = r3;
| if (r0 != 0) {
0x0000f934 cbz r0, 0xf93c |
0x0000f936 blx 0x67b4 | mktime (r0);
0x0000f93a str r0, [sp, 0x74] | var_74h = r0;
| }
0x0000f93c movs r5, 0 | r5 = 0;
0x0000f93e b 0xf944 |
| while (r0 != 0) {
0x0000f940 blx 0x62ac | fcn_000062ac ();
| label_0:
0x0000f944 movs r2, 0 | r2 = 0;
0x0000f946 movs r1, 1 | r1 = 1;
0x0000f948 mov r0, r5 | r0 = r5;
0x0000f94a blx 0x5994 | fcn_00005994 ();
0x0000f94c invalid |
0x0000f950 cmp r0, 0 |
0x0000f952 bne 0xf940 |
| }
0x0000f954 mov r1, r0 | r1 = r0;
0x0000f956 mov r0, r5 | r0 = r5;
0x0000f958 blx 0x60e4 | fcn_000060e4 ();
0x0000f95c ldr.w r2, [pc, 0x4ac] |
0x0000f960 ldr.w r3, [pc, 0x470] | r3 = *(0xfdd4);
0x0000f962 adds r4, 0x70 | r4 += 0x70;
0x0000f964 add r2, pc | r2 = 0x1f774;
0x0000f966 ldr r3, [r2, r3] | r3 = *(0x1f774);
0x0000f968 ldr r2, [r3] | r2 = *(0x1f774);
0x0000f96a ldr r3, [sp, 0xd4] | r3 = var_d4h;
0x0000f96c eors r2, r3 | r2 ^= r3;
0x0000f96e mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000f972 bne.w 0xfdcc | goto label_29;
| }
0x0000f976 mov r0, r4 | r0 = r4;
0x0000f978 add sp, 0xdc |
0x0000f97a vpop {d8, d9} | __asm ("vpop {d8, d9}");
0x0000f97e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_17:
0x0000f982 ldr.w sl, [sp, 0x7c] | sl = var_7ch;
0x0000f986 ldrd r5, r6, [sp, 0x6c] | __asm ("ldrd r5, r6, [var_6ch]");
0x0000f988 ldrsb r3, [r3, r0] | r3 = *((r3 + r0));
| label_1:
0x0000f98a mov r0, sl | r0 = sl;
0x0000f98c blx 0x59e0 | unit_file_state_to_string ();
0x0000f990 ldr r0, [sp, 0x78] | r0 = var_78h;
0x0000f992 blx 0x59e0 | unit_file_state_to_string ();
0x0000f996 ldr r0, [sp, 0x74] | r0 = var_74h;
0x0000f998 movs r3, 0 | r3 = 0;
0x0000f99a str r3, [sp, 0x78] | var_78h = r3;
| if (r0 != 0) {
0x0000f99c cbz r0, 0xf9a4 |
0x0000f99e blx 0x67b4 | mktime (r0);
0x0000f9a2 str r0, [sp, 0x74] | var_74h = r0;
| }
| if (r6 != 0) {
0x0000f9a4 cbz r6, 0xf9ac |
0x0000f9a6 mov r0, r6 | r0 = r6;
0x0000f9a8 blx 0x67b4 | mktime (r0);
| }
0x0000f9ac mov r4, sb | r4 = sb;
0x0000f9ae b 0xf944 | goto label_0;
| label_16:
0x0000f9b0 ldr r5, [sp, 0x78] | r5 = var_78h;
0x0000f9b2 mov.w r8, 0 | r8 = 0;
0x0000f9b4 lsrs r0, r0, 0x20 | r0 >>= 0x20;
0x0000f9b6 str.w r8, [sp, 0x50] | __asm ("str.w r8, [var_50h]");
| label_11:
0x0000f9ba ldr.w r3, [pc, 0x454] |
0x0000f9be movs r6, 0 | r6 = 0;
0x0000f9c0 ldr.w r2, [pc, 0x450] |
0x0000f9c4 ldr.w r1, [pc, 0x450] |
0x0000f9c8 add r3, pc | r3 = 0x1f7de;
0x0000f9ca ldr.w r0, [pc, 0x450] |
0x0000f9ce str r3, [sp, 4] | var_4h = r3;
0x0000f9d0 add r2, pc | r2 = 0x1f7e8;
0x0000f9d2 ldr.w r3, [pc, 0x44c] |
0x0000f9d6 add r1, pc | r1 = 0x1f7f2;
0x0000f9d8 add r0, pc | r0 = 0x1f7fa;
0x0000f9da str r6, [sp, 8] | var_8h = r6;
0x0000f9dc add r3, pc | r3 = 0x1f802;
0x0000f9de str r3, [sp] | *(sp) = r3;
0x0000f9e0 ldr.w r3, [pc, 0x440] |
0x0000f9e4 add r3, pc | r3 = 0x1f80c;
0x0000f9e6 blx 0x5fd8 | r0 = fcn_00005fd8 ();
0x0000f9ea mov sl, r0 | sl = r0;
0x0000f9ec cmp r0, 0 |
| if (r0 == 0) {
0x0000f9ee beq.w 0xfd1c | goto label_30;
| }
0x0000f9f2 ldr.w r3, [pc, 0x434] | r3 = *(0xfe2a);
0x0000f9f6 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x0000f9fa ldr r1, [r3] | r1 = *(0xfe2a);
0x0000f9fc str r3, [sp, 0x58] | var_58h = r3;
0x0000f9fe subs r1, 0 |
0x0000fa00 it ne |
| if (r1 == 0) {
0x0000fa02 movne r1, 1 | r1 = 1;
| }
0x0000fa04 blx 0x5db0 | fcn_00005db0 ();
0x0000fa08 ldr.w r3, [pc, 0x420] | r3 = *(0xfe2c);
0x0000fa0a adds r4, 0x20 | r4 += 0x20;
0x0000fa0c ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x0000fa10 ldrb r3, [r3] | r3 = *(r3);
0x0000fa12 cmp r3, 0 |
| if (r3 != 0) {
0x0000fa14 bne.w 0xfc48 | goto label_31;
| }
0x0000fa16 strh r0, [r3, 8] | *((r3 + 8)) = r0;
| label_6:
0x0000fa18 ldr r3, [sp, 0x50] | r3 = var_50h;
0x0000fa1a mov r0, sl | r0 = sl;
0x0000fa1c ldr.w r1, [pc, 0x410] |
0x0000fa20 add.w r3, r5, r3, lsl 5 | r3 = r5 + (r3 << 5);
0x0000fa24 add r1, pc | r1 = 0x1f858;
0x0000fa26 mov r6, r3 | r6 = r3;
0x0000fa28 blx 0x6108 | fcn_00006108 ();
0x0000fa2c cmp r5, r6 |
| if (r5 >= r6) {
0x0000fa2e bhs.w 0xfc5c | goto label_32;
| }
0x0000fa32 ldr.w r2, [pc, 0x400] |
0x0000fa36 mov sb, r6 | sb = r6;
0x0000fa38 str.w r8, [sp, 0x4c] | __asm ("str.w r8, [var_4ch]");
0x0000fa3c str r4, [sp, 0x54] | var_54h = r4;
0x0000fa3e add r2, pc | r2 = 0x1f878;
0x0000fa40 str.w fp, [sp, 0x5c] | __asm ("str.w fp, [var_5ch]");
0x0000fa44 str r2, [sp, 0x48] | var_48h = r2;
0x0000fa46 ldr r2, [pc, 0x3f0] |
0x0000fa48 add r2, pc | r2 = 0x1f886;
0x0000fa4a mov r8, r2 | r8 = r2;
0x0000fa4c b 0xfaa8 |
| while (r0 != 0) {
0x0000fa4e ldrd r2, r3, [r5, 8] | __asm ("ldrd r2, r3, [r5, 8]");
0x0000fa52 mov.w lr, 1 | lr = 1;
0x0000fa56 vldr d16, [r5, 0x10] | __asm ("vldr d16, [r5, 0x10]");
0x0000fa5a mov.w ip, 9 |
0x0000fa5e movs r1, 7 | r1 = 7;
0x0000fa60 mov.w fp, 0x24 |
0x0000fa64 mov r0, sl | r0 = sl;
0x0000fa66 str.w fp, [sp, 0x40] | __asm ("str.w fp, [var_40h]");
0x0000fa6a str r7, [sp, 0x34] | var_34h = r7;
0x0000fa6c str r1, [sp, 0x10] | var_10h = r1;
0x0000fa6e strd lr, r6, [sp, 0x38] | __asm ("strd lr, r6, [var_38h]");
0x0000fa72 str.w lr, [sp, 0x30] | __asm ("str.w lr, [var_30h]");
0x0000fa76 vstr d16, [sp, 0x28] | __asm ("vstr d16, [sp, 0x28]");
0x0000fa7a vstr d16, [sp, 0x18] | __asm ("vstr d16, [sp, 0x18]");
0x0000fa7e str.w ip, [sp, 0x20] | __asm ("str.w ip, [var_20h]");
0x0000fa82 str.w ip, [sp] | __asm ("str.w ip, [sp]");
0x0000fa86 strd r2, r3, [sp, 8] | __asm ("strd r2, r3, [var_8h]");
0x0000fa8a blx 0x60b4 | r0 = fcn_000060b4 ();
0x0000fa8e cmp r0, 0 |
| if (r0 < 0) {
0x0000fa90 blt.w 0xfcd2 | goto label_33;
| }
0x0000fa94 mov r0, r6 | r0 = r6;
0x0000fa96 adds r5, 0x20 | r5 += 0x20;
0x0000fa98 blx 0x59e0 | unit_file_state_to_string ();
0x0000fa9c mov r0, r4 | r0 = r4;
0x0000fa9e blx 0x59e0 | unit_file_state_to_string ();
0x0000faa2 cmp sb, r5 |
| if (sb < r5) {
0x0000faa4 bls.w 0xfc52 | goto label_34;
| }
0x0000faa8 ldrd r4, r7, [r5] | __asm ("ldrd r4, r7, [r5]");
| if (r4 != 0) {
0x0000faac cbz r4, 0xfac4 |
0x0000faae mov r2, r7 | r2 = r7;
0x0000fab0 ldr r1, [sp, 0x48] | r1 = var_48h;
0x0000fab2 mov r0, r4 | r0 = r4;
0x0000fab4 movs r3, 0 | r3 = 0;
0x0000fab6 blx 0x63d8 | r0 = fcn_000063d8 ();
0x0000faba mov r7, r0 | r7 = r0;
0x0000fabc cmp r0, 0 |
| if (r0 == 0) {
0x0000fabe beq.w 0xfd38 | goto label_35;
| }
0x0000fac2 mov r4, r0 | r4 = r0;
| }
0x0000fac4 movs r3, 0 | r3 = 0;
0x0000fac6 ldr r0, [r5, 0x18] | r0 = *((r5 + 0x18));
0x0000fac8 mov r2, r3 | r2 = r3;
0x0000faca mov r1, r8 | r1 = r8;
0x0000facc blx 0x5b3c | r0 = bus_log_connect_error ();
0x0000fad0 mov r6, r0 | r6 = r0;
0x0000fad2 cmp r0, 0 |
0x0000fad4 bne 0xfa4e |
| }
0x0000fad6 ldr r1, [pc, 0x364] |
0x0000fad8 movw r2, 0x277 | r2 = 0x277;
0x0000fadc ldr r3, [pc, 0x360] |
0x0000fade movs r0, 3 | r0 = 3;
0x0000fae0 mov sb, r4 | sb = r4;
0x0000fae2 ldr.w r8, [sp, 0x4c] | r8 = var_4ch;
0x0000fae6 add r1, pc | r1 = 0x1f928;
0x0000fae8 ldr r4, [sp, 0x54] | r4 = var_54h;
0x0000faea adds r1, 7 | r1 += 7;
0x0000faec add r3, pc | r3 = 0x1f930;
0x0000faee blx 0x6920 | fcn_00006920 ();
| label_8:
0x0000faf2 mov r0, r6 | r0 = r6;
0x0000faf4 blx 0x59e0 | unit_file_state_to_string ();
0x0000faf8 mov r0, sb | r0 = sb;
0x0000fafa blx 0x59e0 | unit_file_state_to_string ();
| label_7:
0x0000fafe mov r0, sl | r0 = sl;
0x0000fb00 mov sb, r4 | sb = r4;
0x0000fb02 blx 0x6270 | fcn_00006270 ();
0x0000fb06 ldr.w sl, [sp, 0x7c] | sl = var_7ch;
| label_2:
0x0000fb0a ldr r4, [sp, 0x78] | r4 = var_78h;
0x0000fb0c ldrd r5, r6, [sp, 0x6c] | __asm ("ldrd r5, r6, [var_6ch]");
0x0000fb10 add.w r3, r4, r8 | r3 = r4 + r8;
0x0000fb14 cmp r4, r3 |
| if (r4 >= r3) {
0x0000fb16 bhs.w 0xf98a | goto label_1;
| }
| do {
0x0000fb1a ldr r0, [r4, 0x18] | r0 = *((r4 + 0x18));
0x0000fb1c adds r4, 0x20 | r4 += 0x20;
0x0000fb1e blx 0x67b4 | mktime (r0);
0x0000fb22 ldr r3, [sp, 0x78] | r3 = var_78h;
0x0000fb24 add r3, r8 | r3 += r8;
0x0000fb26 cmp r4, r3 |
0x0000fb28 blo 0xfb1a |
| } while (r4 <= r3);
0x0000fb2a b 0xf98a | goto label_1;
| label_21:
0x0000fb2c str r1, [sp, 0x48] | var_48h = r1;
0x0000fb2e mov r4, sb | r4 = sb;
0x0000fb30 blx 0x5cd4 | gethostname_full ();
0x0000fb34 ldr r1, [sp, 0x48] | r1 = var_48h;
0x0000fb36 cmp r0, 2 |
0x0000fb38 ldr.w sl, [sp, 0x60] | sl = var_60h;
0x0000fb3c ittt le |
| if (r0 <= 2) {
0x0000fb3e rsble sb, r1, 0 | __asm ("rsble sb, r1, 0");
| }
| if (r0 <= 2) {
0x0000fb42 bicle sb, sb, 0x40000000 | __asm ("bicle sb, sb, 0x40000000");
| }
| if (r0 <= 2) {
0x0000fb46 rsb.w sb, sb, 0 | sb -= ;
| }
| if (r0 > 2) {
0x0000fb4a bgt 0xfbf2 | goto label_36;
| }
| label_5:
0x0000fb4c ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x0000fb4e cmp.w sb, 0 |
0x0000fb52 mov r0, r4 | r0 = r4;
0x0000fb54 lsl.w r8, r3, 5 | r8 = r3 << 5;
| if (sb < 0) {
0x0000fb58 blt 0xfb6e | goto label_37;
| }
0x0000fb5a mvn sb, 0x55 | sb = ~0x55;
0x0000fb5e blx 0x5f0c | fcn_00005f0c ();
| label_3:
0x0000fb62 ldr r0, [sp, 0x84] | r0 = var_84h;
0x0000fb64 cmp r0, 0 |
| if (r0 == 0) {
0x0000fb66 beq 0xfb0a | goto label_2;
| }
0x0000fb68 blx 0x67b4 | mktime (r0);
0x0000fb6c b 0xfb0a | goto label_2;
| label_37:
0x0000fb6e blx 0x5f0c | fcn_00005f0c ();
0x0000fb72 b 0xfb62 | goto label_3;
| label_25:
0x0000fb74 blx 0x5cd4 | r0 = gethostname_full ();
0x0000fb78 cmp r0, 2 |
| if (r0 <= 2) {
0x0000fb7a ble.w 0xf882 | goto label_4;
| }
0x0000fb7e mov r1, r5 | r1 = r5;
0x0000fb80 mov r0, r4 | r0 = r4;
0x0000fb82 blx 0x663c | fcn_0000663c ();
0x0000fb86 ldr r3, [pc, 0x2bc] |
0x0000fb88 mov r1, r5 | r1 = r5;
0x0000fb8a ldr r2, [pc, 0x2bc] |
0x0000fb8c str r0, [sp, 8] | var_8h = r0;
0x0000fb8e movs r0, 3 | r0 = 3;
0x0000fb90 add r3, pc | r3 = 0x1f9da;
0x0000fb92 str r3, [sp, 4] | var_4h = r3;
0x0000fb94 add r2, pc | r2 = 0x1f9e2;
0x0000fb96 ldr r3, [pc, 0x2b4] |
0x0000fb98 adds r2, 7 | r2 += 7;
0x0000fb9a add r3, pc | r3 = 0x1f9ec;
0x0000fb9c str r3, [sp] | *(sp) = r3;
0x0000fb9e movw r3, 0x23a | r3 = 0x23a;
0x0000fba2 blx 0x6008 | fcn_00006008 ();
0x0000fba6 b 0xf882 | goto label_4;
| label_22:
0x0000fba8 blx 0x5cd4 | r0 = gethostname_full ();
0x0000fbac cmp r0, 2 |
0x0000fbae mov r4, sb | r4 = sb;
0x0000fbb0 it le |
| if (r0 <= 2) {
0x0000fbb2 rsble sb, r8, 0 | __asm ("rsble sb, r8, 0");
| }
0x0000fbb6 ldr.w sl, [sp, 0x60] | sl = var_60h;
0x0000fbba itt le |
| if (r0 <= 2) {
0x0000fbbc bicle sb, sb, 0x40000000 | __asm ("bicle sb, sb, 0x40000000");
| }
| if (r0 > 2) {
0x0000fbc0 rsb.w sb, sb, 0 | sb -= ;
| goto label_38;
| }
| if (r0 <= 2) {
| label_38:
0x0000fbc4 ble 0xfb4c | goto label_5;
| }
0x0000fbc6 mov r1, r8 | r1 = r8;
0x0000fbc8 mov r0, r4 | r0 = r4;
0x0000fbca blx 0x663c | fcn_0000663c ();
0x0000fbce ldr r3, [pc, 0x280] |
0x0000fbd0 mov r1, r8 | r1 = r8;
0x0000fbd2 ldr r2, [pc, 0x280] |
0x0000fbd4 str r0, [sp, 8] | var_8h = r0;
0x0000fbd6 movs r0, 3 | r0 = 3;
0x0000fbd8 add r3, pc | r3 = 0x1fa2e;
0x0000fbda str r3, [sp, 4] | var_4h = r3;
0x0000fbdc add r2, pc | r2 = 0x1fa36;
0x0000fbde ldr r3, [pc, 0x278] |
0x0000fbe0 adds r2, 7 | r2 += 7;
0x0000fbe2 add r3, pc | r3 = 0x1fa40;
0x0000fbe4 str r3, [sp] | *(sp) = r3;
0x0000fbe6 movw r3, 0x21e | r3 = 0x21e;
0x0000fbea blx 0x6008 | r0 = fcn_00006008 ();
0x0000fbee mov sb, r0 | sb = r0;
0x0000fbf0 b 0xfb4c | goto label_5;
| label_36:
0x0000fbf2 mov r0, r4 | r0 = r4;
0x0000fbf4 blx 0x663c | fcn_0000663c ();
0x0000fbf8 ldr r3, [pc, 0x260] |
0x0000fbfa ldr r2, [pc, 0x264] |
0x0000fbfc str r0, [sp, 8] | var_8h = r0;
0x0000fbfe movs r0, 3 | r0 = 3;
0x0000fc00 add r3, pc | r3 = 0x1fa60;
0x0000fc02 ldr r1, [sp, 0x48] | r1 = var_48h;
0x0000fc04 str r3, [sp, 4] | var_4h = r3;
0x0000fc06 add r2, pc | r2 = 0x1fa6c;
0x0000fc08 ldr r3, [pc, 0x258] |
0x0000fc0a adds r2, 7 | r2 += 7;
0x0000fc0c add r3, pc | r3 = 0x1fa74;
0x0000fc0e str r3, [sp] | *(sp) = r3;
0x0000fc10 movw r3, 0x212 | r3 = 0x212;
0x0000fc14 blx 0x6008 | fcn_00006008 ();
0x0000fc16 ldrd r4, r6, [r8, 0x204]! | __asm ("ldrd r4, r6, [r8, 0x204]!");
0x0000fc1a b 0xfb4c | goto label_5;
| label_19:
0x0000fc1c ldr r1, [pc, 0x248] |
0x0000fc1e mov.w r2, 0x204 | r2 = 0x204;
0x0000fc22 ldr r3, [pc, 0x248] |
0x0000fc24 ldr r0, [pc, 0x248] |
0x0000fc26 add r1, pc | r1 = 0x1fa92;
0x0000fc28 add r3, pc | r3 = 0x1fa9a;
0x0000fc2a adds r1, 7 | r1 += 7;
0x0000fc2c add r0, pc | r0 = 0x1faa0;
0x0000fc2e blx 0x59a0 | fcn_000059a0 ();
| label_20:
0x0000fc32 ldr r1, [pc, 0x240] |
0x0000fc34 movw r2, 0x205 | r2 = 0x205;
0x0000fc36 movs r2, 5 | r2 = 5;
0x0000fc38 ldr r3, [pc, 0x23c] |
0x0000fc3a ldr r0, [pc, 0x240] |
0x0000fc3c add r1, pc | r1 = 0x1fab6;
0x0000fc3e add r3, pc | r3 = 0x1faba;
0x0000fc40 adds r1, 7 | r1 += 7;
0x0000fc42 add r0, pc | r0 = 0x1fac4;
0x0000fc44 blx 0x59a0 | fcn_000059a0 ();
| label_31:
0x0000fc48 mov r1, r6 | r1 = r6;
0x0000fc4a mov r0, sl | r0 = sl;
0x0000fc4c blx 0x6324 | fcn_00006324 ();
0x0000fc50 b 0xfa18 | goto label_6;
| label_34:
0x0000fc52 ldr.w r8, [sp, 0x4c] | r8 = var_4ch;
0x0000fc56 ldr r4, [sp, 0x54] | r4 = var_54h;
0x0000fc58 ldr.w fp, [sp, 0x5c] | fp = var_5ch;
| label_32:
0x0000fc5c ldr r3, [sp, 0x50] | r3 = var_50h;
0x0000fc5e cmp r3, 0 |
| if (r3 == 0) {
0x0000fc60 beq 0xfd58 | goto label_39;
| }
0x0000fc62 blx 0x5ac4 | r0 = table_add_cell_full ();
0x0000fc66 cmp r0, 0 |
| if (r0 == 0) {
0x0000fc68 beq.w 0xfd7c | goto label_40;
| }
0x0000fc6c ldr r5, [pc, 0x210] |
0x0000fc6e add r5, pc | r5 = 0x1faf2;
| label_10:
0x0000fc70 blx 0x5ac4 | r0 = table_add_cell_full ();
0x0000fc74 cmp r0, 0 |
| if (r0 == 0) {
| label_12:
0x0000fc76 beq.w 0xfd82 | goto label_41;
| }
0x0000fc7a ldr r6, [pc, 0x208] |
0x0000fc7c add r6, pc | r6 = 0x1fb06;
| label_9:
0x0000fc7e mov r0, sl | r0 = sl;
0x0000fc80 bl 0x1cab4 | r0 = fcn_0001cab4 (r0);
0x0000fc84 cmp r0, 0 |
| if (r0 < 0) {
0x0000fc86 blt.w 0xfafe | goto label_7;
| }
0x0000fc8a ldr r3, [sp, 0x58] | r3 = var_58h;
0x0000fc8c ldr r3, [r3] | r3 = *(r3);
0x0000fc8e cmp r3, 0 |
| if (r3 == 0) {
0x0000fc90 beq.w 0xfafe | goto label_7;
| }
0x0000fc94 ldr r1, [pc, 0x1f0] |
0x0000fc96 mov r2, r5 | r2 = r5;
0x0000fc98 ldr r3, [sp, 0x50] | r3 = var_50h;
0x0000fc9a movs r0, 1 | r0 = 1;
0x0000fc9c str r6, [sp] | *(sp) = r6;
0x0000fc9e add r1, pc | r1 = 0x1fb2a;
0x0000fca0 blx 0x68e0 | touch ();
0x0000fca4 ldr r3, [pc, 0x1e4] | r3 = *(0xfe8c);
0x0000fca6 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x0000fcaa ldrb r3, [r3] | r3 = *(r3);
0x0000fcac cmp r3, 0 |
| if (r3 != 0) {
0x0000fcae bne.w 0xfafe | goto label_7;
| }
0x0000fcb2 ldr r0, [pc, 0x1dc] |
0x0000fcb4 add r0, pc | r0 = 0x1fb4a;
0x0000fcb6 blx 0x5bf8 | fcn_00005bf8 ();
0x0000fcba b 0xfafe | goto label_7;
| label_23:
0x0000fcbc ldr r1, [pc, 0x1d4] |
0x0000fcbe mov.w r2, 0x22c | r2 = 0x22c;
0x0000fcc2 ldr r3, [pc, 0x1d4] |
0x0000fcc4 ldr r0, [pc, 0x1d4] |
0x0000fcc6 add r1, pc | r1 = 0x1fb5e;
0x0000fcc8 add r3, pc | r3 = 0x1fb66;
0x0000fcca adds r1, 7 | r1 += 7;
0x0000fccc add r0, pc | r0 = 0x1fb6c;
0x0000fcce blx 0x59a0 | r0 = fcn_000059a0 ();
| label_33:
0x0000fcd2 mov r7, r0 | r7 = r0;
0x0000fcd4 mov sb, r4 | sb = r4;
0x0000fcd6 blx 0x5cd4 | r0 = gethostname_full ();
0x0000fcda cmp r0, 2 |
0x0000fcdc ldr.w r8, [sp, 0x4c] | r8 = var_4ch;
0x0000fce0 ldr r4, [sp, 0x54] | r4 = var_54h;
| if (r0 <= 2) {
0x0000fce2 ble.w 0xfaf2 | goto label_8;
| }
0x0000fce4 add r7, sp, 0x18 | r7 = sp + 0x18;
0x0000fce6 ldr r3, [pc, 0x1b8] |
0x0000fce8 mov r1, r7 | r1 = r7;
0x0000fcea ldr r2, [pc, 0x1b8] |
0x0000fcec movs r0, 3 | r0 = 3;
0x0000fcee add r3, pc | r3 = 0x1fb94;
0x0000fcf0 str r3, [sp, 4] | var_4h = r3;
0x0000fcf2 add r2, pc | r2 = 0x1fb9c;
0x0000fcf4 ldr r3, [pc, 0x1b0] |
0x0000fcf6 adds r2, 7 | r2 += 7;
0x0000fcf8 add r3, pc | r3 = 0x1fba4;
0x0000fcfa str r3, [sp] | *(sp) = r3;
0x0000fcfc movw r3, 0x281 | r3 = 0x281;
0x0000fd00 blx 0x6008 | fcn_00006008 ();
0x0000fd04 b 0xfaf2 | goto label_8;
| label_24:
0x0000fd06 ldr r1, [pc, 0x1a4] |
0x0000fd08 movw r2, 0x22d | r2 = 0x22d;
0x0000fd0c ldr r3, [pc, 0x1a0] |
0x0000fd0e ldr r0, [pc, 0x1a4] |
0x0000fd10 add r1, pc | r1 = 0x1fbc2;
0x0000fd12 add r3, pc | r3 = 0x1fbc6;
0x0000fd14 adds r1, 7 | r1 += 7;
0x0000fd16 add r0, pc | r0 = "reload_with_fallback";
0x0000fd18 blx 0x59a0 | fcn_000059a0 ();
| label_30:
0x0000fd1c ldr r1, [pc, 0x198] |
0x0000fd1e movw r2, 0x261 | r2 = 0x261;
0x0000fd22 ldr r3, [pc, 0x198] |
0x0000fd24 movs r0, 3 | r0 = 3;
0x0000fd26 mov sb, r4 | sb = r4;
0x0000fd28 add r1, pc | r1 = 0x1fbe4;
0x0000fd2a add r3, pc | r3 = 0x1fbec;
0x0000fd2c adds r1, 7 | r1 += 7;
0x0000fd2e blx 0x6920 | fcn_00006920 ();
0x0000fd32 ldr.w sl, [sp, 0x7c] | sl = var_7ch;
0x0000fd36 b 0xfb0a | goto label_2;
| label_35:
0x0000fd38 ldr r1, [pc, 0x184] |
0x0000fd3a mov r6, r0 | r6 = r0;
0x0000fd3c ldr r3, [pc, 0x184] |
0x0000fd3e mov.w r2, 0x270 | r2 = 0x270;
0x0000fd42 movs r0, 3 | r0 = 3;
0x0000fd44 ldr.w r8, [sp, 0x4c] | r8 = var_4ch;
0x0000fd48 add r1, pc | r1 = 0x1fc0c;
0x0000fd4a ldr r4, [sp, 0x54] | r4 = var_54h;
0x0000fd4c adds r1, 7 | r1 += 7;
0x0000fd4e add r3, pc | r3 = 0x1fc16;
0x0000fd50 mov sb, r7 | sb = r7;
0x0000fd52 blx 0x6920 | fcn_00006920 ();
0x0000fd56 b 0xfaf2 | goto label_8;
| label_39:
0x0000fd58 blx 0x5ac4 | r0 = table_add_cell_full ();
| if (r0 == 0) {
0x0000fd5c cbz r0, 0xfd8e | goto label_42;
| }
0x0000fd5e ldr r5, [pc, 0x168] |
0x0000fd60 add r5, pc | r5 = 0x1fc2e;
| do {
0x0000fd62 blx 0x5ac4 | r0 = table_add_cell_full ();
| if (r0 != 0) {
0x0000fd66 cbz r0, 0xfd88 |
0x0000fd68 ldr r6, [pc, 0x160] |
0x0000fd6a add r6, pc | r6 = 0x1fc3a;
0x0000fd6c b 0xfc7e | goto label_9;
| label_18:
0x0000fd6e ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x0000fd70 mov sb, r0 | sb = r0;
0x0000fd72 ldr.w sl, [sp, 0x60] | sl = var_60h;
0x0000fd76 lsl.w r8, r3, 5 | r8 = r3 << 5;
0x0000fd7a b 0xfb62 | goto label_3;
| label_40:
0x0000fd7c ldr r5, [pc, 0x150] |
0x0000fd7e add r5, pc | r5 = 0x1fc52;
0x0000fd80 b 0xfc70 | goto label_10;
| label_41:
0x0000fd82 ldr r6, [pc, 0x150] |
0x0000fd84 add r6, pc | r6 = 0x1fc5e;
0x0000fd86 b 0xfc7e | goto label_9;
| }
0x0000fd88 ldr r6, [pc, 0x14c] |
0x0000fd8a add r6, pc | r6 = 0x1fc66;
0x0000fd8c b 0xfc7e | goto label_9;
| label_42:
0x0000fd8e ldr r5, [pc, 0x14c] |
0x0000fd90 add r5, pc | r5 = 0x1fc72;
0x0000fd92 b 0xfd62 |
| } while (1);
| label_26:
0x0000fd94 ldr r1, [pc, 0x148] |
0x0000fd96 movw r2, 0x2e1 | r2 = 0x2e1;
0x0000fd98 movs r2, 0xe1 | r2 = 0xe1;
0x0000fd9a ldr r3, [pc, 0x148] |
0x0000fd9c movs r0, 3 | r0 = 3;
0x0000fd9e ldr.w sl, [sp, 0x60] | sl = var_60h;
0x0000fda2 add r1, pc | r1 = 0x1fc86;
0x0000fda4 add r3, pc | r3 = 0x1fc8e;
0x0000fda6 adds r1, 7 | r1 += 7;
0x0000fda8 blx 0x6920 | r0 = fcn_00006920 ();
0x0000fdac mov sb, r0 | sb = r0;
0x0000fdae b 0xfb62 | goto label_3;
| label_28:
0x0000fdb0 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x0000fdb2 lsl.w r8, r3, 5 | r8 = r3 << 5;
0x0000fdb4 adds r3, r0, r1 | r3 = r0 + r1;
0x0000fdb6 b 0xf9ba | goto label_11;
| label_27:
0x0000fdb8 ldr r1, [pc, 0x12c] |
0x0000fdba movs r2, 0x34 | r2 = 0x34;
0x0000fdbc ldr r3, [pc, 0x12c] |
0x0000fdbe ldr r0, [pc, 0x130] |
0x0000fdc0 add r1, pc | r1 = 0x1fcac;
0x0000fdc2 add r3, pc | r3 = 0x1fcb2;
0x0000fdc4 adds r1, 7 | r1 += 7;
0x0000fdc6 add r0, pc | r0 = 0x1fcbc;
0x0000fdc8 blx 0x59a0 | fcn_000059a0 ();
0x0000fdca invalid |
| label_29:
0x0000fdcc blx 0x60c0 | fcn_000060c0 ();
0x0000fdd0 stm r2!, {r1, r3, r4, r5, r6} | *(r2!) = r1;
| *((r2! + 4)) = r3;
| *((r2! + 8)) = r4;
| *((r2! + 12)) = r5;
| *((r2! + 16)) = r6;
0x0000fdd2 movs r1, r0 | r1 = r0;
0x0000fdd4 lsls r4, r5, 0x16 | r4 = r5 << 0x16;
0x0000fdd6 movs r0, r0 |
0x0000fdd8 stm r2!, {r2, r4, r6} | *(r2!) = r2;
| *((r2! + 4)) = r4;
| *((r2! + 8)) = r6;
0x0000fdda movs r1, r0 | r1 = r0;
0x0000fddc lsls r4, r2, 0x16 | r4 = r2 << 0x16;
0x0000fdde movs r0, r0 |
0x0000fde0 movs r5, 0xfa | r5 = 0xfa;
0x0000fde2 movs r1, r0 | r1 = r0;
0x0000fde4 movs r5, 0xa2 | r5 = 0xa2;
0x0000fde6 movs r1, r0 | r1 = r0;
0x0000fde8 movs r5, 0x9c | r5 = 0x9c;
0x0000fdea movs r1, r0 | r1 = r0;
0x0000fdec movs r5, 0x52 | r5 = 0x52;
0x0000fdee movs r1, r0 | r1 = r0;
0x0000fdf0 adds r6, r6, 0 | r6 += 0;
0x0000fdf2 movs r1, r0 | r1 = r0;
0x0000fdf4 movs r5, 0x5c | r5 = 0x5c;
0x0000fdf6 movs r1, r0 | r1 = r0;
0x0000fdf8 movs r5, 0x32 | r5 = 0x32;
0x0000fdfa movs r1, r0 | r1 = r0;
0x0000fdfc b 0xfc76 | goto label_12;
| }
; 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 @ 0x110f0 */
| #include <stdint.h>
|
; (fcn) fcn.000110f0 () | void fcn_000110f0 (int16_t arg_58h, int16_t arg_120h, int16_t arg_148h, int16_t arg1) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int32_t var_8h_3;
| int16_t var_0h_2;
| int16_t var_4h_2;
| int16_t var_8h_2;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_1ch;
| int16_t var_20h;
| int16_t var_28h;
| int16_t var_2ch;
| r0 = arg1;
0x000110f0 ldr r2, [pc, 0x198] |
0x000110f2 ldr r3, [pc, 0x19c] | r3 = *(0x11292);
0x000110f4 push.w {r4, r5, r6, r7, r8, lr} |
0x000110f8 sub sp, 0x30 |
0x000110fa add r2, pc | r2 = 0x2238a;
0x000110fc ldr.w r8, [pc, 0x194] |
0x00011100 mov r6, r0 | r6 = r0;
0x00011102 ldr r3, [r2, r3] |
0x00011104 add r8, pc | r8 = 0x2239c;
0x00011106 ldr r3, [r3] | r3 = *(0x2238a);
0x00011108 str r3, [sp, 0x2c] | var_2ch = r3;
0x0001110a mov.w r3, 0 | r3 = 0;
0x0001110e bl 0x1c500 | r0 = fcn_0001c500 ();
| if (r0 == 0) {
0x00011112 cbz r0, 0x1116c | goto label_5;
| }
0x00011114 ldr r1, [pc, 0x180] |
0x00011116 mov r2, r6 | r2 = r6;
0x00011118 ldr r3, [pc, 0x180] | r3 = *(0x1129c);
0x0001111a ldr.w r1, [r8, r1] | r1 = *((r8 + r1));
0x0001111e ldr.w r3, [r8, r3] | r3 = *((r8 + r3));
0x00011122 ldr r1, [r1] | r1 = *(0x11298);
0x00011124 ldr r0, [r3] | r0 = *(0x1129c);
0x00011126 blx 0x685c | r0 = sd_booted ();
0x0001112a subs r4, r0, 0 | r4 = r0 - 0;
0x0001112c it ge |
| if (r4 < r0) {
0x0001112e movge r4, 0 | r4 = 0;
| }
0x00011130 blt 0x11150 |
| while (1) {
| label_0:
0x00011132 ldr r2, [pc, 0x16c] |
0x00011134 ldr r3, [pc, 0x158] | r3 = *(0x11290);
0x00011136 add r2, pc | r2 = 0x223dc;
0x00011138 ldr r3, [r2, r3] | r3 = *(0x223dc);
0x0001113a ldr r2, [r3] | r2 = *(0x223dc);
0x0001113c ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x0001113e eors r2, r3 | r2 ^= r3;
0x00011140 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00011144 bne.w 0x11288 | goto label_6;
| }
0x00011148 mov r0, r4 | r0 = r4;
0x0001114a add sp, 0x30 |
0x0001114c pop.w {r4, r5, r6, r7, r8, pc} |
0x00011150 blx 0x5cd4 | r0 = gethostname_full ();
0x00011154 cmp r0, 2 |
0x00011156 ittt le |
| if (r0 <= 2) {
0x00011158 rsble r0, r4, 0 | __asm ("rsble r0, r4, 0");
| }
| if (r0 <= 2) {
0x0001115a bicle r0, r0, 0x40000000 | __asm ("bicle r0, r0, 0x40000000");
| }
| if (r0 <= 2) {
0x0001115e rsbs r4, r0, 0 | r4 = r0 - ;
| }
| if (r0 > 2) {
0x00011160 bgt 0x11222 | goto label_7;
| }
| label_2:
0x00011162 cmp r4, 0 |
0x00011164 it ge |
| if (r4 < 0) {
0x00011166 mvnge r4, 0x55 | r4 = ~0x55;
| }
0x0001116a b 0x11132 |
| }
| label_5:
0x0001116c vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x00011170 mov r5, r0 | r5 = r0;
0x00011172 add r1, sp, 0x14 | r1 += var_14h;
0x00011174 movs r0, 1 | r0 = 1;
0x00011176 str r5, [sp, 0x18] | var_18h = r5;
0x00011178 str r5, [sp, 0x28] | var_28h = r5;
0x0001117a vstr d16, [sp, 0x20] | __asm ("vstr d16, [sp, 0x20]");
0x0001117e bl 0x1ab9c | r0 = fcn_0001ab9c (r0, r1);
0x00011182 subs r4, r0, 0 | r4 = r0 - 0;
0x00011184 it lt |
| if (r4 >= r0) {
0x00011186 addlt r7, sp, 0x20 | r7 += var_20h;
| }
| if (r4 >= r0) {
0x00011188 blt 0x111d4 |
0x0001118a ldr r3, [pc, 0x118] | r3 = *(0x112a6);
0x0001118c add r7, sp, 0x20 | r7 += var_20h;
0x0001118e ldr r0, [sp, 0x14] | r0 = var_14h;
0x00011190 ldr.w r2, [r8, r3] | r2 = *((r8 + r3));
0x00011194 add r3, sp, 0x18 | r3 += var_18h;
0x00011196 str r3, [sp] | *(sp) = r3;
0x00011198 mov r3, r7 | r3 = r7;
0x0001119a str r5, [sp, 4] | var_4h_2 = r5;
0x0001119c ldr r1, [r2] | r1 = *(r2);
0x0001119e ldr r2, [pc, 0x108] |
0x000111a0 add r2, pc | r2 = 0x2244e;
0x000111a2 blx 0x5fe4 | r0 = fcn_00005fe4 ();
0x000111a6 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x000111a8 blt 0x111e6 | goto label_8;
| }
0x000111aa ldr r1, [pc, 0x100] |
0x000111ac add r2, sp, 0x1c | r2 += var_1ch;
0x000111ae ldr r0, [sp, 0x18] | r0 = var_18h;
0x000111b0 add r1, pc | r1 = 0x22462;
0x000111b2 blx 0x636c | fcn_0000636c ();
0x000111b4 invalid |
| if (r4 >= r0) {
0x000111b8 bge 0x11242 | goto label_9;
| }
0x000111ba blx 0x5cd4 | r0 = gethostname_full ();
0x000111be cmp r0, 2 |
0x000111c0 ittt le |
| if (r0 <= 2) {
0x000111c2 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 <= 2) {
0x000111c4 bicle r0, r4, 0x40000000 | __asm ("bicle r0, r4, 0x40000000");
| }
| if (r0 > 2) {
0x000111c6 lslle r0, r0 | r0 <<= r0;
| }
0x000111c8 rsbs r4, r0, 0 | r4 = r0 - ;
| if (r0 > 2) {
0x000111ca bgt 0x11268 | goto label_10;
| }
| label_1:
0x000111cc cmp r4, 0 |
0x000111ce it ge |
| if (r4 >= 0) {
0x000111d0 mvnge r4, 0x55 | r4 = ~0x55;
| goto label_3;
| }
| }
| label_3:
0x000111d4 mov r0, r7 | r0 = r7;
0x000111d6 blx 0x5f0c | fcn_00005f0c ();
0x000111da ldr r0, [sp, 0x18] | r0 = var_18h;
0x000111dc cmp r0, 0 |
| if (r0 == 0) {
0x000111de beq 0x11132 | goto label_0;
| }
0x000111e0 blx 0x62ac | fcn_000062ac ();
0x000111e4 b 0x11132 | goto label_0;
| label_8:
0x000111e6 blx 0x5cd4 | r0 = gethostname_full ();
0x000111ea cmp r0, 2 |
0x000111ec ittt le |
| if (r0 <= 2) {
0x000111ee rsble r0, r4, 0 | __asm ("rsble r0, r4, 0");
| }
| if (r0 <= 2) {
0x000111f0 bicle r0, r0, 0x40000000 | __asm ("bicle r0, r0, 0x40000000");
| }
| if (r0 > 2) {
0x000111f4 rsbs r4, r0, 0 | r4 = r0 - ;
| goto label_11;
| }
| if (r0 <= 2) {
| label_11:
0x000111f6 ble 0x111cc | goto label_1;
| }
0x000111f8 mov r1, r4 | r1 = r4;
0x000111fa mov r0, r7 | r0 = r7;
0x000111fc blx 0x663c | fcn_0000663c ();
0x00011200 ldr r2, [pc, 0xac] |
0x00011202 mov r1, r4 | r1 = r4;
0x00011204 str r0, [sp, 8] | var_8h_2 = r0;
0x00011206 ldr r3, [pc, 0xac] |
0x00011208 ldr r0, [pc, 0xac] |
0x0001120a add r2, pc | r2 = 0x224be;
0x0001120c adds r2, 7 | r2 += 7;
0x0001120e add r3, pc | r3 = 0x224c8;
0x00011210 add r0, pc | r0 = 0x224cc;
0x00011212 str r3, [sp, 4] | var_4h_2 = r3;
0x00011214 str r0, [sp] | *(sp) = r0;
0x00011216 movs r3, 0x45 | r3 = 0x45;
0x00011218 movs r0, 3 | r0 = 3;
0x0001121a blx 0x6008 | r0 = fcn_00006008 ();
0x0001121e mov r4, r0 | r4 = r0;
0x00011220 b 0x111cc | goto label_1;
| label_7:
0x00011222 ldr r2, [pc, 0x98] |
0x00011224 mov r1, r4 | r1 = r4;
0x00011226 ldr r5, [pc, 0x98] |
0x00011228 movs r3, 0x36 | r3 = 0x36;
0x0001122a ldr r0, [pc, 0x98] |
0x0001122c add r2, pc | r2 = 0x224ee;
0x0001122e add r5, pc | r5 = "/usr/src/debug/systemd/1_251.8-r0/src/systemctl/systemctl-mount.c"
0x00011230 adds r2, 7 | r2 += 7;
0x00011232 add r0, pc | r0 = 0x224fc;
0x00011234 strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x00011238 movs r0, 3 | r0 = 3;
0x0001123a blx 0x6008 | r0 = fcn_00006008 ();
0x0001123e mov r4, r0 | r4 = r0;
0x00011240 b 0x11162 | goto label_2;
| label_9:
0x00011242 ldr r1, [sp, 0x1c] | r1 = var_1ch;
0x00011244 mov r0, r6 | r0 = r6;
0x00011246 blx 0x58b4 | r0 = free_and_strdup ();
0x0001124a cmp r0, 0 |
0x0001124c it ge |
| if (r0 >= 0) {
0x0001124e movge r4, r5 | r4 = r5;
| goto label_12;
| }
| if (r0 >= 0) {
| label_12:
0x00011250 bge 0x111d4 | goto label_3;
| }
0x00011252 ldr r1, [pc, 0x74] |
0x00011254 movs r2, 0xb1 | r2 = 0xb1;
0x00011256 ldr r3, [pc, 0x74] |
0x00011258 movs r0, 3 | r0 = 3;
0x0001125a add r1, pc | r1 = 0x22528;
0x0001125c add r3, pc | r3 = 0x2252e;
0x0001125e adds r1, 7 | r1 += 7;
0x00011260 blx 0x6920 | r0 = fcn_00006920 ();
0x00011264 mov r4, r0 | r4 = r0;
0x00011266 b 0x111d4 | goto label_3;
| label_10:
0x00011268 ldr r2, [pc, 0x64] |
0x0001126a mov r1, r4 | r1 = r4;
0x0001126c ldr r0, [pc, 0x64] |
0x0001126e ldr r3, [pc, 0x68] |
0x00011270 add r2, pc | r2 = 0x22544;
0x00011272 add r0, pc | r0 = 0x2254a;
0x00011274 adds r2, 7 | r2 += 7;
0x00011276 add r3, pc | r3 = 0x22554;
0x00011278 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0001127c movs r3, 0x49 | r3 = 0x49;
0x0001127e movs r0, 3 | r0 = 3;
0x00011280 blx 0x6008 | r0 = fcn_00006008 ();
0x00011284 mov r4, r0 | r4 = r0;
0x00011286 b 0x111cc | goto label_1;
| label_6:
0x00011288 blx 0x60c0 | fcn_000060c0 ();
0x0001128c add r0, sp, 0x148 | r0 += arg_148h;
0x0001128e movs r1, r0 | r1 = r0;
0x00011290 lsls r4, r5, 0x16 | r4 = r5 << 0x16;
0x00011292 movs r0, r0 |
0x00011294 add r0, sp, 0x120 | r0 += arg_120h;
0x00011296 movs r1, r0 | r1 = r0;
0x00011298 lsls r0, r3, 0x17 | r0 = r3 << 0x17;
0x0001129a movs r0, r0 |
0x0001129c lsls r0, r0, 0x1a | r0 <<= 0x1a;
0x0001129e movs r0, r0 |
0x000112a0 add r0, sp, 0x58 | r0 += arg_58h;
0x000112a2 movs r1, r0 | r1 = r0;
0x000112a4 lsls r0, r2, 0x16 | r0 = r2 << 0x16;
0x000112a6 movs r0, r0 |
0x000112a8 asrs r0, r5, 0x1d | r0 = r5 >> 0x1d;
0x000112aa movs r1, r0 | r1 = r0;
0x000112ac vhadd.s16 d16, d12, d0 | __asm ("vhadd.s16 d16, d12, d0");
0x000112b0 asrs r6, r1, 0x18 | r6 = r1 >> 0x18;
0x000112b2 movs r1, r0 | r1 = r0;
0x000112b4 asrs r6, r1, 0x1c | r6 = r1 >> 0x1c;
0x000112b6 movs r1, r0 | r1 = r0;
0x000112b8 adds r0, r3, r5 | r0 = r3 + r5;
0x000112ba movs r1, r0 | r1 = r0;
0x000112bc asrs r4, r5, 0x17 | r4 = r5 >> 0x17;
0x000112be movs r1, r0 | r1 = r0;
0x000112c0 asrs r6, r6, 0x1a | r6 >>= 0x1a;
0x000112c2 movs r1, r0 | r1 = r0;
0x000112c4 adds r6, r6, r4 | r6 += r4;
0x000112c6 movs r1, r0 | r1 = r0;
0x000112c8 asrs r6, r4, 0x1b | r6 = r4 >> 0x1b;
0x000112ca movs r1, r0 | r1 = r0;
0x000112cc adds r4, r6, r3 | r4 = r6 + r3;
0x000112ce movs r1, r0 | r1 = r0;
0x000112d0 asrs r0, r5, 0x16 | r0 = r5 >> 0x16;
0x000112d2 movs r1, r0 | r1 = r0;
0x000112d4 subw r0, lr, 0x800 | __asm ("subw r0, lr, 0x800");
0x000112d8 adds r2, r6, r3 | r2 = r6 + r3;
0x000112da movs r1, r0 | r1 = r0;
0x000112dc push {r4, r5, r6, r7, lr} |
0x000112de mov r4, r1 | r4 = r1;
0x000112e0 ldr r1, [pc, 0xbc] |
0x000112e2 sub sp, 0x14 |
0x000112e4 mov r6, r0 | r6 = r0;
0x000112e6 mov r5, r2 | r5 = r2;
0x000112e8 add r1, pc | r1 = 0x2268c;
0x000112ea blx 0x6670 | r0 = hashmap_contains ();
| if (r0 == 0) {
0x000112ee cbz r0, 0x112f8 | goto label_13;
| }
| if (r4 == 0) {
0x000112f0 cbz r4, 0x11348 | goto label_14;
| }
| do {
| label_4:
0x000112f2 movs r0, 0 | r0 = 0;
0x000112f4 add sp, 0x14 |
0x000112f6 pop {r4, r5, r6, r7, pc} |
| label_13:
0x000112f8 cmp r4, 0 |
| if (r4 == 0) {
0x000112fa beq 0x11376 | goto label_15;
| }
0x000112fc movs r1, 5 | r1 = 5;
0x000112fe mov r0, r4 | r0 = r4;
0x00011300 blx 0x5c4c | r0 = fcn_00005c4c ();
0x00011304 mov r7, r0 | r7 = r0;
| if (r0 != 0) {
0x00011306 cbnz r0, 0x11332 | goto label_16;
| }
0x00011308 blx 0x5cd4 | r0 = gethostname_full ();
0x0001130c cmp r0, 3 |
0x0001130e ble 0x112f2 |
| } while (r0 <= 3);
0x00011310 ldr r2, [pc, 0x90] |
0x00011312 mov r1, r7 | r1 = r7;
0x00011314 ldr r5, [pc, 0x90] |
0x00011316 movs r3, 0x12 | r3 = 0x12;
0x00011318 ldr r0, [pc, 0x90] |
0x0001131a add r2, pc | r2 = 0x226c2;
0x0001131c strd r6, r4, [sp, 8] | __asm ("strd r6, r4, [var_8h]");
0x00011320 add r5, pc | r5 = 0x226cc;
0x00011322 adds r2, 7 | r2 += 7;
0x00011324 add r0, pc | r0 = 0x226d4;
0x00011326 strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x0001132a movs r0, 4 | r0 = 4;
0x0001132c blx 0x6008 | fcn_00006008 ();
0x00011330 b 0x112f2 | goto label_4;
| label_16:
0x00011332 mov r1, r6 | r1 = r6;
0x00011334 mov r0, r5 | r0 = r5;
0x00011336 blx 0x58b4 | r0 = free_and_strdup ();
0x0001133a cmp r0, 0 |
| if (r0 >= 0) {
0x0001133c bge 0x112f2 | goto label_4;
| }
0x0001133e ldr r1, [pc, 0x70] |
0x00011340 ldr r3, [pc, 0x70] |
0x00011342 add r1, pc | r1 = 0x226f8;
0x00011344 add r3, pc | r3 = 0x226fc;
0x00011346 b 0x11366 | goto label_17;
| label_14:
0x00011348 mov r0, r6 | r0 = r6;
0x0001134a blx 0x5f78 | fcn_00005f78 ();
0x0001134c cdp p8, 1, c2, c6, c0, 0 | __asm ("cdp p8, 1, c2, c6, c0, 0");
| if (r0 == 0) {
0x00011350 beq 0x112f2 | goto label_4;
| }
0x00011352 mov r1, r6 | r1 = r6;
0x00011354 mov r0, r5 | r0 = r5;
0x00011356 blx 0x58b4 | r0 = free_and_strdup ();
0x0001135a cmp r0, 0 |
| if (r0 >= 0) {
0x0001135c bge 0x112f2 | goto label_4;
| }
0x0001135e ldr r1, [pc, 0x58] |
0x00011360 ldr r3, [pc, 0x58] |
0x00011362 add r1, pc | r1 = 0x22720;
0x00011364 add r3, pc | r3 = 0x22724;
| label_17:
0x00011366 movs r2, 0xb1 | r2 = 0xb1;
0x00011368 movs r0, 3 | r0 = 3;
0x0001136a adds r1, 7 | r1 += 7;
0x0001136c add sp, 0x14 |
0x0001136e pop.w {r4, r5, r6, r7, lr} |
0x00011372 b.w 0x691c | void (*0x691c)() ();
0x00011374 revsh r3, r2 | __asm ("revsh r3, r2");
| label_15:
0x00011376 blx 0x5cd4 | r0 = gethostname_full ();
0x0001137a cmp r0, 3 |
| if (r0 <= 3) {
0x0001137c ble 0x112f2 | goto label_4;
| }
0x0001137e ldr r2, [pc, 0x40] |
0x00011380 mov r1, r4 | r1 = r4;
0x00011382 ldr r3, [pc, 0x40] |
0x00011384 ldr r0, [pc, 0x40] |
0x00011386 add r2, pc | r2 = 0x2274c;
0x00011388 str r6, [sp, 8] | var_8h = r6;
0x0001138a add r3, pc | r3 = 0x22754;
0x0001138c adds r2, 7 | r2 += 7;
0x0001138e add r0, pc | r0 = 0x2275a;
0x00011390 str r3, [sp, 4] | var_4h = r3;
0x00011392 str r0, [sp] | *(sp) = r0;
0x00011394 movs r3, 0x22 | r3 = 0x22;
0x00011396 movs r0, 4 | r0 = 4;
0x00011398 blx 0x6008 | fcn_00006008 ();
0x0001139c b 0x112f2 | goto label_4;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/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 |
| }
; 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 @ 0x19230 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.00019230 () | void fcn_00019230 (int16_t arg_0h, int16_t arg_240h, int16_t arg_d8h, int16_t arg_110h, int16_t arg_120h, int16_t arg_128h, int16_t arg_130h, int16_t arg_140h, int16_t arg_2b8h, int16_t arg_150h, int16_t arg_2f8h, int16_t arg_198h, int16_t arg_1a8h, int16_t arg_1c8h, int16_t arg_348h, int16_t arg_350h, int16_t arg_200h, int16_t arg_218h, int16_t arg_220h, int16_t arg_238h, int16_t arg_3d0h_2, int16_t arg_3e0h, int16_t arg_3e8h_2, int16_t arg_2c8h, int16_t arg_2e8h, int16_t arg_320h, int16_t arg_328h, int16_t arg_330h, int16_t arg_338h, int16_t arg_388h, int16_t arg_3a8h, int16_t arg_3d0h, int16_t arg_3e8h, int16_t arg2) {
| int16_t var_34h;
| int16_t var_0h;
| int16_t var_4h;
| int8_t var_1h;
| int16_t var_8h;
| int32_t var_8h_5;
| int16_t var_10h;
| int32_t var_4h_4;
| int16_t var_8h_3;
| int16_t var_ch_2;
| int16_t var_10h_3;
| int32_t var_8h_4;
| int16_t var_1ch_2;
| int16_t var_20h_2;
| int16_t var_38h;
| int16_t var_40h;
| int16_t var_60h;
| int16_t var_90h;
| int16_t var_b0h;
| int16_t var_b8h;
| int16_t var_100h;
| int16_t var_110h;
| int16_t var_138h;
| int32_t var_12ch;
| int32_t var_134h;
| int16_t var_13ch;
| int16_t var_150h;
| int16_t var_168h;
| int16_t var_0h_2;
| int16_t var_4h_2;
| int16_t var_8h_2;
| int16_t var_ch;
| int16_t var_10h_2;
| int32_t var_10h_4;
| int16_t var_1ch;
| int16_t var_20h;
| int16_t var_24h;
| int16_t var_28h;
| int16_t var_2ch;
| int16_t var_30h;
| int16_t var_34h_2;
| int16_t var_38h_2;
| int16_t var_3ch;
| int16_t var_40h_2;
| int16_t var_44h;
| int16_t var_48h;
| int16_t var_4ch;
| int16_t var_50h;
| int16_t var_54h;
| int16_t c;
| int16_t var_5ch;
| int16_t var_60h_2;
| int16_t var_64h;
| int16_t var_68h;
| int16_t var_6ch;
| int16_t var_1e0h;
| int16_t var_1e8h;
| int16_t var_80h;
| int16_t var_1f8h;
| int16_t var_8ch;
| int16_t var_200h;
| int32_t var_14h;
| int16_t var_9ch;
| int16_t var_a0h;
| int16_t var_0h_3;
| int16_t var_220h;
| int16_t var_c0h;
| int32_t var_4h_3;
| r1 = arg2;
0x00019230 svcmi 0xf0e92d | __asm ("svcmi 0xf0e92d");
0x00019234 movs r3, 0 | r3 = 0;
0x00019236 ldr.w r4, [pc, 0xc44] |
0x0001923a mov r5, r1 | r5 = r1;
0x0001923c ldr.w r0, [pc, 0xc40] | r0 = *(0x19e80);
0x00019240 add r4, pc | r4 = 0x330c2;
0x00019242 vpush {d8} | __asm ("vpush {d8}");
0x00019246 ldr.w fp, [pc, 0xc3c] |
0x0001924a sub sp, 0xa4 |
0x0001924c ldr r0, [r4, r0] |
0x0001924e ldr.w r2, [pc, 0xc38] | r2 = *(0x19e8a);
0x00019252 add fp, pc | fp = 0x330dc;
0x00019254 ldr r0, [r0] | r0 = *(0x330c2);
0x00019256 str r0, [sp, 0x9c] | var_9ch = r0;
0x00019258 mov.w r0, 0 | r0 = 0;
0x0001925c strd r3, r3, [sp, 0x48] | __asm ("strd r3, r3, [var_4ch]");
0x00019260 strd r3, r3, [sp, 0x50] | __asm ("strd r3, r3, [var_54h]");
0x00019262 adds r3, 0x14 | r3 += 0x14;
0x00019264 ldr.w r4, [fp, r2] | r4 = *(0x330dc);
0x00019268 ldrb r6, [r4] | r6 = *(r4);
| if (r6 != 0) {
0x0001926a cbz r6, 0x1928a |
0x0001926c ldr.w r3, [pc, 0xc1c] |
0x00019270 add r3, pc | r3 = 0x33100;
0x00019272 ldm.w r3, {r0, r1, r2} | r0 = *(r3);
| r1 = *((r3 + 4));
| r2 = *((r3 + 8));
0x00019276 add r3, sp, 0x8c | r3 += var_8ch;
0x00019278 stm.w r3, {r0, r1, r2} | *(r3) = r0;
| *((r3 + 4)) = r1;
| *((r3 + 8)) = r2;
0x0001927c mov r0, r3 | r0 = r3;
0x0001927e ldr r1, [r5] | r1 = *(r5);
0x00019280 blx 0x5914 | r0 = strv_find ();
0x00019284 cmp r0, 0 |
| if (r0 == 0) {
0x00019286 beq.w 0x198c2 | goto label_58;
| }
| }
0x0001928a add r1, sp, 0x58 | r1 += c;
0x0001928c eor r0, r6, 1 | r0 = r6 ^ 1;
0x00019290 bl 0x1ab9c | r0 = fcn_0001ab9c (r0, r1);
0x00019294 subs.w sl, r0, 0 | sl = r0 - 0;
| if (sl < r0) {
0x00019298 blt.w 0x1953c | goto label_59;
| }
0x0001929c bl 0x1acd8 | fcn_0001acd8 ();
0x000192a0 bl 0x1ad14 | fcn_0001ad14 ();
0x000192a4 ldr.w r3, [pc, 0xbe8] | r3 = *(0x19e90);
0x000192a8 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x000192ac ldr r6, [r3] | r6 = *(0x19e90);
0x000192ae str r3, [sp, 0x24] | var_24h = r3;
0x000192b0 cmp r6, 0 |
| if (r6 == 0) {
0x000192b2 beq.w 0x194da | goto label_60;
| }
0x000192b6 cmp r6, 0x16 |
| if (r6 > 0x16) {
0x000192b8 bhi.w 0x19c9c | goto label_61;
| }
0x000192bc ldr.w r3, [pc, 0xbd4] |
0x000192c0 add.w r6, r6, r6, lsl 1 | r6 += (r6 << 1);
0x000192c4 lsls r6, r6, 2 | r6 <<= 2;
0x000192c6 add r3, pc | r3 = 0x3315e;
0x000192c8 ldr r7, [r3, r6] | r7 = *(0x3315e);
0x000192ca cmp r7, 0 |
| if (r7 == 0) {
0x000192cc beq.w 0x19cb8 | goto label_62;
| }
0x000192ce strh r4, [r6, 0x26] | *((r6 + 0x26)) = r4;
0x000192d0 add r3, r6 | r3 += r6;
0x000192d2 ldr r6, [r3, 8] | r6 = *((r3 + 8));
0x000192d4 cmp r6, 0 |
| if (r6 == 0) {
0x000192d6 beq.w 0x19b16 | goto label_63;
| }
| label_0:
0x000192da mov r0, r7 | r0 = r7;
0x000192dc movs r1, 0 | r1 = 0;
0x000192de blx 0x5e04 | fcn_00005e04 ();
0x000192e2 str r0, [sp, 0x54] | var_54h = r0;
0x000192e4 cmp r0, 0 |
| if (r0 == 0) {
0x000192e6 beq.w 0x19522 | goto label_64;
| }
0x000192ea ldr.w sb, [pc, 0xbac] |
0x000192ee ldr.w r3, [pc, 0xbac] |
0x000192f2 add sb, pc | sb = 0x33190;
0x000192f4 add r3, pc | r3 = 0x33196;
0x000192f6 str r3, [sp, 0x2c] | var_2ch = r3;
| label_1:
0x000192f8 ldr.w r3, [pc, 0xba4] | r3 = *(0x19ea0);
0x000192fc ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00019300 str r3, [sp, 0x30] | var_30h = r3;
0x00019302 ldrb r3, [r3] | r3 = *(r3);
0x00019304 cmp r3, 0 |
| if (r3 == 0) {
0x00019306 beq.w 0x197be | goto label_65;
| }
| label_7:
0x0001930a ldrb r3, [r4] | r3 = *(r4);
0x0001930c cmp r3, 0 |
| if (r3 != 0) {
0x0001930e bne.w 0x19908 | goto label_66;
| }
| label_11:
0x00019312 ldr.w r3, [pc, 0xb90] | r3 = *(0x19ea6);
0x00019316 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x0001931a ldrb r2, [r3] | r2 = *(r3);
0x0001931c cmp r2, 0 |
| if (r2 != 0) {
0x0001931e bne.w 0x19588 | goto label_67;
| }
0x00019322 ldr r3, [sp, 0x54] | r3 = var_54h;
0x00019324 cmp r3, 0 |
| if (r3 == 0) {
0x00019326 beq.w 0x1a0fe | goto label_68;
| }
0x0001932a subs r5, r3, 4 | r5 = r3 - 4;
0x0001932c ldr.w r3, [pc, 0xb78] |
0x00019330 vmov.i32 d8, 0 | __asm ("vmov.i32 d8, 0");
0x00019334 mov sl, sb | sl = sb;
0x00019336 mov sb, r6 | sb = r6;
0x00019338 str r4, [sp, 0x40] | var_40h_2 = r4;
0x0001933a add r3, pc | r3 = 0x331e6;
0x0001933c strd r2, r3, [sp, 0x38] | __asm ("strd r2, r3, [var_38h_2]");
| label_6:
0x00019340 ldr r3, [r5, 4]! | r3 = *((r5 += 4));
0x00019344 cmp r3, 0 |
| if (r3 == 0) {
0x00019346 beq.w 0x19d3e | goto label_69;
| }
0x0001934a movs r3, 0 | r3 = 0;
0x0001934c vstr d8, [sp, 0x70] | __asm ("vstr d8, [sp, 0x70]");
0x00019350 str r3, [sp, 0x78] | var_1e8h = r3;
0x00019352 ldr r3, [sp, 0x58] | r3 = c;
0x00019354 ldr r4, [r5] | r4 = *(r5);
0x00019356 str r3, [sp, 0x1c] | var_1ch = r3;
0x00019358 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x0001935a str r3, [sp, 0x20] | var_20h = r3;
0x0001935c ldr r3, [sp, 0x48] | r3 = var_48h;
0x0001935e str r3, [sp, 0x28] | var_28h = r3;
0x00019360 movs r3, 0 | r3 = 0;
0x00019362 str r3, [sp, 0x5c] | var_5ch = r3;
0x00019364 cmp.w sl, 0 |
| if (sl == 0) {
0x00019368 beq.w 0x19bd6 | goto label_70;
| }
0x0001936c cmp r4, 0 |
| if (r4 == 0) {
0x0001936e beq.w 0x19c74 | goto label_71;
| }
0x00019372 cmp.w sb, 0 |
| if (sb == 0) {
0x00019376 beq.w 0x19c88 | goto label_72;
| }
0x0001937a blx 0x5cd4 | gethostname_full ();
0x0001937e ldr.w r3, [pc, 0xb2c] | r3 = *(0x19eae);
0x00019382 cmp r0, 6 |
0x00019384 ldr.w r6, [fp, r3] | r6 = *((fp + r3));
0x00019388 ldrb r3, [r6] | r3 = *(r6);
| if (r0 <= 6) {
0x0001938a ble.w 0x1979e | goto label_73;
| }
0x0001938e cmp r3, 0 |
| if (r3 == 0) {
0x00019390 beq.w 0x19950 | goto label_74;
| }
0x00019394 ldr.w r3, [pc, 0xb18] |
0x00019398 add r3, pc | r3 = 0x3324c;
| label_12:
0x0001939a str r3, [sp, 8] | var_8h_2 = r3;
0x0001939c movs r1, 0 | r1 = 0;
0x0001939e ldr.w r3, [pc, 0xb14] |
0x000193a2 movs r0, 7 | r0 = 7;
0x000193a4 ldr.w r2, [pc, 0xb10] |
0x000193a8 strd r4, sb, [sp, 0x10] | __asm ("strd r4, sb, [var_10h_2]");
0x000193ac add r3, pc | r3 = 0x33266;
0x000193ae str.w sl, [sp, 0xc] | __asm ("str.w sl, [var_ch]");
0x000193b2 str r3, [sp, 4] | var_4h_2 = r3;
0x000193b4 add r2, pc | r2 = 0x33270;
0x000193b6 ldr.w r3, [pc, 0xb04] |
0x000193ba adds r2, 7 | r2 += 7;
0x000193bc add r3, pc | r3 = 0x3327e;
0x000193be str r3, [sp] | *(sp) = r3;
0x000193c0 movs r3, 0x4a | r3 = 0x4a;
0x000193c2 blx 0x6008 | fcn_00006008 ();
0x000193c6 ldrb r3, [r6] | r3 = *(r6);
0x000193c8 cmp r3, 0 |
| if (r3 != 0) {
0x000193ca bne.w 0x19a34 | goto label_75;
| }
| label_5:
0x000193ce ldr.w r3, [pc, 0xaf0] | r3 = *(0x19ec2);
0x000193d2 add r7, sp, 0x5c | r7 += var_5ch;
0x000193d4 ldr.w r2, [pc, 0xaec] |
0x000193d8 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x000193dc ldr.w r2, [fp, r2] | r2 = *((fp + r2));
0x000193e0 ldrb r3, [r3] | r3 = *(r3);
0x000193e2 ldr r2, [r2] | r2 = *(0x19ec4);
0x000193e4 str r2, [sp, 0x34] | var_34h_2 = r2;
0x000193e6 cmp r3, 0 |
| if (r3 == 0) {
0x000193e8 beq.w 0x19820 | goto label_38;
| }
0x000193ec ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x000193ee movs r1, 0 | r1 = 0;
0x000193f0 ldr.w r2, [pc, 0xad4] |
0x000193f4 add r7, sp, 0x5c | r7 += var_5ch;
0x000193f6 vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x000193fa strd r4, r3, [sp, 8] | __asm ("strd r4, r3, [var_8h_2]");
0x000193fe ldr.w r3, [pc, 0xacc] |
0x00019402 add r2, pc | r2 = 0x332ce;
0x00019404 str r1, [sp, 0x88] | var_1f8h = r1;
0x00019406 ldr r0, [sp, 0x1c] | r0 = var_1ch;
0x00019408 add r3, pc | r3 = 0x332da;
0x0001940a ldr r1, [sp, 0x34] | r1 = var_34h_2;
0x0001940c str r3, [sp, 4] | var_4h_2 = r3;
0x0001940e add r3, sp, 0x80 | r3 += var_80h;
0x00019410 str.w sb, [sp, 0x10] | __asm ("str.w sb, [var_10h_2]");
0x00019414 mov r8, r3 | r8 = r3;
0x00019416 str r7, [sp] | *(sp) = r7;
0x00019418 vstr d16, [sp, 0x80] | __asm ("vstr d16, [sp, 0x80]");
0x0001941c str r3, [sp, 0x44] | var_44h = r3;
0x0001941e blx 0x5fe4 | r0 = fcn_00005fe4 ();
0x00019422 subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 < r0) {
0x00019424 blt.w 0x197fe | goto label_76;
| }
0x00019428 ldr.w r1, [pc, 0xaa4] |
0x0001942c movs r3, 0 | r3 = 0;
0x0001942e add.w r8, sp, 0x6c | r8 += var_6ch;
0x00019432 add r7, sp, 0x68 | r7 += var_68h;
0x00019434 add r6, sp, 0x64 | r6 += var_64h;
0x00019436 str r3, [sp, 4] | var_4h_2 = r3;
0x00019438 add r1, pc | r1 = 0x3330c;
0x0001943a ldr r0, [sp, 0x5c] | r0 = var_5ch;
0x0001943c add r3, sp, 0x60 | r3 += var_60h_2;
0x0001943e mov r2, r8 | r2 = r8;
0x00019440 str r7, [sp, 8] | var_8h_2 = r7;
0x00019442 str r6, [sp] | *(sp) = r6;
0x00019444 blx 0x636c | r0 = fcn_0000636c ();
0x00019448 subs r1, r0, 0 | r1 = r0 - 0;
| if (r1 < r0) {
0x0001944a blt.w 0x19b72 | goto label_77;
| }
0x0001944e blx 0x5cd4 | r0 = gethostname_full ();
0x00019452 cmp r0, 5 |
| if (r0 > 5) {
0x00019454 bgt.w 0x19d8a | goto label_78;
| }
| label_33:
0x00019458 ldr.w r3, [pc, 0xa78] |
0x0001945c movs r1, 0x61 | r1 = 0x61;
0x0001945e ldr r0, [sp, 0x5c] | r0 = var_5ch;
0x00019460 add r3, pc | r3 = 0x33338;
0x00019462 mov r2, r3 | r2 = r3;
0x00019464 str r3, [sp, 0x34] | var_34h_2 = r3;
0x00019466 blx 0x603c | r0 = fcn_0000603c ();
0x0001946a subs r1, r0, 0 | r1 = r0 - 0;
| if (r1 >= r0) {
0x0001946c bge 0x19480 | goto label_32;
| }
0x0001946e b.w 0x19e02 | goto label_79;
| do {
| if (r1 == r0) {
0x00019472 beq.w 0x19d46 | goto label_80;
| }
0x00019476 blx 0x5cd4 | r0 = gethostname_full ();
0x0001947a cmp r0, 5 |
| if (r0 > 5) {
0x0001947c bgt.w 0x19d5e | goto label_81;
| }
| label_32:
0x00019480 movs r3, 0 | r3 = 0;
0x00019482 ldr r0, [sp, 0x5c] | r0 = var_5ch;
0x00019484 ldr r1, [sp, 0x34] | r1 = var_34h_2;
0x00019486 mov r2, r8 | r2 = r8;
0x00019488 str r7, [sp, 8] | var_8h_2 = r7;
0x0001948a strd r6, r3, [sp] | __asm ("strd r6, r3, [sp]");
0x0001948e blx 0x636c | r0 = fcn_0000636c ();
0x00019492 cmp r0, 0 |
0x00019494 bge 0x19472 |
| } while (r0 >= 0);
0x00019496 str r0, [sp, 0x1c] | var_1ch = r0;
0x00019498 blx 0x5cd4 | r0 = gethostname_full ();
0x0001949c cmp r0, 2 |
0x0001949e ldr r1, [sp, 0x1c] | r1 = var_1ch;
| if (r0 > 2) {
0x000194a0 bgt.w 0x1a14a | goto label_82;
| }
| label_21:
0x000194a4 rsbs r6, r1, 0 | r6 = r1 - ;
0x000194a6 bic r6, r6, 0x40000000 | r6 = BIT_MASK (r6, 0x40000000);
0x000194aa rsbs r6, r6, 0 | r6 -= ;
| label_22:
0x000194ac add.w r8, sp, 0x70 | r8 += var_1e0h;
0x000194b0 cmp r6, 0 |
0x000194b2 ldr r0, [sp, 0x44] | r0 = var_44h;
0x000194b4 it ge |
| if (r6 < 0) {
0x000194b6 mvnge r6, 0x55 | r6 = ~0x55;
| }
0x000194ba blx 0x5f0c | fcn_00005f0c ();
| label_8:
0x000194be ldr r0, [sp, 0x5c] | r0 = var_5ch;
| if (r0 != 0) {
0x000194c0 cbz r0, 0x194c6 |
0x000194c2 blx 0x62ac | fcn_000062ac ();
| }
0x000194c6 ldr r3, [sp, 0x38] | r3 = var_38h_2;
0x000194c8 cmp r3, 0 |
| if (r3 != 0) {
0x000194ca bne.w 0x197b6 | goto label_13;
| }
0x000194ce mov r0, r6 | r0 = r6;
0x000194d0 mov r1, r8 | r1 = r8;
0x000194d2 bl 0x1ad44 | fcn_0001ad44 (r0, r1);
0x000194d6 str r0, [sp, 0x38] | var_38h_2 = r0;
0x000194d8 b 0x197b6 | goto label_13;
| label_60:
0x000194da ldr r7, [r5] | r7 = *(r5);
0x000194dc mov r0, r7 | r0 = r7;
0x000194de bl 0x191e4 | r0 = fcn_000191e4 (r0);
0x000194e2 cmn.w r0, 0x16 |
| if (r0 == 0x16) {
0x000194e6 beq.w 0x19628 | goto label_83;
| }
0x000194ea ldr.w r3, [pc, 0x9ec] |
0x000194ee add.w r0, r0, r0, lsl 1 | r0 += (r0 << 1);
0x000194f2 lsls r0, r0, 2 | r0 <<= 2;
0x000194f4 add r3, pc | r3 = 0x333d2;
0x000194f6 ldr r7, [r3, r0] | r7 = *(0x333d2);
0x000194f8 add r3, r0 | r3 += r0;
0x000194fa ldr r6, [r3, 8] | r6 = *(0x333da);
0x000194fc cmp r7, 0 |
| if (r7 != 0) {
0x000194fe bne.w 0x192da | goto label_0;
| }
| label_17:
0x00019502 ldr.w r3, [pc, 0x9a0] | r3 = *(0x19ea6);
0x00019506 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x0001950a ldrb r3, [r3] | r3 = *(r3);
0x0001950c cmp r3, 0 |
| if (r3 == 0) {
0x0001950e beq.w 0x19bf0 | goto label_84;
| }
0x00019512 ldr.w r3, [pc, 0x9c8] |
0x00019516 ldr.w sb, [pc, 0x9c8] |
0x0001951a add r3, pc | r3 = 0x333fc;
0x0001951c add sb, pc | sb = 0x33402;
0x0001951e str r3, [sp, 0x2c] | var_2ch = r3;
0x00019520 b 0x192f8 | goto label_1;
| label_64:
0x00019522 ldr.w r1, [pc, 0x9c0] |
0x00019526 mov.w r2, 0x146 | r2 = 0x146;
0x0001952a ldr.w r3, [pc, 0x9bc] |
0x0001952e movs r0, 3 | r0 = 3;
0x00019530 add r1, pc | r1 = 0x3341a;
0x00019532 add r3, pc | r3 = 0x33420;
0x00019534 adds r1, 7 | r1 += 7;
0x00019536 blx 0x6920 | r0 = fcn_00006920 ();
0x0001953a mov sl, r0 | sl = r0;
| do {
| label_59:
0x0001953c ldr r0, [sp, 0x54] | r0 = var_54h;
| if (r0 != 0) {
| label_2:
0x0001953e cbz r0, 0x19546 |
0x00019540 blx 0x67b4 | mktime (r0);
0x00019544 str r0, [sp, 0x54] | var_54h = r0;
| }
| label_10:
0x00019546 ldr r0, [sp, 0x50] | r0 = var_50h;
0x00019548 blx 0x59e0 | unit_file_state_to_string ();
0x0001954c ldr r0, [sp, 0x4c] | r0 = var_4ch;
0x0001954e movs r3, 0 | r3 = 0;
0x00019550 str r3, [sp, 0x50] | var_50h = r3;
| if (r0 != 0) {
0x00019552 cbz r0, 0x1955a |
0x00019554 blx 0x5dc8 | fcn_00005dc8 ();
0x00019558 str r0, [sp, 0x4c] | var_4ch = r0;
| }
0x0001955a ldr r0, [sp, 0x48] | r0 = var_48h;
| if (r0 != 0) {
0x0001955c cbz r0, 0x19562 |
0x0001955e blx 0x59ac | fcn_000059ac ();
| }
0x00019562 ldr.w r2, [pc, 0x988] |
0x00019566 ldr.w r3, [pc, 0x918] | r3 = *(0x19e82);
0x0001956a add r2, pc | r2 = 0x3345c;
0x0001956c ldr r3, [r2, r3] | r3 = *(0x3345c);
0x0001956e ldr r2, [r3] | r2 = *(0x3345c);
0x00019570 ldr r3, [sp, 0x9c] | r3 = var_9ch;
0x00019572 eors r2, r3 | r2 ^= r3;
0x00019574 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00019578 bne.w 0x1a256 | goto label_85;
| }
0x0001957c mov r0, sl | r0 = sl;
0x0001957e add sp, 0xa4 |
0x00019580 vpop {d8} | __asm ("vpop {d8}");
0x00019584 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_67:
0x00019588 vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x0001958c movs r3, 0 | r3 = 0;
0x0001958e str r3, [sp, 0x6c] | var_6ch = r3;
0x00019590 str r3, [sp, 0x88] | var_1f8h = r3;
0x00019592 vstr d16, [sp, 0x80] | __asm ("vstr d16, [sp, 0x80]");
0x00019596 blx 0x5cd4 | gethostname_full ();
0x0001959a ldr.w r3, [pc, 0x910] | r3 = *(0x19eae);
0x0001959e cmp r0, 6 |
0x000195a0 ldr r5, [sp, 0x58] | r5 = c;
0x000195a2 ldr.w sl, [sp, 0x4c] | sl = var_4ch;
0x000195a6 ldr.w r6, [fp, r3] | r6 = *((fp + r3));
| if (r0 > 6) {
0x000195aa ble 0x195de |
0x000195ac ldrb r3, [r6] | r3 = *(r6);
0x000195ae cmp r3, 0 |
| if (r3 == 0) {
0x000195b0 beq.w 0x19cb2 | goto label_86;
| }
0x000195b4 ldr.w r3, [pc, 0x938] |
0x000195b8 add r3, pc | r3 = 0x334ac;
| label_27:
0x000195ba str r3, [sp, 8] | var_8h_2 = r3;
0x000195bc movs r1, 0 | r1 = 0;
0x000195be ldr.w r3, [pc, 0x934] |
0x000195c2 movs r0, 7 | r0 = 7;
0x000195c4 ldr.w r2, [pc, 0x930] |
0x000195c8 add r3, pc | r3 = 0x334c2;
0x000195ca str r3, [sp, 4] | var_4h_2 = r3;
0x000195cc add r2, pc | r2 = 0x334c8;
0x000195ce ldr.w r3, [pc, 0x92c] |
0x000195d2 adds r2, 7 | r2 += 7;
0x000195d4 add r3, pc | r3 = 0x334d6;
0x000195d6 str r3, [sp] | *(sp) = r3;
0x000195d8 movs r3, 0xbb | r3 = 0xbb;
0x000195da blx 0x6008 | fcn_00006008 ();
| }
0x000195de ldrb r6, [r6] | r6 = *(r6);
0x000195e0 cmp r6, 0 |
| if (r6 == 0) {
0x000195e2 beq.w 0x19a68 | goto label_87;
| }
0x000195e6 add r7, sp, 0x80 | r7 += var_80h;
| label_15:
0x000195e8 mov.w sl, 0 | sl = 0;
| label_28:
0x000195ec mov r0, r7 | r0 = r7;
0x000195ee blx 0x5f0c | fcn_00005f0c ();
0x000195f2 ldr r0, [sp, 0x6c] | r0 = var_6ch;
| if (r0 != 0) {
0x000195f4 cbz r0, 0x195fa |
0x000195f6 blx 0x62ac | fcn_000062ac ();
| }
| label_30:
0x000195fa ldr r3, [sp, 0x30] | r3 = var_30h;
0x000195fc ldrb r3, [r3] | r3 = *(r3);
0x000195fe cmp r3, 0 |
| if (r3 == 0) {
0x00019600 beq.w 0x19bfe | goto label_88;
| }
| label_26:
0x00019604 ldrb r3, [r4] | r3 = *(r4);
0x00019606 cmp r3, 0 |
0x00019608 beq 0x1953c |
| } while (r3 == 0);
0x0001960a ldr r0, [sp, 0x48] | r0 = var_48h;
0x0001960c blx 0x62c4 | r0 = fcn_000062c4 ();
0x00019610 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00019612 blt.w 0x1a094 | goto label_89;
| }
0x00019614 strh r7, [r7, 0x28] | *((r7 + 0x28)) = r7;
0x00019616 cmp r4, 1 |
0x00019618 it eq |
| if (r4 == 1) {
0x0001961a cmpeq sl, 0 | __asm ("cmpeq sl, 0");
| }
0x0001961e ldr r0, [sp, 0x54] | r0 = var_54h;
0x00019620 it eq |
| if (r4 != 1) {
0x00019622 moveq sl, 1 | sl = 1;
| }
0x00019626 b 0x1953e | goto label_2;
| label_83:
0x00019628 ldr.w r8, [pc, 0x8d4] |
0x0001962c mov r0, r7 | r0 = r7;
0x0001962e add r8, pc | r8 = 0x33532;
0x00019630 mov r1, r8 | r1 = r8;
0x00019632 blx 0x6670 | r0 = hashmap_contains ();
0x00019636 cmp r0, 0 |
| if (r0 == 0) {
0x00019638 beq.w 0x19b04 | goto label_90;
| }
0x0001963c ldr.w r3, [pc, 0x864] | r3 = *(0x19ea4);
0x00019640 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00019644 ldrb r3, [r3] | r3 = *(r3);
0x00019646 cmp r3, 0 |
| if (r3 != 0) {
0x00019648 bne.w 0x19cce | goto label_91;
| }
0x0001964c ldr.w sb, [pc, 0x8b4] |
0x00019650 mov r6, r3 | r6 = r3;
0x00019652 mov r8, r3 | r8 = r3;
0x00019654 add sb, pc | sb = 0x3355c;
0x00019656 b 0x19664 |
| while (r0 == 0) {
| label_3:
0x00019658 adds r6, 3 | r6 += 3;
0x0001965a add.w r8, r8, 1 | r8++;
0x0001965e cmp r6, 0x24 |
| if (r6 == 0x24) {
0x00019660 beq.w 0x19e30 | goto label_92;
| }
0x00019664 ldr.w r0, [sb, r6, lsl 2] | offset_0 = r6 << 2;
| r0 = *((sb + offset_0));
0x00019668 cmp r0, 0 |
0x0001966a beq 0x19658 |
| }
0x0001966c mov r1, r7 | r1 = r7;
0x0001966e blx 0x6670 | r0 = hashmap_contains ();
0x00019672 cmp r0, 0 |
| if (r0 != 0) {
0x00019674 bne 0x19658 | goto label_3;
| }
0x00019676 add.w r8, r8, r8, lsl 1 | r8 += (r8 << 1);
0x0001967a add.w sb, sb, r8, lsl 2 | sb += (r8 << 2);
0x0001967e ldr.w sb, [sb, 4] | sb = *((sb + 4));
| label_36:
0x00019682 ldr.w sl, [pc, 0x884] |
0x00019686 movs r6, 0 | r6 = 0;
0x00019688 mov r8, r6 | r8 = r6;
0x0001968a add sl, pc | sl = 0x33598;
0x0001968c b 0x1969a |
| while (r0 == 0) {
| label_4:
0x0001968e adds r6, 3 | r6 += 3;
0x00019690 add.w r8, r8, 1 | r8++;
0x00019694 cmp r6, 0x24 |
| if (r6 == 0x24) {
0x00019696 beq.w 0x19e38 | goto label_93;
| }
0x0001969a ldr.w r0, [sl, r6, lsl 2] | offset_1 = r6 << 2;
| r0 = *((sl + offset_1));
0x0001969e cmp r0, 0 |
0x000196a0 beq 0x1968e |
| }
0x000196a2 mov r1, r7 | r1 = r7;
0x000196a4 blx 0x6670 | r0 = hashmap_contains ();
0x000196a8 cmp r0, 0 |
| if (r0 != 0) {
0x000196aa bne 0x1968e | goto label_4;
| }
0x000196ac add.w r3, r8, r8, lsl 1 | r3 = r8 + (r8 << 1);
0x000196b0 add.w r3, sl, r3, lsl 2 | r3 = sl + (r3 << 2);
0x000196b4 ldr r3, [r3, 8] | r3 = *((r3 + 8));
0x000196b6 str r3, [sp, 0x2c] | var_2ch = r3;
| label_37:
0x000196b8 ldr.w r3, [pc, 0x850] | r3 = *(0x19f0c);
0x000196bc ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x000196c0 ldr r6, [r3] | r6 = *(0x19f0c);
0x000196c2 cmp r6, 0 |
| if (r6 == 0) {
0x000196c4 beq.w 0x1a12e | goto label_94;
| }
| label_43:
0x000196c8 movs r7, 0 | r7 = 0;
| label_25:
0x000196ca mov r0, r5 | r0 = r5;
0x000196cc ldr r5, [sp, 0x58] | r5 = c;
0x000196ce movs r1, 1 | r1 = 1;
0x000196d0 blx 0x5f9c | fcn_00005f9c ();
0x000196d4 mov r2, r7 | r2 = r7;
0x000196d6 add r7, sp, 0x80 | r7 += var_80h;
0x000196d8 mov r1, r0 | r1 = r0;
0x000196da add r3, sp, 0x54 | r3 += var_54h;
0x000196dc mov r0, r5 | r0 = r5;
0x000196de str r7, [sp] | *(sp) = r7;
0x000196e0 bl 0x1c234 | r0 = fcn_0001c234 (r0, r1, r2, r3, r4, r5, r6);
0x000196e4 subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x000196e6 blt.w 0x19d22 | goto label_95;
| }
0x000196ea ldr.w r3, [pc, 0x824] | r3 = *(0x19f12);
0x000196ee ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x000196f2 ldrb r3, [r3] | r3 = *(r3);
0x000196f4 cmp r3, 0 |
| if (r3 != 0) {
0x000196f6 bne.w 0x192f8 | goto label_1;
| }
0x000196fa ldrb.w r3, [sp, 0x80] | r3 = var_80h;
0x000196fe cmp r3, 0 |
| if (r3 == 0) {
0x00019700 beq.w 0x192f8 | goto label_1;
| }
0x00019704 ldr.w r1, [pc, 0x80c] |
0x00019708 ldr r0, [sp, 0x2c] | r0 = var_2ch;
0x0001970a add r1, pc | r1 = 0x33622;
0x0001970c blx 0x6670 | r0 = hashmap_contains ();
0x00019710 cmp r0, 0 |
| if (r0 != 0) {
0x00019712 bne.w 0x192f8 | goto label_1;
| }
0x00019716 ldr.w r3, [pc, 0x800] | r3 = *(0x19f1a);
0x0001971a ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x0001971e ldrb r3, [r3] | r3 = *(r3);
0x00019720 cmp r3, 0 |
| if (r3 != 0) {
0x00019722 bne.w 0x192f8 | goto label_1;
| }
0x00019726 blx 0x5cd4 | r0 = gethostname_full ();
0x0001972a cmp r0, 3 |
| if (r0 <= 3) {
0x0001972c ble.w 0x192f8 | goto label_1;
| }
0x00019730 blx 0x5ac4 | r0 = table_add_cell_full ();
0x00019734 cmp r0, 0 |
| if (r0 == 0) {
0x00019736 beq.w 0x1a24e | goto label_96;
| }
0x0001973a ldr.w r5, [pc, 0x7e0] |
0x0001973e add r5, pc | r5 = 0x33660;
| label_48:
0x00019740 blx 0x5ac4 | r0 = table_add_cell_full ();
0x00019744 cmp r0, 0 |
| if (r0 == 0) {
0x00019746 beq.w 0x1a246 | goto label_97;
| }
0x0001974a ldr.w r3, [pc, 0x7d4] |
0x0001974e add r3, pc | r3 = 0x33674;
| label_47:
0x00019750 strd r5, r3, [sp, 8] | __asm ("strd r5, r3, [var_8h_2]");
0x00019754 movs r1, 0 | r1 = 0;
0x00019756 ldr.w r5, [pc, 0x7cc] |
0x0001975a movs r0, 4 | r0 = 4;
0x0001975c ldr.w r3, [pc, 0x7c8] |
0x00019760 ldr.w r7, [pc, 0x7c8] |
0x00019764 add r5, pc | r5 = 0x3368e;
0x00019766 add r3, pc | r3 = 0x33692;
0x00019768 adds r5, 7 | r5 += 7;
0x0001976a add r7, pc | r7 = 0x3369a;
0x0001976c mov r2, r5 | r2 = r5;
0x0001976e str r3, [sp, 4] | var_4h_2 = r3;
0x00019770 movw r3, 0x14f | r3 = 0x14f;
0x00019774 str r7, [sp] | *(sp) = r7;
0x00019776 blx 0x6008 | fcn_00006008 ();
0x0001977a blx 0x5cd4 | r0 = gethostname_full ();
0x0001977e cmp r0, 4 |
| if (r0 <= 4) {
0x00019780 ble.w 0x192f8 | goto label_1;
| }
0x00019784 ldr.w r3, [pc, 0x7a8] |
0x00019788 mov r2, r5 | r2 = r5;
0x0001978a movs r1, 0 | r1 = 0;
0x0001978c str r7, [sp] | *(sp) = r7;
0x0001978e movs r0, 5 | r0 = 5;
0x00019790 add r3, pc | r3 = 0x336c4;
0x00019792 str r3, [sp, 4] | var_4h_2 = r3;
0x00019794 mov.w r3, 0x152 | r3 = 0x152;
0x00019798 blx 0x6008 | fcn_00006008 ();
0x0001979c b 0x192f8 | goto label_1;
| label_73:
0x0001979e cmp r3, 0 |
| if (r3 == 0) {
0x000197a0 beq.w 0x193ce | goto label_5;
| }
| label_14:
0x000197a4 add.w r8, sp, 0x70 | r8 += var_1e0h;
| label_9:
0x000197a8 ldr r1, [sp, 0x3c] | r1 = var_3ch;
0x000197aa mov r0, sl | r0 = sl;
0x000197ac blx 0x6670 | r0 = hashmap_contains ();
0x000197b0 cmp r0, 0 |
| if (r0 == 0) {
0x000197b2 beq.w 0x19958 | goto label_98;
| }
| label_13:
0x000197b6 mov r0, r8 | r0 = r8;
0x000197b8 blx 0x5f0c | fcn_00005f0c ();
0x000197bc b 0x19340 | goto label_6;
| label_65:
0x000197be ldr r0, [sp, 0x58] | r0 = c;
0x000197c0 add r1, sp, 0x4c | r1 += var_4ch;
0x000197c2 blx 0x6060 | r0 = fcn_00006060 ();
0x000197c6 subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 >= r0) {
0x000197c8 bge.w 0x1930a | goto label_7;
| }
0x000197cc blx 0x5cd4 | r0 = gethostname_full ();
0x000197d0 cmp r0, 2 |
| if (r0 <= 2) {
0x000197d2 ble.w 0x19a50 | goto label_99;
| }
0x000197d6 ldr.w r2, [pc, 0x75c] |
0x000197da movw r3, 0x15b | r3 = 0x15b;
0x000197de ldr.w r4, [pc, 0x758] |
0x000197e2 ldr.w r0, [pc, 0x758] |
0x000197e6 add r2, pc | r2 = 0x33720;
0x000197e8 add r4, pc | r4 = 0x33726;
0x000197ea add r0, pc | r0 = 0x3372c;
| label_20:
0x000197ec strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x000197f0 mov r1, r5 | r1 = r5;
0x000197f2 adds r2, 7 | r2 += 7;
0x000197f4 movs r0, 3 | r0 = 3;
0x000197f6 blx 0x6008 | r0 = fcn_00006008 ();
0x000197fa mov sl, r0 | sl = r0;
0x000197fc b 0x19a5a | goto label_39;
| label_76:
0x000197fe ldr.w r1, [pc, 0x740] |
0x00019802 mov r0, r8 | r0 = r8;
0x00019804 add r1, pc | r1 = 0x3374a;
0x00019806 blx 0x5920 | r0 = sd_bus_error_has_name ();
0x0001980a cmp r0, 0 |
| if (r0 == 0) {
0x0001980c beq.w 0x1998a | goto label_100;
| }
0x00019810 blx 0x5cd4 | r0 = gethostname_full ();
0x00019814 cmp r0, 4 |
| if (r0 > 4) {
0x00019816 bgt.w 0x19e40 | goto label_101;
| }
0x0001981a ldr r0, [sp, 0x44] | r0 = var_44h;
0x0001981c blx 0x5f0c | fcn_00005f0c ();
| label_38:
0x00019820 ldr.w r3, [pc, 0x720] |
0x00019824 add.w r8, sp, 0x70 | r8 += var_1e0h;
0x00019828 ldr r1, [sp, 0x34] | r1 = var_34h_2;
0x0001982a mov r2, sl | r2 = sl;
0x0001982c ldr r0, [sp, 0x1c] | r0 = var_1ch;
0x0001982e add r3, pc | r3 = 0x33776;
0x00019830 str r7, [sp] | *(sp) = r7;
0x00019832 str r3, [sp, 4] | var_4h_2 = r3;
0x00019834 mov r3, r8 | r3 = r8;
0x00019836 strd r4, sb, [sp, 8] | __asm ("strd r4, sb, [var_8h_2]");
0x0001983a blx 0x5fe4 | r0 = fcn_00005fe4 ();
0x0001983e subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 < r0) {
0x00019840 blt.w 0x1999e | goto label_102;
| }
0x00019844 ldr.w r1, [pc, 0x700] |
0x00019848 add r2, sp, 0x60 | r2 += var_60h_2;
0x0001984a ldr r0, [sp, 0x5c] | r0 = var_5ch;
0x0001984c add r1, pc | r1 = 0x33798;
0x0001984e blx 0x636c | r0 = fcn_0000636c ();
0x00019852 subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 < r0) {
0x00019854 blt.w 0x19cf8 | goto label_103;
| }
| label_31:
0x00019858 ldr r0, [sp, 0x1c] | r0 = var_1ch;
0x0001985a mov r1, r4 | r1 = r4;
0x0001985c bl 0x1b23c | r0 = fcn_0001b23c (r0, r1);
0x00019860 cmp r0, 0 |
| if (r0 > 0) {
0x00019862 bgt.w 0x19b0e | goto label_104;
| }
| label_18:
0x00019866 ldr r3, [sp, 0x20] | r3 = var_20h;
| if (r3 != 0) {
0x00019868 cbz r3, 0x19882 |
0x0001986a blx 0x5cd4 | r0 = gethostname_full ();
0x0001986e cmp r0, 6 |
| if (r0 > 6) {
0x00019870 bgt.w 0x19b32 | goto label_105;
| }
| label_19:
0x00019874 ldr r0, [sp, 0x20] | r0 = var_20h;
0x00019876 ldr r1, [sp, 0x60] | r1 = var_60h_2;
0x00019878 blx 0x5e4c | r0 = fcn_00005e4c ();
0x0001987c subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 < r0) {
0x0001987e blt.w 0x19ba4 | goto label_106;
| }
| }
0x00019882 ldr r3, [sp, 0x28] | r3 = var_28h;
| if (r3 != 0) {
0x00019884 cbz r3, 0x198b4 |
0x00019886 movs r3, 0 | r3 = 0;
0x00019888 ldr r0, [sp, 0x28] | r0 = var_28h;
0x0001988a movs r2, 6 | r2 = 6;
0x0001988c mov r1, r4 | r1 = r4;
0x0001988e str r3, [sp] | *(sp) = r3;
0x00019890 blx 0x6354 | r0 = fcn_00006354 ();
0x00019894 subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 >= r0) {
0x00019896 bge 0x198b4 | goto label_107;
| }
0x00019898 blx 0x5cd4 | r0 = gethostname_full ();
0x0001989c cmp r0, 2 |
| if (r0 > 2) {
0x0001989e bgt.w 0x1a1ee | goto label_108;
| }
| label_23:
0x000198a2 rsbs r6, r6, 0 | r6 -= ;
0x000198a4 bic r6, r6, 0x40000000 | r6 = BIT_MASK (r6, 0x40000000);
0x000198a8 rsbs r6, r6, 0 | r6 -= ;
| label_24:
0x000198aa cmp r6, 0 |
0x000198ac it ge |
| if (r6 < 0) {
0x000198ae mvnge r6, 0x55 | r6 = ~0x55;
| }
0x000198b2 b 0x194be | goto label_8;
| }
| label_107:
0x000198b4 ldr r0, [sp, 0x5c] | r0 = var_5ch;
0x000198b6 cmp r0, 0 |
| if (r0 == 0) {
0x000198b8 beq.w 0x197a8 | goto label_9;
| }
0x000198bc blx 0x62ac | fcn_000062ac ();
0x000198c0 b 0x197a8 | goto label_9;
| label_58:
0x000198c2 blx 0x5cd4 | r0 = gethostname_full ();
0x000198c6 cmp r0, 2 |
0x000198c8 it le |
| if (r0 <= 2) {
0x000198ca mvnle sl, 0x15 | sl = ~0x15;
| goto label_109;
| }
| if (r0 <= 2) {
| label_109:
0x000198ce ble.w 0x19546 | goto label_10;
| }
0x000198d2 ldr.w r2, [pc, 0x678] |
0x000198d6 movs r1, 0x16 | r1 = 0x16;
0x000198d8 ldr.w r0, [pc, 0x674] |
0x000198dc movw r3, 0x10f | r3 = 0x10f;
0x000198de asrs r7, r1, 0xc | r7 = r1 >> 0xc;
0x000198e0 ldr.w r4, [pc, 0x670] |
0x000198e4 movt r1, 0x4000 | r1 = (r1 & 0xFFFF) | 0x40000000;
0x000198e8 add r2, pc | r2 = 0x3383a;
0x000198ea add r0, pc | r0 = 0x3383e;
0x000198ec adds r2, 7 | r2 += 7;
0x000198ee add r4, pc | r4 = 0x33846;
0x000198f0 str r0, [sp, 4] | var_4h_2 = r0;
0x000198f2 str r4, [sp] | *(sp) = r4;
0x000198f4 movs r0, 3 | r0 = 3;
0x000198f6 blx 0x6008 | r0 = fcn_00006008 ();
0x000198fa subs.w sl, r0, 0 | sl = r0 - 0;
0x000198fe ldr r0, [sp, 0x54] | r0 = var_54h;
0x00019900 it ge |
| if (sl < r0) {
0x00019902 mvnge sl, 0x55 | sl = ~0x55;
| }
0x00019906 b 0x1953e | goto label_2;
| label_66:
0x00019908 ldr.w r3, [pc, 0x5b8] | r3 = *(0x19ec4);
0x0001990c movs r1, 0 | r1 = 0;
0x0001990e ldr r0, [sp, 0x58] | r0 = c;
0x00019910 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00019914 strd r1, r1, [sp, 4] | __asm ("strd r1, r1, [var_4h_2]");
0x00019918 str r1, [sp] | *(sp) = r1;
0x0001991a ldr r2, [r3] | r2 = *(0x19ec4);
0x0001991c ldr.w r3, [pc, 0x638] |
0x00019920 add r3, pc | r3 = 0x3387c;
0x00019922 blx 0x5d04 | r0 = putchar (r0);
0x00019926 subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x00019928 blt.w 0x19a46 | goto label_110;
| }
0x0001992c ldr r0, [sp, 0x58] | r0 = c;
0x0001992e add r1, sp, 0x48 | r1 += var_48h;
0x00019930 blx 0x58f0 | r0 = bus_wait_for_units_new ();
0x00019934 subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 >= r0) {
0x00019936 bge.w 0x19312 | goto label_11;
| }
0x0001993a blx 0x5cd4 | r0 = gethostname_full ();
0x0001993e cmp r0, 2 |
| if (r0 > 2) {
0x00019940 bgt.w 0x1a136 | goto label_111;
| }
| label_29:
0x00019944 rsbs r3, r5, 0 | r3 = r5 - ;
0x00019946 bic r3, r3, 0x40000000 | r3 = BIT_MASK (r3, 0x40000000);
0x0001994a rsb.w sl, r3, 0 | sl = r3 - ;
0x0001994e b 0x19a5a | goto label_39;
| label_74:
0x00019950 ldr.w r3, [pc, 0x608] |
0x00019954 add r3, pc | r3 = 0x338b4;
0x00019956 b 0x1939a | goto label_12;
| label_98:
0x00019958 ldr r1, [r5] | r1 = *(r5);
0x0001995a add r0, sp, 0x50 | r0 += var_50h;
0x0001995c blx 0x5d98 | r0 = fcn_00005d98 ();
0x00019960 cmp r0, 0 |
| if (r0 >= 0) {
0x00019962 bge.w 0x197b6 | goto label_13;
| }
0x00019966 ldr.w r1, [pc, 0x5f8] |
0x0001996a mov.w r2, 0x176 | r2 = 0x176;
0x0001996e ldr.w r3, [pc, 0x5f4] |
0x00019972 movs r0, 3 | r0 = 3;
0x00019974 add r1, pc | r1 = 0x338da;
0x00019976 add r3, pc | r3 = 0x338e0;
0x00019978 adds r1, 7 | r1 += 7;
0x0001997a blx 0x6920 | r0 = fcn_00006920 ();
0x0001997e mov sl, r0 | sl = r0;
0x00019980 mov r0, r8 | r0 = r8;
0x00019982 blx 0x5f0c | fcn_00005f0c ();
0x00019986 ldr r0, [sp, 0x54] | r0 = var_54h;
0x00019988 b 0x1953e | goto label_2;
| label_100:
0x0001998a ldr r7, [sp, 0x44] | r7 = var_44h;
0x0001998c add.w r8, sp, 0x70 | r8 += var_1e0h;
0x00019990 mov r0, r8 | r0 = r8;
0x00019992 mov r1, r7 | r1 = r7;
0x00019994 blx 0x6150 | fcn_00006150 ();
0x00019998 mov r0, r7 | r0 = r7;
0x0001999a blx 0x5f0c | fcn_00005f0c ();
| label_102:
0x0001999e ldr r3, [sp, 0x24] | r3 = var_24h;
0x000199a0 ldr r3, [r3] | r3 = *(r3);
0x000199a2 cmp r3, 0 |
| if (r3 != 0) {
0x000199a4 bne.w 0x194be | goto label_8;
| }
0x000199a8 blx 0x5cd4 | r0 = gethostname_full ();
0x000199ac cmp r0, 2 |
| if (r0 > 2) {
0x000199ae bgt.w 0x19dd4 | goto label_112;
| }
| label_35:
0x000199b2 movs r3, 0 | r3 = 0;
0x000199b4 ldr.w r2, [pc, 0x5b0] |
0x000199b8 ldr.w r1, [pc, 0x5b0] |
0x000199bc mov r0, r8 | r0 = r8;
0x000199be str r3, [sp] | *(sp) = r3;
0x000199c0 ldr.w r3, [pc, 0x5ac] |
0x000199c4 add r2, pc | r2 = 0x33930;
0x000199c6 add r1, pc | r1 = 0x33936;
0x000199c8 add r3, pc | r3 = 0x3393c;
0x000199ca blx 0x5dec | r0 = fcn_00005dec ();
0x000199ce cmp r0, 0 |
| if (r0 != 0) {
0x000199d0 bne.w 0x194be | goto label_8;
| }
0x000199d4 blx 0x5cd4 | r0 = gethostname_full ();
0x000199d8 cmp r0, 2 |
| if (r0 <= 2) {
0x000199da ble.w 0x194be | goto label_8;
| }
0x000199de ldr.w r3, [pc, 0x594] |
0x000199e2 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x000199e6 ldr r3, [r3] | r3 = *(0x19f76);
0x000199e8 cmp r3, 0 |
| if (r3 == 0) {
0x000199ea beq.w 0x1a16a | goto label_113;
| }
0x000199ee ldr.w r2, [pc, 0x588] |
0x000199f2 ldr.w r1, [pc, 0x588] | r1 = sym.imp.boot_config_select_special_entries;
0x000199f6 add r2, pc | r2 = 0x33974;
0x000199f8 add r1, pc | r1 += pc;
| label_44:
0x000199fa ldrb r3, [r4] | r3 = *(r4);
0x000199fc cmp r3, 0x2d |
| if (r3 == 0x2d) {
0x000199fe beq.w 0x1a1e8 | goto label_114;
| }
0x00019a02 ldr.w r3, [pc, 0x57c] |
0x00019a06 add r3, pc | r3 = 0x3398c;
| label_46:
0x00019a08 strd r3, r4, [sp, 0x10] | __asm ("strd r3, r4, [var_10h_2]");
0x00019a0c movs r0, 3 | r0 = 3;
0x00019a0e ldr.w r3, [pc, 0x574] |
0x00019a12 strd r2, r1, [sp, 8] | __asm ("strd r2, r1, [var_8h_2]");
0x00019a16 movs r1, 0 | r1 = 0;
0x00019a18 ldr.w r2, [pc, 0x56c] |
0x00019a1c add r3, pc | r3 = 0x339a6;
0x00019a1e str r3, [sp, 4] | var_4h_2 = r3;
0x00019a20 ldr.w r3, [pc, 0x568] |
0x00019a24 add r2, pc | r2 = 0x339b0;
0x00019a26 adds r2, 7 | r2 += 7;
0x00019a28 add r3, pc | r3 = 0x339b8;
0x00019a2a str r3, [sp] | *(sp) = r3;
0x00019a2c movs r3, 0xaa | r3 = 0xaa;
0x00019a2e blx 0x6008 | fcn_00006008 ();
0x00019a32 b 0x194be | goto label_8;
| label_75:
0x00019a34 ldr r0, [sp, 0x5c] | r0 = var_5ch;
0x00019a36 cmp r0, 0 |
| if (r0 == 0) {
0x00019a38 beq.w 0x197a4 | goto label_14;
| }
0x00019a3c add.w r8, sp, 0x70 | r8 += var_1e0h;
0x00019a40 blx 0x62ac | fcn_000062ac ();
0x00019a44 b 0x197a8 | goto label_9;
| label_110:
0x00019a46 blx 0x5cd4 | r0 = gethostname_full ();
0x00019a4a cmp r0, 2 |
| if (r0 > 2) {
0x00019a4c bgt.w 0x19b5a | goto label_115;
| }
| label_99:
0x00019a50 rsbs r0, r5, 0 | r0 = r5 - ;
0x00019a52 bic r0, r0, 0x40000000 | r0 = BIT_MASK (r0, 0x40000000);
0x00019a56 rsb.w sl, r0, 0 | sl = r0 - ;
| label_39:
0x00019a5a cmp.w sl, 0 |
0x00019a5e ldr r0, [sp, 0x54] | r0 = var_54h;
0x00019a60 it ge |
| if (sl < 0) {
0x00019a62 mvnge sl, 0x55 | sl = ~0x55;
| }
0x00019a66 b 0x1953e | goto label_2;
| label_87:
0x00019a68 ldr.w r3, [pc, 0x458] | r3 = *(0x19ec4);
0x00019a6c add r7, sp, 0x80 | r7 += var_80h;
0x00019a6e ldr.w r2, [pc, 0x520] |
0x00019a72 mov r0, r5 | r0 = r5;
0x00019a74 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00019a78 add r2, pc | r2 = 0x33a0e;
0x00019a7a str r6, [sp, 4] | var_4h_2 = r6;
0x00019a7c ldr r1, [r3] | r1 = *(0x19ec4);
0x00019a7e add r3, sp, 0x6c | r3 += var_6ch;
0x00019a80 str r3, [sp] | *(sp) = r3;
0x00019a82 mov r3, r7 | r3 = r7;
0x00019a84 blx 0x5fe4 | r0 = fcn_00005fe4 ();
0x00019a88 subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x00019a8a blt.w 0x19cd6 | goto label_116;
| }
0x00019a8e ldr r0, [sp, 0x6c] | r0 = var_6ch;
0x00019a90 add r1, sp, 0x70 | r1 += var_1e0h;
0x00019a92 str r6, [sp, 0x70] | var_1e0h = r6;
0x00019a94 blx 0x6384 | r0 = fcn_00006384 ();
0x00019a98 subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x00019a9a blt.w 0x1a0da | goto label_117;
| }
0x00019a9e ldr r0, [sp, 0x70] | r0 = var_1e0h;
0x00019aa0 cmp.w sl, 0 |
| if (sl == 0) {
0x00019aa4 beq.w 0x19e68 | goto label_118;
| }
0x00019aa6 strh r0, [r4, 0xe] | *((r4 + 0xe)) = r0;
0x00019aa8 cmp r0, 0 |
| if (r0 == 0) {
0x00019aaa beq.w 0x195e8 | goto label_15;
| }
0x00019aae ldr.w sb, [pc, 0x4e4] |
0x00019ab2 mov r5, r0 | r5 = r0;
0x00019ab4 ldr.w r6, [pc, 0x4e0] |
0x00019ab8 str r4, [sp, 0x1c] | var_1ch = r4;
0x00019aba add sb, pc | sb = 0x33a54;
0x00019abc add.w sb, sb, 7 | sb += 7;
0x00019ac0 add r6, pc | r6 = 0x33a5c;
0x00019ac2 b 0x19ad2 |
| while (r0 <= 6) {
| label_16:
0x00019ac4 mov r1, r4 | r1 = r4;
0x00019ac6 mov r0, sl | r0 = sl;
0x00019ac8 blx 0x5e4c | r0 = fcn_00005e4c ();
0x00019acc cmp r0, 0 |
| if (r0 < 0) {
0x00019ace blt.w 0x1a174 | goto label_119;
| }
0x00019ad2 mov r8, r5 | r8 = r5;
0x00019ad4 ldr r4, [r5], 4 | r4 = *(r5);
| r5 += 4;
0x00019ad8 cmp r4, 0 |
| if (r4 == 0) {
0x00019ada beq.w 0x19e64 | goto label_120;
| }
0x00019ade blx 0x5cd4 | r0 = gethostname_full ();
0x00019ae2 cmp r0, 6 |
0x00019ae4 ble 0x19ac4 |
| }
0x00019ae6 ldr.w r3, [pc, 0x4b4] |
0x00019aea mov r2, sb | r2 = sb;
0x00019aec strd r6, r4, [sp, 4] | __asm ("strd r6, r4, [var_4h_2]");
0x00019af0 movs r1, 0 | r1 = 0;
0x00019af2 movs r0, 7 | r0 = 7;
0x00019af4 add r3, pc | r3 = 0x33a96;
0x00019af6 str r3, [sp] | *(sp) = r3;
0x00019af8 movs r3, 0xcc | r3 = 0xcc;
0x00019afa blx 0x6008 | fcn_00006008 ();
0x00019afe ldr r4, [r5, -0x4] | r4 = *((r5 - 0x4));
0x00019b02 b 0x19ac4 | goto label_16;
| label_90:
0x00019b04 ldr.w r7, [pc, 0x498] |
0x00019b08 mov r6, r8 | r6 = r8;
0x00019b0a add r7, pc | r7 = 0x33aae;
0x00019b0c b 0x19502 | goto label_17;
| label_104:
0x00019b0e mov r0, r4 | r0 = r4;
0x00019b10 bl 0x1b304 | fcn_0001b304 (r0, r1, r2);
0x00019b14 b 0x19866 | goto label_18;
| label_63:
0x00019b16 ldr.w r1, [pc, 0x48c] |
0x00019b1a movw r2, 0x13b | r2 = 0x13b;
0x00019b1e ldr.w r3, [pc, 0x488] |
0x00019b22 ldr.w r0, [pc, 0x488] |
0x00019b26 add r1, pc | r1 = 0x33ad0;
0x00019b28 add r3, pc | r3 = 0x33ad6;
0x00019b2a adds r1, 7 | r1 += 7;
0x00019b2c add r0, pc | r0 = 0x33ade;
0x00019b2e blx 0x59a0 | fcn_000059a0 ();
0x00019b30 invalid |
| label_105:
0x00019b32 ldr r3, [sp, 0x60] | r3 = var_60h_2;
0x00019b34 movs r1, 0 | r1 = 0;
0x00019b36 ldr.w r2, [pc, 0x478] |
0x00019b3a movs r0, 7 | r0 = 7;
0x00019b3c str r3, [sp, 8] | var_8h_2 = r3;
0x00019b3e ldr.w r3, [pc, 0x474] |
0x00019b42 add r2, pc | r2 = 0x33af8;
0x00019b44 adds r2, 7 | r2 += 7;
0x00019b46 add r3, pc | r3 = 0x33b00;
0x00019b48 str r3, [sp, 4] | var_4h_2 = r3;
0x00019b4a ldr.w r3, [pc, 0x46c] |
0x00019b4e add r3, pc | r3 = 0x33b0c;
0x00019b50 str r3, [sp] | *(sp) = r3;
0x00019b52 movs r3, 0x92 | r3 = 0x92;
0x00019b54 blx 0x6008 | fcn_00006008 ();
0x00019b58 b 0x19874 | goto label_19;
| label_115:
0x00019b5a ldr.w r2, [pc, 0x460] |
0x00019b5e movw r3, 0x161 | r3 = 0x161;
0x00019b62 ldr.w r4, [pc, 0x45c] |
0x00019b66 ldr.w r0, [pc, 0x45c] |
0x00019b6a add r2, pc | r2 = 0x33b2c;
0x00019b6c add r4, pc | r4 = 0x33b32;
0x00019b6e add r0, pc | r0 = 0x33b38;
0x00019b70 b 0x197ec | goto label_20;
| label_77:
0x00019b72 str r1, [sp, 0x1c] | var_1ch = r1;
0x00019b74 blx 0x5cd4 | r0 = gethostname_full ();
0x00019b78 cmp r0, 2 |
0x00019b7a ldr r1, [sp, 0x1c] | r1 = var_1ch;
| if (r0 <= 2) {
0x00019b7c ble.w 0x194a4 | goto label_21;
| }
0x00019b80 ldr.w r3, [pc, 0x444] |
0x00019b84 movs r0, 3 | r0 = 3;
0x00019b86 ldr.w r2, [pc, 0x444] |
0x00019b8a add r3, pc | r3 = 0x33b56;
0x00019b8c str r3, [sp, 4] | var_4h_2 = r3;
0x00019b8e add r2, pc | r2 = 0x33b60;
0x00019b90 ldr.w r3, [pc, 0x43c] |
0x00019b94 adds r2, 7 | r2 += 7;
0x00019b96 add r3, pc | r3 = 0x33b6a;
0x00019b98 str r3, [sp] | *(sp) = r3;
0x00019b9a movs r3, 0x6b | r3 = 0x6b;
0x00019b9c blx 0x6008 | r0 = fcn_00006008 ();
0x00019ba0 mov r6, r0 | r6 = r0;
0x00019ba2 b 0x194ac | goto label_22;
| label_106:
0x00019ba4 blx 0x5cd4 | r0 = gethostname_full ();
0x00019ba8 cmp r0, 2 |
| if (r0 <= 2) {
0x00019baa ble.w 0x198a2 | goto label_23;
| }
0x00019bae ldr.w r3, [pc, 0x424] |
0x00019bb2 mov r1, r6 | r1 = r6;
0x00019bb4 ldr.w r2, [pc, 0x420] |
0x00019bb8 movs r0, 3 | r0 = 3;
0x00019bba str r4, [sp, 8] | var_8h_2 = r4;
0x00019bbc add r3, pc | r3 = 0x33b96;
0x00019bbe str r3, [sp, 4] | var_4h_2 = r3;
0x00019bc0 add r2, pc | r2 = 0x33b9c;
0x00019bc2 ldr.w r3, [pc, 0x418] |
0x00019bc6 adds r2, 7 | r2 += 7;
0x00019bc8 add r3, pc | r3 = 0x33baa;
0x00019bca str r3, [sp] | *(sp) = r3;
0x00019bcc movs r3, 0x95 | r3 = 0x95;
0x00019bce blx 0x6008 | r0 = fcn_00006008 ();
0x00019bd2 mov r6, r0 | r6 = r0;
0x00019bd4 b 0x198aa | goto label_24;
| label_70:
0x00019bd6 ldr.w r1, [pc, 0x408] |
0x00019bda movs r2, 0x45 | r2 = 0x45;
0x00019bdc ldr.w r3, [pc, 0x404] |
0x00019be0 ldr.w r0, [pc, 0x404] |
0x00019be4 add r1, pc | r1 = 0x33bca;
0x00019be6 add r3, pc | r3 = 0x33bce;
0x00019be8 adds r1, 7 | r1 += 7;
0x00019bea add r0, pc | r0 = 0x33bd6;
0x00019bec blx 0x59a0 | fcn_000059a0 ();
| label_84:
0x00019bf0 ldr r3, [pc, 0x3f8] |
0x00019bf2 ldr.w sb, [pc, 0x3fc] |
0x00019bf6 add r3, pc | r3 = 0x33be6;
0x00019bf8 add sb, pc | sb = 0x33bee;
0x00019bfa str r3, [sp, 0x2c] | var_2ch = r3;
0x00019bfc b 0x196ca | goto label_25;
| label_88:
0x00019bfe ldr r3, [pc, 0x318] | r3 = *(0x19f1a);
0x00019c00 ldr r0, [sp, 0x4c] | r0 = var_4ch;
0x00019c02 ldr.w r5, [fp, r3] | r5 = *((fp + r3));
0x00019c06 ldr r3, [pc, 0x36c] |
0x00019c08 ldrb r1, [r5] | r1 = *(r5);
0x00019c0a ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00019c0e ldr r3, [r3] | r3 = *(0x19f76);
| if (r3 != 0) {
0x00019c10 cbz r3, 0x19c1a |
0x00019c12 ldr r3, [pc, 0x3e0] |
0x00019c14 add r3, pc | r3 = 0x33c0e;
0x00019c16 str r3, [sp, 0x8c] | var_8ch = r3;
0x00019c18 movs r3, 1 | r3 = 1;
| }
0x00019c1a ldr r2, [pc, 0x3dc] |
0x00019c1c ldr.w r2, [fp, r2] | r2 = *((fp + r2));
0x00019c20 ldr r2, [r2] | r2 = *(0x19ffa);
0x00019c22 cmp r2, 1 |
| if (r2 == 1) {
0x00019c24 beq.w 0x19db6 | goto label_121;
| }
0x00019c28 cmp r2, 2 |
| if (r2 == 2) {
0x00019c2a beq.w 0x1a0d4 | goto label_122;
| }
0x00019c2e cmp r2, 0 |
| if (r2 != 0) {
0x00019c30 bne.w 0x1a232 | goto label_123;
| }
| label_34:
0x00019c34 add r2, sp, 0xa0 | r2 += var_a0h;
0x00019c36 add.w r3, r2, r3, lsl 2 | r3 = r2 + (r3 << 2);
0x00019c3a movs r2, 0 | r2 = 0;
0x00019c3c str r2, [r3, -0x14] | var_14h = r2;
0x00019c40 add r2, sp, 0x8c | r2 += var_8ch;
0x00019c42 blx 0x68b0 | r0 = strdup (r0);
0x00019c46 subs r3, r0, 0 | r3 = r0 - 0;
| if (r3 < r0) {
0x00019c48 blt.w 0x1a0cc | goto label_124;
| }
0x00019c4c ldrb r3, [r5] | r3 = *(r5);
0x00019c4e cmp r3, 0 |
| if (r3 != 0) {
0x00019c50 bne.w 0x19604 | goto label_26;
| }
0x00019c54 ldr r5, [sp, 0x50] | r5 = var_50h;
0x00019c56 cmp r5, 0 |
| if (r5 == 0) {
0x00019c58 beq.w 0x19604 | goto label_26;
| }
0x00019c5c ldr r1, [r5] | r1 = *(r5);
0x00019c5e cmp r1, 0 |
| if (r1 == 0) {
0x00019c60 beq.w 0x19604 | goto label_26;
| }
| do {
0x00019c64 ldr r0, [sp, 0x58] | r0 = c;
0x00019c66 bl 0x1afb8 | fcn_0001afb8 (r0, r1, r2, r3, r4, r5);
0x00019c6a ldr r1, [r5, 4]! | r1 = *((r5 += 4));
0x00019c6e cmp r1, 0 |
0x00019c70 bne 0x19c64 |
| } while (r1 != 0);
0x00019c72 b 0x19604 | goto label_26;
| label_71:
0x00019c74 ldr r1, [pc, 0x384] |
0x00019c76 movs r2, 0x46 | r2 = 0x46;
0x00019c78 ldr r3, [pc, 0x384] |
0x00019c7a ldr r0, [pc, 0x388] |
0x00019c7c add r1, pc | r1 = 0x33c7c;
0x00019c7e add r3, pc | r3 = 0x33c82;
0x00019c80 adds r1, 7 | r1 += 7;
0x00019c82 add r0, pc | r0 = 0x33c8c;
0x00019c84 blx 0x59a0 | fcn_000059a0 ();
| label_72:
0x00019c88 ldr r1, [pc, 0x37c] |
0x00019c8a movs r2, 0x47 | r2 = 0x47;
0x00019c8c ldr r3, [pc, 0x37c] |
0x00019c8e ldr r0, [pc, 0x380] |
0x00019c90 add r1, pc | r1 = 0x33c9c;
0x00019c92 add r3, pc | r3 = 0x33ca2;
0x00019c94 adds r1, 7 | r1 += 7;
0x00019c96 add r0, pc | r0 = 0x33cac;
0x00019c98 blx 0x59a0 | fcn_000059a0 ();
| label_61:
0x00019c9c ldr r1, [pc, 0x374] |
0x00019c9e movw r2, 0x139 | r2 = 0x139;
0x00019ca2 ldr r3, [pc, 0x374] |
0x00019ca4 ldr r0, [pc, 0x374] |
0x00019ca6 add r1, pc | r1 = 0x33cbe;
0x00019ca8 add r3, pc | r3 = 0x33cc6;
0x00019caa adds r1, 7 | r1 += 7;
0x00019cac add r0, pc | r0 = 0x33ccc;
0x00019cae blx 0x59a0 | fcn_000059a0 ();
| label_86:
0x00019cb2 ldr r3, [pc, 0x36c] |
0x00019cb4 add r3, pc | r3 = 0x33cda;
0x00019cb6 b 0x195ba | goto label_27;
| label_62:
0x00019cb8 ldr r1, [pc, 0x368] |
0x00019cba mov.w r2, 0x13a | r2 = 0x13a;
0x00019cbe ldr r3, [pc, 0x368] |
0x00019cc0 ldr r0, [pc, 0x368] |
0x00019cc2 add r1, pc | r1 = 0x33cea;
0x00019cc4 add r3, pc | r3 = 0x33cf2;
0x00019cc6 adds r1, 7 | r1 += 7;
0x00019cc8 add r0, pc | r0 = 0x33cf8;
0x00019cca blx 0x59a0 | fcn_000059a0 ();
| label_91:
0x00019cce mov sb, r6 | sb = r6;
0x00019cd0 str r6, [sp, 0x2c] | var_2ch = r6;
0x00019cd2 b.w 0x192f8 | goto label_1;
| label_116:
0x00019cd6 blx 0x5cd4 | r0 = gethostname_full ();
0x00019cda cmp r0, 2 |
0x00019cdc ittt le |
| if (r0 <= 2) {
0x00019cde rsble r3, r5, 0 | __asm ("rsble r3, r5, 0");
| }
| if (r0 <= 2) {
0x00019ce0 bicle r3, r3, 0x40000000 | __asm ("bicle r3, r3, 0x40000000");
| }
| if (r0 <= 2) {
0x00019ce4 rsb.w sl, r3, 0 | sl = r3 - ;
| }
| if (r0 > 2) {
0x00019ce8 bgt.w 0x1a104 | goto label_125;
| }
| label_42:
0x00019cec cmp.w sl, 0 |
0x00019cf0 it ge |
| if (sl < 0) {
0x00019cf2 mvnge sl, 0x55 | sl = ~0x55;
| }
0x00019cf6 b 0x195ec | goto label_28;
| label_103:
0x00019cf8 blx 0x5cd4 | r0 = gethostname_full ();
0x00019cfc cmp r0, 2 |
| if (r0 <= 2) {
0x00019cfe ble.w 0x198a2 | goto label_23;
| }
0x00019d02 ldr r3, [pc, 0x32c] |
0x00019d04 mov r1, r6 | r1 = r6;
0x00019d06 ldr r2, [pc, 0x32c] |
0x00019d08 movs r0, 3 | r0 = 3;
0x00019d0a add r3, pc | r3 = 0x33d40;
0x00019d0c str r3, [sp, 4] | var_4h_2 = r3;
0x00019d0e add r2, pc | r2 = 0x33d48;
0x00019d10 ldr r3, [pc, 0x324] |
0x00019d12 adds r2, 7 | r2 += 7;
0x00019d14 add r3, pc | r3 = 0x33d50;
0x00019d16 str r3, [sp] | *(sp) = r3;
0x00019d18 movs r3, 0x8b | r3 = 0x8b;
0x00019d1a blx 0x6008 | r0 = fcn_00006008 ();
0x00019d1e mov r6, r0 | r6 = r0;
0x00019d20 b 0x198aa | goto label_24;
| label_95:
0x00019d22 blx 0x5cd4 | r0 = gethostname_full ();
0x00019d26 cmp r0, 2 |
| if (r0 <= 2) {
0x00019d28 ble.w 0x19944 | goto label_29;
| }
0x00019d2c ldr r2, [pc, 0x30c] |
0x00019d2e mov.w r3, 0x14c | r3 = 0x14c;
0x00019d32 ldr r4, [pc, 0x30c] |
0x00019d34 ldr r0, [pc, 0x30c] |
0x00019d36 add r2, pc | r2 = 0x33d76;
0x00019d38 add r4, pc | r4 = 0x33d7e;
0x00019d3a add r0, pc | r0 = 0x33d82;
0x00019d3c b 0x197ec | goto label_20;
| label_69:
0x00019d3e ldr.w sl, [sp, 0x38] | sl = var_38h_2;
0x00019d42 ldr r4, [sp, 0x40] | r4 = var_40h_2;
0x00019d44 b 0x195fa | goto label_30;
| label_80:
0x00019d46 ldr r0, [sp, 0x5c] | r0 = var_5ch;
0x00019d48 blx 0x5fb4 | r0 = fcn_00005fb4 ();
0x00019d4c subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 < r0) {
0x00019d4e blt.w 0x1a1b2 | goto label_126;
| }
0x00019d52 ldr r0, [sp, 0x44] | r0 = var_44h;
0x00019d54 add.w r8, sp, 0x70 | r8 += var_1e0h;
0x00019d58 blx 0x5f0c | fcn_00005f0c ();
0x00019d5c b 0x19858 | goto label_31;
| label_81:
0x00019d5e ldr r3, [sp, 0x68] | r3 = var_68h;
0x00019d60 movs r1, 0 | r1 = 0;
0x00019d62 ldr r2, [pc, 0x2e4] |
0x00019d64 movs r0, 6 | r0 = 6;
0x00019d66 str r3, [sp, 0x10] | var_10h_2 = r3;
0x00019d68 ldr r3, [sp, 0x64] | r3 = var_64h;
0x00019d6a add r2, pc | r2 = 0x33db8;
0x00019d6c adds r2, 7 | r2 += 7;
0x00019d6e str r3, [sp, 0xc] | var_ch = r3;
0x00019d70 ldr r3, [sp, 0x6c] | r3 = var_6ch;
0x00019d72 str r3, [sp, 8] | var_8h_2 = r3;
0x00019d74 ldr r3, [pc, 0x2d4] |
0x00019d76 add r3, pc | r3 = 0x33dc6;
0x00019d78 str r3, [sp, 4] | var_4h_2 = r3;
0x00019d7a ldr r3, [pc, 0x2d4] |
0x00019d7c add r3, pc | r3 = 0x33dd2;
0x00019d7e str r3, [sp] | *(sp) = r3;
0x00019d80 movs r3, 0x79 | r3 = 0x79;
0x00019d82 blx 0x6008 | fcn_00006008 ();
0x00019d86 b.w 0x19480 | goto label_32;
| label_78:
0x00019d8a ldr r3, [sp, 0x68] | r3 = var_68h;
0x00019d8c movs r1, 0 | r1 = 0;
0x00019d8e ldr r2, [pc, 0x2c4] |
0x00019d90 movs r0, 6 | r0 = 6;
0x00019d92 str r3, [sp, 0x10] | var_10h_2 = r3;
0x00019d94 ldr r3, [sp, 0x64] | r3 = var_64h;
0x00019d96 add r2, pc | r2 = 0x33df0;
0x00019d98 adds r2, 7 | r2 += 7;
0x00019d9a str r3, [sp, 0xc] | var_ch = r3;
0x00019d9c ldr r3, [sp, 0x6c] | r3 = var_6ch;
0x00019d9e str r3, [sp, 8] | var_8h_2 = r3;
0x00019da0 ldr r3, [pc, 0x2b4] |
0x00019da2 add r3, pc | r3 = 0x33dfe;
0x00019da4 str r3, [sp, 4] | var_4h_2 = r3;
0x00019da6 ldr r3, [pc, 0x2b4] |
0x00019da8 add r3, pc | r3 = 0x33e0a;
0x00019daa str r3, [sp] | *(sp) = r3;
0x00019dac movs r3, 0x6d | r3 = 0x6d;
0x00019dae blx 0x6008 | fcn_00006008 ();
0x00019db2 b.w 0x19458 | goto label_33;
| label_121:
0x00019db6 ldr r6, [pc, 0x2a8] |
0x00019db8 add r6, pc | r6 = 0x33e1e;
| label_40:
0x00019dba ldr r2, [pc, 0x2a8] |
0x00019dbc add r7, sp, 0xa0 | r7 += var_a0h;
0x00019dbe add.w r7, r7, r3, lsl 2 | r7 += (r3 << 2);
0x00019dc2 adds r3, 2 | r3 += 2;
0x00019dc4 str r6, [r7, -0x14] | var_8ch = r6;
0x00019dc8 ldr.w r2, [fp, r2] | r2 = *((fp + r2));
0x00019dcc ldr r2, [r2] | r2 = *(0x1a066);
0x00019dce str r2, [r7, -0x10] | var_200h = r2;
0x00019dd2 b 0x19c34 | goto label_34;
| label_112:
0x00019dd4 mov r1, r6 | r1 = r6;
0x00019dd6 mov r0, r8 | r0 = r8;
0x00019dd8 blx 0x663c | fcn_0000663c ();
0x00019ddc ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x00019dde mov r1, r6 | r1 = r6;
0x00019de0 ldr r2, [pc, 0x284] |
0x00019de2 strd r4, r0, [sp, 0xc] | __asm ("strd r4, r0, [var_10h_2]");
0x00019de6 movs r0, 3 | r0 = 3;
0x00019de8 str r3, [sp, 8] | var_8h_2 = r3;
0x00019dea ldr r3, [pc, 0x280] |
0x00019dec add r2, pc | r2 = 0x33e58;
0x00019dee adds r2, 7 | r2 += 7;
0x00019df0 add r3, pc | r3 = 0x33e62;
0x00019df2 str r3, [sp, 4] | var_4h_2 = r3;
0x00019df4 ldr r3, [pc, 0x278] |
0x00019df6 add r3, pc | r3 = 0x33e6a;
0x00019df8 str r3, [sp] | *(sp) = r3;
0x00019dfa movs r3, 0xa5 | r3 = 0xa5;
0x00019dfc blx 0x6008 | fcn_00006008 ();
0x00019e00 b 0x199b2 | goto label_35;
| label_79:
0x00019e02 str r1, [sp, 0x1c] | var_1ch = r1;
0x00019e04 blx 0x5cd4 | r0 = gethostname_full ();
0x00019e08 cmp r0, 2 |
0x00019e0a ldr r1, [sp, 0x1c] | r1 = var_1ch;
| if (r0 <= 2) {
0x00019e0c ble.w 0x194a4 | goto label_21;
| }
0x00019e10 ldr r3, [pc, 0x260] |
0x00019e12 movs r0, 3 | r0 = 3;
0x00019e14 ldr r2, [pc, 0x260] |
0x00019e16 add r3, pc | r3 = 0x33e8e;
0x00019e18 str r3, [sp, 4] | var_4h_2 = r3;
0x00019e1a add r2, pc | r2 = 0x33e96;
0x00019e1c ldr r3, [pc, 0x25c] |
0x00019e1e adds r2, 7 | r2 += 7;
0x00019e20 add r3, pc | r3 = 0x33ea0;
0x00019e22 str r3, [sp] | *(sp) = r3;
0x00019e24 movs r3, 0x71 | r3 = 0x71;
0x00019e26 blx 0x6008 | r0 = fcn_00006008 ();
0x00019e2a mov r6, r0 | r6 = r0;
0x00019e2c b.w 0x194ac | goto label_22;
| label_92:
0x00019e30 ldr.w sb, [pc, 0x24c] |
0x00019e34 add sb, pc | sb = 0x33eb8;
0x00019e36 b 0x19682 | goto label_36;
| label_93:
0x00019e38 ldr r3, [pc, 0x248] |
0x00019e3a add r3, pc | r3 = 0x33ec2;
0x00019e3c str r3, [sp, 0x2c] | var_2ch = r3;
0x00019e3e b 0x196b8 | goto label_37;
| label_101:
0x00019e40 ldr r3, [pc, 0x244] |
0x00019e42 movs r1, 0 | r1 = 0;
0x00019e44 ldr r2, [pc, 0x244] |
0x00019e46 movs r0, 5 | r0 = 5;
0x00019e48 add r3, pc | r3 = 0x33ed4;
0x00019e4a str r3, [sp, 4] | var_4h_2 = r3;
0x00019e4c add r2, pc | r2 = 0x33edc;
0x00019e4e ldr r3, [pc, 0x240] |
0x00019e50 adds r2, 7 | r2 += 7;
0x00019e52 add r3, pc | r3 = 0x33ee8;
0x00019e54 str r3, [sp] | *(sp) = r3;
0x00019e56 movs r3, 0x64 | r3 = 0x64;
0x00019e58 blx 0x6008 | fcn_00006008 ();
0x00019e5c ldr r0, [sp, 0x44] | r0 = var_44h;
0x00019e5e blx 0x5f0c | fcn_00005f0c ();
0x00019e62 b 0x19820 | goto label_38;
| label_120:
0x00019e64 ldr r4, [sp, 0x1c] | r4 = var_1ch;
0x00019e66 ldr r0, [sp, 0x70] | r0 = var_1e0h;
| label_118:
0x00019e68 mov.w sl, 0 | sl = 0;
| label_41:
0x00019e6c cmp r0, 0 |
| if (r0 == 0) {
0x00019e6e beq.w 0x195ec | goto label_28;
| }
0x00019e72 blx 0x67b4 | mktime (r0);
0x00019e76 str r0, [sp, 0x70] | var_1e0h = r0;
0x00019e78 b.w 0x195ec | goto label_28;
| label_89:
0x0001a094 blx 0x5cd4 | r0 = gethostname_full ();
0x0001a098 cmp r0, 2 |
0x0001a09a ittt le |
| if (r0 <= 2) {
0x0001a09c rsble r3, r4, 0 | __asm ("rsble r3, r4, 0");
| }
| if (r0 <= 2) {
0x0001a09e bicle r3, r3, 0x40000000 | __asm ("bicle r3, r3, 0x40000000");
| }
| if (r0 > 2) {
0x0001a0a2 rsb.w sl, r3, 0 | sl = r3 - ;
| goto label_127;
| }
| if (r0 <= 2) {
| label_127:
0x0001a0a6 ble.w 0x19a5a | goto label_39;
| }
0x0001a0aa ldr r2, [pc, 0x1b0] |
0x0001a0ac movw r3, 0x18b | r3 = 0x18b;
0x0001a0b0 ldr r5, [pc, 0x1ac] |
0x0001a0b2 mov r1, r4 | r1 = r4;
0x0001a0b4 ldr r0, [pc, 0x1ac] |
0x0001a0b6 add r2, pc | r2 = 0x34318;
0x0001a0b8 add r5, pc | r5 = 0x3431c;
0x0001a0ba adds r2, 7 | r2 += 7;
0x0001a0bc add r0, pc | r0 = 0x34324;
0x0001a0be strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x0001a0c2 movs r0, 3 | r0 = 3;
0x0001a0c4 blx 0x6008 | r0 = fcn_00006008 ();
0x0001a0c8 mov sl, r0 | sl = r0;
0x0001a0ca b 0x19a5a | goto label_39;
| label_124:
0x0001a0cc ldr r0, [sp, 0x54] | r0 = var_54h;
0x0001a0ce mov sl, r3 | sl = r3;
0x0001a0d0 b.w 0x1953e | goto label_2;
| label_122:
0x0001a0d4 ldr r6, [pc, 0x190] |
0x0001a0d6 add r6, pc | r6 = 0x34342;
0x0001a0d8 b 0x19dba | goto label_40;
| label_117:
0x0001a0da blx 0x5cd4 | r0 = gethostname_full ();
0x0001a0de cmp r0, 2 |
0x0001a0e0 ittt le |
| if (r0 <= 2) {
0x0001a0e2 rsble r3, r5, 0 | __asm ("rsble r3, r5, 0");
| }
| if (r0 <= 2) {
0x0001a0e4 bicle r3, r3, 0x40000000 | __asm ("bicle r3, r3, 0x40000000");
| }
| if (r0 <= 2) {
0x0001a0e8 rsb.w sl, r3, 0 | sl = r3 - ;
| }
| if (r0 > 2) {
0x0001a0ec bgt.w 0x1a212 | goto label_128;
| }
| do {
| label_45:
0x0001a0f0 cmp.w sl, 0 |
0x0001a0f4 ldr r0, [sp, 0x70] | r0 = var_1e0h;
0x0001a0f6 it ge |
| if (sl < 0) {
0x0001a0f8 mvnge sl, 0x55 | sl = ~0x55;
| }
0x0001a0fc b 0x19e6c | goto label_41;
| label_68:
0x0001a0fe mov sl, r3 | sl = r3;
0x0001a100 b.w 0x195fa | goto label_30;
| label_125:
0x0001a104 mov r1, r5 | r1 = r5;
0x0001a106 mov r0, r7 | r0 = r7;
0x0001a108 blx 0x663c | fcn_0000663c ();
0x0001a10c ldr r3, [pc, 0x15c] |
0x0001a10e mov r1, r5 | r1 = r5;
0x0001a110 ldr r2, [pc, 0x15c] |
0x0001a112 str r0, [sp, 8] | var_8h_2 = r0;
0x0001a114 movs r0, 3 | r0 = 3;
0x0001a116 add r3, pc | r3 = 0x34386;
0x0001a118 str r3, [sp, 4] | var_4h_2 = r3;
0x0001a11a add r2, pc | r2 = 0x3438e;
0x0001a11c ldr r3, [pc, 0x154] |
0x0001a11e adds r2, 7 | r2 += 7;
0x0001a120 add r3, pc | r3 = 0x34398;
0x0001a122 str r3, [sp] | *(sp) = r3;
0x0001a124 movs r3, 0xc3 | r3 = 0xc3;
0x0001a126 blx 0x6008 | r0 = fcn_00006008 ();
0x0001a12a mov sl, r0 | sl = r0;
0x0001a12c b 0x19cec | goto label_42;
| label_94:
0x0001a12e ldr r6, [pc, 0x148] |
0x0001a130 add r6, pc | r6 = 0x343ae;
0x0001a132 b.w 0x196c8 | goto label_43;
| label_111:
0x0001a136 ldr r2, [pc, 0x144] |
0x0001a138 movw r3, 0x165 | r3 = 0x165;
0x0001a13c ldr r4, [pc, 0x140] |
0x0001a13e ldr r0, [pc, 0x144] |
0x0001a140 add r2, pc | r2 = 0x343c2;
0x0001a142 add r4, pc | r4 = 0x343c6;
0x0001a144 add r0, pc | r0 = 0x343ce;
0x0001a146 b.w 0x197ec | goto label_20;
| label_82:
0x0001a14a ldr r3, [pc, 0x13c] |
0x0001a14c movs r0, 3 | r0 = 3;
0x0001a14e ldr r2, [pc, 0x13c] |
0x0001a150 add r3, pc | r3 = 0x343de;
0x0001a152 str r3, [sp, 4] | var_4h_2 = r3;
0x0001a154 add r2, pc | r2 = 0x343e6;
0x0001a156 ldr r3, [pc, 0x138] |
0x0001a158 adds r2, 7 | r2 += 7;
0x0001a15a add r3, pc | r3 = 0x343f0;
0x0001a15c str r3, [sp] | *(sp) = r3;
0x0001a15e movs r3, 0x75 | r3 = 0x75;
0x0001a160 blx 0x6008 | r0 = fcn_00006008 ();
0x0001a164 mov r6, r0 | r6 = r0;
0x0001a166 b.w 0x194ac | goto label_22;
| label_113:
0x0001a16a ldr r2, [pc, 0x128] |
0x0001a16c ldr r1, [pc, 0x128] |
0x0001a16e add r2, pc | r2 = 0x34408;
0x0001a170 add r1, pc | r1 = 0x3440c;
0x0001a172 b 0x199fa | goto label_44;
| label_119:
0x0001a174 mov r6, r0 | r6 = r0;
0x0001a176 ldr r4, [sp, 0x1c] | r4 = var_1ch;
0x0001a178 blx 0x5cd4 | r0 = gethostname_full ();
0x0001a17c cmp r0, 2 |
0x0001a17e ittt le |
| if (r0 <= 2) {
0x0001a180 rsble r3, r6, 0 | __asm ("rsble r3, r6, 0");
| }
| if (r0 <= 2) {
0x0001a182 bicle r3, r3, 0x40000000 | __asm ("bicle r3, r3, 0x40000000");
| }
| if (r0 <= 2) {
0x0001a186 rsb.w sl, r3, 0 | sl = r3 - ;
| }
0x0001a18a ble 0x1a0f0 |
| } while (r0 <= 2);
0x0001a18c ldr.w r3, [r8] | r3 = *(r8);
0x0001a190 mov r1, r6 | r1 = r6;
0x0001a192 ldr r2, [pc, 0x108] |
0x0001a194 movs r0, 3 | r0 = 3;
0x0001a196 str r3, [sp, 8] | var_8h_2 = r3;
0x0001a198 ldr r3, [pc, 0x104] |
0x0001a19a add r2, pc | r2 = 0x3443c;
0x0001a19c adds r2, 7 | r2 += 7;
0x0001a19e add r3, pc | r3 = 0x34442;
0x0001a1a0 str r3, [sp, 4] | var_4h_2 = r3;
0x0001a1a2 ldr r3, [pc, 0x100] |
0x0001a1a4 add r3, pc | r3 = 0x3444e;
0x0001a1a6 str r3, [sp] | *(sp) = r3;
0x0001a1a8 movs r3, 0xcf | r3 = 0xcf;
0x0001a1aa blx 0x6008 | r0 = fcn_00006008 ();
0x0001a1ae mov sl, r0 | sl = r0;
0x0001a1b0 b 0x1a0f0 | goto label_45;
| label_126:
0x0001a1b2 blx 0x5cd4 | r0 = gethostname_full ();
0x0001a1b6 cmp r0, 2 |
0x0001a1b8 ittt le |
| if (r0 <= 2) {
0x0001a1ba rsble r6, r6, 0 | __asm ("rsble r6, r6, 0");
| }
| if (r0 <= 2) {
0x0001a1bc bicle r6, r6, 0x40000000 | __asm ("bicle r6, r6, 0x40000000");
| }
| if (r0 > 2) {
0x0001a1c0 rsbs r6, r6, 0 | r6 -= ;
| goto label_129;
| }
| if (r0 <= 2) {
| label_129:
0x0001a1c2 ble.w 0x194ac | goto label_22;
| }
0x0001a1c6 ldr r3, [pc, 0xe0] |
0x0001a1c8 mov r1, r6 | r1 = r6;
0x0001a1ca ldr r2, [pc, 0xe0] |
0x0001a1cc movs r0, 3 | r0 = 3;
0x0001a1ce add r3, pc | r3 = 0x3447c;
0x0001a1d0 str r3, [sp, 4] | var_4h_2 = r3;
0x0001a1d2 add r2, pc | r2 = 0x34484;
0x0001a1d4 ldr r3, [pc, 0xd8] |
0x0001a1d6 adds r2, 7 | r2 += 7;
0x0001a1d8 add r3, pc | r3 = 0x3448c;
0x0001a1da str r3, [sp] | *(sp) = r3;
0x0001a1dc movs r3, 0x7e | r3 = 0x7e;
0x0001a1de blx 0x6008 | r0 = fcn_00006008 ();
0x0001a1e2 mov r6, r0 | r6 = r0;
0x0001a1e4 b.w 0x194ac | goto label_22;
| label_114:
0x0001a1e8 ldr r3, [pc, 0xc8] |
0x0001a1ea add r3, pc | r3 = 0x344a2;
0x0001a1ec b 0x19a08 | goto label_46;
| label_108:
0x0001a1ee ldr r3, [pc, 0xc8] |
0x0001a1f0 mov r1, r6 | r1 = r6;
0x0001a1f2 ldr r2, [pc, 0xc8] |
0x0001a1f4 movs r0, 3 | r0 = 3;
0x0001a1f6 str r4, [sp, 8] | var_8h_2 = r4;
0x0001a1f8 add r3, pc | r3 = 0x344b6;
0x0001a1fa str r3, [sp, 4] | var_4h_2 = r3;
0x0001a1fc add r2, pc | r2 = 0x344be;
0x0001a1fe ldr r3, [pc, 0xc0] |
0x0001a200 adds r2, 7 | r2 += 7;
0x0001a202 add r3, pc | r3 = 0x344c8;
0x0001a204 str r3, [sp] | *(sp) = r3;
0x0001a206 movs r3, 0x9b | r3 = 0x9b;
0x0001a208 blx 0x6008 | r0 = fcn_00006008 ();
0x0001a20c mov r6, r0 | r6 = r0;
0x0001a20e b.w 0x198aa | goto label_24;
| label_128:
0x0001a212 ldr r3, [pc, 0xb0] |
0x0001a214 mov r1, r5 | r1 = r5;
0x0001a216 ldr r2, [pc, 0xb0] |
0x0001a218 movs r0, 3 | r0 = 3;
0x0001a21a add r3, pc | r3 = 0x344e4;
0x0001a21c str r3, [sp, 4] | var_4h_2 = r3;
0x0001a21e add r2, pc | r2 = 0x344ec;
0x0001a220 ldr r3, [pc, 0xa8] |
0x0001a222 adds r2, 7 | r2 += 7;
0x0001a224 add r3, pc | r3 = 0x344f4;
0x0001a226 str r3, [sp] | *(sp) = r3;
0x0001a228 movs r3, 0xc8 | r3 = 0xc8;
0x0001a22a blx 0x6008 | r0 = fcn_00006008 ();
0x0001a22e mov sl, r0 | sl = r0;
0x0001a230 b 0x1a0f0 | goto label_45;
| label_123:
0x0001a232 ldr r1, [pc, 0x9c] |
0x0001a234 movs r2, 0xff | r2 = 0xff;
0x0001a236 ldr r3, [pc, 0x9c] |
0x0001a238 ldr r0, [pc, 0x9c] |
0x0001a23a add r1, pc | r1 = 0x34510;
0x0001a23c add r3, pc | r3 = 0x34516;
0x0001a23e adds r1, 7 | r1 += 7;
0x0001a240 add r0, pc | r0 = 0x3451c;
0x0001a242 blx 0x59a0 | fcn_000059a0 ();
| label_97:
0x0001a246 ldr r3, [pc, 0x94] |
0x0001a248 add r3, pc | r3 = 0x3452a;
0x0001a24a b.w 0x19750 | goto label_47;
| label_96:
0x0001a24e ldr r5, [pc, 0x90] |
0x0001a250 add r5, pc | r5 = 0x34536;
0x0001a252 b.w 0x19740 | goto label_48;
| label_85:
0x0001a256 blx 0x60c0 | fcn_000060c0 ();
0x0001a25a nop |
0x0001a25c add r1, sp, 0x338 | r1 += arg_338h;
0x0001a25e movs r0, r0 |
0x0001a260 ldr r7, [pc, 0x3c0] | r7 = *(0x1a624);
0x0001a262 movs r0, r0 |
0x0001a264 add r7, sp, 0x140 | r7 += arg_140h;
0x0001a266 movs r0, r0 |
0x0001a268 add r6, sp, 0x2e8 | r6 += arg_2e8h;
0x0001a26a movs r0, r0 |
0x0001a26c add r4, sp, 0xd8 | r4 += arg_d8h;
0x0001a26e movs r0, r0 |
0x0001a270 add r1, sp, 0x1a8 | r1 += arg_1a8h;
0x0001a272 movs r0, r0 |
0x0001a274 add r6, sp, 0x330 | r6 += arg_330h;
0x0001a276 movs r0, r0 |
0x0001a278 add r1, sp, 0x130 | r1 += arg_130h;
0x0001a27a movs r0, r0 |
0x0001a27c add r1, sp, 0x110 | r1 += arg_110h;
0x0001a27e movs r0, r0 |
0x0001a280 add r3, sp, 0x218 | r3 += arg_218h;
0x0001a282 movs r0, r0 |
0x0001a284 add r6, sp, 0x320 | r6 += arg_320h;
0x0001a286 movs r0, r0 |
0x0001a288 str r0, [r2, 0x7c] | *((r2 + 0x7c)) = r0;
0x0001a28a movs r0, r0 |
0x0001a28c add r1, sp, 0xc0 | r1 += var_c0h;
0x0001a28e movs r0, r0 |
0x0001a290 add r6, sp, 0x1c8 | r6 += arg_1c8h;
0x0001a292 movs r0, r0 |
0x0001a294 add r0, sp, 0x3e8 | r0 += arg_3e8h;
0x0001a296 movs r0, r0 |
0x0001a298 ldrh r4, [r4, 0x3a] | r4 = *((r4 + 0x3a));
0x0001a29a movs r0, r0 |
0x0001a29c add r0, sp, 0x3a8 | r0 += arg_3a8h;
0x0001a29e movs r0, r0 |
0x0001a2a0 add r3, sp, 0x388 | r3 += arg_388h;
0x0001a2a2 movs r0, r0 |
0x0001a2a4 add r6, sp, 0x120 | r6 += arg_120h;
0x0001a2a6 movs r0, r0 |
0x0001a2a8 str r2, [r2, 0x74] | *((r2 + 0x74)) = r2;
0x0001a2aa movs r0, r0 |
0x0001a2ac add r0, sp, 0x2c8 | r0 += arg_2c8h;
0x0001a2ae movs r0, r0 |
0x0001a2b0 add r5, sp, 0x3d0 | r5 += arg_3d0h;
0x0001a2b2 movs r0, r0 |
0x0001a2b4 add r0, sp, 0x238 | r0 += arg_238h;
0x0001a2b6 movs r0, r0 |
0x0001a2b8 ldr r6, [pc, 0x250] | r6 = *(0x1a50c);
0x0001a2ba movs r0, r0 |
0x0001a2bc add r0, sp, 0x220 | r0 += arg_220h;
0x0001a2be movs r0, r0 |
0x0001a2c0 add r5, sp, 0x328 | r5 += arg_328h;
0x0001a2c2 movs r0, r0 |
0x0001a2c4 str r6, [r0, 0x70] | *((r0 + 0x70)) = r6;
0x0001a2c6 movs r0, r0 |
0x0001a2c8 add r0, sp, 0x198 | r0 += arg_198h;
0x0001a2ca movs r0, r0 |
0x0001a2cc add r5, sp, 0x320 | r5 += arg_320h;
0x0001a2ce movs r0, r0 |
0x0001a2d0 add r0, sp, 0x128 | r0 += arg_128h;
0x0001a2d2 movs r0, r0 |
0x0001a2d4 add r5, sp, 0x200 | r5 += arg_200h;
0x0001a2d6 movs r0, r0 |
0x0001a2d8 add r5, sp, 0x150 | r5 += arg_150h;
0x0001a2da movs r0, r0 |
0x0001a2dc ldrh r4, [r1, 0x34] | r4 = *((r1 + 0x34));
0x0001a2de movs r0, r0 |
0x0001a2e0 ldrh r4, [r0, 0x34] | r4 = *((r0 + 0x34));
0x0001a2e2 movs r0, r0 |
0x0001a2e4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0001a2e8 sub sp, 0x14c |
0x0001a2ea ldr.w r5, [pc, 0x438] |
0x0001a2ee add r7, sp, 0x10 | r7 += var_10h;
0x0001a2f0 movs r4, 0 | r4 = 0;
0x0001a2f2 ldr.w r2, [pc, 0x434] | r2 = *(0x1a72a);
0x0001a2f6 add.w r8, r7, 0x10 | r8 += var_10h_3;
0x0001a2fa add r5, pc | r5 = 0x34a24;
0x0001a2fc ldr.w sb, [pc, 0x42c] |
0x0001a300 ldr.w r3, [pc, 0x42c] | r3 = *(0x1a730);
0x0001a304 add.w r6, r7, 8 | r6 += var_8h_3;
0x0001a308 ldr r2, [r5, r2] |
0x0001a30a vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x0001a30e add sb, pc | sb = 0x34a3e;
0x0001a310 ldr r2, [r2] | r2 = *(0x34a24);
0x0001a312 str.w r2, [r7, 0x134] | __asm ("str.w r2, [var_134h]");
0x0001a316 mov.w r2, 0 | r2 = 0;
0x0001a31a str.w r4, [r8, 8] | __asm ("str.w r4, [var_8h_4]");
0x0001a31e vstr d16, [r7, 0x10] | __asm ("vstr d16, [r7, 0x10]");
0x0001a322 str r4, [r6] | *(r6) = r4;
0x0001a324 ldr.w r3, [sb, r3] | r3 = *(0x34a3e);
0x0001a328 ldr r5, [r3] | r5 = *(0x34a3e);
0x0001a32a cmp r5, 0 |
| if (r5 != 0) {
0x0001a32c bne.w 0x1a530 | goto label_130;
| }
0x0001a330 subs r3, r0, 2 | r3 = r0 - 2;
0x0001a332 cmp r3, 1 |
| if (r3 > 1) {
0x0001a334 bhi.w 0x1a50e | goto label_131;
| }
0x0001a338 cmp r0, 3 |
0x0001a33a ldr r4, [r1, 4] | r4 = var_4h_3;
| if (r0 != 3) {
0x0001a33c bne.w 0x1a56c | goto label_132;
| }
0x0001a340 ldr.w sl, [r1, 8] | sl = *((r1 + 8));
| label_50:
0x0001a344 cmp.w sl, 0 |
| if (sl == 0) {
0x0001a348 beq 0x1a41e | goto label_133;
| }
0x0001a34a ldrb.w r1, [sl] | r1 = *(sl);
0x0001a34e cmp r1, 0 |
| if (r1 == 0) {
0x0001a350 beq 0x1a41e | goto label_133;
| }
0x0001a352 ldr r3, [pc, 0x3e0] |
0x0001a354 add r3, pc | r3 = 0x34a8e;
0x0001a356 adds r3, 1 | r3++;
| do {
0x0001a358 mov fp, r3 |
0x0001a35a ldrb r2, [r3, 1]! | r2 = *((r3 += 1));
0x0001a35e cmp r2, 0x2f |
0x0001a360 beq 0x1a358 |
| } while (r2 == 0x2f);
0x0001a362 mov r2, fp | r2 = fp;
| if (r4 != 0) {
0x0001a364 cbz r4, 0x1a36e |
0x0001a366 ldrb r3, [r4] | r3 = *(r4);
0x0001a368 cmp r3, 0 |
| if (r3 != 0) {
0x0001a36a bne.w 0x1a5da | goto label_134;
| }
| }
0x0001a36e cmp r1, 0x2f |
| if (r1 != 0x2f) {
0x0001a370 bne.w 0x1a6c2 | goto label_135;
| }
0x0001a374 ldrb.w r3, [sl, 1] | r3 = *((sl + 1));
0x0001a378 cmp r3, 0x2f |
| if (r3 != 0x2f) {
0x0001a37a bne.w 0x1a6c2 | goto label_135;
| }
| label_54:
0x0001a37e add.w r3, sl, 1 | r3 = sl + 1;
| do {
0x0001a382 mov fp, r3 |
0x0001a384 ldrb ip, [r3, 1]! | ip = *((r3 += 1));
0x0001a388 cmp.w ip, 0x2f |
0x0001a38c beq 0x1a382 |
| } while (ip == 0x2f);
0x0001a38e cmp r4, 0 |
| if (r4 == 0) {
0x0001a390 beq 0x1a410 | goto label_57;
| }
| label_55:
0x0001a392 ldrb r3, [r4] | r3 = *(r4);
0x0001a394 cmp r3, 0 |
| if (r3 == 0) {
0x0001a396 beq 0x1a410 | goto label_57;
| }
0x0001a398 mov r0, r4 | r0 = r4;
0x0001a39a str r2, [r7] | *(r7) = r2;
0x0001a39c blx 0x64c8 | fcn_000064c8 ();
0x0001a3a0 str r0, [r7, 4] | var_4h_4 = r0;
0x0001a3a2 mov r0, fp | r0 = fp;
0x0001a3a4 blx 0x64c8 | fcn_000064c8 ();
0x0001a3a8 ldr r3, [r7, 4] | r3 = var_4h_4;
0x0001a3aa ldr r2, [r7] | r2 = *(r7);
0x0001a3ac add r0, r3 | r0 += r3;
0x0001a3ae adds r3, r0, 2 | r3 = r0 + 2;
0x0001a3b0 cmp.w r3, 0x400000 |
| if (r3 > 0x400000) {
0x0001a3b4 bhi.w 0x1a704 | goto label_136;
| }
0x0001a3b8 adds r0, 9 | r0 += 9;
0x0001a3ba mov r1, r4 | r1 = r4;
0x0001a3bc bic r0, r0, 7 | r0 = BIT_MASK (r0, 7);
0x0001a3c0 str r2, [r7] | *(r7) = r2;
0x0001a3c2 sub.w sp, sp, r0 |
0x0001a3c6 add r3, sp, 0x10 | r3 += var_10h;
0x0001a3c8 mov r0, r3 | r0 = r3;
0x0001a3ca str r3, [r7, 4] | var_4h_4 = r3;
0x0001a3cc blx 0x5bbc | fcn_00005bbc ();
0x0001a3d0 ldr r3, [r7, 4] | r3 = var_4h_4;
0x0001a3d2 mov r1, r0 | r1 = r0;
0x0001a3d4 ldr r2, [r7] | r2 = *(r7);
0x0001a3d6 cmp r0, r3 |
| if (r0 > r3) {
0x0001a3d8 bhi 0x1a3e0 | goto label_137;
| }
0x0001a3da b 0x1a3f2 | goto label_138;
| do {
0x0001a3dc cmp r1, r3 |
| if (r1 == r3) {
0x0001a3de beq 0x1a3f2 | goto label_138;
| }
| label_137:
0x0001a3e0 ldrb ip, [r1, -0x1] | ip = *((r1 - 0x1));
0x0001a3e4 subs r0, r1, 1 | r0 -= var_1h;
0x0001a3e6 mov lr, r1 | lr = r1;
0x0001a3e8 mov r1, r0 | r1 = r0;
0x0001a3ea cmp.w ip, 0x2f |
0x0001a3ec lsrs r7, r5, 0x1c | r7 = r5 >> 0x1c;
0x0001a3ee beq 0x1a3dc |
| } while (r7 == r5);
0x0001a3f0 mov r0, lr | r0 = lr;
| label_138:
0x0001a3f2 ldrb.w r1, [fp] | r1 = *(fp);
0x0001a3f6 strd r3, r2, [r7] | __asm ("strd r3, r2, [r7]");
0x0001a3fa cmp r1, 0x2f |
0x0001a3fc itt ne |
| if (r1 == 0x2f) {
0x0001a3fe movne r1, 0x2f | r1 = 0x2f;
| }
| if (r1 == 0x2f) {
0x0001a400 strbne r1, [r0], 1 | *(r0) = r1;
| r0++;
| }
0x0001a404 mov r1, fp | r1 = fp;
0x0001a406 blx 0x5f18 | fcn_00005f18 ();
0x0001a40a ldr r3, [r7] | r3 = *(r7);
0x0001a40c ldr r2, [r7, 4] | r2 = var_4h_4;
0x0001a40e mov fp, r3 |
| label_57:
0x0001a410 mov r1, r2 | r1 = r2;
0x0001a412 mov r0, fp | r0 = fp;
0x0001a414 movs r2, 0 | r2 = 0;
0x0001a416 blx 0x5e94 | r0 = fcn_00005e94 ();
0x0001a41a cmp r0, 0 |
| if (r0 > 0) {
0x0001a41c ble 0x1a422 |
| label_133:
0x0001a41e mov.w sl, 0 | sl = 0;
| }
0x0001a422 ldr r3, [pc, 0x314] |
0x0001a424 ldr.w r3, [sb, r3] | r3 = *((sb + r3));
0x0001a428 ldr r3, [r3] | r3 = *(0x1a73a);
0x0001a42a cmp r3, 0 |
| if (r3 == 0) {
0x0001a42c beq.w 0x1a652 | goto label_139;
| }
0x0001a430 ldr r3, [r3] | r3 = *(r3);
0x0001a432 cmp r3, 0 |
| if (r3 == 0) {
0x0001a434 beq.w 0x1a666 | goto label_140;
| }
0x0001a438 movs r2, 0x40 | r2 = 0x40;
0x0001a43a add.w fp, r7, 0xc |
0x0001a43e strb r2, [r3] | *(r3) = r2;
0x0001a440 mov r1, fp | r1 = fp;
0x0001a442 movs r0, 1 | r0 = 1;
0x0001a444 bl 0x1ab9c | r0 = fcn_0001ab9c (r0, r1);
0x0001a448 subs r3, r0, 0 | r3 = r0 - 0;
| if (r3 < r0) {
0x0001a44a blt.w 0x1a584 | goto label_141;
| }
0x0001a44e movs r2, 0x88 | r2 = 0x88;
0x0001a450 movs r1, 0 | r1 = 0;
0x0001a452 add.w r0, r7, 0x20 | r0 += var_20h_2;
0x0001a456 blx 0x5d50 | fcn_00005d50 ();
0x0001a45a add.w r0, r7, 0x1c | r0 += var_1ch_2;
0x0001a45e movs r3, 1 | r3 = 1;
0x0001a460 movs r1, 0xf | r1 = 0xf;
0x0001a462 str r3, [r0] | *(r0) = r3;
0x0001a464 mov.w r2, -1 | r2 = -1;
0x0001a468 mov.w r3, 0x10000000 | r3 = 0x10000000;
0x0001a46c str.w r3, [r0, 0x84] | __asm ("str.w r3, [var_b0h]");
0x0001a470 blx 0x5edc | fcn_00005edc ();
0x0001a474 subs r1, r0, 0 | r1 -= var_1ch_2;
| if (r1 < var_1ch_2) {
0x0001a476 blt.w 0x1a5b0 | goto label_142;
| }
| label_53:
0x0001a47a blx 0x5cd4 | r0 = gethostname_full ();
0x0001a47e cmp r0, 6 |
| if (r0 > 6) {
0x0001a480 ble 0x1a4ac |
0x0001a482 mov r3, sl | r3 = sl;
0x0001a484 cmp.w sl, 0 |
| if (sl == 0) {
0x0001a488 beq.w 0x1a6bc | goto label_143;
| }
| label_56:
0x0001a48c strd r4, r3, [sp, 8] | __asm ("strd r4, r3, [var_8h]");
0x0001a490 movs r1, 0 | r1 = 0;
0x0001a492 ldr r3, [pc, 0x2a8] |
0x0001a494 movs r0, 7 | r0 = 7;
0x0001a496 ldr r2, [pc, 0x2a8] |
0x0001a498 add r3, pc | r3 = 0x34bda;
0x0001a49a str r3, [sp, 4] | var_4h = r3;
0x0001a49c add r2, pc | r2 = 0x34be2;
0x0001a49e ldr r3, [pc, 0x2a4] |
0x0001a4a0 adds r2, 7 | r2 += 7;
0x0001a4a2 add r3, pc | r3 = 0x34bec;
0x0001a4a4 str r3, [sp] | *(sp) = r3;
0x0001a4a6 movs r3, 0x43 | r3 = 0x43;
0x0001a4a8 blx 0x6008 | fcn_00006008 ();
| }
| label_52:
0x0001a4ac ldr r3, [pc, 0x298] | r3 = *(0x1a748);
0x0001a4ae ldr.w r0, [fp] | r0 = *(fp);
0x0001a4b2 ldr.w r2, [sb, r3] | r2 = *((sb + r3));
0x0001a4b6 mov.w sb, 0 | sb = 0;
0x0001a4ba ldr r3, [pc, 0x290] |
0x0001a4bc strd r4, sl, [sp, 8] | __asm ("strd r4, sl, [var_8h]");
0x0001a4c0 ldr r1, [r2] | r1 = *(r2);
0x0001a4c2 ldr r2, [pc, 0x28c] |
0x0001a4c4 add r3, pc | r3 = 0x34c16;
0x0001a4c6 str r3, [sp, 4] | var_4h = r3;
0x0001a4c8 mov r3, r8 | r3 = r8;
0x0001a4ca str.w sb, [sp] | __asm ("str.w sb, [sp]");
0x0001a4ce add r2, pc | r2 = 0x34c24;
0x0001a4d0 blx 0x5fe4 | r0 = fcn_00005fe4 ();
0x0001a4d4 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0001a4d6 blt.w 0x1a67a | goto label_144;
| }
0x0001a4da ldr r0, [r6] | r0 = *(r6);
| do {
| label_49:
0x0001a4dc blx 0x59e0 | unit_file_state_to_string ();
0x0001a4e0 movs r3, 0 | r3 = 0;
0x0001a4e2 mov r0, r8 | r0 = r8;
0x0001a4e4 str r3, [r6] | *(r6) = r3;
0x0001a4e6 blx 0x5f0c | fcn_00005f0c ();
0x0001a4ea ldr r2, [pc, 0x268] |
0x0001a4ec ldr r3, [pc, 0x238] | r3 = *(0x1a728);
0x0001a4ee add r2, pc | r2 = 0x34c48;
0x0001a4f0 ldr r3, [r2, r3] | r3 = *(0x34c48);
0x0001a4f2 ldr r2, [r3] | r2 = *(0x34c48);
0x0001a4f4 ldr.w r3, [r7, 0x134] | r3 = var_134h;
0x0001a4f8 eors r2, r3 | r2 ^= r3;
0x0001a4fa mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0001a4fe bne.w 0x1a71e | goto label_145;
| }
0x0001a502 mov r0, r5 | r0 = r5;
0x0001a504 add.w r7, r7, 0x13c | r7 += var_13ch;
0x0001a508 mov sp, r7 |
0x0001a50a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_131:
0x0001a50e blx 0x5cd4 | r0 = gethostname_full ();
0x0001a512 cmp r0, 2 |
0x0001a514 itt le |
| if (r0 > 2) {
0x0001a516 movle r0, r5 | r0 = r5;
| }
| if (r0 > 2) {
0x0001a518 mvnle r5, 0x15 | r5 = ~0x15;
| }
0x0001a51c ble 0x1a4dc |
| } while (r0 <= 2);
0x0001a51e ldr r2, [pc, 0x238] |
0x0001a520 movs r1, 0x16 | r1 = 0x16;
0x0001a522 ldr r4, [pc, 0x238] |
0x0001a524 movs r3, 0x19 | r3 = 0x19;
0x0001a526 ldr r0, [pc, 0x238] |
0x0001a528 add r2, pc | r2 = 0x34c86;
0x0001a52a add r4, pc | r4 = 0x34c8c;
0x0001a52c add r0, pc | r0 = 0x34c92;
0x0001a52e b 0x1a550 | goto label_146;
| label_130:
0x0001a530 blx 0x5cd4 | r0 = gethostname_full ();
0x0001a534 cmp r0, 2 |
0x0001a536 itt le |
| if (r0 > 2) {
0x0001a538 movle r0, r4 | r0 = r4;
| }
| if (r0 <= 2) {
0x0001a53a mvnle r5, 0x15 | r5 = ~0x15;
| goto label_147;
| }
| if (r0 <= 2) {
| label_147:
0x0001a53e ble 0x1a4dc | goto label_49;
| }
0x0001a540 ldr r2, [pc, 0x220] |
0x0001a542 movs r1, 0x16 | r1 = 0x16;
0x0001a544 ldr r4, [pc, 0x220] |
0x0001a546 mov r3, r1 | r3 = r1;
0x0001a548 ldr r0, [pc, 0x220] |
0x0001a54a add r2, pc | r2 = 0x34cb2;
0x0001a54c add r4, pc | r4 = 0x34cb8;
0x0001a54e add r0, pc | r0 = 0x34cbe;
| label_146:
0x0001a550 strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x0001a554 movt r1, 0x4000 | r1 = (r1 & 0xFFFF) | 0x40000000;
0x0001a558 adds r2, 7 | r2 += 7;
0x0001a55a movs r0, 3 | r0 = 3;
0x0001a55c blx 0x6008 | r0 = fcn_00006008 ();
0x0001a560 subs r5, r0, 0 | r5 = r0 - 0;
0x0001a562 ldr r0, [r6] | r0 = *(r6);
0x0001a564 it ge |
| if (r5 < r0) {
0x0001a566 mvnge r5, 0x55 | r5 = ~0x55;
| }
0x0001a56a b 0x1a4dc | goto label_49;
| label_132:
0x0001a56c ldr r0, [pc, 0x200] |
0x0001a56e mov r2, r6 | r2 = r6;
0x0001a570 mov r1, r5 | r1 = r5;
0x0001a572 add r0, pc | r0 = 0x34ce6;
0x0001a574 blx 0x5de0 | fcn_00005de0 ();
0x0001a576 ldc p1, c15, [r4], -0x2c0 | __asm ("ldc p1, c15, [r4], -0x2c0");
0x0001a57a lsrs r0, r0, 8 | r0 >>= 8;
0x0001a57c blt 0x1a58a |
| while (r0 <= 6) {
| label_51:
0x0001a57e ldr.w sl, [r6] | sl = *(r6);
0x0001a582 b 0x1a344 | goto label_50;
| label_141:
0x0001a584 ldr r0, [r6] | r0 = *(r6);
0x0001a586 mov r5, r3 | r5 = r3;
0x0001a588 b 0x1a4dc | goto label_49;
0x0001a58a blx 0x5cd4 | r0 = gethostname_full ();
0x0001a58e cmp r0, 6 |
0x0001a590 ble 0x1a57e |
| }
0x0001a592 ldr r3, [pc, 0x1e0] |
0x0001a594 mov r1, sl | r1 = sl;
0x0001a596 ldr r2, [pc, 0x1e0] |
0x0001a598 movs r0, 7 | r0 = 7;
0x0001a59a add r3, pc | r3 = 0x34d14;
0x0001a59c str r3, [sp, 4] | var_4h = r3;
0x0001a59e add r2, pc | r2 = 0x34d1c;
0x0001a5a0 ldr r3, [pc, 0x1d8] |
0x0001a5a2 adds r2, 7 | r2 += 7;
0x0001a5a4 add r3, pc | r3 = 0x34d24;
0x0001a5a6 str r3, [sp] | *(sp) = r3;
0x0001a5a8 movs r3, 0x22 | r3 = 0x22;
0x0001a5aa blx 0x6008 | fcn_00006008 ();
0x0001a5ae b 0x1a57e | goto label_51;
| label_142:
0x0001a5b0 str r1, [r7, 4] | var_4h_4 = r1;
0x0001a5b2 blx 0x5cd4 | r0 = gethostname_full ();
0x0001a5b6 cmp r0, 3 |
0x0001a5b8 ldr r1, [r7, 4] | r1 = var_4h_4;
| if (r0 <= 3) {
0x0001a5ba ble.w 0x1a4ac | goto label_52;
| }
0x0001a5be ldr r3, [pc, 0x1c0] |
0x0001a5c0 movs r0, 4 | r0 = 4;
0x0001a5c2 ldr r2, [pc, 0x1c0] |
0x0001a5c4 add r3, pc | r3 = 0x34d4a;
0x0001a5c6 str r3, [sp, 4] | var_4h = r3;
0x0001a5c8 add r2, pc | r2 = 0x34d52;
0x0001a5ca ldr r3, [pc, 0x1bc] |
0x0001a5cc adds r2, 7 | r2 += 7;
0x0001a5ce add r3, pc | r3 = 0x34d5c;
0x0001a5d0 str r3, [sp] | *(sp) = r3;
0x0001a5d2 movs r3, 0x41 | r3 = 0x41;
0x0001a5d4 blx 0x6008 | fcn_00006008 ();
0x0001a5d8 b 0x1a47a | goto label_53;
| label_134:
0x0001a5da mov r0, r4 | r0 = r4;
0x0001a5dc blx 0x64c8 | fcn_000064c8 ();
0x0001a5e0 str r0, [r7, 4] | var_4h_4 = r0;
0x0001a5e2 mov r0, fp | r0 = fp;
0x0001a5e4 blx 0x64c8 | fcn_000064c8 ();
0x0001a5e8 ldr r3, [r7, 4] | r3 = var_4h_4;
0x0001a5ea add r3, r0 | r3 += r0;
0x0001a5ec adds r1, r3, 2 | r1 = r3 + 2;
0x0001a5ee cmp.w r1, 0x400000 |
| if (r1 > 0x400000) {
0x0001a5f2 bhi 0x1a6f0 | goto label_148;
| }
0x0001a5f4 adds r3, 9 | r3 += 9;
0x0001a5f6 mov r1, r4 | r1 = r4;
0x0001a5f8 bic r3, r3, 7 | r3 = BIT_MASK (r3, 7);
0x0001a5fc str r0, [r7] | *(r7) = r0;
0x0001a5fe sub.w sp, sp, r3 |
0x0001a602 add r3, sp, 0x10 | r3 += var_10h;
0x0001a604 mov r0, r3 | r0 = r3;
0x0001a606 str r3, [r7, 4] | var_4h_4 = r3;
0x0001a608 blx 0x5bbc | fcn_00005bbc ();
0x0001a60c ldr r3, [r7, 4] | r3 = var_4h_4;
0x0001a60e mov r1, r0 | r1 = r0;
0x0001a610 ldr r2, [r7] | r2 = *(r7);
0x0001a612 cmp r3, r0 |
| if (r3 <= r0) {
0x0001a614 blo 0x1a61c | goto label_149;
| }
0x0001a616 b 0x1a62e | goto label_150;
| do {
0x0001a618 cmp r1, r3 |
| if (r1 == r3) {
0x0001a61a beq 0x1a62e | goto label_150;
| }
| label_149:
0x0001a61c ldrb ip, [r1, -0x1] | ip = *((r1 - 0x1));
0x0001a620 subs r0, r1, 1 | r0 = r1 - 1;
0x0001a622 mov lr, r1 | lr = r1;
0x0001a624 mov r1, r0 | r1 = r0;
0x0001a626 cmp.w ip, 0x2f |
0x0001a62a beq 0x1a618 |
| } while (ip == 0x2f);
0x0001a62c mov r0, lr | r0 = lr;
| label_150:
0x0001a62e adds r2, 1 | r2++;
0x0001a630 mov r1, fp | r1 = fp;
0x0001a632 str r3, [r7, 4] | var_4h_4 = r3;
0x0001a634 blx 0x6450 | fcn_00006450 ();
0x0001a638 ldrb.w r2, [sl] | r2 = *(sl);
0x0001a63c ldr r3, [r7, 4] | r3 = var_4h_4;
0x0001a63e cmp r2, 0x2f |
| if (r2 != 0x2f) {
0x0001a640 bne 0x1a718 | goto label_151;
| }
0x0001a642 ldrb.w r2, [sl, 1] | r2 = *((sl + 1));
0x0001a646 cmp r2, 0x2f |
0x0001a648 mov r2, r3 | r2 = r3;
| if (r2 == 0x2f) {
0x0001a64a beq.w 0x1a37e | goto label_54;
| }
0x0001a64e mov fp, sl |
0x0001a650 b 0x1a392 | goto label_55;
| label_139:
0x0001a652 ldr r1, [pc, 0x138] |
0x0001a654 movs r2, 0x35 | r2 = 0x35;
0x0001a656 ldr r3, [pc, 0x138] |
0x0001a658 ldr r0, [pc, 0x138] |
0x0001a65a add r1, pc | r1 = 0x34dec;
0x0001a65c add r3, pc | r3 = 0x34df2;
0x0001a65e adds r1, 7 | r1 += 7;
0x0001a660 add r0, pc | r0 = 0x34df8;
0x0001a662 blx 0x59a0 | fcn_000059a0 ();
| label_140:
0x0001a666 ldr r1, [pc, 0x130] |
0x0001a668 movs r2, 0x36 | r2 = 0x36;
0x0001a66a ldr r3, [pc, 0x130] |
0x0001a66c ldr r0, [pc, 0x130] |
0x0001a66e add r1, pc | r1 = 0x34e0c;
0x0001a670 add r3, pc | r3 = 0x34e12;
0x0001a672 adds r1, 7 | r1 += 7;
0x0001a674 add r0, pc | r0 = 0x34e18;
0x0001a676 blx 0x59a0 | fcn_000059a0 ();
| label_144:
0x0001a67a add.w r3, r7, 0xa8 | r3 += var_b8h;
0x0001a67e movs r2, 0x8c | r2 = 0x8c;
0x0001a680 mov r1, sb | r1 = sb;
0x0001a682 mov r0, r3 | r0 = r3;
0x0001a684 blx 0x5d50 | r0 = fcn_00005d50 ();
0x0001a688 mov r3, r0 | r3 = r0;
0x0001a68a mov.w r0, 0x10000000 | r0 = 0x10000000;
0x0001a68e mov.w r2, -1 | r2 = -1;
0x0001a692 movs r1, 0xf | r1 = 0xf;
0x0001a694 str.w r0, [r7, 0x12c] | __asm ("str.w r0, [var_12ch]");
0x0001a698 mov r0, r3 | r0 = r3;
0x0001a69a blx 0x5edc | fcn_00005edc ();
0x0001a69e blx 0x5cd4 | r0 = gethostname_full ();
0x0001a6a2 cmp r0, 2 |
0x0001a6a4 ittt le |
| if (r0 <= 2) {
0x0001a6a6 rsble r3, r4, 0 | __asm ("rsble r3, r4, 0");
| }
| if (r0 <= 2) {
0x0001a6a8 bicle r3, r3, 0x40000000 | __asm ("bicle r3, r3, 0x40000000");
| }
| if (r0 <= 2) {
0x0001a6ac rsbs r5, r3, 0 | r5 = r3 - ;
| }
0x0001a6ae bgt 0x1a6c6 |
| while (1) {
0x0001a6b0 cmp r5, 0 |
0x0001a6b2 ldr r0, [r6] | r0 = *(r6);
0x0001a6b4 it ge |
| if (r5 < 0) {
0x0001a6b6 mvnge r5, 0x55 | r5 = ~0x55;
| }
0x0001a6ba b 0x1a4dc | goto label_49;
| label_143:
0x0001a6bc ldr r3, [pc, 0xe4] |
0x0001a6be add r3, pc | r3 = 0x34e66;
0x0001a6c0 b 0x1a48c | goto label_56;
| label_135:
0x0001a6c2 mov fp, sl |
0x0001a6c4 b 0x1a410 | goto label_57;
0x0001a6c6 mov r1, r4 | r1 = r4;
0x0001a6c8 mov r0, r8 | r0 = r8;
0x0001a6ca blx 0x663c | fcn_0000663c ();
0x0001a6ce ldr r2, [pc, 0xd8] |
0x0001a6d0 mov r1, r4 | r1 = r4;
0x0001a6d2 str r0, [sp, 8] | var_8h = r0;
0x0001a6d4 ldr r3, [pc, 0xd4] |
0x0001a6d6 ldr r0, [pc, 0xd8] |
0x0001a6d8 add r2, pc | r2 = 0x34e86;
0x0001a6da adds r2, 7 | r2 += 7;
0x0001a6dc add r3, pc | r3 = 0x34e8c;
0x0001a6de add r0, pc | r0 = 0x34e94;
0x0001a6e0 str r3, [sp, 4] | var_4h = r3;
0x0001a6e2 str r0, [sp] | *(sp) = r0;
0x0001a6e4 movs r3, 0x49 | r3 = 0x49;
0x0001a6e6 movs r0, 3 | r0 = 3;
0x0001a6e8 blx 0x6008 | r0 = fcn_00006008 ();
0x0001a6ec mov r5, r0 | r5 = r0;
0x0001a6ee b 0x1a6b0 |
| }
| label_148:
0x0001a6f0 ldr r1, [pc, 0xc0] |
0x0001a6f2 movs r2, 0x2b | r2 = 0x2b;
0x0001a6f4 ldr r3, [pc, 0xc0] |
0x0001a6f6 ldr r0, [pc, 0xc4] |
0x0001a6f8 add r1, pc | r1 = 0x34eb0;
0x0001a6fa add r3, pc | r3 = 0x34eb6;
0x0001a6fc adds r1, 7 | r1 += 7;
0x0001a6fe add r0, pc | r0 = 0x34ec0;
0x0001a700 blx 0x59a0 | fcn_000059a0 ();
| label_136:
0x0001a704 ldr r1, [pc, 0xb8] |
0x0001a706 movs r2, 0x2c | r2 = 0x2c;
0x0001a708 ldr r3, [pc, 0xb8] |
0x0001a70a ldr r0, [pc, 0xbc] |
0x0001a70c add r1, pc | r1 = 0x34ed0;
0x0001a70e add r3, pc | r3 = 0x34ed6;
0x0001a710 adds r1, 7 | r1 += 7;
0x0001a712 add r0, pc | r0 = 0x34ee0;
0x0001a714 blx 0x59a0 | fcn_000059a0 ();
| label_151:
0x0001a718 mov r2, r3 | r2 = r3;
0x0001a71a mov fp, sl |
0x0001a71c b 0x1a392 | goto label_55;
| label_145:
0x0001a71e blx 0x60c0 | fcn_000060c0 ();
0x0001a722 nop |
0x0001a724 asrs r2, r2, 0x19 | r2 >>= 0x19;
0x0001a726 movs r1, r0 | r1 = r0;
0x0001a728 lsls r4, r5, 0x16 | r4 = r5 << 0x16;
0x0001a72a movs r0, r0 |
0x0001a72c asrs r6, r7, 0x18 | r6 = r7 >> 0x18;
0x0001a72e movs r1, r0 | r1 = r0;
0x0001a730 lsls r0, r0, 0x18 | r0 <<= 0x18;
0x0001a732 movs r0, r0 |
0x0001a734 add r7, sp, 0x1e0 | r7 += var_1e0h;
0x0001a736 movs r0, r0 |
0x0001a738 lsls r0, r1, 0x17 | r0 = r1 << 0x17;
0x0001a73a movs r0, r0 |
0x0001a73c add r6, sp, 0x290 | r6 += arg_120h;
0x0001a73e movs r0, r0 |
0x0001a740 add r5, sp, 0x200 | r5 += var_200h;
0x0001a742 movs r0, r0 |
0x0001a744 add r6, sp, 0x3e8 | r6 += arg_3e8h_2;
0x0001a746 movs r0, r0 |
0x0001a748 lsls r0, r2, 0x16 | r0 = r2 << 0x16;
0x0001a74a movs r0, r0 |
0x0001a74c add r1, sp, 0x350 | r1 += arg_350h;
0x0001a74e movs r0, r0 |
0x0001a750 add r6, sp, 0x248 | r6 += arg_d8h;
0x0001a752 movs r0, r0 |
0x0001a754 asrs r6, r3, 0x11 | r6 = r3 >> 0x11;
0x0001a756 movs r1, r0 | r1 = r0;
0x0001a758 add r4, sp, 0x3d0 | r4 += arg_3d0h_2;
0x0001a75a movs r0, r0 |
0x0001a75c add r5, sp, 0x168 | r5 += var_168h;
0x0001a75e movs r0, r0 |
0x0001a760 add r6, sp, 0x1c0 | r6 += var_50h;
0x0001a762 movs r0, r0 |
0x0001a764 add r4, sp, 0x348 | r4 += arg_348h;
0x0001a766 movs r0, r0 |
0x0001a768 add r5, sp, 0x60 | r5 += var_60h;
0x0001a76a movs r0, r0 |
0x0001a76c add r6, sp, 0x138 | r6 += var_138h;
0x0001a76e movs r0, r0 |
0x0001a770 add r5, sp, 0xb8 | r5 += var_b8h;
0x0001a772 movs r0, r0 |
0x0001a774 add r5, sp, 0x38 | r5 += var_38h;
0x0001a776 movs r0, r0 |
0x0001a778 add r4, sp, 0x1f8 | r4 += var_1f8h;
0x0001a77a movs r0, r0 |
0x0001a77c add r5, sp, 0x3e0 | r5 += arg_3e0h;
0x0001a77e movs r0, r0 |
0x0001a780 add r5, sp, 0x100 | r5 += var_100h;
0x0001a782 movs r0, r0 |
0x0001a784 add r4, sp, 0x150 | r4 += var_150h;
0x0001a786 movs r0, r0 |
0x0001a788 add r5, sp, 0x338 | r5 += arg_1c8h;
0x0001a78a movs r0, r0 |
0x0001a78c add r3, sp, 0x308 | r3 += arg_198h;
0x0001a78e movs r0, r0 |
0x0001a790 add r5, sp, 0xb0 | r5 += var_b0h;
0x0001a792 movs r0, r0 |
0x0001a794 add r4, sp, 0x220 | r4 += var_220h;
0x0001a796 movs r0, r0 |
0x0001a798 add r3, sp, 0x2b8 | r3 += arg_2b8h;
0x0001a79a movs r0, r0 |
0x0001a79c add r5, sp, 0x60 | r5 += var_60h;
0x0001a79e movs r0, r0 |
0x0001a7a0 add r4, sp, 0x200 | r4 += var_200h;
0x0001a7a2 movs r0, r0 |
0x0001a7a4 ldr r2, [r7, 0x58] | r2 = *((r7 + 0x58));
0x0001a7a6 movs r0, r0 |
0x0001a7a8 add r3, sp, 0x110 | r3 += var_110h;
0x0001a7aa movs r0, r0 |
0x0001a7ac add r4, sp, 0x240 | r4 += arg_240h;
0x0001a7ae movs r0, r0 |
0x0001a7b0 add r4, sp, 0x2f8 | r4 += arg_2f8h;
0x0001a7b2 movs r0, r0 |
0x0001a7b4 add r3, sp, 0x90 | r3 += var_90h;
0x0001a7b6 movs r0, r0 |
0x0001a7b8 add r4, sp, 0x238 | r4 += arg_0h;
0x0001a7ba movs r0, r0 |
0x0001a7bc ldrsb r6, [r2, r6] | r6 = *((r2 + r6));
0x0001a7be movs r0, r0 |
0x0001a7c0 add r3, sp, 0x40 | r3 += var_40h;
0x0001a7c2 movs r0, r0 |
0x0001a7c4 add r4, sp, 0x1e8 | r4 += var_1e8h;
0x0001a7c6 movs r0, r0 |
0x0001a7c8 ldrsb r2, [r0, r6] | r2 = *((r0 + r6));
0x0001a7ca movs r0, r0 |
| }
; 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 @ 0x1c234 */
| #include <stdint.h>
|
; (fcn) fcn.0001c234 () | void fcn_0001c234 (int16_t arg_50h, int16_t arg_70h, int16_t arg_e8h, int16_t arg_1c8h, int16_t arg_210h, int16_t arg_240h, int16_t arg_268h, int16_t arg_288h, int16_t arg_2f0h, int16_t arg_320h, int16_t arg_378h, int16_t arg_3f8h, uint32_t arg1, uint32_t arg2, uint32_t arg3, int16_t arg4) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_1ch;
| int16_t var_20h;
| int16_t var_24h;
| int16_t var_48h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x0001c234 svcmi 0xf0e92d | __asm ("svcmi 0xf0e92d");
0x0001c238 sub sp, 0x2c |
0x0001c23a ldr r4, [sp, 0x50] | r4 = *(arg_50h);
0x0001c23c mov sl, r3 | sl = r3;
0x0001c23e ldr r3, [pc, 0x268] | r3 = *(0x1c4aa);
0x0001c240 str r4, [sp, 8] | var_8h = r4;
0x0001c242 ldr r4, [pc, 0x268] |
0x0001c244 ldr r6, [pc, 0x268] |
0x0001c246 add r4, pc | r4 = 0x386f8;
0x0001c248 ldr r3, [r4, r3] |
0x0001c24a add r6, pc | r6 = 0x386fe;
0x0001c24c ldr r3, [r3] | r3 = *(0x386f8);
0x0001c24e str r3, [sp, 0x24] | var_24h = r3;
0x0001c250 mov.w r3, 0 | r3 = 0;
0x0001c254 movs r3, 0 | r3 = 0;
0x0001c256 strd r3, r3, [sp, 0x14] | __asm ("strd r3, r3, [var_14h]");
0x0001c25a cmp r0, 0 |
| if (arg_50h == ) {
0x0001c25c beq.w 0x1c3f0 | goto label_7;
| }
0x0001c260 cmp.w sl, 0 |
| if (sl == 0) {
0x0001c264 beq.w 0x1c404 | goto label_8;
| }
0x0001c268 cmp r1, 0 |
| if (r1 == 0) {
0x0001c26a beq.w 0x1c492 | goto label_9;
| }
0x0001c26e ldr r5, [pc, 0x244] |
0x0001c270 mov sb, r0 | sb = r0;
0x0001c272 ldr.w r8, [pc, 0x244] |
0x0001c276 subs r4, r1, 4 | r4 = r1 - 4;
0x0001c278 add r7, sp, 0x20 | r7 += var_20h;
0x0001c27a add r5, pc | r5 = 0x38734;
0x0001c27c cmp r2, 0 |
0x0001c27e it ne |
| if (r2 == 0) {
0x0001c280 movne r5, r2 | r5 = r2;
| }
0x0001c282 add r8, pc | r8 = 0x38740;
0x0001c284 b 0x1c290 |
| while (r0 != 0) {
0x0001c286 add r0, sp, 0x18 | r0 += var_18h;
0x0001c288 blx 0x6014 | r0 = fcn_00006014 ();
0x0001c28c cmp r0, 0 |
| if (r0 < 0) {
0x0001c28e blt 0x1c2d2 | goto label_10;
| }
| label_0:
0x0001c290 ldr r1, [r4, 4]! | r1 = *((r4 += 4));
| if (r1 == 0) {
0x0001c294 cbz r1, 0x1c2e8 | goto label_11;
| }
0x0001c296 ldr r2, [pc, 0x224] | r2 = *(0x1c4be);
0x0001c298 mov r0, r1 | r0 = r1;
0x0001c29a mov r3, r5 | r3 = r5;
0x0001c29c movs r1, 0 | r1 = 0;
0x0001c29e ldr r2, [r6, r2] | r2 = *((r6 + r2));
0x0001c2a0 str r7, [sp] | *(sp) = r7;
0x0001c2a2 ldrb r2, [r2] | r2 = *(r2);
0x0001c2a4 cmp r2, 0 |
0x0001c2a6 ite eq |
| if (r2 != 0) {
0x0001c2a8 moveq r2, 3 | r2 = 3;
| }
| if (r2 == 0) {
0x0001c2aa movne r2, 1 | r2 = 1;
| }
0x0001c2ac blx 0x63fc | r0 = fcn_000063fc ();
0x0001c2b0 subs r1, r0, 0 | r1 = r0 - 0;
| if (r1 < r0) {
0x0001c2b2 blt.w 0x1c3be | goto label_12;
| }
0x0001c2b6 ldr.w fp, [sp, 0x20] | fp = var_20h;
0x0001c2ba mov r1, r8 | r1 = r8;
0x0001c2bc mov r0, fp | r0 = fp;
0x0001c2be blx 0x5ea0 | fcn_00005ea0 ();
0x0001c2c2 mov r1, fp | r1 = fp;
0x0001c2c4 cmp r0, 0 |
0x0001c2c6 bne 0x1c286 |
| }
0x0001c2c8 add r0, sp, 0x14 | r0 += var_14h;
0x0001c2ca blx 0x6014 | r0 = fcn_00006014 ();
0x0001c2ce cmp r0, 0 |
| if (r0 >= 0) {
0x0001c2d0 bge 0x1c290 | goto label_0;
| }
| label_10:
0x0001c2d2 ldr r1, [pc, 0x1ec] |
0x0001c2d4 movs r2, 0xff | r2 = 0xff;
0x0001c2d6 ldr r3, [pc, 0x1ec] |
0x0001c2d8 movs r0, 3 | r0 = 3;
0x0001c2da add r1, pc | r1 = 0x387a0;
0x0001c2dc add r3, pc | r3 = 0x387a6;
0x0001c2de adds r1, 7 | r1 += 7;
0x0001c2e0 blx 0x6920 | r0 = fcn_00006920 ();
0x0001c2e4 mov r4, r0 | r4 = r0;
0x0001c2e6 b 0x1c390 | goto label_13;
| label_11:
0x0001c2e8 ldr r0, [sp, 0x18] | r0 = var_18h;
0x0001c2ea cmp r0, 0 |
| if (r0 == 0) {
0x0001c2ec beq 0x1c3de | goto label_14;
| }
0x0001c2ee ldr r3, [r0] | r3 = *(r0);
0x0001c2f0 cmp r3, 0 |
| if (r3 == 0) {
0x0001c2f2 beq.w 0x1c418 | goto label_15;
| }
0x0001c2f6 add r3, sp, 0x1c | r3 += var_1ch;
0x0001c2f8 mov r2, r0 | r2 = r0;
0x0001c2fa str r3, [sp, 4] | var_4h = r3;
0x0001c2fc mov r0, sb | r0 = sb;
0x0001c2fe add r3, sp, 0x20 | r3 += var_20h;
0x0001c300 str r1, [sp] | *(sp) = r1;
0x0001c302 strd r1, r1, [sp, 0x1c] | __asm ("strd r1, r1, [var_20h]");
0x0001c306 str r1, [sp, 0xc] | var_ch = r1;
0x0001c308 bl 0x1bd44 | r0 = fcn_0001bd44 (r0, r1, r2, r3, r4, r5);
0x0001c30c subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0001c30e blt 0x1c37e | goto label_5;
| }
0x0001c310 ldr r0, [sp, 0x14] | r0 = var_14h;
0x0001c312 blx 0x6168 | fcn_00006168 ();
0x0001c316 ldr r1, [sp, 0xc] | r1 = var_ch;
0x0001c318 mov r5, r0 | r5 = r0;
0x0001c31a cmp r4, 0 |
| if (r4 == 0) {
0x0001c31c beq.w 0x1c44c | goto label_16;
| }
0x0001c320 mov r6, r1 | r6 = r1;
0x0001c322 add r4, r0 | r4 += r0;
0x0001c324 add r7, sp, 0x14 | r7 += var_14h;
0x0001c326 mov r8, r1 | r8 = r1;
0x0001c328 b 0x1c35a |
| while (r0 != 0) {
0x0001c32a ldr r3, [sp, 0x20] | r3 = var_20h;
0x0001c32c ldr.w sb, [sp, 0x14] | sb = var_14h;
0x0001c330 add r3, r6 | r3 += r6;
0x0001c332 ldr r0, [r3, 4] | r0 = *((r3 + 4));
0x0001c334 blx 0x68d4 | bus_parse_unit_info ();
0x0001c338 str.w r0, [sb, r5, lsl 2] | __asm ("str.w r0, [sb, r5, lsl 2]");
0x0001c33c lsls r1, r5, 2 | r1 = r5 << 2;
0x0001c33e ldr r3, [sp, 0x14] | r3 = var_14h;
0x0001c340 ldr.w r2, [r3, r5, lsl 2] | offset_0 = r5 << 2;
| r2 = *((r3 + offset_0));
0x0001c344 cmp r2, 0 |
| if (r2 == 0) {
0x0001c346 beq.w 0x1c47a | goto label_17;
| }
0x0001c34a adds r5, 1 | r5++;
0x0001c34c add r3, r1 | r3 += r1;
0x0001c34e cmp r5, r4 |
0x0001c350 add.w r6, r6, 0x2c | r6 += 0x2c;
0x0001c354 str.w r8, [r3, 4] | __asm ("str.w r8, [r3, 4]");
| if (r5 == r4) {
0x0001c358 beq 0x1c44c | goto label_16;
| }
0x0001c35a movs r2, 4 | r2 = 4;
0x0001c35c adds r1, r5, 2 | r1 = r5 + 2;
0x0001c35e mov r0, r7 | r0 = r7;
0x0001c360 blx 0x6078 | r0 = fcn_00006078 ();
0x0001c364 cmp r0, 0 |
0x0001c366 bne 0x1c32a |
| }
0x0001c368 ldr r1, [pc, 0x15c] |
0x0001c36a movw r2, 0x111 | r2 = 0x111;
0x0001c36e ldr r3, [pc, 0x15c] |
0x0001c370 movs r0, 3 | r0 = 3;
0x0001c372 add r1, pc | r1 = 0x3883e;
0x0001c374 add r3, pc | r3 = 0x38846;
0x0001c376 adds r1, 7 | r1 += 7;
0x0001c378 blx 0x6920 | r0 = fcn_00006920 ();
0x0001c37c mov r4, r0 | r4 = r0;
| label_5:
0x0001c37e ldr r0, [sp, 0x20] | r0 = var_20h;
0x0001c380 blx 0x59e0 | unit_file_state_to_string ();
0x0001c384 ldr r0, [sp, 0x1c] | r0 = var_1ch;
0x0001c386 movs r3, 0 | r3 = 0;
0x0001c388 str r3, [sp, 0x20] | var_20h = r3;
| if (r0 == 0) {
0x0001c38a cbz r0, 0x1c390 | goto label_13;
| }
0x0001c38c blx 0x62ac | fcn_000062ac ();
| do {
| label_13:
0x0001c390 ldr r0, [sp, 0x18] | r0 = var_18h;
| if (r0 != 0) {
0x0001c392 cbz r0, 0x1c39a |
| label_2:
0x0001c394 blx 0x67b4 | mktime (r0);
0x0001c398 str r0, [sp, 0x18] | var_18h = r0;
| }
0x0001c39a ldr r0, [sp, 0x14] | r0 = var_14h;
| if (r0 != 0) {
0x0001c39c cbz r0, 0x1c3a2 |
0x0001c39e blx 0x67b4 | mktime (r0);
| }
| label_1:
0x0001c3a2 ldr r2, [pc, 0x12c] |
0x0001c3a4 ldr r3, [pc, 0x100] | r3 = *(0x1c4a8);
0x0001c3a6 add r2, pc | r2 = 0x3887c;
0x0001c3a8 ldr r3, [r2, r3] | r3 = *(0x3887c);
0x0001c3aa ldr r2, [r3] | r2 = *(0x3887c);
0x0001c3ac ldr r3, [sp, 0x24] | r3 = var_24h;
0x0001c3ae eors r2, r3 | r2 ^= r3;
0x0001c3b0 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0001c3b4 bne 0x1c4a2 | goto label_18;
| }
0x0001c3b6 mov r0, r4 | r0 = r4;
0x0001c3b8 add sp, 0x2c |
0x0001c3ba pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_12:
0x0001c3be str r1, [sp, 8] | var_8h = r1;
0x0001c3c0 blx 0x5cd4 | gethostname_full ();
0x0001c3c4 ldr r1, [sp, 8] | r1 = var_8h;
0x0001c3c6 cmp r0, 2 |
0x0001c3c8 ittt le |
| if (r0 <= 2) {
0x0001c3ca rsble r4, r1, 0 | __asm ("rsble r4, r1, 0");
| }
| if (r0 <= 2) {
0x0001c3cc bicle r4, r4, 0x40000000 | __asm ("bicle r4, r4, 0x40000000");
| }
| if (r0 <= 2) {
0x0001c3d0 rsbs r4, r4, 0 | r4 -= ;
| }
| if (r0 > 2) {
0x0001c3d2 bgt 0x1c42e | goto label_19;
| }
| label_3:
0x0001c3d4 cmp r4, 0 |
0x0001c3d6 it ge |
| if (r4 < 0) {
0x0001c3d8 mvnge r4, 0x55 | r4 = ~0x55;
| }
0x0001c3dc b 0x1c390 |
| } while (1);
| label_14:
0x0001c3de ldr r2, [sp, 8] | r2 = var_8h;
0x0001c3e0 ldr r3, [sp, 0x14] | r3 = var_14h;
| if (r2 != 0) {
0x0001c3e2 cbz r2, 0x1c3e8 |
0x0001c3e4 ldr r2, [sp, 8] | r2 = var_8h;
0x0001c3e6 strb r0, [r2] | *(r2) = r0;
| }
| label_6:
0x0001c3e8 str.w r3, [sl] | __asm ("str.w r3, [sl]");
| label_4:
0x0001c3ec movs r4, 0 | r4 = 0;
0x0001c3ee b 0x1c3a2 | goto label_1;
| label_7:
0x0001c3f0 ldr r1, [pc, 0xe0] |
0x0001c3f2 movs r2, 0xef | r2 = 0xef;
0x0001c3f4 ldr r3, [pc, 0xe0] |
0x0001c3f6 ldr r0, [pc, 0xe4] |
0x0001c3f8 add r1, pc | r1 = 0x388d0;
0x0001c3fa add r3, pc | r3 = 0x388d6;
0x0001c3fc adds r1, 7 | r1 += 7;
0x0001c3fe add r0, pc | r0 = 0x388e0;
0x0001c400 blx 0x59a0 | fcn_000059a0 ();
| label_8:
0x0001c404 ldr r1, [pc, 0xd8] |
0x0001c406 movs r2, 0xf0 | r2 = 0xf0;
0x0001c408 ldr r3, [pc, 0xd8] |
0x0001c40a ldr r0, [pc, 0xdc] |
0x0001c40c add r1, pc | r1 = 0x388f0;
0x0001c40e add r3, pc | r3 = 0x388f6;
0x0001c410 adds r1, 7 | r1 += 7;
0x0001c412 add r0, pc | r0 = 0x38900;
0x0001c414 blx 0x59a0 | fcn_000059a0 ();
| label_15:
0x0001c418 ldr r1, [sp, 8] | r1 = var_8h;
0x0001c41a ldr r2, [sp, 0x14] | r2 = var_14h;
| if (r1 != 0) {
0x0001c41c cbz r1, 0x1c422 |
0x0001c41e ldr r1, [sp, 8] | r1 = var_8h;
0x0001c420 strb r3, [r1] | *(r1) = r3;
| }
0x0001c422 movs r3, 0 | r3 = 0;
0x0001c424 str.w r2, [sl] | __asm ("str.w r2, [sl]");
0x0001c428 mov r4, r3 | r4 = r3;
0x0001c42a str r3, [sp, 0x14] | var_14h = r3;
0x0001c42c b 0x1c394 | goto label_2;
| label_19:
0x0001c42e ldr r2, [pc, 0xbc] |
0x0001c430 movs r3, 0xf8 | r3 = 0xf8;
0x0001c432 ldr r4, [pc, 0xbc] |
0x0001c434 ldr r0, [pc, 0xbc] |
0x0001c436 add r2, pc | r2 = 0x38928;
0x0001c438 add r4, pc | r4 = 0x3892e;
0x0001c43a adds r2, 7 | r2 += 7;
0x0001c43c add r0, pc | r0 = 0x38934;
0x0001c43e strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x0001c442 movs r0, 3 | r0 = 3;
0x0001c444 blx 0x6008 | r0 = fcn_00006008 ();
0x0001c448 mov r4, r0 | r4 = r0;
0x0001c44a b 0x1c3d4 | goto label_3;
| label_16:
0x0001c44c ldr r0, [sp, 0x20] | r0 = var_20h;
0x0001c44e blx 0x59e0 | unit_file_state_to_string ();
0x0001c452 ldr r0, [sp, 0x1c] | r0 = var_1ch;
0x0001c454 movs r3, 0 | r3 = 0;
0x0001c456 str r3, [sp, 0x20] | var_20h = r3;
| if (r0 != 0) {
0x0001c458 cbz r0, 0x1c45e |
0x0001c45a blx 0x62ac | fcn_000062ac ();
| }
0x0001c45e ldr r2, [sp, 8] | r2 = var_8h;
0x0001c460 ldrd r3, r0, [sp, 0x14] | __asm ("ldrd r3, r0, [var_14h]");
| if (r2 != 0) {
0x0001c464 cbz r2, 0x1c46c |
0x0001c466 ldr r1, [sp, 8] | r1 = var_8h;
0x0001c468 movs r2, 1 | r2 = 1;
0x0001c46a strb r2, [r1] | *(r1) = r2;
| }
0x0001c46c movs r4, 0 | r4 = 0;
0x0001c46e str.w r3, [sl] | __asm ("str.w r3, [sl]");
0x0001c472 str r4, [sp, 0x14] | var_14h = r4;
0x0001c474 cmp r0, 0 |
| if (r0 != 0) {
0x0001c476 bne 0x1c394 | goto label_2;
| }
0x0001c478 b 0x1c3ec | goto label_4;
| label_17:
0x0001c47a ldr r1, [pc, 0x7c] |
0x0001c47c movw r2, 0x115 | r2 = 0x115;
0x0001c480 ldr r3, [pc, 0x78] |
0x0001c482 movs r0, 3 | r0 = 3;
0x0001c484 add r1, pc | r1 = 0x38982;
0x0001c486 add r3, pc | r3 = 0x38986;
0x0001c488 adds r1, 7 | r1 += 7;
0x0001c48a blx 0x6920 | r0 = fcn_00006920 ();
0x0001c48e mov r4, r0 | r4 = r0;
0x0001c490 b 0x1c37e | goto label_5;
| label_9:
0x0001c492 ldr r3, [sp, 8] | r3 = var_8h;
0x0001c494 cmp r3, 0 |
| if (r3 == 0) {
0x0001c496 beq 0x1c3e8 | goto label_6;
| }
0x0001c498 ldr r3, [sp, 8] | r3 = var_8h;
0x0001c49a strb r1, [r3] | *(r3) = r1;
0x0001c49c str.w r1, [sl] | __asm ("str.w r1, [sl]");
0x0001c4a0 b 0x1c3ec | goto label_4;
| label_18:
0x0001c4a2 blx 0x60c0 | fcn_000060c0 ();
0x0001c4a6 nop |
0x0001c4a8 lsls r4, r5, 0x16 | r4 = r5 << 0x16;
0x0001c4aa movs r0, r0 |
0x0001c4ac ssat r0, 1, r6 | __asm ("ssat r0, 1, r6");
0x0001c4b0 ssat r0, 1, r2 | __asm ("ssat r0, 1, r2");
0x0001c4b4 ldrsh r6, [r7, r2] | r6 = *((r7 + r2));
0x0001c4b6 movs r0, r0 |
0x0001c4b8 str r6, [sp, 0x268] | *(arg_268h) = r6;
0x0001c4ba movs r0, r0 |
0x0001c4bc lsls r4, r5, 0x18 | r4 = r5 << 0x18;
0x0001c4be movs r0, r0 |
0x0001c4c0 str r2, [sp, 0xe8] | *(arg_e8h) = r2;
0x0001c4c2 movs r0, r0 |
0x0001c4c4 ldr r2, [sp, 0x70] | r2 = *(arg_70h);
0x0001c4c6 movs r0, r0 |
0x0001c4c8 str r1, [sp, 0x288] | *(arg_288h) = r1;
0x0001c4ca movs r0, r0 |
0x0001c4cc ldr r1, [sp, 0x210] | r1 = *(arg_210h);
0x0001c4ce movs r0, r0 |
0x0001c4d0 sub.w r0, r6, 0x800000 | r0 = r6 - 0x800000;
0x0001c4d4 str r1, [sp, 0x70] | *(arg_70h) = r1;
0x0001c4d6 movs r0, r0 |
0x0001c4d8 ldr r1, [sp, 0x48] | r1 = var_48h;
0x0001c4da movs r0, r0 |
0x0001c4dc ldr r4, [pc, 0x328] | r4 = *(0x1c808);
0x0001c4de movs r0, r0 |
0x0001c4e0 str r1, [sp, 0x20] | var_20h = r1;
0x0001c4e2 movs r0, r0 |
0x0001c4e4 ldr r0, [sp, 0x3f8] | r0 = *(arg_3f8h);
0x0001c4e6 movs r0, r0 |
0x0001c4e8 ldrh r6, [r4, 0x3e] | r6 = *((r4 + 0x3e));
0x0001c4ea movs r0, r0 |
0x0001c4ec str r0, [sp, 0x378] | *(arg_378h) = r0;
0x0001c4ee movs r0, r0 |
0x0001c4f0 str r4, [sp, 0x320] | *(arg_320h) = r4;
0x0001c4f2 movs r0, r0 |
0x0001c4f4 ldr r0, [sp, 0x2f0] | r0 = *(arg_2f0h);
0x0001c4f6 movs r0, r0 |
0x0001c4f8 str r0, [sp, 0x240] | *(arg_240h) = r0;
0x0001c4fa movs r0, r0 |
0x0001c4fc ldr r0, [sp, 0x1c8] | r0 = *(arg_1c8h);
0x0001c4fe movs r0, r0 |
| }
; 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 @ 0x1ec88 */
| #include <stdint.h>
|
; (fcn) fcn.0001ec88 () | void fcn_0001ec88 (int16_t arg_1ch, uint32_t arg1, int16_t arg2, int16_t arg3, uint32_t arg4) {
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x0001ec88 mvnsmi lr, 0xb4000 | __asm ("mvnsmi lr, 0xb4000");
0x0001ec8c cmp r0, r2 |
0x0001ec8e mov r5, r1 | r5 = r1;
0x0001ec90 mov r4, r0 | r4 = r0;
0x0001ec92 sbcs.w r1, r5, r3 | __asm ("sbcs.w r1, r5, r3");
0x0001ec96 it lo |
| if (r0 >= r2) {
0x0001ec98 movlo r0, 0 | r0 = 0;
| }
0x0001ec9a ldr r7, [sp, 0x1c] | r7 = *(arg_1ch);
0x0001ec9c it lo |
| if (r0 >= r2) {
0x0001ec9e movlo r1, r0 | r1 = r0;
| }
| if (r0 <= r2) {
0x0001eca0 blo 0x1ed68 | goto label_3;
| }
0x0001eca2 clz r6, r3 | r6 &= r3;
0x0001eca6 cmp r3, 0 |
| if (r3 == 0) {
0x0001eca8 beq 0x1ed7a | goto label_4;
| }
0x0001ecaa clz r1, r5 | r1 &= r5;
0x0001ecae cmp r5, 0 |
| if (r5 == 0) {
0x0001ecb0 beq 0x1ed72 | goto label_2;
| }
| label_1:
0x0001ecb2 subs r6, r6, r1 | r6 -= r1;
0x0001ecb4 sub.w ip, r6, 0x20 |
0x0001ecb8 lsls r3, r6 | r3 <<= r6;
0x0001ecba lsl.w r1, r2, ip | r1 = r2 << ip;
0x0001ecbe rsb.w lr, r6, 0x20 | lr = 0x20 - r6;
0x0001ecc2 orrs r3, r1 | r3 |= r1;
0x0001ecc4 lsr.w r1, r2, lr | r1 = r2 >> lr;
0x0001ecc8 lsls r2, r6 | r2 <<= r6;
0x0001ecca orrs r3, r1 | r3 |= r1;
0x0001eccc cmp r4, r2 |
0x0001ecce sbcs.w r1, r5, r3 | __asm ("sbcs.w r1, r5, r3");
0x0001ecd2 itt lo |
| if (r4 >= r2) {
0x0001ecd4 movlo r0, 0 | r0 = 0;
| }
| if (r4 >= r2) {
0x0001ecd6 movlo r1, r0 | r1 = r0;
| }
| if (r4 > r2) {
0x0001ecd8 blo 0x1ecf2 |
0x0001ecda movs r0, 1 | r0 = 1;
0x0001ecdc subs r4, r4, r2 | r4 -= r2;
0x0001ecde lsl.w r1, r0, ip | r1 = r0 << ip;
0x0001ece2 lsr.w r8, r0, lr | r8 = r0 >> lr;
0x0001ece6 lsl.w r0, r0, r6 | r0 <<= r6;
0x0001ecea sbc.w r5, r5, r3 | __asm ("sbc.w r5, r5, r3");
0x0001ecee orr.w r1, r1, r8 | r1 |= r8;
| }
| if (r6 == 0) {
0x0001ecf2 cbz r6, 0x1ed68 | goto label_3;
| }
0x0001ecf4 lsrs r2, r2, 1 | r2 >>= 1;
0x0001ecf6 mov r8, r6 | r8 = r6;
0x0001ecf8 orr.w r2, r2, r3, lsl 31 | r2 |= (r3 << 31);
0x0001ecfc lsrs r3, r3, 1 | r3 >>= 1;
0x0001ecfe b 0x1ed16 |
| while (r4 >= r2) {
0x0001ed00 subs r4, r4, r2 | r4 -= r2;
0x0001ed02 sbc.w r5, r5, r3 | __asm ("sbc.w r5, r5, r3");
0x0001ed06 adds r4, r4, r4 | r4 += r4;
0x0001ed08 adcs r5, r5 | __asm ("adcs r5, r5");
0x0001ed0a adds r4, 1 | r4++;
0x0001ed0c adc r5, r5, 0 | __asm ("adc r5, r5, 0");
0x0001ed10 subs.w r8, r8, 1 | r8--;
| if (r8 == r8) {
0x0001ed14 beq 0x1ed28 | goto label_5;
| }
| label_0:
0x0001ed16 cmp r4, r2 |
0x0001ed18 sbcs.w sb, r5, r3 | __asm ("sbcs.w sb, r5, r3");
0x0001ed1c bhs 0x1ed00 |
| }
0x0001ed1e adds r4, r4, r4 | r4 += r4;
0x0001ed20 adcs r5, r5 | __asm ("adcs r5, r5");
0x0001ed22 subs.w r8, r8, 1 | r8--;
| if (r8 != r8) {
0x0001ed26 bne 0x1ed16 | goto label_0;
| }
| label_5:
0x0001ed28 adds r0, r0, r4 | r0 += r4;
0x0001ed2a lsl.w lr, r5, lr | lr = r5 << lr;
0x0001ed2e lsr.w r4, r4, r6 | r4 >>= r6;
0x0001ed32 lsr.w ip, r5, ip |
0x0001ed36 adc.w r1, r1, r5 | __asm ("adc.w r1, r1, r5");
0x0001ed3a orr.w r4, r4, lr | r4 |= lr;
0x0001ed3e lsrs r5, r6 | r5 >>= r6;
0x0001ed40 orr.w r4, r4, ip | r4 |= ip;
0x0001ed44 sub.w ip, r6, 0x20 |
0x0001ed48 lsl.w ip, r4, ip |
0x0001ed4c lsl.w r2, r5, r6 | r2 = r5 << r6;
0x0001ed50 rsb.w r3, r6, 0x20 | r3 = 0x20 - r6;
0x0001ed54 orr.w r2, r2, ip | r2 |= ip;
0x0001ed58 lsr.w r3, r4, r3 | r3 = r4 >> r3;
0x0001ed5c orrs r2, r3 | r2 |= r3;
0x0001ed5e lsl.w r3, r4, r6 | r3 = r4 << r6;
0x0001ed62 subs r0, r0, r3 | r0 -= r3;
0x0001ed64 sbc.w r1, r1, r2 | __asm ("sbc.w r1, r1, r2");
| if (r7 != 0) {
| label_3:
0x0001ed68 cbz r7, 0x1ed6e |
0x0001ed6a strd r4, r5, [r7] | __asm ("strd r4, r5, [r7]");
| }
0x0001ed6e pop.w {r4, r5, r6, r7, r8, sb, pc} |
| label_2:
0x0001ed72 clz r1, r4 | r1 &= r4;
0x0001ed76 adds r1, 0x20 | r1 += 0x20;
0x0001ed78 b 0x1ecb2 | goto label_1;
| label_4:
0x0001ed7a clz r6, r2 | r6 &= r2;
0x0001ed7e clz r1, r5 | r1 &= r5;
0x0001ed82 adds r6, 0x20 | r6 += 0x20;
0x0001ed84 cmp r5, 0 |
| if (r5 != 0) {
0x0001ed86 bne 0x1ecb2 | goto label_1;
| }
0x0001ed88 b 0x1ed72 | goto label_2;
| }
[*] Function system used 10 times systemctl