[*] Binary protection state of systemctl
Full RELRO Canary found NX enabled PIE enabled RPATH No RUNPATH No Symbols
[*] Function strcpy tear down of systemctl
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/systemctl @ 0x8f20 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.00008f20 () | void fcn_00008f20 (int16_t arg_0h, int16_t arg_4h, int16_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
| int16_t var_4h;
| int16_t var_0h_2;
| int16_t var_sp_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_18h;
| 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;
| int16_t var_38h_2;
| int16_t var_3ch_2;
| int16_t var_40h_2;
| int16_t var_44h;
| int16_t var_48h;
| int16_t var_4ch;
| int16_t var_53h;
| int16_t var_54h;
| int16_t var_58h;
| int16_t var_5ch;
| int16_t var_60h;
| int16_t var_64h;
| int16_t var_68h;
| 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_2;
| char * path;
| int16_t var_ech;
| int16_t var_0h_3;
| int16_t var_8h_2;
| int16_t var_ch_2;
| int16_t var_10h_2;
| int16_t var_14h;
| int16_t var_1ch_2;
| int16_t var_20h_2;
| int16_t var_24h_2;
| int16_t var_28h_2;
| int16_t var_2ch_2;
| int16_t var_30h_2;
| int16_t var_34h_2;
| int16_t var_38h;
| int16_t var_3ch;
| int16_t var_40h;
| int16_t var_44h_2;
| int16_t var_48h_2;
| int16_t var_4ch_2;
| int16_t var_50h;
| int16_t var_84h;
| int16_t var_0h;
| int16_t var_8h_3;
| int32_t var_ch_3;
| int16_t var_0h_4;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x00008f20 svcmi 0xf0e92d | __asm ("svcmi 0xf0e92d");
0x00008f24 mov sl, r2 | sl = r2;
0x00008f26 ldr r2, [pc, 0x118] |
0x00008f28 mov r6, r3 | r6 = r3;
0x00008f2a sub sp, 0x14 |
0x00008f2c ldr r3, [pc, 0x114] | r3 = *(0x9044);
0x00008f2e add r7, sp, 0 | r7 += var_0h;
0x00008f30 add r2, pc | r2 = 0x11f76;
0x00008f32 ldrd r8, sb, [r7, 0x38] | __asm ("ldrd r8, sb, [r7, 0x38]");
0x00008f36 ldr r3, [r2, r3] |
0x00008f38 ldr r3, [r3] | r3 = *(0x11f76);
0x00008f3a str r3, [r7, 0xc] | var_ch_3 = r3;
0x00008f3c mov.w r3, 0 | r3 = 0;
0x00008f40 movs r3, 0 | r3 = 0;
0x00008f42 strd r3, r3, [r7, 4] | __asm ("strd r3, r3, [r7, 4]");
0x00008f46 cmp r1, 0 |
| if (r1 != 0) {
0x00008f48 beq 0x8ff2 |
0x00008f4a mov r5, r0 | r5 = r0;
0x00008f4c mov r0, r1 | r0 = r1;
0x00008f4e mov fp, r1 |
0x00008f50 blx 0x5d5c | r0 = unlink (r0);
0x00008f54 adds r4, r0, 1 | r4 = r0 + 1;
0x00008f56 cmp.w sl, 0 |
| if (sl == 0) {
0x00008f5a beq 0x901c | goto label_40;
| }
0x00008f5c mov r0, sl | r0 = sl;
0x00008f5e blx 0x5d5c | unlink (r0);
0x00008f60 vmov.f64 d30, -6.250000e-01 | __asm ("vmov.f64 d30, -6");
0x00008f64 lsrs r0, r0, 0x10 | r0 >>= 0x10;
0x00008f66 cmp.w ip, 0x400000 |
| if (ip > 0x400000) {
0x00008f6a bhi 0x9006 | goto label_41;
| }
0x00008f6c add.w ip, ip, 7 |
0x00008f70 mov r1, fp | r1 = fp;
0x00008f72 bic ip, ip, 7 | ip = BIT_MASK (ip, 7);
0x00008f74 lsrs r7, r0, 0x10 | r7 = r0 >> 0x10;
0x00008f76 sub.w sp, sp, ip |
0x00008f7a mov r4, sp | r4 = sp;
0x00008f7c mov r0, r4 | r0 = r4;
0x00008f7e blx 0x5a4c | fcn_00005a4c ();
0x00008f82 mov r1, sl | r1 = sl;
0x00008f84 blx 0x5a4c | r0 = fcn_00005a4c ();
0x00008f88 mov r3, r0 | r3 = r0;
| label_0:
0x00008f8a mov r0, r5 | r0 = r5;
0x00008f8c movs r5, 0 | r5 = 0;
0x00008f8e mov r1, r4 | r1 = r4;
0x00008f90 adds r2, r7, 4 | r2 = r7 + 4;
0x00008f92 strb r5, [r3] | *(r3) = r5;
0x00008f94 bl 0x860c | fcn_0000860c (r0, r1, r2);
0x00008f96 smlawb lr, sl, r4, r1 | __asm ("smlawb lr, sl, r4, r1");
0x00008f9a ldr.w sl, [r7, 4] | sl = *((r7 + 4));
0x00008f9e it lt |
| if (r2 >= r7) {
0x00008fa0 movlt r0, r5 | r0 = r5;
| }
| if (r2 >= r7) {
0x00008fa2 blt 0x8fca |
0x00008fa4 add.w r3, r7, 8 | r3 += var_8h_3;
0x00008fa8 mov r0, sl | r0 = sl;
0x00008faa mov r2, r6 | r2 = r6;
0x00008fac mov r1, r5 | r1 = r5;
0x00008fae bl 0x8a1c | r0 = fcn_00008a1c (r0, r1, r2, r3);
0x00008fb2 subs r4, r0, 0 | r4 = r0 - 0;
0x00008fb4 iteee lt |
| if (r4 >= r0) {
0x00008fb6 ldrlt r0, [r7, 8] | r0 = *((r7 + 8));
| }
| if (r4 < r0) {
0x00008fb8 strge sl, [r8] | *(r8) = sl;
| }
| if (r4 < r0) {
0x00008fbc movge sl, r5 | sl = r5;
| }
| if (r4 >= r0) {
0x00008fbe ldr r3, [r7, 8] | r3 = var_8h_3;
| }
0x00008fc0 ittt ge |
| if (r4 < r0) {
0x00008fc2 movge r0, sl | r0 = sl;
| }
| if (r4 < r0) {
0x00008fc4 movge r4, sl | r4 = sl;
| }
| if (r4 >= r0) {
0x00008fc6 strge r3, [sb] | *(sb) = r3;
| goto label_42;
| }
| }
| label_42:
0x00008fca blx 0x5be4 | fcn_00005be4 ();
0x00008fce mov r0, sl | r0 = sl;
0x00008fd0 blx 0x5be4 | fcn_00005be4 ();
0x00008fd4 ldr r2, [pc, 0x70] |
0x00008fd6 ldr r3, [pc, 0x6c] | r3 = *(0x9046);
0x00008fd8 add r2, pc | r2 = 0x12024;
0x00008fda ldr r3, [r2, r3] | r3 = *(0x12024);
0x00008fdc ldr r2, [r3] | r2 = *(0x12024);
0x00008fde ldr r3, [r7, 0xc] | r3 = var_ch_3;
0x00008fe0 eors r2, r3 | r2 ^= r3;
0x00008fe2 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00008fe6 bne 0x903a | goto label_43;
| }
0x00008fe8 mov r0, r4 | r0 = r4;
0x00008fea adds r7, 0x14 | r7 += 0x14;
0x00008fec mov sp, r7 |
0x00008fee pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| }
0x00008ff2 ldr r1, [pc, 0x58] |
0x00008ff4 movs r2, 0xfe | r2 = 0xfe;
0x00008ff6 ldr r3, [pc, 0x58] |
0x00008ff8 ldr r0, [pc, 0x58] |
0x00008ffa add r1, pc | r1 = 0x1204c;
0x00008ffc add r3, pc | r3 = 0x12052;
0x00008ffe adds r1, 7 | r1 += 7;
0x00009000 add r0, pc | r0 = 0x12058;
0x00009002 blx 0x5e40 | unit_file_get_default ();
| do {
| label_41:
0x00009006 ldr r1, [pc, 0x50] |
0x00009008 mov.w r2, 0x102 | r2 = 0x102;
0x0000900a strb r1, [r0, 0xa] | *((r0 + 0xa)) = r1;
0x0000900c ldr r3, [pc, 0x4c] |
0x0000900e ldr r0, [pc, 0x50] |
0x00009010 add r1, pc | r1 = 0x1206e;
0x00009012 add r3, pc | r3 = 0x12072;
0x00009014 adds r1, 7 | r1 += 7;
0x00009016 add r0, pc | r0 = 0x1207c;
0x00009018 blx 0x5e40 | unit_file_get_default ();
| label_40:
0x0000901c cmp.w r4, 0x400000 |
0x00009020 bhi 0x9006 |
| } while (r4 > 0x400000);
0x00009022 adds r0, 8 | r0 += 8;
0x00009024 mov r1, fp | r1 = fp;
0x00009026 bic r0, r0, 7 | r0 = BIT_MASK (r0, 7);
0x0000902a sub.w sp, sp, r0 |
0x0000902e mov r4, sp | r4 = sp;
0x00009030 mov r0, r4 | r0 = r4;
0x00009032 blx 0x5a4c | r0 = fcn_00005a4c ();
0x00009036 mov r3, r0 | r3 = r0;
0x00009038 b 0x8f8a | goto label_0;
| label_43:
0x0000903a blx 0x6114 | fcn_00006114 ();
0x0000903e nop |
0x00009040 subs r4, r7, r0 | r4 = r7 - r0;
0x00009042 movs r3, r0 | r3 = r0;
0x00009044 lsls r0, r2, 0x18 | r0 = r2 << 0x18;
0x00009046 movs r0, r0 |
0x00009048 adds r4, r2, r6 | r4 = r2 + r6;
0x0000904a movs r3, r0 | r3 = r0;
0x0000904c str r6, [r2, 0x3c] | *((r2 + 0x3c)) = r6;
0x0000904e movs r1, r0 | r1 = r0;
0x00009050 ldr r0, [r1, 0x44] | r0 = *((r1 + 0x44));
0x00009052 movs r1, r0 | r1 = r0;
0x00009054 str r0, [r1, 0x74] | *((r1 + 0x74)) = r0;
0x00009056 movs r1, r0 | r1 = r0;
0x00009058 str r0, [r0, 0x3c] | *((r0 + 0x3c)) = r0;
0x0000905a movs r1, r0 | r1 = r0;
0x0000905c ldr r2, [r6, 0x40] | r2 = *((r6 + 0x40));
0x0000905e movs r1, r0 | r1 = r0;
0x00009060 str r6, [r7, 0x70] | *((r7 + 0x70)) = r6;
0x00009062 movs r1, r0 | r1 = r0;
0x00009064 ldr r0, [pc, 0x3ac] |
0x00009066 movs r2, 0x34 | r2 = 0x34;
0x00009068 ldr r3, [pc, 0x3ac] | r3 = *(0x9418);
0x0000906a push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0000906e sub sp, 0x8c |
0x00009070 add r0, pc | r0 = 0x12488;
0x00009072 movs r6, 0 | r6 = 0;
0x00009074 add r5, sp, 0x50 | r5 += var_50h;
0x00009076 mov r7, r1 | r7 = r1;
0x00009078 ldr r3, [r0, r3] |
0x0000907a mov r1, r6 | r1 = r6;
0x0000907c ldr r4, [pc, 0x39c] |
0x0000907e mov r0, r5 | r0 = r5;
0x00009080 ldr r3, [r3] | r3 = *(0x12488);
0x00009082 str r3, [sp, 0x84] | var_84h = r3;
0x00009084 mov.w r3, 0 | r3 = 0;
0x00009088 strd r6, r6, [sp, 0x38] | __asm ("strd r6, r6, [sp, 0x38]");
0x0000908c blx 0x5a68 | unit_load_state ();
0x00009090 ldr r3, [pc, 0x38c] | r3 = *(0x9420);
0x00009092 add r4, pc | r4 = 0x124b2;
0x00009094 str r6, [sp, 0x40] | var_40h = r6;
0x00009096 ldr r3, [r4, r3] |
0x00009098 ldr r3, [r3] | r3 = *(0x124b2);
| if (r3 == 0) {
0x0000909a cbz r3, 0x90f6 | goto label_44;
| }
0x0000909c ldr r3, [r3] | r3 = *(r3);
| if (r3 == 0) {
0x0000909e cbz r3, 0x90f6 | goto label_44;
| }
0x000090a0 ldr r3, [pc, 0x380] | r3 = *(0x9424);
0x000090a2 ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x000090a4 ldr r6, [r3] | r6 = *(0x9424);
| if (r6 == 0) {
0x000090a6 cbz r6, 0x9108 | goto label_45;
| }
| do {
0x000090a8 blx 0x5934 | r0 = fcn_00005934 ();
0x000090ac cmp r0, 2 |
0x000090ae it le |
| if (r0 > 2) {
0x000090b0 mvnle r8, 0x15 | r8 = ~0x15;
| }
| if (r0 > 2) {
0x000090b4 bgt.w 0x9240 | goto label_46;
| }
| label_1:
0x000090b8 mov r0, r5 | r0 = r5;
0x000090ba blx 0x5820 | fcn_00005820 ();
0x000090be ldr r0, [sp, 0x3c] | r0 = var_3ch;
| if (r0 != 0) {
0x000090c0 cbz r0, 0x90cc |
0x000090c2 movs r2, 0 | r2 = 0;
0x000090c4 mov r1, r2 | r1 = r2;
0x000090c6 blx 0x648c | fcn_0000648c ();
0x000090ca str r0, [sp, 0x3c] | var_3ch = r0;
| }
0x000090cc ldr r0, [sp, 0x38] | r0 = var_38h;
| if (r0 != 0) {
0x000090ce cbz r0, 0x90d8 |
0x000090d0 movs r2, 0 | r2 = 0;
0x000090d2 mov r1, r2 | r1 = r2;
0x000090d4 blx 0x648c | fcn_0000648c ();
| }
0x000090d8 ldr r2, [pc, 0x34c] |
0x000090da ldr r3, [pc, 0x33c] | r3 = *(0x941a);
0x000090dc add r2, pc | r2 = 0x12508;
0x000090de ldr r3, [r2, r3] | r3 = *(0x12508);
0x000090e0 ldr r2, [r3] | r2 = *(0x12508);
0x000090e2 ldr r3, [sp, 0x84] | r3 = var_84h;
0x000090e4 eors r2, r3 | r2 ^= r3;
0x000090e6 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000090ea bne.w 0x9410 | goto label_47;
| }
0x000090ee mov r0, r8 | r0 = r8;
0x000090f0 add sp, 0x8c |
0x000090f2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_44:
0x000090f6 ldr r3, [pc, 0x334] | r3 = *(0x942e);
0x000090f8 movs r2, 1 | r2 = 1;
0x000090fa ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x000090fc strb r2, [r3] | *(r3) = r2;
0x000090fe ldr r3, [pc, 0x324] | r3 = *(0x9426);
0x00009100 ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x00009102 ldr r6, [r3] | r6 = *(0x9426);
0x00009104 cmp r6, 0 |
0x00009106 bne 0x90a8 |
| } while (r6 != 0);
| label_45:
0x00009108 ldr r2, [pc, 0x324] | r2 = *(0x9430);
0x0000910a mov r0, r5 | r0 = r5;
0x0000910c ldr r3, [pc, 0x324] |
0x0000910e ldr r2, [r4, r2] | r2 = *((r4 + r2));
0x00009110 ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x00009112 mov r1, r2 | r1 = r2;
0x00009114 str r2, [sp, 0x1c] | var_1ch_2 = r2;
0x00009116 ldr r3, [r3] | r3 = *(0x9434);
0x00009118 mov r2, r6 | r2 = r6;
0x0000911a ldr r1, [r1] | r1 = *(r1);
0x0000911c blx 0x606c | r0 = fcn_0000606c ();
0x00009120 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x00009124 blt 0x921e | goto label_48;
| }
0x00009126 add r1, sp, 0x44 | r1 += var_44h_2;
0x00009128 movs r0, 1 | r0 = 1;
0x0000912a bl 0x1a334 | r0 = fcn_0001a334 (r0, r1);
0x0000912e subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x00009132 blt 0x920e | goto label_2;
| }
0x00009134 mov r0, r7 | r0 = r7;
0x00009136 ldr r7, [sp, 0x44] | r7 = var_44h_2;
0x00009138 movs r1, 1 | r1 = 1;
0x0000913a add.w r8, sp, 0x40 | r8 += var_40h;
0x0000913e blx 0x5ad4 | sd_bus_message_get_bus ();
0x00009142 mov r3, r8 | r3 = r8;
0x00009144 mov r1, r0 | r1 = r0;
0x00009146 mov r2, r6 | r2 = r6;
0x00009148 mov r0, r7 | r0 = r7;
0x0000914a str r6, [sp] | *(sp) = r6;
0x0000914c bl 0x1ba10 | r0 = fcn_0001ba10 (r0, r1, r2, r3, r4, r5, r6);
0x00009150 subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 < r0) {
0x00009152 blt.w 0x9328 | goto label_49;
| }
0x00009156 mov r1, r8 | r1 = r8;
0x00009158 ldr r0, [sp, 0x44] | r0 = var_44h_2;
0x0000915a bl 0x1b334 | r0 = fcn_0001b334 (r0, r1);
0x0000915e subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x00009162 blt 0x920e | goto label_2;
| }
0x00009164 ldr r3, [pc, 0x2d0] | r3 = *(0x9438);
0x00009166 ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x00009168 ldr r0, [r3] | r0 = *(0x9438);
0x0000916a blx 0x5e70 | get_color_mode ();
0x0000916e ldr r3, [sp, 0x40] | r3 = var_40h;
0x00009170 cmp r3, 0 |
| if (r3 == 0) {
0x00009172 beq.w 0x940c | goto label_50;
| }
0x00009176 sub.w fp, r3, 4 |
0x0000917a ldr r3, [pc, 0x2c0] |
0x0000917c movs r7, 1 | r7 = 1;
0x0000917e add r3, pc | r3 = 0x125c0;
0x00009180 str r3, [sp, 0x2c] | var_2ch_2 = r3;
0x00009182 ldr r3, [pc, 0x2bc] |
0x00009184 add r3, pc | r3 = 0x125ca;
0x00009186 str r3, [sp, 0x30] | var_30h_2 = r3;
0x00009188 ldr r3, [pc, 0x2b8] |
0x0000918a add r3, pc | r3 = 0x125d2;
0x0000918c str r3, [sp, 0x34] | var_34h_2 = r3;
| label_4:
0x0000918e ldr r3, [fp, 4]! | r3 = *(arg_4h);
0x00009192 cmp r3, 0 |
| if (r3 == 0) {
0x00009194 beq 0x920c | goto label_51;
| }
| do {
0x00009196 movs r3, 0 | r3 = 0;
0x00009198 add r2, sp, 0x4c | r2 += var_4ch_2;
0x0000919a strd r3, r3, [sp, 0x48] | __asm ("strd r3, r3, [sp, 0x48]");
0x0000919e ldr.w r1, [fp] | r1 = *(fp);
0x000091a2 str r2, [sp, 0xc] | var_ch_2 = r2;
0x000091a4 add r2, sp, 0x48 | r2 += var_48h_2;
0x000091a6 str r2, [sp, 8] | var_8h_2 = r2;
0x000091a8 add r2, sp, 0x3c | r2 += var_3ch;
0x000091aa str r2, [sp, 4] | *((sp + 4)) = r2;
0x000091ac add r2, sp, 0x38 | r2 += var_38h;
0x000091ae str r2, [sp] | *(sp) = r2;
0x000091b0 mov r2, r5 | r2 = r5;
0x000091b2 ldr r0, [sp, 0x44] | r0 = var_44h_2;
0x000091b4 bl 0x1bd00 | r0 = fcn_0001bd00 (r0, r1, r2, r3, r4, r5, r6);
0x000091b8 cmn.w r0, 0x84 |
| if (r0 == 0x84) {
0x000091bc beq.w 0x9360 | goto label_52;
| }
0x000091c0 cmn.w r0, 0x81 |
| if (r0 == 0x81) {
0x000091c4 beq.w 0x93b2 | goto label_53;
| }
0x000091c8 cmp r0, 0 |
| if (r0 < 0) {
0x000091ca blt.w 0x93fa | goto label_54;
| }
| if (r0 == 0) {
0x000091ce beq 0x9288 | goto label_55;
| }
0x000091d0 cmp r7, 0 |
| if (r7 == 0) {
0x000091d2 beq.w 0x931e | goto label_56;
| }
| label_6:
0x000091d6 ldr.w r1, [fp] | r1 = *(fp);
0x000091da ldr r0, [sp, 0x44] | r0 = var_44h_2;
0x000091dc bl 0x1aa48 | r0 = fcn_0001aa48 (r0, r1, r2);
0x000091e0 cmp r0, 0 |
| if (r0 > 0) {
0x000091e2 bgt 0x929c | goto label_57;
| }
| label_5:
0x000091e4 ldrd r0, r1, [sp, 0x48] | __asm ("ldrd r0, r1, [var_48h_2]");
0x000091e8 movs r2, 0 | r2 = 0;
0x000091ea blx 0x665c | r0 = fcn_0000665c ();
0x000091ee cmp r0, 0 |
| if (r0 < 0) {
0x000091f0 blt.w 0x93fa | goto label_54;
| }
0x000091f4 ldr r0, [sp, 0x4c] | r0 = var_4ch_2;
| if (r0 != 0) {
0x000091f6 cbz r0, 0x91fc |
0x000091f8 blx 0x5dec | unit_file_state_to_string ();
| }
0x000091fc ldr r0, [sp, 0x48] | r0 = var_48h_2;
0x000091fe movs r7, 0 | r7 = 0;
0x00009200 blx 0x5be4 | fcn_00005be4 ();
0x00009204 ldr r3, [fp, 4]! | r3 = *(arg_4h);
0x00009208 cmp r3, 0 |
0x0000920a bne 0x9196 |
| } while (r3 != 0);
| label_51:
0x0000920c mov r8, r6 | r8 = r6;
| label_2:
0x0000920e ldr r0, [sp, 0x40] | r0 = var_40h;
0x00009210 cmp r0, 0 |
| if (r0 == 0) {
0x00009212 beq.w 0x90b8 | goto label_1;
| }
0x00009216 blx 0x5dec | unit_file_state_to_string ();
0x0000921a str r0, [sp, 0x40] | var_40h = r0;
0x0000921c b 0x90b8 | goto label_1;
| label_48:
0x0000921e blx 0x5934 | r0 = fcn_00005934 ();
0x00009222 cmp r0, 2 |
0x00009224 ittt le |
| if (r0 <= 2) {
0x00009226 rsble r8, r8, 0 | __asm ("rsble r8, r8, 0");
| }
| if (r0 <= 2) {
0x0000922a uxtble r8, r8 | __asm ("uxtble r8, r8");
| }
| if (r0 <= 2) {
0x0000922e rsb.w r8, r8, 0 | r8 -= ;
| }
| if (r0 > 2) {
0x00009232 bgt 0x9268 | goto label_58;
| }
| label_3:
0x00009234 cmp.w r8, 0 |
| if (r8 < 0) {
0x00009238 blt 0x920e | goto label_2;
| }
| do {
0x0000923a mvn r8, 0x55 | r8 = ~0x55;
0x0000923e b 0x920e | goto label_2;
| label_46:
0x00009240 ldr r2, [pc, 0x204] |
0x00009242 movs r1, 0x16 | r1 = 0x16;
0x00009244 ldr r4, [pc, 0x204] |
0x00009246 movs r3, 0x27 | r3 = 0x27;
0x00009248 ldr r0, [pc, 0x204] |
0x0000924a movt r1, 0x4000 | r1 = (r1 & 0xFFFF) | 0x40000000;
0x0000924e add r2, pc | r2 = 0x1269a;
0x00009250 add r4, pc | r4 = 0x126a0;
0x00009252 adds r2, 7 | r2 += 7;
0x00009254 add r0, pc | r0 = 0x126a8;
0x00009256 strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x0000925a movs r0, 3 | r0 = 3;
0x0000925c blx 0x61a4 | r0 = fcn_000061a4 ();
0x00009260 subs.w r8, r0, 0 | r8 = r0 - 0;
0x00009264 bge 0x923a |
| } while (r8 >= r0);
0x00009266 b 0x920e | goto label_2;
| label_58:
0x00009268 ldr r2, [pc, 0x1e8] |
0x0000926a mov r1, r8 | r1 = r8;
0x0000926c ldr r0, [pc, 0x1e8] |
0x0000926e ldr r3, [pc, 0x1ec] |
0x00009270 add r2, pc | r2 = 0x126c8;
0x00009272 add r0, pc | r0 = 0x126ce;
0x00009274 adds r2, 7 | r2 += 7;
0x00009276 add r3, pc | r3 = 0x126d8;
0x00009278 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0000927c movs r3, 0x2b | r3 = 0x2b;
0x0000927e movs r0, 3 | r0 = 3;
0x00009280 blx 0x61a4 | r0 = fcn_000061a4 ();
0x00009284 mov r8, r0 | r8 = r0;
0x00009286 b 0x9234 | goto label_3;
| label_55:
0x00009288 mvn r6, 1 | r6 = ~1;
| label_7:
0x0000928c ldr r0, [sp, 0x4c] | r0 = var_4ch_2;
| if (r0 != 0) {
0x0000928e cbz r0, 0x9294 |
0x00009290 blx 0x5dec | unit_file_state_to_string ();
| }
0x00009294 ldr r0, [sp, 0x48] | r0 = var_48h_2;
0x00009296 blx 0x5be4 | fcn_00005be4 ();
0x0000929a b 0x918e | goto label_4;
| label_57:
0x0000929c ldr r3, [pc, 0x1c0] | r3 = *(0x9460);
0x0000929e ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x000092a0 ldr.w sl, [r3] | sl = *(0x9460);
0x000092a4 blx 0x5e88 | r0 = strcpy (r0, r1)
0x000092a8 cmp r0, 0 |
| if (r0 != 0) {
0x000092aa bne 0x93ac | goto label_59;
| }
0x000092ac ldr r7, [pc, 0x1b4] |
0x000092ae add r7, pc | r7 = 0x12716;
| label_12:
0x000092b0 ldr.w r3, [fp] | r3 = *(fp);
0x000092b4 str r3, [sp, 0x20] | var_20h_2 = r3;
0x000092b6 blx 0x5e88 | strcpy (r0, r1)
0x000092b8 stcl p8, c2, [r8, 0]! | __asm ("stcl p8, c2, [r8, 0]!");
| if (r0 != 0) {
0x000092bc bne 0x93a4 | goto label_60;
| }
0x000092be ldr.w r8, [pc, 0x1a8] |
0x000092c2 add r8, pc | r8 = 0x12730;
| label_11:
0x000092c4 blx 0x5e88 | r0 = strcpy (r0, r1)
0x000092c8 cmp r0, 0 |
| if (r0 != 0) {
0x000092ca bne 0x939c | goto label_61;
| }
0x000092cc ldr.w sb, [pc, 0x19c] |
0x000092d0 add sb, pc | sb = 0x12740;
| label_10:
0x000092d2 blx 0x5e88 | r0 = strcpy (r0, r1)
0x000092d6 cmp r0, 0 |
| if (r0 != 0) {
0x000092d8 bne 0x9396 | goto label_62;
| }
0x000092da ldr r3, [pc, 0x194] |
0x000092dc add r3, pc | r3 = 0x12752;
| label_9:
0x000092de ldr r2, [sp, 0x1c] | r2 = var_1ch_2;
0x000092e0 ldr r2, [r2] | r2 = *(r2);
0x000092e2 cmp r2, 0 |
| if (r2 == 0) {
0x000092e4 beq 0x9390 | goto label_63;
| }
0x000092e6 ldr r2, [pc, 0x18c] |
0x000092e8 add r2, pc | r2 = 0x12762;
| label_8:
0x000092ea strd r2, r3, [sp, 0x24] | __asm ("strd r2, r3, [sp, 0x24]");
0x000092ee blx 0x5e88 | strcpy (r0, r1)
0x000092f2 ldr r2, [sp, 0x24] | r2 = var_24h_2;
0x000092f4 cmp r0, 0 |
0x000092f6 ldr r3, [sp, 0x28] | r3 = var_28h_2;
0x000092f8 mov r0, sl | r0 = sl;
0x000092fa str.w r8, [sp, 4] | __asm ("str.w r8, [sp, 4]");
0x000092fe str r2, [sp, 0x10] | var_10h_2 = r2;
0x00009300 ldrd r2, r1, [sp, 0x30] | __asm ("ldrd r2, r1, [var_30h_2]");
0x00009304 strd sb, r3, [sp, 8] | __asm ("strd sb, r3, [sp, 8]");
0x00009308 ldr r3, [sp, 0x20] | r3 = var_20h_2;
0x0000930a it eq |
| if (r0 != 0) {
0x0000930c moveq r2, r1 | r2 = r1;
| }
0x0000930e movs r1, 1 | r1 = 1;
0x00009310 str r2, [sp, 0x14] | var_14h = r2;
0x00009312 str r3, [sp] | *(sp) = r3;
0x00009314 mov r3, r7 | r3 = r7;
0x00009316 ldr r2, [sp, 0x2c] | r2 = var_2ch_2;
0x00009318 blx 0x6144 | fcn_00006144 ();
0x0000931c b 0x91e4 | goto label_5;
| label_56:
0x0000931e ldr r0, [pc, 0x158] |
0x00009320 add r0, pc | r0 = 0x1279e;
0x00009322 blx 0x62a0 | fcn_000062a0 ();
0x00009326 b 0x91d6 | goto label_6;
| label_49:
0x00009328 blx 0x5934 | r0 = fcn_00005934 ();
0x0000932c cmp r0, 2 |
0x0000932e ittt le |
| if (r0 <= 2) {
0x00009330 rsble r8, r7, 0 | __asm ("rsble r8, r7, 0");
| }
| if (r0 <= 2) {
0x00009334 uxtble r8, r8 | __asm ("uxtble r8, r8");
| }
| if (r0 > 2) {
0x00009338 rsb.w r8, r8, 0 | r8 -= ;
| goto label_64;
| }
| if (r0 <= 2) {
| label_64:
0x0000933c ble.w 0x9234 | goto label_3;
| }
0x00009340 ldr r2, [pc, 0x138] |
0x00009342 mov r1, r7 | r1 = r7;
0x00009344 ldr r0, [pc, 0x138] |
0x00009346 ldr r3, [pc, 0x13c] |
0x00009348 add r2, pc | r2 = 0x127c8;
0x0000934a add r0, pc | r0 = 0x127ce;
0x0000934c adds r2, 7 | r2 += 7;
0x0000934e add r3, pc | r3 = 0x127d8;
0x00009350 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00009354 movs r3, 0x33 | r3 = 0x33;
0x00009356 movs r0, 3 | r0 = 3;
0x00009358 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000935c mov r8, r0 | r8 = r0;
0x0000935e b 0x9234 | goto label_3;
| label_52:
0x00009360 blx 0x5e88 | r0 = strcpy (r0, r1)
0x00009364 cmp r0, 0 |
| if (r0 != 0) {
0x00009366 bne 0x93de | goto label_65;
| }
0x00009368 ldr.w sb, [pc, 0x11c] |
0x0000936c add sb, pc | sb = 0x127f8;
| do {
0x0000936e ldr.w r8, [fp] | r8 = *(fp);
0x00009372 blx 0x5e88 | r0 = strcpy (r0, r1)
0x00009376 cmp r0, 0 |
| if (r0 != 0) {
0x00009378 bne 0x93ee | goto label_66;
| }
0x0000937a ldr r3, [pc, 0x110] |
0x0000937c add r3, pc | r3 = 0x1280e;
| label_14:
0x0000937e ldr r1, [pc, 0x110] |
0x00009380 mov r2, sb | r2 = sb;
0x00009382 str r3, [sp] | *(sp) = r3;
0x00009384 movs r0, 1 | r0 = 1;
0x00009386 mov r3, r8 | r3 = r8;
0x00009388 add r1, pc | r1 = 0x1281e;
0x0000938a blx 0x59a0 | fcn_000059a0 ();
0x0000938e b 0x928c | goto label_7;
| label_63:
0x00009390 ldr r2, [pc, 0x100] |
0x00009392 add r2, pc | r2 = 0x1282a;
0x00009394 b 0x92ea | goto label_8;
| label_62:
0x00009396 ldr r3, [pc, 0x100] |
0x00009398 add r3, pc | r3 = 0x12836;
0x0000939a b 0x92de | goto label_9;
| label_61:
0x0000939c ldr.w sb, [pc, 0xfc] |
0x000093a0 add sb, pc | sb = 0x12840;
0x000093a2 b 0x92d2 | goto label_10;
| label_60:
0x000093a4 ldr.w r8, [pc, 0xf8] |
0x000093a8 add r8, pc | r8 = 0x1284c;
0x000093aa b 0x92c4 | goto label_11;
| label_59:
0x000093ac ldr r7, [pc, 0xf4] |
0x000093ae add r7, pc | r7 = 0x12856;
0x000093b0 b 0x92b0 | goto label_12;
| label_53:
0x000093b2 blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 != 0) {
0x000093b6 cbnz r0, 0x93e6 | goto label_67;
| }
0x000093b8 ldr.w r8, [pc, 0xec] |
0x000093bc add r8, pc | r8 = 0x12868;
| label_13:
0x000093be ldr.w sb, [fp] | sb = *(fp);
0x000093c2 blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 != 0) {
0x000093c6 cbnz r0, 0x93f4 | goto label_68;
| }
0x000093c8 ldr r3, [pc, 0xe0] |
0x000093ca add r3, pc | r3 = 0x1287a;
| label_15:
0x000093cc ldr r1, [pc, 0xe0] |
0x000093ce mov r2, r8 | r2 = r8;
0x000093d0 str r3, [sp] | *(sp) = r3;
0x000093d2 movs r0, 1 | r0 = 1;
0x000093d4 mov r3, sb | r3 = sb;
0x000093d6 add r1, pc | r1 = 0x1288a;
0x000093d8 blx 0x59a0 | fcn_000059a0 ();
0x000093dc b 0x928c | goto label_7;
| label_65:
0x000093de ldr.w sb, [pc, 0xd4] |
0x000093e2 add sb, pc | sb = 0x1289c;
0x000093e4 b 0x936e |
| } while (1);
| label_67:
0x000093e6 ldr.w r8, [pc, 0xd0] |
0x000093ea add r8, pc | r8 = 0x128a8;
0x000093ec b 0x93be | goto label_13;
| label_66:
0x000093ee ldr r3, [pc, 0xcc] |
0x000093f0 add r3, pc | r3 = 0x128b2;
0x000093f2 b 0x937e | goto label_14;
| label_68:
0x000093f4 ldr r3, [pc, 0xc8] |
0x000093f6 add r3, pc | r3 = 0x128ba;
0x000093f8 b 0x93cc | goto label_15;
| label_54:
0x000093fa mov r8, r0 | r8 = r0;
0x000093fc ldr r0, [sp, 0x4c] | r0 = var_4ch_2;
| if (r0 != 0) {
0x000093fe cbz r0, 0x9404 |
0x00009400 blx 0x5dec | unit_file_state_to_string ();
| }
0x00009404 ldr r0, [sp, 0x48] | r0 = var_48h_2;
0x00009406 blx 0x5be4 | fcn_00005be4 ();
0x0000940a b 0x920e | goto label_2;
| label_50:
0x0000940c mov r8, r3 | r8 = r3;
0x0000940e b 0x90b8 | goto label_1;
| label_47:
0x00009410 blx 0x6114 | fcn_00006114 ();
0x00009414 adds r4, r7, r3 | r4 = r7 + r3;
0x00009416 movs r3, r0 | r3 = r0;
0x00009418 lsls r0, r2, 0x18 | r0 = r2 << 0x18;
0x0000941a movs r0, r0 |
0x0000941c adds r2, r3, r3 | r2 = r3 + r3;
0x0000941e movs r3, r0 | r3 = r0;
0x00009420 lsls r4, r3, 0x17 | r4 = r3 << 0x17;
0x00009422 movs r0, r0 |
0x00009424 lsls r4, r7, 0x17 | r4 = r7 << 0x17;
0x00009426 movs r0, r0 |
0x00009428 adds r0, r2, r2 | r0 = r2 + r2;
0x0000942a movs r3, r0 | r3 = r0;
0x0000942c lsls r0, r5, 0x17 | r0 = r5 << 0x17;
0x0000942e movs r0, r0 |
0x00009430 lsls r0, r6, 0x18 | r0 = r6 << 0x18;
0x00009432 movs r0, r0 |
0x00009434 lsls r0, r4, 0x18 | r0 = r4 << 0x18;
0x00009436 movs r0, r0 |
0x00009438 lsls r4, r7, 0x15 | r4 = r7 << 0x15;
0x0000943a movs r0, r0 |
0x0000943c str r6, [r2, 0x68] | *((r2 + 0x68)) = r6;
0x0000943e movs r1, r0 | r1 = r0;
0x00009440 ldrsb r4, [r4, r2] | r4 = *((r4 + r2));
0x00009442 movs r1, r0 | r1 = r0;
0x00009444 ldrb r6, [r5, 4] | r6 = *((r5 + 4));
0x00009446 movs r1, r0 | r1 = r0;
0x00009448 str r2, [r0, 0x18] | *((r0 + 0x18)) = r2;
0x0000944a movs r1, r0 | r1 = r0;
0x0000944c str r4, [r0, 0x54] | *((r0 + 0x54)) = r4;
0x0000944e movs r1, r0 | r1 = r0;
0x00009450 ldr r0, [r1, 0x28] | r0 = *((r1 + 0x28));
0x00009452 movs r1, r0 | r1 = r0;
0x00009454 str r0, [r4, 0x14] | *((r4 + 0x14)) = r0;
0x00009456 movs r1, r0 | r1 = r0;
0x00009458 str r6, [r7, 0x50] | *((r7 + 0x50)) = r6;
0x0000945a movs r1, r0 | r1 = r0;
0x0000945c ldr r6, [r4, 0x24] | r6 = *((r4 + 0x24));
0x0000945e movs r1, r0 | r1 = r0;
0x00009460 lsls r4, r5, 0x19 | r4 = r5 << 0x19;
0x00009462 movs r0, r0 |
0x00009464 ldrb r2, [r1] | r2 = *(r1);
0x00009466 movs r1, r0 | r1 = r0;
0x00009468 strb r6, [r6, 0x1f] | *((r6 + 0x1f)) = r6;
0x0000946a movs r1, r0 | r1 = r0;
0x0000946c strb r0, [r5, 0x1f] | *((r5 + 0x1f)) = r0;
0x0000946e movs r1, r0 | r1 = r0;
0x00009470 strb r4, [r3, 0x1f] | *((r3 + 0x1f)) = r4;
0x00009472 movs r1, r0 | r1 = r0;
0x00009474 str r4, [r4, 0x48] | *((r4 + 0x48)) = r4;
0x00009476 movs r1, r0 | r1 = r0;
0x00009478 strb r0, [r3, 0x1e] | *((r3 + 0x1e)) = r0;
0x0000947a movs r1, r0 | r1 = r0;
0x0000947c str r0, [r1, 8] | *((r1 + 8)) = r0;
0x0000947e movs r1, r0 | r1 = r0;
0x00009480 strh r2, [r1, r6] | *((r1 + r6)) = r2;
0x00009482 movs r1, r0 | r1 = r0;
0x00009484 ldr r6, [r1, 0x18] | r6 = *((r1 + 0x18));
0x00009486 movs r1, r0 | r1 = r0;
0x00009488 strb r4, [r1, 0x1d] | *((r1 + 0x1d)) = r4;
0x0000948a movs r1, r0 | r1 = r0;
0x0000948c strb r4, [r7, 0x1c] | *((r7 + 0x1c)) = r4;
0x0000948e movs r1, r0 | r1 = r0;
0x00009490 str r4, [r1, 0x44] | *((r1 + 0x44)) = r4;
0x00009492 movs r1, r0 | r1 = r0;
0x00009494 strb r6, [r4, 0x1c] | *((r4 + 0x1c)) = r6;
0x00009496 movs r1, r0 | r1 = r0;
0x00009498 str r0, [r5, 0x3c] | *((r5 + 0x3c)) = r0;
0x0000949a movs r1, r0 | r1 = r0;
0x0000949c str r0, [r4, 0x3c] | *((r4 + 0x3c)) = r0;
0x0000949e movs r1, r0 | r1 = r0;
0x000094a0 str r0, [r3, 0x3c] | *((r3 + 0x3c)) = r0;
0x000094a2 movs r1, r0 | r1 = r0;
0x000094a4 str r2, [r2, 0x3c] | *((r2 + 0x3c)) = r2;
0x000094a6 movs r1, r0 | r1 = r0;
0x000094a8 strb r4, [r7, 0x1b] | *((r7 + 0x1b)) = r4;
0x000094aa movs r1, r0 | r1 = r0;
0x000094ac strb r6, [r5, 0x1b] | *((r5 + 0x1b)) = r6;
0x000094ae movs r1, r0 | r1 = r0;
0x000094b0 str r2, [r3, 0x40] | *((r3 + 0x40)) = r2;
0x000094b2 movs r1, r0 | r1 = r0;
0x000094b4 str r2, [r2, 0x38] | *((r2 + 0x38)) = r2;
0x000094b6 movs r1, r0 | r1 = r0;
0x000094b8 str r2, [r1, 0x38] | *((r1 + 0x38)) = r2;
0x000094ba movs r1, r0 | r1 = r0;
0x000094bc strb r0, [r7, r0] | *((r7 + r0)) = r0;
0x000094be movs r1, r0 | r1 = r0;
0x000094c0 strb r2, [r6, r0] | *((r6 + r0)) = r2;
0x000094c2 movs r1, r0 | r1 = r0;
0x000094c4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x000094c8 mov r7, r0 | r7 = r0;
0x000094ca ldr.w r0, [pc, 0xa58] | r0 = *(0x00009f24);
0x000094ce sub sp, 0xf4 |
0x000094d0 add r5, sp, 0x84 | r5 += var_84h_2;
0x000094d2 mov r8, r1 | r8 = r1;
0x000094d4 ldr.w r3, [pc, 0xa50] |
0x000094d8 mov sb, r2 | sb = r2;
0x000094da add r0, pc | r0 += pc;
0x000094dc ldr.w r6, [pc, 0xa4c] | r6 = *(0x00009f2c);
0x000094e0 movs r1, 0 | r1 = 0;
0x000094e2 movs r2, 0x34 | r2 = 0x34;
0x000094e4 ldr r3, [r0, r3] | r3 = *((r0 + r3));
0x000094e6 mov r0, r5 | r0 = r5;
0x000094e8 add r6, pc | r6 += pc;
0x000094ea ldr r3, [r3] | r3 = *(0x9f28);
0x000094ec str r3, [sp, 0xec] | var_ech = r3;
0x000094ee mov.w r3, 0 | r3 = 0;
0x000094f2 blx 0x5a68 | unit_load_state ();
0x000094f6 movs r3, 0 | r3 = 0;
0x000094f8 strd r3, r3, [sp, 0x54] | __asm ("strd r3, r3, [sp, 0x54]");
0x000094fc blx 0x612c | r0 = fcn_0000612c ();
0x00009500 cmp r0, 0 |
| if (r0 == 0) {
0x00009502 beq.w 0x97c2 | goto label_69;
| }
0x00009506 ldr.w r3, [pc, 0xa28] | r3 = *(0x9f32);
0x0000950a ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000950c ldr.w sl, [r3] | sl = *(0x9f32);
0x00009510 cmp.w sl, 0 |
| if (sl != 0) {
0x00009514 beq 0x9560 |
0x00009516 blx 0x5934 | r0 = fcn_00005934 ();
0x0000951a cmp r0, 2 |
| if (r0 > 2) {
0x0000951c bgt.w 0x9816 | goto label_70;
| }
| label_17:
0x00009520 ldr r0, [sp, 0x58] | r0 = var_58h;
0x00009522 mvn r4, 0x15 | r4 = ~0x15;
| if (r0 != 0) {
| label_18:
0x00009526 cbz r0, 0x952e |
| label_33:
0x00009528 blx 0x5dec | unit_file_state_to_string ();
0x0000952c str r0, [sp, 0x58] | var_58h = r0;
| }
| label_26:
0x0000952e ldr r0, [sp, 0x54] | r0 = var_54h;
| if (r0 != 0) {
0x00009530 cbz r0, 0x9538 |
0x00009532 blx 0x5dec | unit_file_state_to_string ();
0x00009536 str r0, [sp, 0x54] | var_54h = r0;
| }
0x00009538 mov r0, r5 | r0 = r5;
0x0000953a blx 0x5820 | fcn_00005820 ();
0x0000953e ldr.w r2, [pc, 0x9f4] | r2 = *(0x00009f34);
0x00009542 ldr.w r3, [pc, 0x9e4] | r3 = *(0x9f2a);
0x00009546 add r2, pc | r2 += pc;
0x00009548 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x0000954a ldr r2, [r3] | r2 = *(0x9f2a);
0x0000954c ldr r3, [sp, 0xec] | r3 = var_ech;
0x0000954e eors r2, r3 | r2 ^= r3;
0x00009550 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00009554 bne.w 0x9e42 | goto label_71;
| }
0x00009558 mov r0, r4 | r0 = r4;
0x0000955a add sp, 0xf4 |
0x0000955c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| }
0x00009560 ldr.w r3, [pc, 0x9d4] | r3 = *(0x9f38);
0x00009564 mov r0, r5 | r0 = r5;
0x00009566 ldr r2, [r6, r3] | r2 = *((r6 + r3));
0x00009568 ldr.w r3, [pc, 0x9d0] | r3 = *(0x9f3c);
0x0000956c str r2, [sp, 0x1c] | var_1ch = r2;
0x0000956e ldr r1, [r6, r3] | r1 = *((r6 + r3));
0x00009570 ldr r3, [r2] | r3 = *(r2);
0x00009572 mov r2, sl | r2 = sl;
0x00009574 str r1, [sp, 0x18] | var_18h = r1;
0x00009576 ldr r1, [r1] | r1 = *(r1);
0x00009578 blx 0x606c | r0 = fcn_0000606c ();
0x0000957c subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0000957e blt.w 0x97fc | goto label_72;
| }
0x00009582 blx 0x57a8 | r0 = fcn_000057a8 ();
0x00009586 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00009588 blt.w 0x97f8 | goto label_27;
| }
0x0000958c add r1, sp, 0x5c | r1 += var_5ch;
0x0000958e movs r0, 1 | r0 = 1;
0x00009590 bl 0x1a334 | r0 = fcn_0001a334 (r0, r1);
0x00009594 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00009596 blt.w 0x97f8 | goto label_27;
| }
0x0000959a ldr r4, [sp, 0x5c] | r4 = var_5ch;
0x0000959c movs r1, 1 | r1 = 1;
0x0000959e mov r0, r8 | r0 = r8;
0x000095a0 blx 0x5ad4 | sd_bus_message_get_bus ();
0x000095a4 mov r2, sl | r2 = sl;
0x000095a6 mov r1, r0 | r1 = r0;
0x000095a8 add r3, sp, 0x54 | r3 += var_54h;
0x000095aa mov r0, r4 | r0 = r4;
0x000095ac str.w sl, [sp] | __asm ("str.w sl, [sp]");
0x000095b0 bl 0x1ba10 | r0 = fcn_0001ba10 (r0, r1, r2, r3, r4, r5, r6);
0x000095b4 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x000095b6 blt.w 0x9830 | goto label_73;
| }
0x000095ba ldr.w fp, [sp, 0x54] | fp = var_54h;
0x000095be cmp.w fp, 0 |
| if (fp == 0) {
0x000095c2 beq.w 0x9888 | goto label_74;
| }
0x000095c6 ldr.w sl, [fp] | sl = *(fp);
0x000095ca mov r2, sl | r2 = sl;
0x000095cc cmp.w sl, 0 |
| if (sl == 0) {
0x000095d0 beq.w 0x9888 | goto label_74;
| }
| do {
0x000095d4 ldr r0, [sp, 0x5c] | r0 = var_5ch;
0x000095d6 mov r1, r5 | r1 = r5;
0x000095d8 bl 0x1ada0 | r0 = fcn_0001ada0 (r0, r1, r2);
0x000095dc cmp r0, 0 |
| if (r0 < 0) {
0x000095de blt.w 0x9b30 | goto label_75;
| }
| if (r0 != 0) {
0x000095e2 bne.w 0x9b34 | goto label_76;
| }
0x000095e6 ldr r2, [fp, 4]! | r2 = *(arg_4h);
0x000095ea cmp r2, 0 |
0x000095ec bne 0x95d4 |
| } while (r2 != 0);
0x000095ee ldr r3, [sp, 0x54] | r3 = var_54h;
0x000095f0 mov sl, r2 | sl = r2;
0x000095f2 strd r2, r2, [sp, 0x60] | __asm ("strd r2, r2, [sp, 0x60]");
0x000095f6 add r2, sp, 0xb8 | r2 += path;
0x000095f8 str r2, [sp, 0x20] | var_20h = r2;
0x000095fa mov r4, r0 | r4 = r0;
0x000095fc str r3, [sp, 0x24] | var_24h = r3;
0x000095fe mov r0, r2 | r0 = r2;
0x00009600 ldr r3, [sp, 0x5c] | r3 = var_5ch;
0x00009602 movs r2, 0x34 | r2 = 0x34;
0x00009604 mov r1, sl | r1 = sl;
0x00009606 mov fp, r3 |
0x00009608 blx 0x5a68 | unit_load_state ();
0x0000960c ldr r3, [sp, 0x24] | r3 = var_24h;
0x0000960e cmp r3, 0 |
| if (r3 == 0) {
0x00009610 beq.w 0x9c82 | goto label_77;
| }
0x00009614 ldr r2, [sp, 0x18] | r2 = var_18h;
0x00009616 ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x00009618 ldr r0, [sp, 0x20] | r0 = var_20h;
0x0000961a ldr r1, [r2] | r1 = *(r2);
0x0000961c mov r2, sl | r2 = sl;
0x0000961e ldr r3, [r3] | r3 = *(r3);
0x00009620 blx 0x606c | r0 = fcn_0000606c ();
0x00009624 subs r3, r0, 0 | r3 = r0 - 0;
| if (r3 < r0) {
0x00009626 blt.w 0x9944 | goto label_37;
| }
0x0000962a ldr r2, [sp, 0x24] | r2 = var_24h;
0x0000962c ldr r1, [r2] | r1 = *(r2);
0x0000962e cmp r1, 0 |
| if (r1 == 0) {
0x00009630 beq.w 0x9d48 | goto label_78;
| }
0x00009634 ldr.w r3, [pc, 0x908] |
0x00009638 add r0, sp, 0x68 | r0 += var_68h;
0x0000963a str r0, [sp, 0x28] | var_28h = r0;
0x0000963c add r0, sp, 0x64 | r0 += var_64h;
0x0000963e str r0, [sp, 0x24] | var_24h = r0;
0x00009640 add r0, sp, 0x60 | r0 += var_60h;
0x00009642 add r3, pc | r3 = 0x13586;
0x00009644 strd r8, sb, [sp, 0x38] | __asm ("strd r8, sb, [sp, 0x38]");
0x00009648 adds r3, 7 | r3 += 7;
0x0000964a mov sb, r6 | sb = r6;
0x0000964c str r3, [sp, 0x48] | var_48h = r3;
0x0000964e ldr.w r3, [pc, 0x8f4] |
0x00009652 str.w sl, [sp, 0x44] | __asm ("str.w sl, [var_44h]");
0x00009656 mov sl, fp | sl = fp;
0x00009658 str r5, [sp, 0x40] | var_40h_2 = r5;
0x0000965a mov r5, r2 | r5 = r2;
0x0000965c add r3, pc | r3 = 0x135a6;
0x0000965e ldr.w r8, [sp, 0x20] | r8 = var_20h;
0x00009662 str r3, [sp, 0x4c] | var_4ch = r3;
0x00009664 add r3, sp, 0x78 | r3 += var_78h;
0x00009666 mov r6, r3 | r6 = r3;
0x00009668 str r0, [sp, 0x1c] | var_1ch = r0;
0x0000966a strd r4, r7, [sp, 0x30] | __asm ("strd r4, r7, [sp, 0x30]");
0x0000966e b 0x972a |
| while (r4 != 0) {
0x00009670 mov r0, r4 | r0 = r4;
0x00009672 blx 0x6608 | cxa_finalize ();
0x00009676 ldr r4, [r5] | r4 = *(r5);
0x00009678 mov r7, r0 | r7 = r0;
0x0000967a movs r1, 4 | r1 = 4;
0x0000967c mov r0, r4 | r0 = r4;
0x0000967e blx 0x6620 | r0 = special_glyph ();
| if (r0 != 0) {
0x00009682 cbz r0, 0x9692 |
0x00009684 movs r1, 2 | r1 = 2;
0x00009686 mov r0, r7 | r0 = r7;
0x00009688 blx 0x6620 | r0 = special_glyph ();
0x0000968c cmp r0, 0 |
| if (r0 != 0) {
0x0000968e bne.w 0x9c48 | goto label_79;
| }
| }
0x00009692 ldr.w r3, [pc, 0x8b4] | r3 = *(0x9f4a);
0x00009696 ldr.w fp, [sp, 0x68] | fp = var_68h;
0x0000969a ldr.w r3, [sb, r3] | r3 = *((sb + r3));
0x0000969e ldrb r4, [r3] | r4 = *(r3);
0x000096a0 cmp r4, 0 |
| if (r4 == 0) {
0x000096a2 beq.w 0x98c6 | goto label_80;
| }
0x000096a6 movs r3, 0 | r3 = 0;
0x000096a8 strd r3, r3, [sp, 0x7c] | __asm ("strd r3, r3, [sp, 0x7c]");
0x000096ac cmp.w fp, 0 |
| if (fp == 0) {
0x000096b0 beq.w 0x9cb8 | goto label_81;
| }
0x000096b4 cmp r7, 0 |
| if (r7 == 0) {
0x000096b6 beq.w 0x9d24 | goto label_82;
| }
0x000096ba mov r1, r7 | r1 = r7;
0x000096bc add r2, sp, 0x7c | r2 += var_7ch;
0x000096be mov r0, r8 | r0 = r8;
0x000096c0 bl 0x860c | r0 = fcn_0000860c (r0, r1, r2);
0x000096c4 subs r1, r0, 0 | r1 = r0 - 0;
| if (r1 < r0) {
0x000096c6 blt.w 0x98f0 | goto label_83;
| }
0x000096ca ldr r4, [sp, 0x7c] | r4 = var_7ch;
0x000096cc mov r0, fp | r0 = fp;
0x000096ce mov r1, r4 | r1 = r4;
0x000096d0 blx 0x633c | fcn_0000633c ();
0x000096d2 mrc p1, 1, fp, c4, c0, 1 | __asm ("mrc p1, 1, fp, c4, c0, 1");
0x000096d6 movs r1, 0 | r1 = 0;
0x000096d8 mov r0, r4 | r0 = r4;
0x000096da blx 0x5c2c | r0 = fcn_00005c2c ();
0x000096de cmp r0, 0 |
| if (r0 >= 0) {
0x000096e0 bge.w 0x9cce | goto label_84;
| }
| label_35:
0x000096e4 mov r1, fp | r1 = fp;
0x000096e6 add r3, sp, 0x80 | r3 += var_80h;
0x000096e8 movs r2, 0 | r2 = 0;
0x000096ea mov r0, r4 | r0 = r4;
0x000096ec bl 0x8a1c | r0 = fcn_00008a1c (r0, r1, r2, r3);
0x000096f0 subs r1, r0, 0 | r1 = r0 - 0;
| if (r1 < r0) {
0x000096f2 blt.w 0x9c9e | goto label_85;
| }
0x000096f6 ldr r7, [sp, 0x80] | r7 = var_80h;
0x000096f8 str r4, [sp, 0x6c] | var_6ch = r4;
0x000096fa str r7, [sp, 0x70] | var_70h = r7;
| label_16:
0x000096fc mov r2, r7 | r2 = r7;
0x000096fe mov r1, r4 | r1 = r4;
0x00009700 add r0, sp, 0x58 | r0 += var_58h;
0x00009702 blx 0x6078 | r0 = fcn_00006078 ();
0x00009706 cmp r0, 0 |
| if (r0 < 0) {
0x00009708 blt.w 0x9db8 | goto label_86;
| }
0x0000970c ldr r0, [sp, 0x78] | r0 = var_78h;
| if (r0 != 0) {
0x0000970e cbz r0, 0x9714 |
0x00009710 blx 0x5dec | unit_file_state_to_string ();
| }
0x00009714 ldr r0, [sp, 0x74] | r0 = var_74h;
0x00009716 blx 0x5be4 | fcn_00005be4 ();
0x0000971a ldr r0, [sp, 0x68] | r0 = var_68h;
0x0000971c blx 0x5be4 | fcn_00005be4 ();
0x00009720 ldr r1, [r5, 4]! | r1 = *((r5 += 4));
0x00009724 cmp r1, 0 |
| if (r1 == 0) {
0x00009726 beq.w 0x9d3a | goto label_87;
| }
0x0000972a ldr r3, [sp, 0x28] | r3 = var_28h;
0x0000972c mov r2, r8 | r2 = r8;
0x0000972e mov r0, sl | r0 = sl;
0x00009730 str r6, [sp, 0xc] | var_ch = r6;
0x00009732 str r3, [sp, 8] | var_8h = r3;
0x00009734 ldr r3, [sp, 0x24] | r3 = var_24h;
0x00009736 str r3, [sp, 4] | var_sp_4h = r3;
0x00009738 ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x0000973a str r3, [sp] | *(sp) = r3;
0x0000973c movs r3, 0 | r3 = 0;
0x0000973e strd r3, r3, [sp, 0x68] | __asm ("strd r3, r3, [sp, 0x68]");
0x00009742 strd r3, r3, [sp, 0x70] | __asm ("strd r3, r3, [sp, 0x70]");
0x00009746 str r3, [sp, 0x78] | var_78h = r3;
0x00009748 bl 0x1bd00 | r0 = fcn_0001bd00 (r0, r1, r2, r3, r4, r5, r6);
0x0000974c cmn.w r0, 0x81 |
0x0000974e lsrs r1, r0, 0x1e | r1 = r0 >> 0x1e;
0x00009750 mov r1, r0 | r1 = r0;
| if (r1 == r0) {
0x00009752 beq.w 0x989a | goto label_88;
| }
| label_22:
0x00009756 cmn.w r1, 0x84 |
| if (r1 == 0x84) {
0x0000975a beq.w 0x9d66 | goto label_89;
| }
0x0000975e cmp r1, 0 |
| if (r1 < 0) {
0x00009760 blt.w 0x9d4c | goto label_90;
| }
0x00009764 ldr r4, [sp, 0x68] | r4 = var_68h;
0x00009766 cmp r4, 0 |
0x00009768 bne 0x9670 |
| }
0x0000976a ldr.w r3, [pc, 0x7e0] |
0x0000976e ldr.w r3, [sb, r3] | r3 = *((sb + r3));
0x00009772 ldr r3, [r3] | r3 = *(0x9f4e);
0x00009774 cmp r3, 0 |
| if (r3 == 0) {
0x00009776 beq.w 0x9de4 | goto label_91;
| }
0x0000977a ldr.w r3, [pc, 0x7cc] | r3 = *(0x9f4a);
0x0000977e ldr r1, [r5] | r1 = *(r5);
0x00009780 ldr.w r3, [sb, r3] | r3 = *((sb + r3));
0x00009784 ldrb r3, [r3] | r3 = *(r3);
| if (r3 == 0) {
0x00009786 cbnz r3, 0x978e |
0x00009788 ldr.w r4, [pc, 0x7c4] |
0x0000978c add r4, pc | r4 = 0x136e0;
| }
0x0000978e add r3, sp, 0x70 | r3 += var_70h;
0x00009790 mov r2, r4 | r2 = r4;
0x00009792 str r3, [sp, 4] | var_sp_4h = r3;
0x00009794 add r3, sp, 0x6c | r3 += var_6ch;
0x00009796 str r3, [sp] | *(sp) = r3;
0x00009798 mov r0, r8 | r0 = r8;
0x0000979a movs r3, 0 | r3 = 0;
0x0000979c bl 0x8f20 | r0 = fcn_00008f20 (r0, r1, r2, r3, r4, r5);
0x000097a0 mov r1, r0 | r1 = r0;
| label_23:
0x000097a2 cmp r1, 0 |
0x000097a4 ldrd r4, r7, [sp, 0x6c] | __asm ("ldrd r4, r7, [var_6ch]");
| if (r1 >= 0) {
0x000097a8 bge 0x96fc | goto label_16;
| }
0x000097aa mov r2, r7 | r2 = r7;
0x000097ac mov fp, r4 |
0x000097ae mov r6, sb | r6 = sb;
0x000097b0 ldrd r4, r7, [sp, 0x30] | __asm ("ldrd r4, r7, [var_30h]");
0x000097b4 ldr.w r8, [sp, 0x38] | r8 = var_38h_2;
0x000097b8 mov r3, r1 | r3 = r1;
0x000097ba ldrd sb, r5, [sp, 0x3c] | __asm ("ldrd sb, r5, [var_3ch_2]");
0x000097be mov sl, r2 | sl = r2;
0x000097c0 b 0x991c | goto label_36;
| label_69:
0x000097c2 blx 0x5934 | r0 = fcn_00005934 ();
0x000097c6 cmp r0, 2 |
| if (r0 <= 2) {
0x000097c8 ble.w 0x9520 | goto label_17;
| }
0x000097cc ldr.w r2, [pc, 0x784] |
0x000097d0 movs r1, 0x16 | r1 = 0x16;
0x000097d2 ldr.w r4, [pc, 0x784] |
0x000097d4 invalid |
0x000097d8 asrs r5, r7, 0xf | r5 = r7 >> 0xf;
0x000097da ldr.w r0, [pc, 0x780] |
0x000097de add r2, pc | r2 = 0x13736;
0x000097e0 add r4, pc | r4 = 0x1373e;
0x000097e2 add r0, pc | r0 = 0x13744;
| label_19:
0x000097e4 strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x000097e8 movt r1, 0x4000 | r1 = (r1 & 0xFFFF) | 0x40000000;
0x000097ec adds r2, 7 | r2 += 7;
0x000097ee movs r0, 3 | r0 = 3;
0x000097f0 blx 0x61a4 | r0 = fcn_000061a4 ();
0x000097f4 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 >= r0) {
0x000097f6 bge 0x980e | goto label_29;
| }
| do {
| label_27:
0x000097f8 ldr r0, [sp, 0x58] | r0 = var_58h;
0x000097fa b 0x9526 | goto label_18;
| label_72:
0x000097fc blx 0x5934 | r0 = fcn_00005934 ();
0x00009800 cmp r0, 2 |
| if (r0 > 2) {
0x00009802 bgt 0x9860 | goto label_92;
| }
| label_20:
0x00009804 rsbs r4, r4, 0 | r4 -= ;
0x00009806 uxtb r4, r4 | r4 = (int8_t) r4;
0x00009808 rsbs r4, r4, 0 | r4 -= ;
| label_21:
0x0000980a cmp r4, 0 |
0x0000980c blt 0x97f8 |
| } while (r4 < 0);
| label_29:
0x0000980e ldr r0, [sp, 0x58] | r0 = var_58h;
0x00009810 mvn r4, 0x55 | r4 = ~0x55;
0x00009814 b 0x9526 | goto label_18;
| label_70:
0x00009816 ldr.w r2, [pc, 0x748] |
0x0000981a movs r1, 0x16 | r1 = 0x16;
0x0000981c ldr.w r4, [pc, 0x744] |
0x00009820 mov.w r3, 0x200 | r3 = 0x200;
0x00009824 ldr.w r0, [pc, 0x740] |
0x00009828 add r2, pc | r2 = 0x1378e;
0x0000982a add r4, pc | r4 = 0x13792;
0x0000982c add r0, pc | r0 = 0x13798;
0x0000982e b 0x97e4 | goto label_19;
| label_73:
0x00009830 blx 0x5934 | r0 = fcn_00005934 ();
0x00009834 cmp r0, 2 |
| if (r0 <= 2) {
0x00009836 ble 0x9804 | goto label_20;
| }
0x00009838 ldr.w r2, [pc, 0x730] |
0x0000983c mov r1, r4 | r1 = r4;
0x0000983e ldr.w r0, [pc, 0x730] |
0x00009842 ldr.w r3, [pc, 0x730] |
0x00009846 add r2, pc | r2 = 0x137b6;
0x00009848 add r0, pc | r0 = 0x137be;
0x0000984a adds r2, 7 | r2 += 7;
0x0000984c add r3, pc | r3 = 0x137c6;
0x0000984e strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00009852 mov.w r3, 0x210 | r3 = 0x210;
0x00009856 movs r0, 3 | r0 = 3;
0x00009858 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000985c mov r4, r0 | r4 = r0;
0x0000985e b 0x980a | goto label_21;
| label_92:
0x00009860 ldr.w r2, [pc, 0x714] |
0x00009864 mov r1, r4 | r1 = r4;
0x00009866 ldr.w r0, [pc, 0x714] |
0x0000986a ldr.w r3, [pc, 0x714] |
0x0000986e add r2, pc | r2 = 0x137ea;
0x00009870 add r0, pc | r0 = 0x137f2;
0x00009872 adds r2, 7 | r2 += 7;
0x00009874 add r3, pc | r3 = 0x137fa;
0x00009876 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0000987a mov.w r3, 0x204 | r3 = 0x204;
0x0000987e movs r0, 3 | r0 = 3;
0x00009880 blx 0x61a4 | r0 = fcn_000061a4 ();
0x00009884 mov r4, r0 | r4 = r0;
0x00009886 b 0x980a | goto label_21;
| label_74:
0x00009888 blx 0x5934 | r0 = fcn_00005934 ();
0x0000988c cmp r0, 2 |
| if (r0 > 2) {
0x0000988e bgt.w 0x9b74 | goto label_93;
| }
0x00009892 ldr r0, [sp, 0x58] | r0 = var_58h;
0x00009894 mvn r4, 1 | r4 = ~1;
0x00009898 b 0x9526 | goto label_18;
| label_88:
0x0000989a str r0, [sp, 0x2c] | var_2ch = r0;
0x0000989c blx 0x5934 | r0 = fcn_00005934 ();
0x000098a0 cmp r0, 6 |
0x000098a2 ldr r1, [sp, 0x2c] | r1 = var_2ch;
| if (r0 > 6) {
0x000098a4 bgt.w 0x9bb4 | goto label_94;
| }
| label_30:
0x000098a8 ldr r3, [sp, 0x28] | r3 = var_28h;
0x000098aa mov r2, r8 | r2 = r8;
0x000098ac ldr r1, [r5] | r1 = *(r5);
0x000098ae mov r0, sl | r0 = sl;
0x000098b0 str r6, [sp, 0xc] | var_ch = r6;
0x000098b2 str r3, [sp, 8] | var_8h = r3;
0x000098b4 ldr r3, [sp, 0x24] | r3 = var_24h;
0x000098b6 str r3, [sp, 4] | var_sp_4h = r3;
0x000098b8 ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x000098ba str r3, [sp] | *(sp) = r3;
0x000098bc movs r3, 1 | r3 = 1;
0x000098be bl 0x1bd00 | r0 = fcn_0001bd00 (r0, r1, r2, r3, r4, r5, r6);
0x000098c2 mov r1, r0 | r1 = r0;
0x000098c4 b 0x9756 | goto label_22;
| label_80:
0x000098c6 mov r1, fp | r1 = fp;
0x000098c8 mov r0, r6 | r0 = r6;
0x000098ca blx 0x6108 | r0 = fcn_00006108 ();
0x000098ce cmp r0, 0 |
| if (r0 < 0) {
0x000098d0 blt.w 0x9e60 | goto label_95;
| }
0x000098d4 ldr.w r2, [pc, 0x6ac] |
0x000098d8 add r3, sp, 0x70 | r3 += var_70h;
0x000098da str r3, [sp, 4] | var_sp_4h = r3;
0x000098dc add r3, sp, 0x6c | r3 += var_6ch;
0x000098de mov r1, r7 | r1 = r7;
0x000098e0 str r3, [sp] | *(sp) = r3;
0x000098e2 add r2, pc | r2 = 0x1386a;
0x000098e4 ldr r3, [sp, 0x78] | r3 = var_78h;
0x000098e6 mov r0, r8 | r0 = r8;
0x000098e8 bl 0x8f20 | r0 = fcn_00008f20 (r0, r1, r2, r3, r4, r5);
0x000098ec mov r1, r0 | r1 = r0;
0x000098ee b 0x97a2 | goto label_23;
| label_83:
0x000098f0 mov r6, sb | r6 = sb;
0x000098f2 ldr.w sl, [sp, 0x44] | sl = var_44h;
0x000098f4 adr r0, 0x110 | r0 = 0x110;
0x000098f6 ldrd r4, r7, [sp, 0x30] | __asm ("ldrd r4, r7, [var_30h]");
0x000098f8 bx r1 | return uint32_t (*r1)() ();
0x000098fa mov r3, r1 | r3 = r1;
0x000098fc ldr.w r8, [sp, 0x38] | r8 = var_38h_2;
0x00009900 movs r0, 0 | r0 = 0;
0x00009902 ldrd sb, r5, [sp, 0x3c] | __asm ("ldrd sb, r5, [var_3ch_2]");
0x00009906 ldr.w fp, [sp, 0x7c] | fp = var_7ch;
| label_34:
0x0000990a str r3, [sp, 0x18] | var_18h = r3;
0x0000990c blx 0x5be4 | fcn_00005be4 ();
0x00009910 mov r0, fp | r0 = fp;
0x00009912 mov.w fp, 0 |
0x00009916 blx 0x5be4 | fcn_00005be4 ();
0x0000991a ldr r3, [sp, 0x18] | r3 = var_18h;
| label_36:
0x0000991c ldr r0, [sp, 0x78] | r0 = var_78h;
| if (r0 != 0) {
0x0000991e cbz r0, 0x9928 |
0x00009920 str r3, [sp, 0x18] | var_18h = r3;
0x00009922 blx 0x5dec | unit_file_state_to_string ();
0x00009926 ldr r3, [sp, 0x18] | r3 = var_18h;
| }
0x00009928 ldr r0, [sp, 0x74] | r0 = var_74h;
0x0000992a str r3, [sp, 0x18] | var_18h = r3;
0x0000992c blx 0x5be4 | fcn_00005be4 ();
0x0000992e ldrd r4, r6, [sl, -0x140] | __asm ("ldrd r4, r6, [sl, -0x140]");
0x00009932 blx 0x5be4 | fcn_00005be4 ();
0x00009936 mov r0, fp | r0 = fp;
0x00009938 blx 0x5be4 | fcn_00005be4 ();
0x0000993c ldr r0, [sp, 0x68] | r0 = var_68h;
0x0000993e blx 0x5be4 | fcn_00005be4 ();
0x00009942 ldr r3, [sp, 0x18] | r3 = var_18h;
| label_37:
0x00009944 ldr r0, [sp, 0x20] | r0 = var_20h;
0x00009946 str r3, [sp, 0x18] | var_18h = r3;
0x00009948 blx 0x5820 | fcn_00005820 ();
0x0000994c ldr r0, [sp, 0x64] | r0 = var_64h;
0x0000994e ldr r3, [sp, 0x18] | r3 = var_18h;
| if (r0 != 0) {
0x00009950 cbz r0, 0x995e |
0x00009952 movs r2, 0 | r2 = 0;
0x00009954 mov r1, r2 | r1 = r2;
0x00009956 blx 0x648c | fcn_0000648c ();
0x0000995a ldr r3, [sp, 0x18] | r3 = var_18h;
0x0000995c str r0, [sp, 0x64] | var_64h = r0;
| }
0x0000995e ldr r0, [sp, 0x60] | r0 = var_60h;
| if (r0 != 0) {
0x00009960 cbz r0, 0x996e |
0x00009962 movs r2, 0 | r2 = 0;
0x00009964 str r3, [sp, 0x18] | var_18h = r3;
0x00009966 mov r1, r2 | r1 = r2;
0x00009968 blx 0x648c | fcn_0000648c ();
0x0000996c ldr r3, [sp, 0x18] | r3 = var_18h;
| }
0x0000996e cmp r3, 0 |
0x00009970 ldr r0, [sp, 0x58] | r0 = var_58h;
| if (r3 < 0) {
0x00009972 blt.w 0x9c74 | goto label_96;
| }
0x00009976 cmp r0, 0 |
| if (r0 == 0) {
0x00009978 beq.w 0x9c78 | goto label_97;
| }
0x0000997c ldr r3, [r0] | r3 = *(r0);
0x0000997e cmp r3, 0 |
| if (r3 == 0) {
0x00009980 beq.w 0x9c98 | goto label_98;
| }
0x00009984 bl 0x873c | r0 = fcn_0000873c (r0);
0x00009988 cmp r0, 0 |
| if (r0 < 0) {
0x0000998a blt.w 0x9c7e | goto label_99;
| }
0x0000998e ldr r3, [sp, 0x58] | r3 = var_58h;
0x00009990 mov sl, r3 | sl = r3;
0x00009992 cmp r3, 0 |
| if (r3 == 0) {
0x00009994 beq.w 0x9c02 | goto label_100;
| }
0x00009998 ldr.w r3, [pc, 0x5ec] |
0x0000999c add.w fp, sl, 4 |
0x000099a0 ldr.w r2, [pc, 0x5e8] |
0x000099a4 ldr.w r1, [pc, 0x5e8] |
0x000099a8 add r3, pc | r3 = 0x13934;
0x000099aa str r4, [sp, 0x28] | var_28h = r4;
0x000099ac adds r3, 7 | r3 += 7;
0x000099ae add r2, pc | r2 = 0x1393e;
0x000099b0 str r3, [sp, 0x18] | var_18h = r3;
0x000099b2 add r1, pc | r1 = 0x13946;
0x000099b4 ldr.w r3, [pc, 0x5dc] |
0x000099b8 mov r4, sl | r4 = sl;
0x000099ba strd r7, r8, [sp, 0x2c] | __asm ("strd r7, r8, [sp, 0x2c]");
0x000099be mov r8, r2 | r8 = r2;
0x000099c0 str.w sb, [sp, 0x34] | __asm ("str.w sb, [var_34h]");
0x000099c4 mov sb, r1 | sb = r1;
0x000099c6 add r3, pc | r3 = 0x1395e;
0x000099c8 str r6, [sp, 0x1c] | var_1ch = r6;
0x000099ca adds r3, 7 | r3 += 7;
0x000099cc str r5, [sp, 0x24] | var_24h = r5;
0x000099ce str r3, [sp, 0x38] | var_38h_2 = r3;
0x000099d0 b 0x9a04 |
| while (r7 != r0) {
0x000099d2 mov r1, r5 | r1 = r5;
0x000099d4 movs r3, 0 | r3 = 0;
0x000099d6 movs r2, 0xb | r2 = 0xb;
0x000099d8 mov r0, r6 | r0 = r6;
0x000099da blx 0x58f8 | r0 = fcn_000058f8 ();
0x000099de subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 < r0) {
0x000099e0 blt.w 0x9bd0 | goto label_101;
| }
0x000099e4 ldr r0, [sp, 0xb8] | r0 = path;
0x000099e6 blx 0x5be4 | fcn_00005be4 ();
| label_24:
0x000099ea ldr r0, [r4, 4] | r0 = *((r4 + 4));
0x000099ec blx 0x65fc | r0 = unit_name_is_valid ();
0x000099f0 cmp r0, 0 |
| if (r0 == 0) {
0x000099f2 beq 0x9a88 | goto label_102;
| }
0x000099f4 blx 0x5934 | r0 = fcn_00005934 ();
0x000099f8 cmp r0, 3 |
| if (r0 > 3) {
0x000099fa bgt.w 0x9b8e | goto label_103;
| }
| label_25:
0x000099fe adds r4, 8 | r4 += 8;
0x00009a00 add.w fp, fp, 8 |
0x00009a04 ldr r3, [fp, -0x4] | r3 = *((fp - 0x4));
0x00009a08 cmp r3, 0 |
| if (r3 == 0) {
0x00009a0a beq.w 0x9bf6 | goto label_104;
| }
0x00009a0e ldr r6, [r4, 4] | r6 = *((r4 + 4));
0x00009a10 cmp r6, 0 |
| if (r6 == 0) {
0x00009a12 beq.w 0x9bf6 | goto label_104;
| }
0x00009a16 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00009a18 mov r1, r6 | r1 = r6;
0x00009a1a mvn r0, 0x63 | r0 = ~0x63;
0x00009a1e mov.w r2, -1 | r2 = -1;
0x00009a22 str r3, [sp, 0xc] | var_ch = r3;
0x00009a24 movs r3, 0 | r3 = 0;
0x00009a26 str r3, [sp, 0x10] | var_10h = r3;
0x00009a28 strd r3, r3, [sp, 4] | __asm ("strd r3, r3, [sp, 4]");
0x00009a2c str r3, [sp, 0xb8] | path = r3;
0x00009a2e mov.w r3, -1 | r3 = -1;
0x00009a32 str r3, [sp] | *(sp) = r3;
0x00009a34 mov.w r3, -1 | r3 = -1;
0x00009a38 blx 0x5bd4 | r0 = fcn_00005bd4 ();
0x00009a3c subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 < r0) {
0x00009a3e blt 0x9b06 | goto label_105;
| }
0x00009a40 ldr r5, [sp, 0xb8] | r5 = path;
0x00009a42 mov r0, r5 | r0 = r5;
0x00009a44 blx 0x5d5c | unlink (r0);
0x00009a48 mov r1, r8 | r1 = r8;
0x00009a4a mov r7, r0 | r7 = r0;
0x00009a4c mov r0, r5 | r0 = r5;
0x00009a4e blx 0x5fc4 | r0 = fcn_00005fc4 ();
| if (r0 != 0) {
0x00009a52 cbz r0, 0x9a58 |
0x00009a54 add.w r5, r0, 0x58 | r5 = r0 + 0x58;
| }
0x00009a58 mov r1, sb | r1 = sb;
0x00009a5a mov r0, r5 | r0 = r5;
0x00009a5c blx 0x5fc4 | fcn_00005fc4 ();
0x00009a5e invalid |
0x00009a62 subs r1, r0, r5 | r1 = r0 - r5;
0x00009a64 mov r0, r5 | r0 = r5;
0x00009a66 blx 0x61e0 | fcn_000061e0 ();
0x00009a68 invalid |
0x00009a6a mov r0, r5 | r0 = r5;
0x00009a6c blx 0x63e4 | fcn_000063e4 ();
0x00009a6e ldc p8, c15, [sl], 0x374 | __asm ("ldc p8, c15, [sl], 0x374");
0x00009a72 adr r0, 0x2e0 | r0 = 0x2e0;
0x00009a74 mov r5, r0 | r5 = r0;
0x00009a76 mov r0, sl | r0 = sl;
0x00009a78 blx 0x5d5c | r0 = unlink (r0);
0x00009a7c cmp r7, r0 |
0x00009a7e bne 0x99d2 |
| }
0x00009a80 mov r0, sl | r0 = sl;
0x00009a82 blx 0x5be4 | fcn_00005be4 ();
0x00009a86 b 0x99ea | goto label_24;
| label_102:
0x00009a88 ldr r1, [fp, -0x4] | r1 = *((fp - 0x4));
0x00009a8c ldr r0, [r4, 4] | r0 = *((r4 + 4));
0x00009a8e blx 0x5970 | r0 = fcn_00005970 ();
0x00009a92 cmp r0, 0 |
| if (r0 >= 0) {
0x00009a94 bge 0x99fe | goto label_25;
| }
0x00009a96 blx 0x65bc | fcn_000065bc ();
0x00009a9a mov sl, r4 | sl = r4;
0x00009a9c ldr r4, [r0] | r4 = *(r0);
0x00009a9e blx 0x5934 | r0 = fcn_00005934 ();
0x00009aa2 cmp r0, 2 |
0x00009aa4 ldr r6, [sp, 0x1c] | r6 = var_1ch;
0x00009aa6 ldr r5, [sp, 0x24] | r5 = var_24h;
| if (r0 > 2) {
0x00009aa8 bgt.w 0x9ec6 | goto label_106;
| }
0x00009aaa strh r5, [r1, 0x10] | *((r1 + 0x10)) = r5;
0x00009aac cmp r4, 0 |
0x00009aae it lt |
| if (r4 < 0) {
0x00009ab0 rsblt r4, r4, 0 | __asm ("rsblt r4, r4, 0");
| }
0x00009ab2 uxtb r4, r4 | r4 = (int8_t) r4;
0x00009ab4 rsbs r4, r4, 0 | r4 -= ;
| label_38:
0x00009ab6 cmp r4, 0 |
0x00009ab8 it ge |
| if (r4 < 0) {
0x00009aba mvnge r4, 0x55 | r4 = ~0x55;
| }
| label_32:
0x00009abe ldr r0, [sp, 0x58] | r0 = var_58h;
0x00009ac0 add.w r7, r0, 8 | r7 = r0 + 8;
| if (r0 == 0) {
0x00009ac4 cbnz r0, 0x9aca |
0x00009ac6 b 0x952e | goto label_26;
| label_28:
0x00009ac8 adds r7, 8 | r7 += 8;
| }
0x00009aca ldr r3, [r7, -0x8] | r3 = *((r7 - 0x8));
0x00009ace cmp r3, 0 |
| if (r3 == 0) {
0x00009ad0 beq.w 0x97f8 | goto label_27;
| }
0x00009ad4 ldr r0, [r7, -0x4] | r0 = *((r7 - 0x4));
0x00009ad8 cmp r0, 0 |
| if (r0 == 0) {
0x00009ada beq.w 0x97f8 | goto label_27;
| }
0x00009ade blx 0x5d74 | touch ();
0x00009ae2 ldr.w r3, [pc, 0x464] | r3 = *(0x9f4a);
0x00009ae6 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00009ae8 ldrb r3, [r3] | r3 = *(r3);
0x00009aea cmp r3, 0 |
| if (r3 != 0) {
0x00009aec bne 0x9ac8 | goto label_28;
| }
0x00009aee ldr r0, [r7, -0x8] | r0 = *((r7 - 0x8));
0x00009af2 blx 0x5b58 | r0 = bus_message_print_all_properties ();
0x00009af6 mov r8, r0 | r8 = r0;
| if (r0 != 0) {
0x00009af8 cbz r0, 0x9b18 |
0x00009afa blx 0x61f8 | fcn_000061f8 ();
0x00009afe mov r0, r8 | r0 = r8;
0x00009b00 blx 0x5be4 | fcn_00005be4 ();
0x00009b04 b 0x9ac8 | goto label_28;
| label_105:
0x00009b06 blx 0x5934 | r0 = fcn_00005934 ();
0x00009b0a cmp r0, 2 |
| if (r0 > 2) {
0x00009b0c bgt.w 0x9c26 | goto label_107;
| }
| label_31:
0x00009b10 ldr r0, [sp, 0xb8] | r0 = path;
0x00009b12 blx 0x5be4 | fcn_00005be4 ();
0x00009b14 strd lr, r7, [r8], -0x1c8 | __asm ("strd lr, r7, [r8], -0x1c8");
0x00009b16 b 0x99fe | goto label_25;
| }
0x00009b18 ldr.w r1, [pc, 0x47c] |
0x00009b1c movw r2, 0x249 | r2 = 0x249;
0x00009b20 ldr.w r3, [pc, 0x478] |
0x00009b24 movs r0, 3 | r0 = 3;
0x00009b26 add r1, pc | r1 = 0x13ac2;
0x00009b28 add r3, pc | r3 = 0x13ac8;
0x00009b2a adds r1, 7 | r1 += 7;
0x00009b2c blx 0x65cc | r0 = fflush_and_check ();
| label_75:
0x00009b30 mov r4, r0 | r4 = r0;
0x00009b32 b 0x97f8 | goto label_27;
| label_76:
0x00009b34 blx 0x5934 | r0 = fcn_00005934 ();
0x00009b38 cmp r0, 2 |
| if (r0 <= 2) {
0x00009b3a ble.w 0x9520 | goto label_17;
| }
0x00009b3e ldr.w r3, [pc, 0x460] |
0x00009b42 ldr.w r1, [fp] | r1 = *(fp);
0x00009b46 ldr.w r2, [pc, 0x45c] |
0x00009b48 movs r4, 0x5c | r4 = 0x5c;
0x00009b4a ldr.w r0, [pc, 0x45c] |
0x00009b4e add r3, pc | r3 = 0x13af4;
0x00009b50 strd r3, r1, [sp, 4] | __asm ("strd r3, r1, [sp, 4]");
0x00009b54 movs r1, 0x16 | r1 = 0x16;
0x00009b56 add r2, pc | r2 = 0x13b00;
0x00009b58 movw r3, 0x219 | r3 = 0x219;
0x00009b5a movs r3, 0x19 | r3 = 0x19;
0x00009b5c add r0, pc | r0 = 0x13b0a;
0x00009b5e adds r2, 7 | r2 += 7;
0x00009b60 str r0, [sp] | *(sp) = r0;
0x00009b62 movt r1, 0x4000 | r1 = (r1 & 0xFFFF) | 0x40000000;
0x00009b64 lsls r0, r0, 4 | r0 <<= 4;
0x00009b66 movs r0, 3 | r0 = 3;
0x00009b68 blx 0x61a4 | r0 = fcn_000061a4 ();
0x00009b6c subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 >= r0) {
0x00009b6e bge.w 0x980e | goto label_29;
| }
0x00009b72 b 0x97f8 | goto label_27;
| label_93:
0x00009b74 ldr.w r2, [pc, 0x434] |
0x00009b78 movs r1, 2 | r1 = 2;
0x00009b7a ldr.w r4, [pc, 0x434] |
0x00009b7c add r4, r6 | r4 += r6;
0x00009b7e movw r3, 0x212 | r3 = 0x212;
0x00009b82 ldr.w r0, [pc, 0x430] |
0x00009b86 add r2, pc | r2 = 0x13b36;
0x00009b88 add r4, pc | r4 = 0x13b3e;
0x00009b8a add r0, pc | r0 = 0x13b44;
0x00009b8c b 0x97e4 | goto label_19;
| label_103:
0x00009b8e ldr r3, [fp, -0x4] | r3 = *((fp - 0x4));
0x00009b92 movs r1, 0 | r1 = 0;
0x00009b94 ldr r2, [sp, 0x18] | r2 = var_18h;
0x00009b96 movs r0, 4 | r0 = 4;
0x00009b98 str r3, [sp, 8] | var_8h = r3;
0x00009b9a ldr.w r3, [pc, 0x41c] |
0x00009b9c adds r4, 0x1c | r4 += 0x1c;
0x00009b9e add r3, pc | r3 = 0x13b5c;
0x00009ba0 str r3, [sp, 4] | var_sp_4h = r3;
0x00009ba2 ldr.w r3, [pc, 0x418] |
0x00009ba6 add r3, pc | r3 = 0x13b68;
0x00009ba8 str r3, [sp] | *(sp) = r3;
0x00009baa movw r3, 0x22f | r3 = 0x22f;
0x00009bae blx 0x61a4 | fcn_000061a4 ();
0x00009bb2 b 0x99fe | goto label_25;
| label_94:
0x00009bb4 ldr r3, [r5] | r3 = *(r5);
0x00009bb6 movs r0, 7 | r0 = 7;
0x00009bb8 ldr r2, [sp, 0x48] | r2 = var_48h;
0x00009bba str r3, [sp, 8] | var_8h = r3;
0x00009bbc ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x00009bbe str r3, [sp, 4] | var_sp_4h = r3;
0x00009bc0 ldr r3, [pc, 0x3fc] |
0x00009bc2 add r3, pc | r3 = 0x13b86;
0x00009bc4 str r3, [sp] | *(sp) = r3;
0x00009bc6 movw r3, 0x191 | r3 = 0x191;
0x00009bca blx 0x61a4 | fcn_000061a4 ();
0x00009bce b 0x98a8 | goto label_30;
| label_101:
0x00009bd0 blx 0x5934 | r0 = fcn_00005934 ();
0x00009bd4 cmp r0, 2 |
| if (r0 <= 2) {
0x00009bd6 ble 0x9b10 | goto label_31;
| }
0x00009bd8 ldr r3, [pc, 0x3e8] |
0x00009bda mov r1, r7 | r1 = r7;
0x00009bdc ldr r2, [sp, 0x38] | r2 = var_38h_2;
0x00009bde movs r0, 3 | r0 = 3;
0x00009be0 str r6, [sp, 8] | var_8h = r6;
0x00009be2 add r3, pc | r3 = 0x13baa;
0x00009be4 str r3, [sp, 4] | var_sp_4h = r3;
0x00009be6 ldr r3, [pc, 0x3e0] |
0x00009be8 add r3, pc | r3 = 0x13bb6;
0x00009bea str r3, [sp] | *(sp) = r3;
0x00009bec mov.w r3, 0x1ee | r3 = 0x1ee;
0x00009bf0 blx 0x61a4 | fcn_000061a4 ();
0x00009bf4 b 0x9b10 | goto label_31;
| label_104:
0x00009bf6 ldrd r4, r7, [sp, 0x28] | __asm ("ldrd r4, r7, [var_28h]");
0x00009bfa ldrd r8, sb, [sp, 0x30] | __asm ("ldrd r8, sb, [var_30h]");
0x00009bfe ldr r6, [sp, 0x1c] | r6 = var_1ch;
0x00009c00 ldr r5, [sp, 0x24] | r5 = var_24h;
| label_100:
0x00009c02 ldr r3, [pc, 0x3c8] | r3 = *(0x9fce);
0x00009c04 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x00009c06 ldrb r3, [r3] | r3 = *(r3);
0x00009c08 cmp r3, 0 |
| if (r3 != 0) {
0x00009c0a bne.w 0x9abe | goto label_32;
| }
0x00009c0e bl 0x1bcac | r0 = fcn_0001bcac ();
0x00009c12 cmp r0, 0 |
| if (r0 != 0) {
0x00009c14 bne.w 0x9abe | goto label_32;
| }
0x00009c16 add r7, sp, 0x14c | r7 = sp + 0x14c;
0x00009c18 mov r2, sb | r2 = sb;
0x00009c1a mov r1, r8 | r1 = r8;
0x00009c1c mov r0, r7 | r0 = r7;
0x00009c1e bl 0x8428 | r0 = fcn_00008428 (r0);
0x00009c22 mov r4, r0 | r4 = r0;
0x00009c24 b 0x9abe | goto label_32;
| label_107:
0x00009c26 ldr r3, [pc, 0x3a8] |
0x00009c28 mov r1, r7 | r1 = r7;
0x00009c2a ldr r2, [pc, 0x3a8] |
0x00009c2c movs r0, 3 | r0 = 3;
0x00009c2e str r6, [sp, 8] | var_8h = r6;
0x00009c30 add r3, pc | r3 = 0x13c06;
0x00009c32 str r3, [sp, 4] | var_sp_4h = r3;
0x00009c34 add r2, pc | r2 = 0x13c0e;
0x00009c36 ldr r3, [pc, 0x3a0] |
0x00009c38 adds r2, 7 | r2 += 7;
0x00009c3a add r3, pc | r3 = 0x13c18;
0x00009c3c str r3, [sp] | *(sp) = r3;
0x00009c3e mov.w r3, 0x1da | r3 = 0x1da;
0x00009c42 blx 0x61a4 | fcn_000061a4 ();
0x00009c46 b 0x9b10 | goto label_31;
| label_79:
0x00009c48 movs r3, 0 | r3 = 0;
0x00009c4a add r1, sp, 0x80 | r1 += var_80h;
0x00009c4c mov r0, r4 | r0 = r4;
0x00009c4e str r3, [sp, 0x80] | var_80h = r3;
0x00009c50 blx 0x5988 | r0 = fcn_00005988 ();
0x00009c54 subs r1, r0, 0 | r1 = r0 - 0;
| if (r1 < r0) {
0x00009c56 blt.w 0x9ef4 | goto label_108;
| }
0x00009c5a ldr r1, [sp, 0x80] | r1 = var_80h;
0x00009c5c mov r0, r7 | r0 = r7;
0x00009c5e add r2, sp, 0x74 | r2 += var_74h;
0x00009c60 blx 0x6378 | r0 = fcn_00006378 ();
0x00009c64 subs r1, r0, 0 | r1 = r0 - 0;
| if (r1 < r0) {
0x00009c66 blt.w 0x9ef4 | goto label_108;
| }
0x00009c6a ldr r0, [sp, 0x80] | r0 = var_80h;
0x00009c6c ldr r7, [sp, 0x74] | r7 = var_74h;
0x00009c6e blx 0x5be4 | fcn_00005be4 ();
0x00009c70 vext.8 d14, d10, d14, 5 | __asm ("vext.8 d14, d10, d14, 5");
| label_96:
0x00009c74 mov r4, r3 | r4 = r3;
0x00009c76 b 0x9526 | goto label_18;
| label_97:
0x00009c78 mvn r4, 1 | r4 = ~1;
0x00009c7c b 0x952e | goto label_26;
| label_99:
0x00009c7e mov r4, r0 | r4 = r0;
0x00009c80 b 0x9abe | goto label_32;
| label_77:
0x00009c82 ldr r1, [pc, 0x358] |
0x00009c84 movw r2, 0x181 | r2 = 0x181;
0x00009c88 ldr r3, [pc, 0x354] |
0x00009c8a ldr r0, [pc, 0x358] |
0x00009c8c add r1, pc | r1 = 0x13c6e;
0x00009c8e add r3, pc | r3 = 0x13c72;
0x00009c90 adds r1, 7 | r1 += 7;
0x00009c92 add r0, pc | r0 = 0x13c7c;
0x00009c94 blx 0x5e40 | unit_file_get_default ();
| label_98:
0x00009c98 mvn r4, 1 | r4 = ~1;
0x00009c9c b 0x9528 | goto label_33;
| label_85:
0x00009c9e mov fp, r4 |
0x00009ca0 mov r6, sb | r6 = sb;
0x00009ca2 ldr.w sl, [sp, 0x44] | sl = var_44h;
0x00009ca6 mov r3, r1 | r3 = r1;
0x00009ca8 ldrd r4, r7, [sp, 0x30] | __asm ("ldrd r4, r7, [var_30h]");
0x00009cac ldr.w r8, [sp, 0x38] | r8 = var_38h_2;
0x00009cb0 ldrd sb, r5, [sp, 0x3c] | __asm ("ldrd sb, r5, [var_3ch_2]");
0x00009cb4 ldr r0, [sp, 0x80] | r0 = var_80h;
0x00009cb6 b 0x990a | goto label_34;
| label_81:
0x00009cb8 ldr r1, [pc, 0x32c] |
0x00009cba movw r2, 0x11b | r2 = 0x11b;
0x00009cbe ldr r3, [pc, 0x32c] |
0x00009cc0 ldr r0, [pc, 0x32c] |
0x00009cc2 add r1, pc | r1 = 0x13cae;
0x00009cc4 add r3, pc | r3 = 0x13cb6;
0x00009cc6 adds r1, 7 | r1 += 7;
0x00009cc8 add r0, pc | r0 = 0x13cbc;
0x00009cca blx 0x5e40 | unit_file_get_default ();
| label_84:
0x00009cce ldr r2, [pc, 0x324] |
0x00009cd0 mov r3, r4 | r3 = r4;
0x00009cd2 ldr r1, [pc, 0x324] |
0x00009cd4 add.w r0, sp, 0x53 | r0 += var_53h;
0x00009cd8 str.w fp, [sp] | __asm ("str.w fp, [sp]");
0x00009cdc add r2, pc | r2 = 0x13cd6;
0x00009cde add r1, pc | r1 = 0x13cdc;
0x00009ce0 blx 0x6138 | r0 = fcn_00006138 ();
0x00009ce4 subs r1, r0, 0 | r1 = r0 - 0;
| if (r1 < r0) {
0x00009ce6 blt.w 0x9e46 | goto label_109;
| }
0x00009ce8 strh r6, [r5, 4] | *((r5 + 4)) = r6;
0x00009cea ldrb.w r3, [sp, 0x53] | r3 = var_53h;
0x00009cee cmp r3, 0x79 |
| if (r3 == 0x79) {
0x00009cf0 beq.w 0x96e4 | goto label_35;
| }
0x00009cf4 str r7, [sp, 0x18] | var_18h = r7;
0x00009cf6 mov fp, r4 |
0x00009cf8 blx 0x5934 | r0 = fcn_00005934 ();
0x00009cfc cmp r0, 3 |
0x00009cfe mov r6, sb | r6 = sb;
0x00009d00 ldr.w sl, [sp, 0x44] | sl = var_44h;
0x00009d04 ldrd r4, r7, [sp, 0x30] | __asm ("ldrd r4, r7, [var_30h]");
0x00009d08 ldr.w r8, [sp, 0x38] | r8 = var_38h_2;
0x00009d0a strh r0, [r7] | *(r7) = r0;
0x00009d0c ldrd sb, r5, [sp, 0x3c] | __asm ("ldrd sb, r5, [var_3ch_2]");
| if (r0 > 3) {
0x00009d10 bgt.w 0x9e8c | goto label_110;
| }
0x00009d12 strh r4, [r7, 4] | *((r7 + 4)) = r4;
0x00009d14 mov r0, fp | r0 = fp;
0x00009d16 mov.w fp, 0 |
0x00009d1a blx 0x5be4 | fcn_00005be4 ();
0x00009d1e mvn r3, 0x80 | r3 = ~0x80;
0x00009d22 b 0x991c | goto label_36;
| label_82:
0x00009d24 ldr r1, [pc, 0x2d4] |
0x00009d26 mov.w r2, 0x11c | r2 = 0x11c;
0x00009d2a ldr r3, [pc, 0x2d4] |
0x00009d2c ldr r0, [pc, 0x2d4] |
0x00009d2e add r1, pc | r1 = 0x13d2e;
0x00009d30 add r3, pc | r3 = 0x13d36;
0x00009d32 adds r1, 7 | r1 += 7;
0x00009d34 add r0, pc | r0 = 0x13d3c;
0x00009d36 blx 0x5e40 | unit_file_get_default ();
| label_87:
0x00009d3a mov r6, sb | r6 = sb;
0x00009d3c ldrd r4, r7, [sp, 0x30] | __asm ("ldrd r4, r7, [var_30h]");
0x00009d40 ldr.w r8, [sp, 0x38] | r8 = var_38h_2;
0x00009d44 ldrd sb, r5, [sp, 0x3c] | __asm ("ldrd sb, r5, [var_3ch_2]");
| label_78:
0x00009d48 mov r3, r4 | r3 = r4;
0x00009d4a b 0x9944 | goto label_37;
| label_90:
0x00009d4c mov r6, sb | r6 = sb;
0x00009d4e ldr.w sl, [sp, 0x44] | sl = var_44h;
0x00009d52 ldrd r4, r7, [sp, 0x30] | __asm ("ldrd r4, r7, [var_30h]");
0x00009d56 mov r3, r1 | r3 = r1;
0x00009d58 ldr.w r8, [sp, 0x38] | r8 = var_38h_2;
0x00009d5c ldrd sb, r5, [sp, 0x3c] | __asm ("ldrd sb, r5, [var_3ch_2]");
0x00009d5e str r5, [sp, 0x3c] | *((sp + 0x3c)) = r5;
| do {
0x00009d60 mov.w fp, 0 |
0x00009d64 b 0x991c | goto label_36;
| label_89:
0x00009d66 str r5, [sp, 0x24] | var_24h = r5;
0x00009d68 mov r6, sb | r6 = sb;
0x00009d6a str r1, [sp, 0x18] | var_18h = r1;
0x00009d6c blx 0x5934 | r0 = fcn_00005934 ();
0x00009d70 cmp r0, 2 |
0x00009d72 ldr.w sl, [sp, 0x44] | sl = var_44h;
0x00009d76 ldrd r4, r7, [sp, 0x30] | __asm ("ldrd r4, r7, [var_30h]");
0x00009d7a ldr.w r8, [sp, 0x38] | r8 = var_38h_2;
0x00009d7e ldrd sb, r5, [sp, 0x3c] | __asm ("ldrd sb, r5, [var_3ch_2]");
0x00009d82 ldr r3, [sp, 0x18] | r3 = var_18h;
0x00009d84 ble 0x9d60 |
| } while (r0 <= 2);
0x00009d86 ldr r2, [sp, 0x24] | r2 = var_24h;
0x00009d88 mov r1, r3 | r1 = r3;
0x00009d8a ldr r3, [pc, 0x27c] |
0x00009d8c movs r0, 3 | r0 = 3;
0x00009d8e mov.w fp, 0 |
0x00009d92 ldr r2, [r2] | r2 = *(r2);
0x00009d94 add r3, pc | r3 = 0x13da2;
0x00009d96 str r3, [sp, 4] | var_sp_4h = r3;
0x00009d98 str r2, [sp, 8] | var_8h = r2;
0x00009d9a ldr r3, [pc, 0x270] |
0x00009d9c ldr r2, [pc, 0x270] |
0x00009d9e add r3, pc | r3 = 0x13db0;
0x00009da0 add r2, pc | r2 = 0x13db4;
0x00009da2 str r3, [sp] | *(sp) = r3;
0x00009da4 adds r2, 7 | r2 += 7;
0x00009da6 movw r3, 0x195 | r3 = 0x195;
0x00009daa blx 0x61a4 | r0 = fcn_000061a4 ();
0x00009dae subs r3, r0, 0 | r3 = r0 - 0;
0x00009db0 it ge |
| if (r3 < r0) {
0x00009db2 mvnge r3, 0x55 | r3 = ~0x55;
| }
0x00009db6 b 0x991c | goto label_36;
| label_86:
0x00009db8 ldr r1, [pc, 0x258] |
0x00009dba mov r2, r7 | r2 = r7;
0x00009dbc ldr r3, [pc, 0x258] |
0x00009dbe mov sl, r2 | sl = r2;
0x00009dc0 movs r0, 3 | r0 = 3;
0x00009dc2 mov.w r2, 0x1c8 | r2 = 0x1c8;
0x00009dc6 add r1, pc | r1 = 0x13dde;
0x00009dc8 ldr.w r8, [sp, 0x38] | r8 = var_38h_2;
0x00009dcc add r3, pc | r3 = 0x13de8;
0x00009dce adds r1, 7 | r1 += 7;
0x00009dd0 mov fp, r4 |
0x00009dd2 mov r6, sb | r6 = sb;
0x00009dd4 ldrd r4, r7, [sp, 0x30] | __asm ("ldrd r4, r7, [var_30h]");
0x00009dd8 ldrd sb, r5, [sp, 0x3c] | __asm ("ldrd sb, r5, [var_3ch_2]");
0x00009ddc blx 0x65cc | r0 = fflush_and_check ();
0x00009de0 mov r3, r0 | r3 = r0;
0x00009de2 b 0x991c | goto label_36;
| label_91:
0x00009de4 str r5, [sp, 0x24] | var_24h = r5;
0x00009de6 mov fp, r4 |
0x00009de8 blx 0x5934 | r0 = fcn_00005934 ();
0x00009dec cmp r0, 5 |
0x00009dee mov r6, sb | r6 = sb;
0x00009df0 ldrd r4, r7, [sp, 0x30] | __asm ("ldrd r4, r7, [var_30h]");
0x00009df2 bx r1 | return uint32_t (*r1)() ();
0x00009df4 ldr.w r8, [sp, 0x38] | r8 = var_38h_2;
0x00009df8 ldrd sb, r5, [sp, 0x3c] | __asm ("ldrd sb, r5, [var_3ch_2]");
| if (r0 > 5) {
0x00009dfc ble 0x9e38 |
0x00009dfe ldr r3, [sp, 0x18] | r3 = var_18h;
0x00009e00 ldr r3, [r3] | r3 = *(r3);
0x00009e02 cmp r3, 1 |
| if (r3 == 1) {
0x00009e04 beq.w 0x9f16 | goto label_111;
| }
0x00009e08 cmp r3, 2 |
| if (r3 == 2) {
0x00009e0a beq.w 0x9f1c | goto label_112;
| }
0x00009e0e ldr r3, [pc, 0x20c] |
0x00009e10 add r3, pc | r3 = 0x13e32;
| label_39:
0x00009e12 ldr r2, [sp, 0x24] | r2 = var_24h;
0x00009e14 movs r1, 0 | r1 = 0;
0x00009e16 movs r0, 6 | r0 = 6;
0x00009e18 ldr r2, [r2] | r2 = *(r2);
0x00009e1a strd r3, r2, [sp, 8] | __asm ("strd r3, r2, [sp, 8]");
0x00009e1e ldr r3, [pc, 0x200] |
0x00009e20 ldr r2, [pc, 0x200] |
0x00009e22 add r3, pc | r3 = 0x13e48;
0x00009e24 str r3, [sp, 4] | var_sp_4h = r3;
0x00009e26 add r2, pc | r2 = 0x13e4e;
0x00009e28 ldr r3, [pc, 0x1fc] |
0x00009e2a adds r2, 7 | r2 += 7;
0x00009e2c add r3, pc | r3 = 0x13e58;
0x00009e2e str r3, [sp] | *(sp) = r3;
0x00009e30 movw r3, 0x19b | r3 = 0x19b;
0x00009e34 blx 0x61a4 | fcn_000061a4 ();
0x00009e36 invalid |
| }
0x00009e38 mov.w sl, 0 | sl = 0;
0x00009e3c mvn r3, 1 | r3 = ~1;
0x00009e3e lsls r1, r0, 0xc | r1 = r0 << 0xc;
0x00009e40 b 0x991c | goto label_36;
| label_71:
0x00009e42 blx 0x6114 | fcn_00006114 ();
| label_109:
0x00009e46 mov fp, r4 |
0x00009e48 mov r6, sb | r6 = sb;
0x00009e4a ldr.w sl, [sp, 0x44] | sl = var_44h;
0x00009e4e mov r3, r1 | r3 = r1;
0x00009e50 ldrd r4, r7, [sp, 0x30] | __asm ("ldrd r4, r7, [var_30h]");
0x00009e54 ldr.w r8, [sp, 0x38] | r8 = var_38h_2;
0x00009e58 ldrd sb, r5, [sp, 0x3c] | __asm ("ldrd sb, r5, [var_3ch_2]");
0x00009e5a str r5, [sp, 0x3c] | *((sp + 0x3c)) = r5;
| do {
0x00009e5c movs r0, 0 | r0 = 0;
0x00009e5e b 0x990a | goto label_34;
| label_95:
0x00009e60 ldr r1, [pc, 0x1c8] |
0x00009e62 mov.w r2, 0x1be | r2 = 0x1be;
0x00009e66 ldr r3, [pc, 0x1c8] |
0x00009e68 movs r0, 3 | r0 = 3;
0x00009e6a ldr.w sl, [sp, 0x44] | sl = var_44h;
0x00009e6e mov r6, sb | r6 = sb;
0x00009e70 add r1, pc | r1 = 0x13ea0;
0x00009e72 ldrd r7, r8, [sp, 0x34] | __asm ("ldrd r7, r8, [var_34h]");
0x00009e76 add r3, pc | r3 = 0x13eac;
0x00009e78 adds r1, 7 | r1 += 7;
0x00009e7a ldr.w sb, [sp, 0x3c] | sb = var_3ch_2;
0x00009e7e mov fp, r4 |
0x00009e80 ldr r5, [sp, 0x40] | r5 = var_40h_2;
0x00009e82 ldr r4, [sp, 0x30] | r4 = var_30h;
0x00009e84 blx 0x65cc | fflush_and_check ();
0x00009e86 sub.w r6, r2, r3, lsl 16 | r6 = r2 - (r3 << 16);
0x00009e8a b 0x991c | goto label_36;
| label_110:
0x00009e8c ldr r3, [sp, 0x18] | r3 = var_18h;
0x00009e8e movs r1, 0x81 | r1 = 0x81;
0x00009e90 ldr r2, [pc, 0x1a0] |
0x00009e92 movt r1, 0x4000 | r1 = (r1 & 0xFFFF) | 0x40000000;
0x00009e96 movs r0, 4 | r0 = 4;
0x00009e98 str r3, [sp, 8] | var_8h = r3;
0x00009e9a ldr r3, [pc, 0x19c] |
0x00009e9c add r2, pc | r2 = 0x13ed4;
0x00009e9e adds r2, 7 | r2 += 7;
0x00009ea0 add r3, pc | r3 = 0x13ede;
0x00009ea2 str r3, [sp, 4] | var_sp_4h = r3;
0x00009ea4 ldr r3, [pc, 0x194] |
0x00009ea6 add r3, pc | r3 = 0x13ee6;
0x00009ea8 str r3, [sp] | *(sp) = r3;
0x00009eaa movw r3, 0x12b | r3 = 0x12b;
0x00009eae blx 0x61a4 | r0 = fcn_000061a4 ();
0x00009eb2 subs r3, r0, 0 | r3 = r0 - 0;
0x00009eb4 blt 0x9e5c |
| } while (r3 < r0);
0x00009eb6 mov r0, fp | r0 = fp;
0x00009eb8 mov.w fp, 0 |
0x00009ebc blx 0x5be4 | fcn_00005be4 ();
0x00009ec0 mvn r3, 0x55 | r3 = ~0x55;
0x00009ec4 b 0x991c | goto label_36;
| label_106:
0x00009ec6 ldr.w r3, [sl] | r3 = *(sl);
0x00009eca mov r1, r4 | r1 = r4;
0x00009ecc movs r0, 3 | r0 = 3;
0x00009ece str r3, [sp, 0xc] | var_ch = r3;
0x00009ed0 ldr r3, [pc, 0x16c] |
0x00009ed2 ldr.w r2, [fp] | r2 = *(fp);
0x00009ed6 add r3, pc | r3 = 0x13f1a;
0x00009ed8 str r3, [sp, 4] | var_sp_4h = r3;
0x00009eda str r2, [sp, 8] | var_8h = r2;
0x00009edc ldr r3, [pc, 0x164] |
0x00009ede ldr r2, [pc, 0x168] |
0x00009ee0 add r3, pc | r3 = 0x13f28;
0x00009ee2 add r2, pc | r2 = 0x13f30;
0x00009ee4 str r3, [sp] | *(sp) = r3;
0x00009ee6 adds r2, 7 | r2 += 7;
0x00009ee8 movw r3, 0x235 | r3 = 0x235;
0x00009eec blx 0x61a4 | r0 = fcn_000061a4 ();
0x00009ef0 mov r4, r0 | r4 = r0;
0x00009ef2 b 0x9ab6 | goto label_38;
| label_108:
0x00009ef4 ldr r0, [sp, 0x80] | r0 = var_80h;
0x00009ef6 mov r6, sb | r6 = sb;
0x00009ef8 ldr.w sl, [sp, 0x44] | sl = var_44h;
0x00009efc mov.w fp, 0 |
0x00009f00 ldrd r4, r7, [sp, 0x30] | __asm ("ldrd r4, r7, [var_30h]");
0x00009f04 ldr.w r8, [sp, 0x38] | r8 = var_38h_2;
0x00009f08 ldrd sb, r5, [sp, 0x3c] | __asm ("ldrd sb, r5, [var_3ch_2]");
0x00009f0c str r1, [sp, 0x18] | var_18h = r1;
0x00009f0e blx 0x5be4 | fcn_00005be4 ();
0x00009f12 ldr r3, [sp, 0x18] | r3 = var_18h;
0x00009f14 b 0x991c | goto label_36;
| label_111:
0x00009f16 ldr r3, [pc, 0x134] |
0x00009f18 add r3, pc | r3 = 0x13f6a;
0x00009f1a b 0x9e12 | goto label_39;
| label_112:
0x00009f1c ldr r3, [pc, 0x130] |
0x00009f1e add r3, pc | r3 = 0x13f72;
0x00009f20 b 0x9e12 | goto label_39;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/systemctl @ 0xba4c */
| #include <stdint.h>
|
; (fcn) fcn.0000ba4c () | void fcn_0000ba4c (int16_t arg_58h, uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
| int16_t var_0h_2;
| int32_t var_0h_3;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h_2;
| int16_t var_14h_2;
| int16_t var_0h;
| int16_t var_ch_2;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_1ch;
| int16_t var_24h;
| int16_t var_28h;
| int16_t var_2ch;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x0000ba4c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0000ba50 mov r8, r2 | r8 = r2;
0x0000ba52 ldr r2, [pc, 0x26c] |
0x0000ba54 mov r5, r3 | r5 = r3;
0x0000ba56 sub sp, 0x34 |
0x0000ba58 ldr r3, [pc, 0x268] | r3 = *(0xbcc4);
0x0000ba5a add r2, pc | r2 = 0x17720;
0x0000ba5c ldr.w sb, [pc, 0x268] | sb = *(0x0000bcc8);
0x0000ba60 ldr r3, [r2, r3] |
0x0000ba62 add sb, pc | sb += pc;
0x0000ba64 ldr r3, [r3] | r3 = *(0x17720);
0x0000ba66 str r3, [sp, 0x2c] | var_2ch = r3;
0x0000ba68 mov.w r3, 0 | r3 = 0;
0x0000ba6c movs r3, 0 | r3 = 0;
0x0000ba6e str r3, [sp, 0x24] | var_24h = r3;
0x0000ba70 cmp r0, 0 |
| if (arg_58h == ) {
0x0000ba72 beq.w 0xbc60 | goto label_12;
| }
0x0000ba76 mov r7, r1 | r7 = r1;
0x0000ba78 cmp r1, 0 |
| if (r1 == 0) {
0x0000ba7a beq.w 0xbc74 | goto label_13;
| }
0x0000ba7c strh r3, [r7, 6] | *((r7 + 6)) = r3;
0x0000ba7e mov r6, r0 | r6 = r0;
0x0000ba80 mov r0, r5 | r0 = r5;
0x0000ba82 blx 0x5e4c | r0 = bus_wait_for_jobs_new ();
0x0000ba86 cmp r0, 0 |
| if (r0 < 0) {
0x0000ba88 blt.w 0xbc42 | goto label_14;
| }
0x0000ba8c add r2, sp, 0x24 | r2 += var_24h;
0x0000ba8e mov r1, r7 | r1 = r7;
0x0000ba90 mov r0, r6 | r0 = r6;
0x0000ba92 bl 0x1b038 | r0 = fcn_0001b038 (r0, r1, r2, r3, r4, r5, r6);
0x0000ba96 subs.w sl, r0, 0 | sl = r0 - 0;
| if (sl < r0) {
0x0000ba9a blt 0xbb40 | goto label_2;
| }
0x0000ba9c ldr r4, [sp, 0x24] | r4 = var_24h;
0x0000ba9e mov r0, r4 | r0 = r4;
0x0000baa0 blx 0x600c | r0 = fcn_0000600c ();
0x0000baa4 cmp r0, 1 |
0x0000baa6 mov r1, r0 | r1 = r0;
| if (r0 >= 1) {
0x0000baa8 bls 0xbabe |
0x0000baaa cmp r4, 0 |
| if (r4 == 0) {
0x0000baac beq.w 0xbc9c | goto label_15;
| }
0x0000bab0 ldr r3, [pc, 0x218] |
0x0000bab2 mov r0, r4 | r0 = r4;
0x0000bab4 movs r2, 4 | r2 = 4;
0x0000bab6 add r3, pc | r3 = 0x17786;
0x0000bab8 blx 0x5684 | qsort ();
0x0000babc ldr r4, [sp, 0x24] | r4 = var_24h;
| }
0x0000babe ldr r3, [pc, 0x210] | r3 = *(0xbcd2);
0x0000bac0 ldr.w r3, [sb, r3] | r3 = *((sb + r3));
0x0000bac4 ldrb.w sl, [r3] | sl = *(r3);
0x0000bac8 str r3, [sp, 0xc] | var_ch_2 = r3;
0x0000baca cmp r4, 0 |
| if (r4 == 0) {
0x0000bacc beq.w 0xbcb0 | goto label_16;
| }
0x0000bad0 ldr r3, [pc, 0x200] |
0x0000bad2 add r3, pc | r3 = 0x177aa;
0x0000bad4 str r3, [sp, 0x10] | var_10h = r3;
0x0000bad6 ldr r3, [pc, 0x200] |
0x0000bad8 add r3, pc | r3 = 0x177b6;
0x0000bada str r3, [sp, 0x14] | var_14h = r3;
0x0000badc ldr r3, [pc, 0x1fc] |
0x0000bade add r3, pc | r3 = 0x177be;
0x0000bae0 str r3, [sp, 0x18] | var_18h = r3;
0x0000bae2 ldr r3, [sp, 0x58] | r3 = *(arg_58h);
0x0000bae4 lsl.w fp, r3, 1 |
| do {
0x0000bae8 ldr r1, [r4], 4 | r1 = *(r4);
| r4 += 4;
| if (r1 == 0) {
0x0000baec cbz r1, 0xbb36 | goto label_17;
| }
| label_0:
0x0000baee ldr r0, [r5] | r0 = *(r5);
0x0000baf0 blx 0x6060 | r0 = fcn_00006060 ();
0x0000baf4 cmp r0, 0 |
| if (r0 == 0) {
0x0000baf6 beq 0xbb66 | goto label_18;
| }
0x0000baf8 cmp.w sl, 0 |
0x0000bafc bne 0xbae8 |
| } while (sl != 0);
0x0000bafe ldr r1, [pc, 0x1e0] |
0x0000bb00 movs r0, 1 | r0 = 1;
0x0000bb02 add r1, pc | r1 = 0x177e8;
0x0000bb04 blx 0x59a0 | fcn_000059a0 ();
0x0000bb08 ldr r3, [r4] | r3 = *(r4);
0x0000bb0a ldr r0, [pc, 0x1d8] |
0x0000bb0c cmp r3, 0 |
0x0000bb0e ite eq |
| if (r3 != 0) {
0x0000bb10 moveq r2, fp | r2 = fp;
| }
| if (r3 == 0) {
0x0000bb12 orrne r2, fp, 1 | r2 = fp | 1;
| }
0x0000bb16 movs r3, 1 | r3 = 1;
0x0000bb18 add r0, pc | r0 = 0x17802;
0x0000bb1a add.w r1, r8, r3 | r1 = r8 + r3;
0x0000bb1e bl 0xb8bc | r0 = fcn_0000b8bc (r0, r1, r2, r3);
0x0000bb22 subs.w sl, r0, 0 | sl = r0 - 0;
| if (sl < r0) {
0x0000bb26 blt 0xbb40 | goto label_2;
| }
| label_1:
0x0000bb28 ldr r1, [r4], 4 | r1 = *(r4);
| r4 += 4;
0x0000bb2c ldr r3, [sp, 0xc] | r3 = var_ch_2;
0x0000bb2e ldrb.w sl, [r3] | sl = *(r3);
0x0000bb32 cmp r1, 0 |
| if (r1 != 0) {
0x0000bb34 bne 0xbaee | goto label_0;
| }
| label_17:
0x0000bb36 cmp.w sl, 0 |
| if (sl == 0) {
0x0000bb3a beq.w 0xbc8e | goto label_19;
| }
0x0000bb3e mov sl, r1 | sl = r1;
| do {
| label_2:
0x0000bb40 ldr r0, [sp, 0x24] | r0 = var_24h;
| if (r0 != 0) {
0x0000bb42 cbz r0, 0xbb48 |
| label_6:
0x0000bb44 blx 0x5dec | unit_file_state_to_string ();
| }
| label_7:
0x0000bb48 ldr r2, [pc, 0x19c] |
0x0000bb4a ldr r3, [pc, 0x178] | r3 = *(0xbcc6);
0x0000bb4c add r2, pc | r2 = 0x17838;
0x0000bb4e ldr r3, [r2, r3] | r3 = *(0x17838);
0x0000bb50 ldr r2, [r3] | r2 = *(0x17838);
0x0000bb52 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x0000bb54 eors r2, r3 | r2 ^= r3;
0x0000bb56 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000bb5a bne.w 0xbcba | goto label_20;
| }
0x0000bb5e mov r0, sl | r0 = sl;
0x0000bb60 add sp, 0x34 |
0x0000bb62 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_18:
0x0000bb66 cmp.w sl, 0 |
| if (sl == 0) {
0x0000bb6a beq 0xbbcc | goto label_21;
| }
0x0000bb6c ldr r1, [pc, 0x17c] |
0x0000bb6e movs r0, 1 | r0 = 1;
0x0000bb70 add r1, pc | r1 = 0x17860;
0x0000bb72 blx 0x59a0 | fcn_000059a0 ();
| label_3:
0x0000bb76 ldr r3, [r4] | r3 = *(r4);
0x0000bb78 mov r1, r8 | r1 = r8;
0x0000bb7a ldr r0, [r4, -0x4] | r0 = *((r4 - 0x4));
0x0000bb7e ldr r2, [sp, 0x58] | r2 = *(arg_58h);
0x0000bb80 clz r3, r3 | r3 &= r3;
0x0000bb84 lsrs r3, r3, 5 | r3 >>= 5;
0x0000bb86 bl 0xb8bc | r0 = fcn_0000b8bc (r0, r1, r2, r3);
0x0000bb8a subs.w sl, r0, 0 | sl = r0 - 0;
0x0000bb8e blt 0xbb40 |
| } while (sl < r0);
0x0000bb90 ldr r3, [pc, 0x15c] | r3 = *(0xbcf0);
0x0000bb92 ldr sl, [r4, -0x4] | sl = *((r4 - 0x4));
0x0000bb96 ldr.w r3, [sb, r3] | r3 = *((sb + r3));
0x0000bb98 adds r0, 3 | r0 += 3;
0x0000bb9a ldrb r3, [r3] | r3 = *(r3);
| if (r3 != 0) {
0x0000bb9c cbnz r3, 0xbba8 | goto label_22;
| }
0x0000bb9e mov r0, sl | r0 = sl;
0x0000bba0 blx 0x6204 | r0 = fcn_00006204 ();
0x0000bba4 cmp r0, 4 |
| if (r0 != 4) {
0x0000bba6 bne 0xbb28 | goto label_1;
| }
| label_22:
0x0000bba8 ldr r2, [r4] | r2 = *(r4);
0x0000bbaa mov r1, sl | r1 = sl;
0x0000bbac mov r0, r6 | r0 = r6;
0x0000bbae cmp r2, 0 |
0x0000bbb0 ite eq |
| if (r2 != 0) {
0x0000bbb2 moveq r3, fp | r3 = fp;
| }
| if (r2 == 0) {
0x0000bbb4 orrne r3, fp, 1 | r3 = fp | 1;
| }
0x0000bbb8 add.w r2, r8, 1 | r2 = r8 + 1;
0x0000bbbc str r3, [sp] | *(sp) = r3;
0x0000bbbe mov r3, r5 | r3 = r5;
0x0000bbc0 bl 0xba4c | r0 = fcn_0000ba4c (r0, r1, r2, r3, r4);
0x0000bbc4 subs.w sl, r0, 0 | sl = r0 - 0;
| if (sl >= r0) {
0x0000bbc8 bge 0xbb28 | goto label_1;
| }
0x0000bbca b 0xbb40 | goto label_2;
| label_21:
0x0000bbcc mvn r3, 0x15 | r3 = ~0x15;
0x0000bbd0 add r2, sp, 0x28 | r2 += var_28h;
0x0000bbd2 str r3, [sp, 0x28] | var_28h = r3;
0x0000bbd4 mov r0, r6 | r0 = r6;
0x0000bbd6 ldr r1, [r4, -0x4] | r1 = *((r4 - 0x4));
0x0000bbda bl 0x1a604 | fcn_0001a604 (r0, r1, r2, r3, r4, r5);
0x0000bbde ldr r3, [sp, 0x28] | r3 = var_28h;
0x0000bbe0 cmp r3, 5 |
| if (r3 > 5) {
0x0000bbe2 bhi 0xbc34 | goto label_23;
| }
| /* switch table (6 cases) at 0xbbe8 */
0x0000bbe4 tbb [pc, r3] | __asm ("tbb [0x0000bbec]");
0x0000bbee blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000bbf2 cmp r0, 0 |
| if (r0 != 0) {
0x0000bbf4 bne 0xbc88 | goto label_24;
| }
| do {
| label_5:
0x0000bbf6 ldr r2, [pc, 0xfc] |
0x0000bbf8 add r2, pc | r2 = 0x178f2;
| label_4:
0x0000bbfa ldr r0, [sp, 0x28] | r0 = var_28h;
0x0000bbfc str r2, [sp, 0x1c] | var_1ch = r2;
0x0000bbfe blx 0x5edc | running_in_chroot ();
0x0000bc02 blx 0x6644 | r0 = sd_bus_message_close_container ();
0x0000bc06 mov sl, r0 | sl = r0;
0x0000bc08 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000bc0c cmp r0, 0 |
0x0000bc0e ldrd r1, r0, [sp, 0x14] | __asm ("ldrd r1, r0, [var_14h]");
0x0000bc12 ldr r2, [sp, 0x1c] | r2 = var_1ch;
0x0000bc14 mov r3, sl | r3 = sl;
0x0000bc16 it eq |
| if (r0 != 0) {
0x0000bc18 moveq r1, r0 | r1 = r0;
| }
0x0000bc1a movs r0, 1 | r0 = 1;
0x0000bc1c str r1, [sp] | *(sp) = r1;
0x0000bc1e ldr r1, [sp, 0x10] | r1 = var_10h;
0x0000bc20 blx 0x59a0 | fcn_000059a0 ();
0x0000bc24 b 0xbb76 | goto label_3;
0x0000bc26 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000bc2a cmp r0, 0 |
0x0000bc2c beq 0xbbf6 |
| } while (r0 == 0);
0x0000bc2e ldr r2, [pc, 0xc8] |
0x0000bc30 add r2, pc | r2 = 0x1792e;
0x0000bc32 b 0xbbfa | goto label_4;
| label_23:
0x0000bc34 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000bc38 cmp r0, 0 |
| if (r0 == 0) {
0x0000bc3a beq 0xbbf6 | goto label_5;
| }
0x0000bc3c ldr r2, [pc, 0xbc] |
0x0000bc3e add r2, pc | r2 = 0x1793e;
0x0000bc40 b 0xbbfa | goto label_4;
| label_14:
0x0000bc42 ldr r1, [pc, 0xbc] |
0x0000bc44 movs r2, 0x4b | r2 = 0x4b;
0x0000bc46 ldr r3, [pc, 0xbc] |
0x0000bc48 movs r0, 3 | r0 = 3;
0x0000bc4a add r1, pc | r1 = 0x17950;
0x0000bc4c add r3, pc | r3 = 0x17956;
0x0000bc4e adds r1, 7 | r1 += 7;
0x0000bc50 blx 0x65cc | r0 = fflush_and_check ();
0x0000bc54 mov sl, r0 | sl = r0;
0x0000bc56 ldr r0, [sp, 0x24] | r0 = var_24h;
0x0000bc58 cmp r0, 0 |
| if (r0 != 0) {
0x0000bc5a bne.w 0xbb44 | goto label_6;
| }
0x0000bc5e b 0xbb48 | goto label_7;
| label_12:
0x0000bc60 ldr r1, [pc, 0xa4] |
0x0000bc62 movs r2, 0x45 | r2 = 0x45;
0x0000bc64 ldr r3, [pc, 0xa4] |
0x0000bc66 ldr r0, [pc, 0xa8] |
0x0000bc68 add r1, pc | r1 = 0x17974;
0x0000bc6a add r3, pc | r3 = 0x1797a;
0x0000bc6c adds r1, 7 | r1 += 7;
0x0000bc6e add r0, pc | r0 = 0x17984;
0x0000bc70 blx 0x5e40 | unit_file_get_default ();
| label_13:
0x0000bc74 ldr r1, [pc, 0x9c] |
0x0000bc76 movs r2, 0x46 | r2 = 0x46;
0x0000bc78 ldr r3, [pc, 0x9c] |
0x0000bc7a ldr r0, [pc, 0xa0] |
0x0000bc7c add r1, pc | r1 = 0x17994;
0x0000bc7e add r3, pc | r3 = 0x1799a;
0x0000bc80 adds r1, 7 | r1 += 7;
0x0000bc82 add r0, pc | r0 = 0x179a4;
0x0000bc84 blx 0x5e40 | unit_file_get_default ();
| label_24:
0x0000bc88 ldr r2, [pc, 0x94] |
0x0000bc8a add r2, pc | r2 = 0x179ae;
0x0000bc8c b 0xbbfa | goto label_4;
| do {
| label_19:
0x0000bc8e ldr r0, [r5] | r0 = *(r5);
0x0000bc90 mov r1, r7 | r1 = r7;
0x0000bc92 mov.w sl, 0 | sl = 0;
0x0000bc96 blx 0x5ca4 | fcn_00005ca4 ();
0x0000bc9a b 0xbb40 | goto label_2;
| label_15:
0x0000bc9c ldr r1, [pc, 0x84] |
0x0000bc9e movs r2, 0x2e | r2 = 0x2e;
0x0000bca0 ldr r3, [pc, 0x84] |
0x0000bca2 ldr r0, [pc, 0x88] |
0x0000bca4 add r1, pc | r1 = 0x179cc;
0x0000bca6 add r3, pc | r3 = 0x179d2;
0x0000bca8 adds r1, 7 | r1 += 7;
0x0000bcaa add r0, pc | r0 = 0x179dc;
0x0000bcac blx 0x5e40 | unit_file_get_default ();
0x0000bcae invalid |
| label_16:
0x0000bcb0 cmp.w sl, 0 |
0x0000bcb4 beq 0xbc8e |
| } while (sl == 0);
0x0000bcb6 mov sl, r4 | sl = r4;
0x0000bcb8 b 0xbb48 | goto label_7;
| label_20:
0x0000bcba blx 0x6114 | fcn_00006114 ();
0x0000bcbe nop |
0x0000bcc0 vhadd.s16 d0, d2, d2 | __asm ("vhadd.s16 d0, d2, d2");
0x0000bcc4 lsls r0, r2, 0x18 | r0 = r2 << 0x18;
0x0000bcc6 movs r0, r0 |
0x0000bcc8 vhadd.s8 d0, d10, d2 | __asm ("vhadd.s8 d0, d10, d2");
0x0000bccc stc2l p15, c15, [fp, 0x3fc] | __asm ("stc2l p15, c15, [fp, 0x3fc]");
0x0000bcd0 lsls r4, r6, 0x16 | r4 = r6 << 0x16;
0x0000bcd2 movs r0, r0 |
0x0000bcd4 ldr r3, [pc, 0x3d8] | r3 = *(0xc0b0);
0x0000bcd6 movs r1, r0 | r1 = r0;
0x0000bcd8 cmp r5, 0x50 |
0x0000bcda movs r1, r0 | r1 = r0;
0x0000bcdc ldr r7, [pc, 0x368] | r7 = *(0xc048);
0x0000bcde movs r1, r0 | r1 = r0;
0x0000bce0 ldr r3, [pc, 0x2f8] | r3 = *(0xbfdc);
0x0000bce2 movs r1, r0 | r1 = r0;
0x0000bce4 ldr r3, [pc, 0x2b0] | r3 = *(0xbf98);
0x0000bce6 movs r1, r0 | r1 = r0;
0x0000bce8 cdp p0, 2, c0, c0, c2, 0 | __asm ("cdp p0, 2, c0, c0, c2, 0");
0x0000bcec ldr r3, [pc, 0x140] | r3 = *(0xbe30);
0x0000bcee movs r1, r0 | r1 = r0;
0x0000bcf0 lsls r0, r5, 0x17 | r0 = r5 << 0x17;
0x0000bcf2 movs r0, r0 |
0x0000bcf4 ldr r6, [pc, 0x300] | r6 = *(0xbff8);
0x0000bcf6 movs r1, r0 | r1 = r0;
0x0000bcf8 cmp r3, 0xf8 |
0x0000bcfa movs r1, r0 | r1 = r0;
0x0000bcfc subs r3, 0x42 | r3 -= 0x42;
0x0000bcfe movs r1, r0 | r1 = r0;
0x0000bd00 ldr r2, [pc, 0x28] | r2 = *(0xbd2c);
0x0000bd02 movs r1, r0 | r1 = r0;
0x0000bd04 ldr r2, [pc, 0x340] | r2 = *(0xc048);
0x0000bd06 movs r1, r0 | r1 = r0;
0x0000bd08 ldr r1, [pc, 0x3b0] | r1 = *(0xc0bc);
0x0000bd0a movs r1, r0 | r1 = r0;
0x0000bd0c ldr r2, [pc, 0x208] | r2 = *(0xbf18);
0x0000bd0e movs r1, r0 | r1 = r0;
0x0000bd10 ldr r2, [pc, 0x98] | r2 = *(0xbdac);
0x0000bd12 movs r1, r0 | r1 = r0;
0x0000bd14 ldr r1, [pc, 0x360] | r1 = *(0xc078);
0x0000bd16 movs r1, r0 | r1 = r0;
0x0000bd18 ldr r2, [pc, 0x1b8] | r2 = *(0xbed4);
0x0000bd1a movs r1, r0 | r1 = r0;
0x0000bd1c adds r7, 0x76 | r7 += 0x76;
0x0000bd1e movs r1, r0 | r1 = r0;
0x0000bd20 ldr r1, [pc, 0x3f8] | r1 = *(0xc11c);
0x0000bd22 movs r1, r0 | r1 = r0;
0x0000bd24 ldr r1, [pc, 0x3d0] | r1 = *(0xc0f8);
0x0000bd26 movs r1, r0 | r1 = r0;
0x0000bd28 ldr r2, [pc, 0xe8] | r2 = *(0xbe14);
0x0000bd2a movs r1, r0 | r1 = r0;
0x0000bd2c ldr r2, [pc, 0x38] | r2 = *(0xbd68);
0x0000bd2e movs r1, r0 | r1 = r0;
0x0000bd30 ldr r2, [pc, 0x138] |
0x0000bd32 movs r0, 1 | r0 = 1;
0x0000bd34 ldr r3, [pc, 0x138] | r3 = *(0xbe70);
0x0000bd36 push.w {r4, r5, r6, r7, r8, lr} |
0x0000bd3a sub sp, 0x18 |
0x0000bd3c add r2, pc | r2 = 0x17bac;
0x0000bd3e ldr r7, [pc, 0x134] |
0x0000bd40 mov r5, r1 | r5 = r1;
0x0000bd42 movs r6, 0 | r6 = 0;
0x0000bd44 ldr r3, [r2, r3] |
0x0000bd46 add r1, sp, 0x10 | r1 += var_10h_2;
0x0000bd48 add r7, pc | r7 = 0x17bc2;
0x0000bd4a ldr r3, [r3] | r3 = *(0x17bac);
0x0000bd4c str r3, [sp, 0x14] | var_14h_2 = r3;
0x0000bd4e mov.w r3, 0 | r3 = 0;
0x0000bd52 strd r6, r6, [sp, 8] | __asm ("strd r6, r6, [var_ch]");
0x0000bd56 bl 0x1a334 | r0 = fcn_0001a334 (r0, r1);
0x0000bd5a subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0000bd5c blt 0xbdce | goto label_9;
| }
0x0000bd5e movs r1, 1 | r1 = 1;
0x0000bd60 mov r0, r5 | r0 = r5;
0x0000bd62 blx 0x5ad4 | r0 = sd_bus_message_get_bus ();
0x0000bd66 cmp r0, 0 |
| if (r0 == 0) {
0x0000bd68 beq 0xbdfc | goto label_25;
| }
0x0000bd6a ldr r3, [r0] | r3 = *(r0);
0x0000bd6c cmp r3, 0 |
| if (r3 == 0) {
0x0000bd6e beq 0xbdfc | goto label_25;
| }
0x0000bd70 mov r1, r0 | r1 = r0;
0x0000bd72 add r3, sp, 8 | r3 += var_8h;
0x0000bd74 ldr r0, [sp, 0x10] | r0 = var_10h_2;
0x0000bd76 mov r2, r6 | r2 = r6;
0x0000bd78 str r6, [sp] | *(sp) = r6;
0x0000bd7a bl 0x1ba10 | r0 = fcn_0001ba10 (r0, r1, r2, r3, r4, r5, r6);
0x0000bd7e subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0000bd80 blt 0xbe22 | goto label_26;
| }
| label_8:
0x0000bd82 ldr r3, [pc, 0xf4] | r3 = *(0xbe7a);
0x0000bd84 ldr r3, [r7, r3] | r3 = *((r7 + r3));
0x0000bd86 ldr r0, [r3] | r0 = *(0xbe7a);
0x0000bd88 blx 0x5e70 | get_color_mode ();
0x0000bd8c ldr r5, [sp, 8] | r5 = var_8h;
0x0000bd8e cmp r5, 0 |
| if (r5 == 0) {
0x0000bd90 beq 0xbe5c | goto label_27;
| }
0x0000bd92 ldr r7, [pc, 0xe8] |
0x0000bd94 subs r5, 4 | r5 -= 4;
0x0000bd96 add.w r8, sp, 0xc | r8 += var_ch;
0x0000bd98 lsrs r4, r1, 0x20 | r4 = r1 >> 0x20;
0x0000bd9a movs r6, 0 | r6 = 0;
0x0000bd9c add r7, pc | r7 = 0x17c1e;
0x0000bd9e b 0xbdc4 |
| while (r0 != 0) {
0x0000bda0 ldr r3, [sp, 8] | r3 = var_8h;
0x0000bda2 cmp r3, r5 |
| if (r3 != r5) {
0x0000bda4 beq 0xbdae |
0x0000bda6 mov r0, r7 | r0 = r7;
0x0000bda8 blx 0x62a0 | fcn_000062a0 ();
0x0000bdac ldr r0, [r5] | r0 = *(r5);
| }
0x0000bdae blx 0x62a0 | fcn_000062a0 ();
0x0000bdb2 ldr r1, [r5] | r1 = *(r5);
0x0000bdb4 mov r3, r8 | r3 = r8;
0x0000bdb6 ldr r0, [sp, 0x10] | r0 = var_10h_2;
0x0000bdb8 movs r2, 0 | r2 = 0;
0x0000bdba str r6, [sp] | *(sp) = r6;
0x0000bdbc bl 0xba4c | r0 = fcn_0000ba4c (r0, r1, r2, r3, r4);
0x0000bdc0 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0000bdc2 blt 0xbdce | goto label_9;
| }
0x0000bdc4 ldr r0, [r5, 4]! | r0 = *((r5 += 4));
0x0000bdc8 cmp r0, 0 |
0x0000bdca bne 0xbda0 |
| }
0x0000bdcc mov r4, r0 | r4 = r0;
| label_9:
0x0000bdce ldr r0, [sp, 0xc] | r0 = var_ch;
| if (r0 != 0) {
0x0000bdd0 cbz r0, 0xbdd8 |
| label_10:
0x0000bdd2 blx 0x5dec | unit_file_state_to_string ();
0x0000bdd6 str r0, [sp, 0xc] | var_ch = r0;
| }
0x0000bdd8 ldr r0, [sp, 8] | r0 = var_8h;
| if (r0 != 0) {
0x0000bdda cbz r0, 0xbde0 |
0x0000bddc blx 0x5dec | unit_file_state_to_string ();
| }
| label_11:
0x0000bde0 ldr r2, [pc, 0x9c] |
0x0000bde2 ldr r3, [pc, 0x8c] | r3 = *(0xbe72);
0x0000bde4 add r2, pc | r2 = 0x17c68;
0x0000bde6 ldr r3, [r2, r3] | r3 = *(0x17c68);
0x0000bde8 ldr r2, [r3] | r2 = *(0x17c68);
0x0000bdea ldr r3, [sp, 0x14] | r3 = var_14h_2;
0x0000bdec eors r2, r3 | r2 ^= r3;
0x0000bdee mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000bdf2 bne 0xbe68 | goto label_28;
| }
0x0000bdf4 mov r0, r4 | r0 = r4;
0x0000bdf6 add sp, 0x18 |
0x0000bdf8 pop.w {r4, r5, r6, r7, r8, pc} |
| label_25:
0x0000bdfc ldr r0, [pc, 0x84] |
0x0000bdfe movs r1, 0 | r1 = 0;
0x0000be00 add r0, pc | r0 = 0x17c88;
0x0000be02 blx 0x5cb0 | fcn_00005cb0 ();
0x0000be06 str r0, [sp, 8] | var_8h = r0;
0x0000be08 cmp r0, 0 |
| if (r0 != 0) {
0x0000be0a bne 0xbd82 | goto label_8;
| }
0x0000be0c ldr r1, [pc, 0x78] |
0x0000be0e movs r2, 0x99 | r2 = 0x99;
0x0000be10 ldr r3, [pc, 0x78] |
0x0000be12 movs r0, 3 | r0 = 3;
0x0000be14 add r1, pc | r1 = 0x17ca0;
0x0000be16 add r3, pc | r3 = 0x17ca6;
0x0000be18 adds r1, 7 | r1 += 7;
0x0000be1a blx 0x65cc | r0 = fflush_and_check ();
0x0000be1e mov r4, r0 | r4 = r0;
0x0000be20 b 0xbdce | goto label_9;
| label_26:
0x0000be22 blx 0x5934 | r0 = fcn_00005934 ();
0x0000be26 cmp r0, 2 |
0x0000be28 ittt le |
| if (r0 <= 2) {
0x0000be2a rsble r0, r4, 0 | __asm ("rsble r0, r4, 0");
| }
| if (r0 <= 2) {
0x0000be2c uxtble r0, r0 | __asm ("uxtble r0, r0");
| }
| if (r0 <= 2) {
0x0000be2e rsble r4, r0, 0 | __asm ("rsble r4, r0, 0");
| }
0x0000be30 bgt 0xbe3c |
| while (1) {
0x0000be32 cmp r4, 0 |
0x0000be34 it ge |
| if (r4 < 0) {
0x0000be36 mvnge r4, 0x55 | r4 = ~0x55;
| }
0x0000be3a b 0xbdce | goto label_9;
0x0000be3c ldr r2, [pc, 0x50] |
0x0000be3e mov r1, r4 | r1 = r4;
0x0000be40 ldr r5, [pc, 0x50] |
0x0000be42 movs r3, 0x9d | r3 = 0x9d;
0x0000be44 ldr r0, [pc, 0x50] |
0x0000be46 add r2, pc | r2 = 0x17cda;
0x0000be48 add r5, pc | r5 = 0x17ce0;
0x0000be4a adds r2, 7 | r2 += 7;
0x0000be4c add r0, pc | r0 = 0x17ce8;
0x0000be4e strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x0000be52 movs r0, 3 | r0 = 3;
0x0000be54 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000be58 mov r4, r0 | r4 = r0;
0x0000be5a b 0xbe32 |
| }
| label_27:
0x0000be5c ldr r0, [sp, 0xc] | r0 = var_ch;
0x0000be5e mov r4, r5 | r4 = r5;
0x0000be60 cmp r0, 0 |
| if (r0 != 0) {
0x0000be62 bne 0xbdd2 | goto label_10;
| }
0x0000be64 mov r4, r0 | r4 = r0;
0x0000be66 b 0xbde0 | goto label_11;
| label_28:
0x0000be68 blx 0x6114 | r0 = fcn_00006114 ();
0x0000be6c ldc p0, c0, [r0], -8 | __asm ("ldc p0, c0, [r0], -8");
0x0000be6e movs r2, r0 | r2 = r0;
0x0000be70 lsls r0, r2, 0x18 | r0 = r2 << 0x18;
0x0000be72 movs r0, r0 |
0x0000be74 stc p0, c0, [r4], -8 | __asm ("stc p0, c0, [r4], -8");
0x0000be78 lsls r4, r7, 0x15 | r4 = r7 << 0x15;
0x0000be7a movs r0, r0 |
0x0000be7c ldr r5, [pc, 0x70] | r5 = *(0xbef0);
0x0000be7e movs r1, r0 | r1 = r0;
0x0000be80 invalid |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/systemctl @ 0xc7d0 */
| #include <stdint.h>
|
; (fcn) fcn.0000c7d0 () | void fcn_0000c7d0 (int16_t arg_1h, 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;
| void * base;
| int16_t var_44h;
| 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_64h;
| int16_t var_68h;
| int16_t var_6ch;
| int16_t var_70h;
| int16_t var_74h;
| r0 = arg1;
| do {
0x00005a64 invalid | void (*0x5a68)() ();
0x0000c7d0 push {r4, lr} |
| if (r0 == 0) {
0x0000c7d2 cbz r0, 0xc7f6 | goto label_29;
| }
0x0000c7d4 mov r4, r0 | r4 = r0;
0x0000c7d6 ldr r0, [r0, 4] | r0 = *((r0 + 4));
0x0000c7d8 blx 0x5be4 | fcn_00005be4 ();
0x0000c7dc ldr r0, [r4, 8] | r0 = *((r4 + 8));
0x0000c7de blx 0x5be4 | fcn_00005be4 ();
0x0000c7e2 ldr r0, [r4, 0xc] | r0 = *((r4 + 0xc));
0x0000c7e4 blx 0x5be4 | fcn_00005be4 ();
0x0000c7e8 mov r0, r4 | r0 = r4;
0x0000c7ea movs r2, 0x20 | r2 = 0x20;
0x0000c7ec pop.w {r4, lr} |
0x0000c7f0 movs r1, 0 | r1 = 0;
0x0000c7f2 b.w 0x5a64 |
| } while (1);
| label_29:
0x0000c7f6 ldr r1, [pc, 0x14] |
0x0000c7f8 movs r2, 0x1b | r2 = 0x1b;
0x0000c7fa ldr r3, [pc, 0x14] |
0x0000c7fc ldr r0, [pc, 0x14] |
0x0000c7fe add r1, pc | r1 = 0x19010;
0x0000c800 add r3, pc | r3 = 0x19016;
0x0000c802 adds r1, 7 | r1 += 7;
0x0000c804 add r0, pc | r0 = 0x1901c;
0x0000c806 blx 0x5e40 | unit_file_get_default ();
0x0000c80a nop |
0x0000c80c adcs r2, r0 | __asm ("adcs r2, r0");
0x0000c80e movs r1, r0 | r1 = r0;
0x0000c810 muls r4, r1, r4 | r4 = r1 * r4;
0x0000c812 movs r1, r0 | r1 = r0;
0x0000c814 sbcs r0, r5 | __asm ("sbcs r0, r5");
0x0000c816 movs r1, r0 | r1 = r0;
0x0000c818 ldr.w r2, [pc, 0x6e8] | r2 = *(0x0000cf04);
0x0000c81c movs r0, 1 | r0 = 1;
0x0000c81e ldr.w r3, [pc, 0x6e8] |
0x0000c822 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0000c826 sub sp, 0x7c |
0x0000c828 add r2, pc | r2 += pc;
0x0000c82a ldr.w r7, [pc, 0x6e0] | r7 = *(0x0000cf0c);
0x0000c82e mov r4, r1 | r4 = r1;
0x0000c830 add r1, sp, 0x64 | r1 += var_64h;
0x0000c832 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x0000c834 add r7, pc | r7 += pc;
0x0000c836 ldr r3, [r3] | r3 = *(0xcf0a);
0x0000c838 str r3, [sp, 0x74] | var_74h = r3;
0x0000c83a mov.w r3, 0 | r3 = 0;
0x0000c83e bl 0x1a334 | r0 = fcn_0001a334 (r0, r1);
0x0000c842 subs.w fp, r0, 0 |
| if (fp < r0) {
0x0000c846 blt.w 0xc958 | goto label_1;
| }
0x0000c84a movs r1, 1 | r1 = 1;
0x0000c84c mov r0, r4 | r0 = r4;
0x0000c84e movs r4, 0 | r4 = 0;
0x0000c850 ldr.w r8, [sp, 0x64] | r8 = var_64h;
0x0000c854 blx 0x5ad4 | sd_bus_message_get_bus ();
0x0000c858 strd r4, r4, [sp, 0x68] | __asm ("strd r4, r4, [var_6ch]");
0x0000c85c mov r5, r0 | r5 = r0;
0x0000c85e blx 0x6420 | r0 = fcn_00006420 ();
0x0000c862 mov r6, r0 | r6 = r0;
0x0000c864 cmp r0, 0 |
| if (r0 == 0) {
0x0000c866 beq.w 0xca46 | goto label_30;
| }
0x0000c86a cmp r5, 0 |
| if (r5 == 0) {
0x0000c86c beq.w 0xc97a | goto label_31;
| }
0x0000c870 ldr r3, [r5] | r3 = *(r5);
0x0000c872 cmp r3, 0 |
| if (r3 == 0) {
0x0000c874 beq.w 0xc97a | goto label_31;
| }
0x0000c878 mov r1, r0 | r1 = r0;
0x0000c87a mov r3, r4 | r3 = r4;
0x0000c87c movs r2, 2 | r2 = 2;
0x0000c87e mov r0, r5 | r0 = r5;
0x0000c880 blx 0x58a4 | r0 = fcn_000058a4 ();
0x0000c884 mov fp, r0 |
0x0000c886 cmp r0, 0 |
| if (r0 != 0) {
0x0000c888 bne 0xc97a | goto label_31;
| }
0x0000c88a add r0, sp, 0x6c | r0 += var_6ch;
0x0000c88c blx 0x62b8 | fcn_000062b8 ();
0x0000c890 subs r4, r0, 0 | r4 -= var_6ch;
| if (r4 < var_6ch) {
0x0000c892 blt.w 0xc9aa | goto label_32;
| }
| label_0:
0x0000c896 ldr r4, [sp, 0x6c] | r4 = var_6ch;
| if (r4 == 0) {
0x0000c898 cbz r4, 0xc8ec | goto label_33;
| }
0x0000c89a ldr.w r3, [pc, 0x674] |
0x0000c89e subs r4, 4 | r4 -= 4;
0x0000c8a0 mov.w r8, 0 | r8 = 0;
0x0000c8a4 add.w sl, sp, 0x70 | sl += var_70h;
0x0000c8a8 add r3, pc | r3 = 0x197be;
0x0000c8aa str r3, [sp, 0x44] | var_44h = r3;
| label_3:
0x0000c8ac ldr r3, [r4, 4]! | r3 = *((r4 += 4));
| if (r3 == 0) {
0x0000c8b0 cbz r3, 0xc8ec | goto label_33;
| }
| do {
0x0000c8b2 str.w r8, [sp, 0x70] | __asm ("str.w r8, [var_70h]");
0x0000c8b6 ldr r0, [r4] | r0 = *(r4);
0x0000c8b8 cmp r0, 0 |
| if (r0 == 0) {
0x0000c8ba beq.w 0xccc4 | goto label_34;
| }
0x0000c8be cmp r5, 0 |
| if (r5 == 0) {
0x0000c8c0 beq.w 0xc9d8 | goto label_35;
| }
0x0000c8c4 ldr r3, [r5] | r3 = *(r5);
0x0000c8c6 cmp r3, 0 |
| if (r3 == 0) {
0x0000c8c8 beq.w 0xc9d8 | goto label_35;
| }
0x0000c8cc mov r1, r0 | r1 = r0;
0x0000c8ce movs r3, 0 | r3 = 0;
0x0000c8d0 movs r2, 2 | r2 = 2;
0x0000c8d2 mov r0, r5 | r0 = r5;
0x0000c8d4 blx 0x58a4 | r0 = fcn_000058a4 ();
0x0000c8d8 cmp r0, 0 |
| if (r0 != 0) {
0x0000c8da bne 0xc9d6 | goto label_36;
| }
0x0000c8dc ldr r2, [sp, 0x70] | r2 = var_70h;
| label_2:
0x0000c8de mov r0, r2 | r0 = r2;
0x0000c8e0 blx 0x5be4 | fcn_00005be4 ();
0x0000c8e4 ldr r3, [r4, 4]! | r3 = *((r4 += 4));
0x0000c8e8 cmp r3, 0 |
0x0000c8ea bne 0xc8b2 |
| } while (r3 != 0);
| label_33:
0x0000c8ec ldr r3, [sp, 0x68] | r3 = var_68h;
0x0000c8ee mov r0, r6 | r0 = r6;
0x0000c8f0 str r3, [sp, 0x40] | base = r3;
0x0000c8f2 blx 0x5be4 | fcn_00005be4 ();
0x0000c8f6 ldr r0, [sp, 0x6c] | r0 = var_6ch;
0x0000c8f8 cmp r0, 0 |
| if (r0 != 0) {
0x0000c8fa bne.w 0xca70 | goto label_37;
| }
0x0000c8fe b 0xca7c | goto label_38;
| label_4:
0x0000c900 mov r5, r0 | r5 = r0;
0x0000c902 ldr r6, [sp, 0x38] | r6 = var_38h;
0x0000c904 blx 0x5934 | r0 = fcn_00005934 ();
0x0000c908 cmp r0, 2 |
0x0000c90a ldr.w fp, [sp, 0x50] | fp = var_50h;
0x0000c90e ittt le |
| if (r0 <= 2) {
0x0000c910 rsble r4, r5, 0 | __asm ("rsble r4, r5, 0");
| }
| if (r0 <= 2) {
0x0000c912 uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x0000c914 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 > 2) {
0x0000c916 bgt.w 0xcd6c | goto label_39;
| }
| label_17:
0x0000c91a cmp r4, 0 |
0x0000c91c mov r0, r6 | r0 = r6;
0x0000c91e it ge |
| if (r4 < 0) {
0x0000c920 mvnge r4, 0x55 | r4 = ~0x55;
| }
0x0000c924 blx 0x5be4 | fcn_00005be4 ();
| label_14:
0x0000c928 mov r0, sb | r0 = sb;
0x0000c92a blx 0x5b04 | sd_bus_message_read ();
| label_24:
0x0000c92e ldr r3, [sp, 0x40] | r3 = base;
0x0000c930 cmp r3, 0 |
| if (r3 == 0) {
0x0000c932 beq.w 0xce32 | goto label_40;
| }
0x0000c936 ldr r6, [sp, 0x40] | r6 = base;
0x0000c938 movs r5, 0 | r5 = 0;
0x0000c93a cmp.w fp, 0 |
| if (fp == 0) {
0x0000c93e beq 0xc950 | goto label_41;
| }
| do {
0x0000c940 mov r0, r6 | r0 = r6;
0x0000c942 adds r5, 1 | r5++;
0x0000c944 bl 0xc7d0 | fcn_0000c7d0 (r0, r1);
0x0000c948 cmp r5, fp |
0x0000c94a add.w r6, r6, 0x20 | r6 += 0x20;
0x0000c94e bne 0xc940 |
| } while (r5 != fp);
| label_41:
0x0000c950 ldr r0, [sp, 0x40] | r0 = base;
0x0000c952 mov fp, r4 |
0x0000c954 blx 0x5be4 | fcn_00005be4 ();
| label_1:
0x0000c958 ldr.w r2, [pc, 0x5b8] | r2 = *(0x0000cf14);
0x0000c95c ldr.w r3, [pc, 0x5a8] | r3 = *(0xcf08);
0x0000c95e adds r5, 0xa8 | r5 += 0xa8;
0x0000c960 add r2, pc | r2 += pc;
0x0000c962 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x0000c964 ldr r2, [r3] | r2 = *(0xcf08);
0x0000c966 ldr r3, [sp, 0x74] | r3 = var_74h;
0x0000c968 eors r2, r3 | r2 ^= r3;
0x0000c96a mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000c96e bne.w 0xcec4 | goto label_42;
| }
0x0000c972 mov r0, fp | r0 = fp;
0x0000c974 add sp, 0x7c |
0x0000c976 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_31:
0x0000c97a movs r2, 0x20 | r2 = 0x20;
0x0000c97c movs r1, 1 | r1 = 1;
0x0000c97e add r0, sp, 0x68 | r0 += var_68h;
0x0000c980 blx 0x5808 | r0 = fcn_00005808 ();
0x0000c984 cmp r0, 0 |
| if (r0 == 0) {
0x0000c986 beq.w 0xcde6 | goto label_43;
| }
0x0000c98a ldr r2, [sp, 0x68] | r2 = var_68h;
0x0000c98c movs r3, 1 | r3 = 1;
0x0000c98e mov r0, r8 | r0 = r8;
0x0000c990 mov fp, r3 |
0x0000c992 strb r3, [r2] | *(r2) = r3;
0x0000c994 ldr r1, [sp, 0x68] | r1 = var_68h;
0x0000c996 str r6, [r1, 4] | *((r1 + 4)) = r6;
0x0000c998 movs r6, 0 | r6 = 0;
0x0000c99a bl 0xc728 | fcn_0000c728 (r0);
0x0000c99e add r0, sp, 0x6c | r0 += var_6ch;
0x0000c9a0 blx 0x62b8 | fcn_000062b8 ();
0x0000c9a4 subs r4, r0, 0 | r4 -= var_6ch;
| if (r4 >= var_6ch) {
0x0000c9a6 bge.w 0xc896 | goto label_0;
| }
| label_32:
0x0000c9aa blx 0x5934 | r0 = fcn_00005934 ();
0x0000c9ae cmp r0, 2 |
0x0000c9b0 ittt le |
| if (r0 <= 2) {
0x0000c9b2 rsble r0, r4, 0 | __asm ("rsble r0, r4, 0");
| }
| if (r0 <= 2) {
0x0000c9b4 uxtble r0, r0 | __asm ("uxtble r0, r0");
| }
| if (r0 <= 2) {
0x0000c9b6 rsble fp, r0, 0 | __asm ("rsble fp, r0, 0");
| }
| if (r0 > 2) {
0x0000c9ba bgt.w 0xcdfc | goto label_44;
| }
| label_23:
0x0000c9be cmp.w fp, 0 |
0x0000c9c2 mov r0, r6 | r0 = r6;
0x0000c9c4 it ge |
| if (fp < 0) {
0x0000c9c6 mvnge fp, 0x55 |
| }
0x0000c9ca blx 0x5be4 | fcn_00005be4 ();
0x0000c9ce ldr r0, [sp, 0x6c] | r0 = var_6ch;
0x0000c9d0 cmp r0, 0 |
| if (r0 != 0) {
0x0000c9d2 bne 0xca6c | goto label_45;
| }
0x0000c9d4 b 0xc958 | goto label_1;
| label_36:
0x0000c9d6 ldr r0, [r4] | r0 = *(r4);
| label_35:
0x0000c9d8 mov r1, sl | r1 = sl;
0x0000c9da blx 0x5754 | fcn_00005754 ();
0x0000c9de ldr r2, [sp, 0x70] | r2 = var_70h;
0x0000c9e0 cmp r2, 0 |
| if (r2 == 0) {
0x0000c9e2 beq.w 0xc8de | goto label_2;
| }
0x0000c9e6 mov r0, r2 | r0 = r2;
0x0000c9e8 ldr r1, [sp, 0x44] | r1 = var_44h;
0x0000c9ea str r2, [sp, 0x38] | var_38h = r2;
0x0000c9ec blx 0x655c | fcn_0000655c ();
0x0000c9f0 ldr r2, [sp, 0x38] | r2 = var_38h;
0x0000c9f2 mov sb, r0 | sb = r0;
0x0000c9f4 cmp r0, 0 |
| if (r0 != 0) {
0x0000c9f6 bne.w 0xc8de | goto label_2;
| }
0x0000c9fa add.w r3, fp, 1 | r3 += arg_1h;
0x0000c9fe movs r2, 0x20 | r2 = 0x20;
0x0000ca00 mov r1, r3 | r1 = r3;
0x0000ca02 add r0, sp, 0x68 | r0 += var_68h;
0x0000ca04 str r3, [sp, 0x38] | var_38h = r3;
0x0000ca06 blx 0x5808 | r0 = fcn_00005808 ();
0x0000ca0a cmp r0, 0 |
| if (r0 == 0) {
0x0000ca0c beq.w 0xce4a | goto label_46;
| }
0x0000ca10 ldr r2, [sp, 0x68] | r2 = var_68h;
0x0000ca12 lsl.w r1, fp, 5 | r1 = fp << 5;
0x0000ca16 strb.w sb, [r2, r1] | *((r2 + r1)) = sb;
0x0000ca1a ldr r2, [sp, 0x68] | r2 = var_68h;
0x0000ca1c ldr r0, [r4] | r0 = *(r4);
0x0000ca1e add r1, r2 | r1 += r2;
0x0000ca20 strd r1, r2, [sp, 0x3c] | __asm ("strd r1, r2, [base]");
0x0000ca24 blx 0x60f0 | fcn_000060f0 ();
0x0000ca28 ldr r1, [sp, 0x3c] | r1 = var_3ch;
0x0000ca2a ldr r2, [sp, 0x40] | r2 = base;
0x0000ca2c str r0, [r1, 4] | *((r1 + 4)) = r0;
0x0000ca2e cmp r0, 0 |
| if (r0 == 0) {
0x0000ca30 beq.w 0xcec8 | goto label_47;
| }
0x0000ca34 mov r0, sb | r0 = sb;
0x0000ca36 bl 0xc728 | fcn_0000c728 (r0);
0x0000ca3a ldr r0, [sp, 0x70] | r0 = var_70h;
0x0000ca3c ldr.w fp, [sp, 0x38] | fp = var_38h;
0x0000ca40 blx 0x5be4 | fcn_00005be4 ();
0x0000ca44 b 0xc8ac | goto label_3;
| label_30:
0x0000ca46 ldr.w r1, [pc, 0x4d0] |
0x0000ca4a movs r2, 0x65 | r2 = 0x65;
0x0000ca4c ldr.w r3, [pc, 0x4cc] |
0x0000ca50 movs r0, 3 | r0 = 3;
0x0000ca52 add r1, pc | r1 = 0x19970;
0x0000ca54 add r3, pc | r3 = 0x19974;
0x0000ca56 adds r1, 7 | r1 += 7;
0x0000ca58 blx 0x65cc | r0 = fflush_and_check ();
0x0000ca5c mov fp, r0 |
| label_22:
0x0000ca5e mov r0, r6 | r0 = r6;
0x0000ca60 blx 0x5be4 | fcn_00005be4 ();
0x0000ca64 ldr r0, [sp, 0x6c] | r0 = var_6ch;
0x0000ca66 cmp r0, 0 |
| if (r0 == 0) {
0x0000ca68 beq.w 0xccea | goto label_48;
| }
| label_45:
0x0000ca6c movs r3, 0 | r3 = 0;
0x0000ca6e str r3, [sp, 0x40] | base = r3;
| label_37:
0x0000ca70 blx 0x5dec | unit_file_state_to_string ();
| label_13:
0x0000ca74 cmp.w fp, 0 |
| if (fp < 0) {
0x0000ca78 blt.w 0xc958 | goto label_1;
| }
| label_38:
0x0000ca7c ldr.w r3, [pc, 0x4a0] | r3 = *(0xcf20);
0x0000ca80 ldr r3, [r7, r3] | r3 = *((r7 + r3));
0x0000ca82 ldr r0, [r3] | r0 = *(0xcf20);
0x0000ca84 blx 0x5e70 | get_color_mode ();
0x0000ca88 cmp.w fp, 1 |
0x0000ca8c ldr r3, [sp, 0x40] | r3 = base;
| if (fp <= 1) {
0x0000ca8e ble.w 0xcd42 | goto label_49;
| }
0x0000ca92 cmp r3, 0 |
| if (r3 == 0) {
0x0000ca94 beq.w 0xce36 | goto label_50;
| }
0x0000ca98 ldr.w r3, [pc, 0x488] | r3 = *(0x0000cf24);
0x0000ca9c movs r2, 0x20 | r2 = 0x20;
0x0000ca9e ldr r0, [sp, 0x40] | r0 = base;
0x0000caa0 mov r1, fp | r1 = fp;
0x0000caa2 add r3, pc | r3 += pc;
0x0000caa4 blx 0x5684 | qsort ();
| label_16:
0x0000caa8 ldr.w r3, [pc, 0x47c] |
0x0000caac movs r4, 0 | r4 = 0;
0x0000caae ldr.w r2, [pc, 0x47c] |
0x0000cab2 ldr.w r1, [pc, 0x47c] |
0x0000cab6 add r3, pc | r3 = 0x199e2;
0x0000cab8 ldr.w r0, [pc, 0x478] |
0x0000cabc strd r3, r4, [sp] | __asm ("strd r3, r4, [sp]");
0x0000cac0 add r2, pc | r2 = 0x199f2;
0x0000cac2 ldr.w r3, [pc, 0x474] |
0x0000cac6 add r1, pc | r1 = 0x199fc;
0x0000cac8 add r0, pc | r0 = 0x19a00;
0x0000caca add r3, pc | r3 = 0x19a08;
0x0000cacc blx 0x61d4 | r0 = fcn_000061d4 ();
0x0000cad0 mov sb, r0 | sb = r0;
0x0000cad2 cmp r0, 0 |
| if (r0 == 0) {
0x0000cad4 beq.w 0xce1c | goto label_51;
| }
0x0000cad8 ldr.w r3, [pc, 0x460] | r3 = *(0xcf3c);
0x0000cadc ldr r3, [r7, r3] | r3 = *((r7 + r3));
0x0000cade ldr r1, [r3] | r1 = *(0xcf3c);
0x0000cae0 str r3, [sp, 0x54] | var_54h = r3;
0x0000cae2 subs r1, 0 |
0x0000cae4 it ne |
| if (r1 == 0) {
0x0000cae6 movne r1, 1 | r1 = 1;
| }
0x0000cae8 blx 0x6330 | fcn_00006330 ();
0x0000caec ldr.w r3, [pc, 0x450] | r3 = *(0xcf40);
0x0000caf0 ldr r3, [r7, r3] | r3 = *((r7 + r3));
0x0000caf2 ldrb r3, [r3] | r3 = *(r3);
0x0000caf4 cmp r3, 0 |
| if (r3 != 0) {
0x0000caf6 bne.w 0xcdb4 | goto label_52;
| }
| label_20:
0x0000cafa ldr.w r3, [pc, 0x448] | r3 = *(0xcf46);
0x0000cafe ldr r3, [r7, r3] | r3 = *((r7 + r3));
0x0000cb00 ldrb r3, [r3] | r3 = *(r3);
0x0000cb02 cmp r3, 0 |
| if (r3 != 0) {
0x0000cb04 bne.w 0xcddc | goto label_53;
| }
| label_21:
0x0000cb08 ldr r4, [sp, 0x40] | r4 = base;
0x0000cb0a mov r0, sb | r0 = sb;
0x0000cb0c ldr.w r1, [pc, 0x438] |
0x0000cb10 add.w r2, r4, fp, lsl 5 | r2 = r4 + (fp << 5);
0x0000cb14 add r1, pc | r1 = 0x19a60;
0x0000cb16 mov r5, r2 | r5 = r2;
0x0000cb18 str r2, [sp, 0x44] | var_44h = r2;
0x0000cb1a blx 0x57b4 | fcn_000057b4 ();
0x0000cb1e cmp r5, r4 |
| if (r5 < r4) {
0x0000cb20 bls.w 0xce8a | goto label_54;
| }
0x0000cb24 ldr.w r2, [pc, 0x424] |
0x0000cb28 adds r4, 0x20 | r4 += 0x20;
0x0000cb2a mov.w sl, 0 | sl = 0;
0x0000cb2e str.w fp, [sp, 0x50] | __asm ("str.w fp, [var_50h]");
0x0000cb32 add r2, pc | r2 = 0x19a82;
0x0000cb34 str r2, [sp, 0x3c] | var_3ch = r2;
0x0000cb36 ldr.w r2, [pc, 0x418] |
0x0000cb3a add r2, pc | r2 = 0x19a90;
0x0000cb3c str r2, [sp, 0x4c] | var_4ch = r2;
0x0000cb3e ldr.w r2, [pc, 0x414] |
0x0000cb42 add r2, pc | r2 = 0x19a9c;
0x0000cb44 str r2, [sp, 0x5c] | var_5ch = r2;
0x0000cb46 ldr.w r2, [pc, 0x410] |
0x0000cb4a add r2, pc | r2 = 0x19aa8;
0x0000cb4c str r2, [sp, 0x58] | var_58h = r2;
0x0000cb4e b 0xcbe2 | goto label_55;
| label_5:
0x0000cb50 ldr r0, [r4, -0x1c] | r0 = *((r4 - 0x1c));
0x0000cb54 cmp r0, 0 |
| if (r0 == 0) {
0x0000cb56 beq.w 0xccd8 | goto label_56;
| }
| label_12:
0x0000cb5a ldr.w r1, [pc, 0x400] |
0x0000cb5e movs r2, 0 | r2 = 0;
0x0000cb60 add r1, pc | r1 = 0x19ac2;
0x0000cb62 blx 0x5ab0 | r0 = execvp ();
0x0000cb66 mov r5, r0 | r5 = r0;
0x0000cb68 cmp r6, 0 |
| if (r6 == 0) {
0x0000cb6a beq.w 0xcc88 | goto label_18;
| }
0x0000cb6e ldrb r1, [r4, -0x20] | r1 = *((r4 - 0x20));
0x0000cb72 ldr r2, [r4, -0x18] | r2 = *((r4 - 0x18));
| label_6:
0x0000cb76 movs r0, 5 | r0 = 5;
0x0000cb78 str r2, [sp, 0x48] | var_48h = r2;
0x0000cb7a str r1, [sp, 0x38] | var_38h = r1;
0x0000cb7c blx 0x6644 | sd_bus_message_close_container ();
0x0000cb80 ldr r2, [sp, 0x48] | r2 = var_48h;
0x0000cb82 mov ip, r0 |
0x0000cb84 ldr r1, [sp, 0x38] | r1 = var_38h;
| label_9:
0x0000cb86 str r5, [sp, 0x38] | var_38h = r5;
0x0000cb88 cmp r1, 0 |
| if (r1 == 0) {
0x0000cb8a beq 0xcc2e | goto label_57;
| }
| label_7:
0x0000cb8c ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x0000cb8e cmp r2, 0 |
0x0000cb90 ite ne |
| if (r2 == 0) {
0x0000cb92 movne r0, r2 | r0 = r2;
| }
| if (r2 != 0) {
0x0000cb94 moveq r0, r3 | r0 = r3;
| }
| label_15:
0x0000cb96 movs r1, 0x21 | r1 = 0x21;
0x0000cb98 movs r3, 0x27 | r3 = 0x27;
0x0000cb9a str r1, [sp, 0x34] | var_34h = r1;
0x0000cb9c mov r2, ip | r2 = ip;
0x0000cb9e ldr r1, [r4, -0xc] | r1 = *((r4 - 0xc));
0x0000cba2 str.w fp, [sp, 0x28] | __asm ("str.w fp, [var_28h]");
0x0000cba6 str r3, [sp, 0x24] | var_24h = r3;
0x0000cba8 str r1, [sp, 0x30] | var_30h = r1;
0x0000cbaa movs r1, 0x15 | r1 = 0x15;
0x0000cbac str r1, [sp, 0x2c] | var_2ch = r1;
0x0000cbae ldr r6, [r4, -0x10] | r6 = *((r4 - 0x10));
0x0000cbb2 str r0, [sp, 0x10] | var_10h = r0;
0x0000cbb4 mov r0, sb | r0 = sb;
0x0000cbb6 str r5, [sp, 8] | var_8h = r5;
0x0000cbb8 strd r1, r6, [sp, 0x1c] | __asm ("strd r1, r6, [var_1ch]");
0x0000cbbc movs r1, 1 | r1 = 1;
0x0000cbbe str r7, [sp, 0x18] | var_18h = r7;
0x0000cbc0 str r7, [sp] | *(sp) = r7;
0x0000cbc2 str r3, [sp, 0x14] | var_14h = r3;
0x0000cbc4 str r1, [sp, 0xc] | var_ch = r1;
0x0000cbc6 str r1, [sp, 4] | var_4h = r1;
0x0000cbc8 blx 0x5f30 | r0 = boot_entries_load_config_auto ();
0x0000cbcc cmp r0, 0 |
| if (r0 < 0) {
0x0000cbce blt.w 0xc900 | goto label_4;
| }
0x0000cbd2 ldr r0, [sp, 0x38] | r0 = var_38h;
0x0000cbd4 adds r4, 0x20 | r4 += 0x20;
0x0000cbd6 blx 0x5be4 | fcn_00005be4 ();
0x0000cbda ldr r3, [sp, 0x44] | r3 = var_44h;
0x0000cbdc cmp r8, r3 |
| if (r8 >= r3) {
0x0000cbde bhs.w 0xccee | goto label_58;
| }
| label_55:
0x0000cbe2 ldr r2, [r4, -0x18] | r2 = *((r4 - 0x18));
0x0000cbe6 mov r8, r4 | r8 = r4;
| if (r2 != 0) {
0x0000cbe8 cbnz r2, 0xcc3a | goto label_59;
| }
| label_8:
0x0000cbea blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000cbee cmp r0, 0 |
| if (r0 == 0) {
0x0000cbf0 beq 0xcce4 | goto label_60;
| }
0x0000cbf2 cmp r0, 0x10 |
| if (r0 != 0x10) {
0x0000cbf4 bne 0xccde | goto label_61;
| }
0x0000cbf6 ldr r7, [pc, 0x368] |
0x0000cbf8 add r7, pc | r7 = 0x19b5e;
| label_11:
0x0000cbfa ldr r3, [r4, -0x10] | r3 = *((r4 - 0x10));
0x0000cbfe movs r6, 1 | r6 = 1;
0x0000cc00 cmp r3, 0 |
| if (r3 != 0) {
0x0000cc02 bne 0xcc9c | goto label_62;
| }
0x0000cc04 ldr.w fp, [pc, 0x35c] |
0x0000cc08 movs r6, 1 | r6 = 1;
0x0000cc0a add fp, pc | fp = 0x19b72;
| label_10:
0x0000cc0c ldr r2, [r4, -0x18] | r2 = *((r4 - 0x18));
0x0000cc10 ldrb r1, [r4, -0x20] | r1 = *((r4 - 0x20));
0x0000cc12 adds r0, r4, 0 | r0 = r4 + 0;
0x0000cc14 cmp r2, 0 |
0x0000cc16 it eq |
| if (r2 != 0) {
0x0000cc18 moveq sl, 1 | sl = 1;
| }
0x0000cc1c cmp r1, 0 |
| if (r1 != 0) {
0x0000cc1e bne 0xcb50 | goto label_5;
| }
0x0000cc20 mov r5, r1 | r5 = r1;
0x0000cc22 cmp r6, 0 |
| if (r6 != 0) {
0x0000cc24 bne 0xcb76 | goto label_6;
| }
0x0000cc26 ldr.w ip, [pc, 0x340] |
0x0000cc2a str r6, [sp, 0x38] | var_38h = r6;
0x0000cc2c add ip, pc | ip = 0x19b9a;
| label_57:
0x0000cc2e ldr r5, [r4, -0x1c] | r5 = *((r4 - 0x1c));
0x0000cc32 cmp r5, 0 |
| if (r5 != 0) {
0x0000cc34 bne 0xcb8c | goto label_7;
| }
| label_19:
0x0000cc36 ldr r5, [sp, 0x4c] | r5 = var_4ch;
0x0000cc38 b 0xcb8c | goto label_7;
| label_59:
0x0000cc3a ldr r1, [pc, 0x330] |
0x0000cc3c mov r0, r2 | r0 = r2;
0x0000cc3e str r2, [sp, 0x38] | var_38h = r2;
0x0000cc40 add r1, pc | r1 = 0x19bb2;
0x0000cc42 blx 0x655c | fcn_0000655c ();
0x0000cc46 ldr r2, [sp, 0x38] | r2 = var_38h;
| if (r0 == 0) {
0x0000cc48 cbz r0, 0xccaa | goto label_63;
| }
0x0000cc4a ldr r1, [pc, 0x324] |
0x0000cc4c mov r0, r2 | r0 = r2;
0x0000cc4e str r2, [sp, 0x38] | var_38h = r2;
0x0000cc50 add r1, pc | r1 = 0x19bc6;
0x0000cc52 blx 0x655c | fcn_0000655c ();
0x0000cc56 ldr r2, [sp, 0x38] | r2 = var_38h;
0x0000cc58 mov r6, r0 | r6 = r0;
0x0000cc5a cmp r0, 0 |
| if (r0 != 0) {
0x0000cc5c bne 0xcbea | goto label_8;
| }
0x0000cc5e ldr r3, [r4, -0x10] | r3 = *((r4 - 0x10));
| if (r3 == 0) {
0x0000cc62 cbnz r3, 0xcc98 |
0x0000cc64 ldrb r6, [r4, -0x20] | r6 = *((r4 - 0x20));
0x0000cc68 cmp r6, 0 |
| if (r6 == 0) {
0x0000cc6a beq 0xcd26 | goto label_64;
| }
0x0000cc6c ldr r0, [r4, -0x1c] | r0 = *((r4 - 0x1c));
0x0000cc70 cmp r0, 0 |
| if (r0 == 0) {
0x0000cc72 beq.w 0xcd8c | goto label_65;
| }
0x0000cc76 ldr r1, [pc, 0x2fc] |
0x0000cc78 mov r2, r3 | r2 = r3;
0x0000cc7a add r1, pc | r1 = 0x19bf4;
0x0000cc7c blx 0x5ab0 | execvp ();
0x0000cc80 ldr.w fp, [sp, 0x58] | fp = var_58h;
0x0000cc84 mov r5, r0 | r5 = r0;
0x0000cc86 mov r7, fp | r7 = fp;
| label_18:
0x0000cc88 ldr.w ip, [pc, 0x2ec] |
0x0000cc8c ldrb r1, [r4, -0x20] | r1 = *((r4 - 0x20));
0x0000cc90 ldr r2, [r4, -0x18] | r2 = *((r4 - 0x18));
0x0000cc94 add ip, pc | ip = 0x19c10;
0x0000cc96 b 0xcb86 | goto label_9;
| }
0x0000cc98 ldr r7, [pc, 0x2e0] |
0x0000cc9a add r7, pc | r7 = 0x19c1a;
| label_62:
0x0000cc9c blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 == 0) {
0x0000cca0 cbnz r0, 0xccb6 |
0x0000cca2 ldr.w fp, [pc, 0x2dc] |
0x0000cca6 add fp, pc | fp = 0x19c2c;
0x0000cca8 b 0xcc0c | goto label_10;
| label_63:
0x0000ccaa blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 != 0) {
0x0000ccae cbnz r0, 0xccbe | goto label_66;
| }
0x0000ccb0 ldr r7, [pc, 0x2d0] |
0x0000ccb2 add r7, pc | r7 = 0x19c3a;
0x0000ccb4 b 0xcbfa | goto label_11;
| }
0x0000ccb6 ldr.w fp, [pc, 0x2d0] |
0x0000ccba add fp, pc | fp = 0x19c48;
0x0000ccbc b 0xcc0c | goto label_10;
| label_66:
0x0000ccbe ldr r7, [pc, 0x2cc] |
0x0000ccc0 add r7, pc | r7 = 0x19c52;
0x0000ccc2 b 0xcbfa | goto label_11;
| label_34:
0x0000ccc4 ldr r1, [pc, 0x2c8] |
0x0000ccc6 movs r2, 0xdc | r2 = 0xdc;
0x0000ccc8 ldr r3, [pc, 0x2c8] |
0x0000ccca ldr r0, [pc, 0x2cc] |
0x0000cccc add r1, pc | r1 = 0x19c60;
0x0000ccce add r3, pc | r3 = 0x19c66;
0x0000ccd0 adds r1, 7 | r1 += 7;
0x0000ccd2 add r0, pc | r0 = 0x19c70;
0x0000ccd4 blx 0x5e40 | unit_file_get_default ();
| label_56:
0x0000ccd8 ldr r0, [pc, 0x2c0] |
0x0000ccda add r0, pc | r0 = 0x19c7a;
0x0000ccdc b 0xcb5a | goto label_12;
| label_61:
0x0000ccde ldr r7, [pc, 0x2c0] |
0x0000cce0 add r7, pc | r7 = 0x19c86;
0x0000cce2 b 0xcbfa | goto label_11;
| label_60:
0x0000cce4 ldr r7, [pc, 0x2bc] |
0x0000cce6 add r7, pc | r7 = 0x19c8e;
0x0000cce8 b 0xcbfa | goto label_11;
| label_48:
0x0000ccea str r0, [sp, 0x40] | base = r0;
0x0000ccec b 0xca74 | goto label_13;
| label_58:
0x0000ccee ldr.w fp, [sp, 0x50] | fp = var_50h;
| label_25:
0x0000ccf2 mov r0, sb | r0 = sb;
0x0000ccf4 bl 0x1c208 | r0 = fcn_0001c208 (r0);
0x0000ccf8 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0000ccfa blt.w 0xc928 | goto label_14;
| }
0x0000ccfe ldr r3, [sp, 0x54] | r3 = var_54h;
0x0000cd00 ldr r4, [r3] | r4 = *(r3);
0x0000cd02 cmp r4, 0 |
| if (r4 == 0) {
0x0000cd04 beq.w 0xc928 | goto label_14;
| }
0x0000cd08 movs r0, 0xa | r0 = 0xa;
0x0000cd0a blx 0x59b8 | fcn_000059b8 ();
0x0000cd0e cmp.w sl, 0 |
| if (sl != 0) {
0x0000cd12 bne.w 0xce90 | goto label_67;
| }
| label_26:
0x0000cd16 ldr r1, [pc, 0x290] |
0x0000cd18 mov r2, fp | r2 = fp;
0x0000cd1a movs r0, 1 | r0 = 1;
0x0000cd1c movs r4, 0 | r4 = 0;
0x0000cd1e add r1, pc | r1 = 0x19ccc;
0x0000cd20 blx 0x59a0 | fcn_000059a0 ();
0x0000cd24 b 0xc928 | goto label_14;
| label_64:
0x0000cd26 ldr r5, [r4, -0x1c] | r5 = *((r4 - 0x1c));
0x0000cd2a cmp r5, 0 |
| if (r5 == 0) {
0x0000cd2c beq 0xcda4 | goto label_68;
| }
0x0000cd2e ldr.w fp, [pc, 0x27c] |
0x0000cd32 mov r0, r2 | r0 = r2;
0x0000cd34 ldr.w ip, [pc, 0x278] |
0x0000cd38 str r6, [sp, 0x38] | var_38h = r6;
0x0000cd3a add fp, pc | fp = 0x19cec;
0x0000cd3c add ip, pc | ip = 0x19cf0;
0x0000cd3e mov r7, fp | r7 = fp;
0x0000cd40 b 0xcb96 | goto label_15;
| label_49:
0x0000cd42 clz r3, r3 | r3 &= r3;
0x0000cd46 cmp.w fp, 0 |
0x0000cd4a lsr.w r3, r3, 5 | r3 >>= 5;
0x0000cd4e it eq |
| if (fp != 0) {
0x0000cd50 moveq r3, 0 | r3 = 0;
| }
0x0000cd52 cmp r3, 0 |
| if (r3 == 0) {
0x0000cd54 beq.w 0xcaa8 | goto label_16;
| }
0x0000cd58 ldr r1, [pc, 0x258] |
0x0000cd5a movs r2, 0x99 | r2 = 0x99;
0x0000cd5c ldr r3, [pc, 0x258] |
0x0000cd5e ldr r0, [pc, 0x25c] |
0x0000cd60 add r1, pc | r1 = 0x19d18;
0x0000cd62 add r3, pc | r3 = 0x19d1e;
0x0000cd64 adds r1, 7 | r1 += 7;
0x0000cd66 add r0, pc | r0 = 0x19d28;
0x0000cd68 blx 0x5e40 | unit_file_get_default ();
| label_39:
0x0000cd6c ldr r3, [pc, 0x250] |
0x0000cd6e mov r1, r5 | r1 = r5;
0x0000cd70 ldr r2, [pc, 0x250] |
0x0000cd72 movs r0, 3 | r0 = 3;
0x0000cd74 add r3, pc | r3 = 0x19d38;
0x0000cd76 str r3, [sp, 4] | var_4h = r3;
0x0000cd78 add r2, pc | r2 = 0x19d40;
0x0000cd7a ldr r3, [pc, 0x24c] |
0x0000cd7c adds r2, 7 | r2 += 7;
0x0000cd7e add r3, pc | r3 = 0x19d4c;
0x0000cd80 str r3, [sp] | *(sp) = r3;
0x0000cd82 movs r3, 0xcd | r3 = 0xcd;
0x0000cd84 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000cd88 mov r4, r0 | r4 = r0;
0x0000cd8a b 0xc91a | goto label_17;
| label_65:
0x0000cd8c mov r2, r0 | r2 = r0;
0x0000cd8e ldr r1, [pc, 0x23c] |
0x0000cd90 ldr r0, [pc, 0x23c] |
0x0000cd92 add r1, pc | r1 = 0x19d64;
0x0000cd94 add r0, pc | r0 = 0x19d68;
0x0000cd96 blx 0x5ab0 | execvp ();
0x0000cd9a ldr.w fp, [sp, 0x5c] | fp = var_5ch;
0x0000cd9e mov r5, r0 | r5 = r0;
0x0000cda0 mov r7, fp | r7 = fp;
0x0000cda2 b 0xcc88 | goto label_18;
| label_68:
0x0000cda4 ldr r7, [pc, 0x22c] |
0x0000cda6 ldr.w ip, [pc, 0x230] |
0x0000cdaa str r5, [sp, 0x38] | var_38h = r5;
0x0000cdac add r7, pc | r7 = 0x19d84;
0x0000cdae add ip, pc | ip = 0x19d8c;
0x0000cdb0 mov fp, r7 |
0x0000cdb2 b 0xcc36 | goto label_19;
| label_52:
0x0000cdb4 mov r1, r4 | r1 = r4;
0x0000cdb6 mov r0, sb | r0 = sb;
0x0000cdb8 blx 0x63a8 | fcn_000063a8 ();
0x0000cdba invalid |
| if (r3 >= 0xcd) {
0x0000cdbe bge.w 0xcafa | goto label_20;
| }
0x0000cdc2 blx 0x5934 | r0 = fcn_00005934 ();
0x0000cdc6 cmp r0, 2 |
0x0000cdc8 ittt le |
| if (r0 <= 2) {
0x0000cdca rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 <= 2) {
0x0000cdcc uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x0000cdce rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 > 2) {
0x0000cdd0 bgt 0xcea4 | goto label_69;
| }
| label_27:
0x0000cdd2 cmp r4, 0 |
0x0000cdd4 it ge |
| if (r4 < 0) {
0x0000cdd6 mvnge r4, 0x55 | r4 = ~0x55;
| }
0x0000cdda b 0xc928 | goto label_14;
| label_53:
0x0000cddc movs r1, 0 | r1 = 0;
0x0000cdde mov r0, sb | r0 = sb;
0x0000cde0 blx 0x58d4 | fcn_000058d4 ();
0x0000cde4 b 0xcb08 | goto label_21;
| label_43:
0x0000cde6 ldr r1, [pc, 0x1f4] |
0x0000cde8 movs r2, 0x69 | r2 = 0x69;
0x0000cdea ldr r3, [pc, 0x1f4] |
0x0000cdec movs r0, 3 | r0 = 3;
0x0000cdee add r1, pc | r1 = 0x19dd0;
0x0000cdf0 add r3, pc | r3 = 0x19dd6;
0x0000cdf2 adds r1, 7 | r1 += 7;
0x0000cdf4 blx 0x65cc | r0 = fflush_and_check ();
0x0000cdf8 mov fp, r0 |
0x0000cdfa b 0xca5e | goto label_22;
| label_44:
0x0000cdfc ldr r3, [pc, 0x1e4] |
0x0000cdfe mov r1, r4 | r1 = r4;
0x0000ce00 ldr r2, [pc, 0x1e4] |
0x0000ce02 movs r0, 3 | r0 = 3;
0x0000ce04 add r3, pc | r3 = 0x19dec;
0x0000ce06 str r3, [sp, 4] | var_4h = r3;
0x0000ce08 add r2, pc | r2 = 0x19df4;
0x0000ce0a ldr r3, [pc, 0x1e0] |
0x0000ce0c adds r2, 7 | r2 += 7;
0x0000ce0e add r3, pc | r3 = 0x19e00;
0x0000ce10 str r3, [sp] | *(sp) = r3;
0x0000ce12 movs r3, 0x74 | r3 = 0x74;
0x0000ce14 blx 0x61a4 | fcn_000061a4 ();
0x0000ce16 strd r4, r6, [r6, 0x20c] | __asm ("strd r4, r6, [r6, 0x20c]");
0x0000ce1a b 0xc9be | goto label_23;
| label_51:
0x0000ce1c ldr r1, [pc, 0x1d0] |
0x0000ce1e movs r2, 0x9d | r2 = 0x9d;
0x0000ce20 ldr r3, [pc, 0x1d0] |
0x0000ce22 movs r0, 3 | r0 = 3;
0x0000ce24 add r1, pc | r1 = 0x19e18;
0x0000ce26 add r3, pc | r3 = 0x19e1e;
0x0000ce28 adds r1, 7 | r1 += 7;
0x0000ce2a blx 0x65cc | r0 = fflush_and_check ();
0x0000ce2e mov r4, r0 | r4 = r0;
0x0000ce30 b 0xc92e | goto label_24;
| label_40:
0x0000ce32 mov fp, r4 |
0x0000ce34 b 0xc958 | goto label_1;
| label_50:
0x0000ce36 ldr r1, [pc, 0x1c0] |
0x0000ce38 movs r2, 0x2e | r2 = 0x2e;
0x0000ce3a ldr r3, [pc, 0x1c0] |
0x0000ce3c ldr r0, [pc, 0x1c0] |
0x0000ce3e add r1, pc | r1 = 0x19e3c;
0x0000ce40 add r3, pc | r3 = 0x19e42;
0x0000ce42 adds r1, 7 | r1 += 7;
0x0000ce44 add r0, pc | r0 = 0x19e48;
0x0000ce46 blx 0x5e40 | unit_file_get_default ();
| label_46:
0x0000ce4a ldr r5, [sp, 0x68] | r5 = var_68h;
| if (r5 == 0) {
0x0000ce4c cbz r5, 0xce6e | goto label_70;
| }
0x0000ce4e mov r4, r5 | r4 = r5;
0x0000ce50 cmp.w fp, 0 |
| if (fp == 0) {
0x0000ce54 beq 0xce68 | goto label_71;
| }
| do {
0x0000ce56 mov r0, r4 | r0 = r4;
0x0000ce58 add.w sb, sb, 1 | sb++;
0x0000ce5c bl 0xc7d0 | fcn_0000c7d0 (r0, r1);
0x0000ce60 cmp sb, fp |
0x0000ce62 add.w r4, r4, 0x20 | r4 += 0x20;
0x0000ce66 bne 0xce56 |
| } while (sb != fp);
| label_71:
0x0000ce68 mov r0, r5 | r0 = r5;
0x0000ce6a blx 0x5be4 | fcn_00005be4 ();
| label_70:
0x0000ce6e ldr r1, [pc, 0x194] |
0x0000ce70 movs r2, 0x82 | r2 = 0x82;
0x0000ce72 ldr r3, [pc, 0x194] |
0x0000ce74 movs r0, 3 | r0 = 3;
0x0000ce76 add r1, pc | r1 = 0x19e80;
0x0000ce78 add r3, pc | r3 = 0x19e86;
0x0000ce7a adds r1, 7 | r1 += 7;
0x0000ce7c blx 0x65cc | r0 = fflush_and_check ();
0x0000ce80 mov fp, r0 |
| label_28:
0x0000ce82 ldr r0, [sp, 0x70] | r0 = var_70h;
0x0000ce84 blx 0x5be4 | fcn_00005be4 ();
0x0000ce88 b 0xca5e | goto label_22;
| label_54:
0x0000ce8a mov.w sl, 0 | sl = 0;
0x0000ce8e b 0xccf2 | goto label_25;
| label_67:
0x0000ce90 blx 0x5730 | r0 = fcn_00005730 ();
0x0000ce94 cmp r0, 0 |
| if (r0 == 0) {
0x0000ce96 beq.w 0xcd16 | goto label_26;
| }
0x0000ce98 add r7, sp, 0xf8 | r7 = sp + 0xf8;
0x0000ce9a ldr r0, [pc, 0x170] |
0x0000ce9c add r0, pc | r0 = 0x19eae;
0x0000ce9e blx 0x62a0 | fcn_000062a0 ();
0x0000cea2 b 0xcd16 | goto label_26;
| label_69:
0x0000cea4 ldr r3, [pc, 0x168] |
0x0000cea6 mov r1, r4 | r1 = r4;
0x0000cea8 ldr r2, [pc, 0x168] |
0x0000ceaa movs r0, 3 | r0 = 3;
0x0000ceac add r3, pc | r3 = 0x19ec0;
0x0000ceae str r3, [sp, 4] | var_4h = r3;
0x0000ceb0 add r2, pc | r2 = 0x19ec8;
0x0000ceb2 ldr r3, [pc, 0x164] |
0x0000ceb4 adds r2, 7 | r2 += 7;
0x0000ceb6 add r3, pc | r3 = 0x19ed4;
0x0000ceb8 str r3, [sp] | *(sp) = r3;
0x0000ceba movs r3, 0xa4 | r3 = 0xa4;
0x0000cebc blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000cec0 mov r4, r0 | r4 = r0;
0x0000cec2 b 0xcdd2 | goto label_27;
| label_42:
0x0000cec4 blx 0x6114 | fcn_00006114 ();
| if (r2 == 0) {
| label_47:
0x0000cec8 cbz r2, 0xceee | goto label_72;
| }
0x0000ceca cmp.w fp, 0 |
| if (fp == 0) {
0x0000cece beq 0xcee8 | goto label_73;
| }
0x0000ced0 mov r4, r2 | r4 = r2;
0x0000ced2 mov r5, r2 | r5 = r2;
| do {
0x0000ced4 mov r0, r4 | r0 = r4;
0x0000ced6 add.w sb, sb, 1 | sb++;
0x0000ceda bl 0xc7d0 | fcn_0000c7d0 (r0, r1);
0x0000cede cmp sb, fp |
0x0000cee0 add.w r4, r4, 0x20 | r4 += 0x20;
0x0000cee4 bne 0xced4 |
| } while (sb != fp);
0x0000cee6 mov r2, r5 | r2 = r5;
| label_73:
0x0000cee8 mov r0, r2 | r0 = r2;
0x0000ceea blx 0x5be4 | fcn_00005be4 ();
| label_72:
0x0000ceee ldr r1, [pc, 0x12c] |
0x0000cef0 movs r2, 0x89 | r2 = 0x89;
0x0000cef2 ldr r3, [pc, 0x12c] |
0x0000cef4 movs r0, 3 | r0 = 3;
0x0000cef6 add r1, pc | r1 = 0x19f18;
0x0000cef8 add r3, pc | r3 = 0x19f1e;
0x0000cefa adds r1, 7 | r1 += 7;
0x0000cefc blx 0x65cc | r0 = fflush_and_check ();
0x0000cf00 mov fp, r0 |
0x0000cf02 b 0xce82 | goto label_28;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/systemctl @ 0xd06c */
| #include <stdint.h>
|
; (fcn) fcn.0000d06c () | void fcn_0000d06c (int16_t arg_1h, uint32_t arg1, int16_t arg2, int16_t arg3) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_1ch;
| int16_t var_20h;
| 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;
| int32_t var_48h_2;
| int16_t var_50h;
| int16_t var_54h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x0000d06c push {r3, r4, r5, r6, r7, lr} |
0x0000d06e ldr r6, [pc, 0x98] |
0x0000d070 add r6, pc | r6 = 0x1a17e;
0x0000d072 cmp r0, 0 |
| if (r0 != 0) {
0x0000d074 beq 0xd0de |
0x0000d076 mov r4, r0 | r4 = r0;
0x0000d078 ldr r0, [r0] | r0 = *(r0);
0x0000d07a mov r7, r1 | r7 = r1;
0x0000d07c mov r5, r2 | r5 = r2;
0x0000d07e blx 0x6608 | r0 = cxa_finalize ();
0x0000d082 cmp r0, 0 |
| if (r0 == 0) {
0x0000d084 beq 0xd0f2 | goto label_36;
| }
| if (r5 != 0) {
0x0000d086 cbz r5, 0xd09a |
0x0000d088 ldr r3, [r5] | r3 = *(r5);
| if (r3 == 0) {
0x0000d08a cbz r3, 0xd09a | goto label_37;
| }
0x0000d08c mov r1, r0 | r1 = r0;
0x0000d08e movs r3, 0 | r3 = 0;
0x0000d090 mov r0, r5 | r0 = r5;
0x0000d092 movs r2, 2 | r2 = 2;
0x0000d094 blx 0x58a4 | r0 = fcn_000058a4 ();
| if (r0 == 0) {
0x0000d098 cbz r0, 0xd0d6 | goto label_38;
| }
| }
| label_37:
0x0000d09a ldr r3, [pc, 0x70] | r3 = *(0xd10e);
0x0000d09c ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000d09e ldr r5, [r3] | r5 = *(0xd10e);
| if (r5 != 0) {
0x0000d0a0 cbz r5, 0xd0ba |
0x0000d0a2 ldr r3, [r5] | r3 = *(r5);
| if (r3 == 0) {
0x0000d0a4 cbz r3, 0xd0ba | goto label_39;
| }
0x0000d0a6 ldr r0, [r4] | r0 = *(r4);
0x0000d0a8 movs r1, 0x2e | r1 = 0x2e;
0x0000d0aa blx 0x5a98 | r0 = strv_env_clean_with_callback ();
| if (r0 == 0) {
0x0000d0ae cbz r0, 0xd0d6 | goto label_38;
| }
0x0000d0b0 adds r1, r0, 1 | r1 = r0 + 1;
0x0000d0b2 mov r0, r5 | r0 = r5;
0x0000d0b4 blx 0x6060 | r0 = fcn_00006060 ();
| if (r0 == 0) {
0x0000d0b8 cbz r0, 0xd0d6 | goto label_38;
| }
| }
| if (r7 != 0) {
| label_39:
0x0000d0ba cbz r7, 0xd0da |
0x0000d0bc ldr r3, [r7] | r3 = *(r7);
| if (r3 == 0) {
0x0000d0be cbz r3, 0xd0da | goto label_40;
| }
0x0000d0c0 ldr r0, [r4, 4] | r0 = *((r4 + 4));
0x0000d0c2 blx 0x5e04 | r0 = strextend_with_separator_internal ();
0x0000d0c6 mov r1, r0 | r1 = r0;
0x0000d0c8 mov r0, r7 | r0 = r7;
0x0000d0ca blx 0x6060 | fcn_00006060 ();
0x0000d0ce subs r0, 0 |
0x0000d0d0 it ne |
| if (r0 == 0) {
0x0000d0d2 movne r0, 1 | r0 = 1;
| }
0x0000d0d4 pop {r3, r4, r5, r6, r7, pc} |
| label_38:
0x0000d0d6 movs r0, 0 | r0 = 0;
0x0000d0d8 pop {r3, r4, r5, r6, r7, pc} |
| }
| label_40:
0x0000d0da movs r0, 1 | r0 = 1;
0x0000d0dc pop {r3, r4, r5, r6, r7, pc} |
| }
0x0000d0de ldr r1, [pc, 0x30] |
0x0000d0e0 movs r2, 0x1d | r2 = 0x1d;
0x0000d0e2 ldr r3, [pc, 0x30] |
0x0000d0e4 ldr r0, [pc, 0x30] |
0x0000d0e6 add r1, pc | r1 = 0x1a1fc;
0x0000d0e8 add r3, pc | r3 = 0x1a202;
0x0000d0ea adds r1, 7 | r1 += 7;
0x0000d0ec add r0, pc | r0 = 0x1a208;
0x0000d0ee blx 0x5e40 | unit_file_get_default ();
| label_36:
0x0000d0f2 ldr r1, [pc, 0x28] |
0x0000d0f4 movs r2, 0xdc | r2 = 0xdc;
0x0000d0f6 ldr r3, [pc, 0x28] |
0x0000d0f8 ldr r0, [pc, 0x28] |
0x0000d0fa add r1, pc | r1 = 0x1a21c;
0x0000d0fc add r3, pc | r3 = 0x1a222;
0x0000d0fe adds r1, 7 | r1 += 7;
0x0000d100 add r0, pc | r0 = 0x1a228;
0x0000d102 invalid |
| do {
0x0000d104 cdp p15, 9, c11, c14, c0, 0 | __asm ("cdp p15, 9, c11, c14, c0, 0");
0x0000d108 bhi 0xd104 |
| } while (r1 > 7);
0x0000d10a movs r2, r0 | r2 = r0;
0x0000d10c lsls r4, r6, 0x17 | r4 = r6 << 0x17;
0x0000d10e movs r0, r0 |
0x0000d110 subs r2, 0xa6 | r2 -= 0xa6;
0x0000d112 movs r1, r0 | r1 = r0;
0x0000d114 subs r4, 0xbc | r4 -= 0xbc;
0x0000d116 movs r1, r0 | r1 = r0;
0x0000d118 adds r6, 0xac | r6 += 0xac;
0x0000d11a movs r1, r0 | r1 = r0;
0x0000d11c adds r7, 0xe | r7 += 0xe;
0x0000d11e movs r1, r0 | r1 = r0;
0x0000d120 subs r4, 0x90 | r4 -= 0x90;
0x0000d122 movs r1, r0 | r1 = r0;
0x0000d124 movs r6, 0x40 | r6 = 0x40;
0x0000d126 movs r1, r0 | r1 = r0;
0x0000d128 ldr.w r2, [pc, 0xb68] | r2 = *(0x0000dc94);
0x0000d12c ldr.w r3, [pc, 0xb68] |
0x0000d130 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0000d132 ldr r7, [pc, 0x3c0] | r7 = *(0xd4f6);
0x0000d134 movs r7, 0 | r7 = 0;
0x0000d136 add r2, pc | r2 += pc;
0x0000d138 ldr.w r6, [pc, 0xb60] | r6 = *(0x0000dc9c);
0x0000d13c sub sp, 0x5c |
0x0000d13e mov r5, r1 | r5 = r1;
0x0000d140 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x0000d142 add r6, pc | r6 += pc;
0x0000d144 ldr r3, [r3] | r3 = *(0xdc98);
0x0000d146 str r3, [sp, 0x54] | var_54h = r3;
0x0000d148 mov.w r3, 0 | r3 = 0;
0x0000d14c strd r7, r7, [sp, 0x30] | __asm ("strd r7, r7, [var_34h]");
0x0000d150 bl 0x1bcac | r0 = fcn_0001bcac ();
0x0000d154 cmp r0, 0 |
| if (r0 == 0) {
0x0000d156 beq.w 0xd380 | goto label_41;
| }
0x0000d15a ldr.w r3, [pc, 0xb44] | r3 = *(0xdca2);
0x0000d15e ldr r0, [r6, r3] | r0 = *((r6 + r3));
0x0000d160 blx 0x6168 | r0 = fcn_00006168 ();
0x0000d164 mov r4, r0 | r4 = r0;
0x0000d166 cmp r0, 0 |
| if (r0 == 0) {
0x0000d168 beq.w 0xd7da | goto label_42;
| }
0x0000d16c ldr.w r3, [pc, 0xb34] | r3 = *(0xdca4);
0x0000d170 mov r0, r5 | r0 = r5;
0x0000d172 movs r1, 1 | r1 = 1;
0x0000d174 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000d176 ldr r5, [r3] | r5 = *(0xdca4);
0x0000d178 ldr.w r3, [pc, 0xb2c] | r3 = *(0xdca8);
0x0000d17c ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000d17e ldr.w sb, [r3] | sb = *(0xdca8);
0x0000d182 ldr.w r3, [pc, 0xb28] | r3 = *(0xdcae);
0x0000d186 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000d188 ldr.w r8, [r3] | r8 = *(0xdcae);
0x0000d18c blx 0x5ad4 | sd_bus_message_get_bus ();
0x0000d18e stc p6, c4, [r2], 0x124 | __asm ("stc p6, c4, [r2], 0x124");
0x0000d192 str r0, [sp] | *(sp) = r0;
0x0000d194 mov r3, r8 | r3 = r8;
0x0000d196 mov r0, r5 | r0 = r5;
0x0000d198 mov r2, r4 | r2 = r4;
0x0000d19a blx 0x6264 | r0 = fcn_00006264 ();
0x0000d19e subs.w r8, r0, 0 | r8 = r0 - 0;
0x0000d1a2 mov r0, r4 | r0 = r4;
| if (r8 < r0) {
0x0000d1a4 blt.w 0xd8be | goto label_43;
| }
0x0000d1a8 blx 0x5880 | r0 = fcn_00005880 ();
0x0000d1ac cmp r0, 1 |
0x0000d1ae mov r5, r0 | r5 = r0;
0x0000d1b0 it lo |
| if (r0 >= 1) {
0x0000d1b2 movlo r0, 1 | r0 = 1;
| }
0x0000d1b4 lsrs r3, r0, 0x1d | r3 = r0 >> 0x1d;
0x0000d1b6 ite ne |
| if (r3 == r0) {
0x0000d1b8 movne fp, 1 |
| }
| if (r3 == r0) {
0x0000d1bc mov.w fp, 0 |
| }
| if (r3 != r0) {
0x0000d1c0 bne.w 0xd8e6 | goto label_44;
| }
0x0000d1c4 lsls r0, r0, 3 | r0 <<= 3;
0x0000d1c6 cmp r0, 1 |
0x0000d1c8 it lo |
| if (r0 >= 1) {
0x0000d1ca movlo r0, 1 | r0 = 1;
| }
0x0000d1cc blx 0x60fc | fcn_000060fc ();
0x0000d1d0 str r0, [sp, 0x34] | var_34h = r0;
0x0000d1d2 cmp r0, 0 |
| if (r0 == 0) {
0x0000d1d4 beq.w 0xd8e8 | goto label_45;
| }
0x0000d1d8 add r7, sp, 0x44 | r7 += var_44h;
0x0000d1da add.w sl, sp, 0x48 | sl += var_48h;
0x0000d1de mvn r3, 1 | r3 = ~1;
0x0000d1e2 strd r3, fp, [sp, 0x48] | __asm ("strd r3, fp, [var_48h]");
0x0000d1e4 subs r3, 0x12 | r3 -= 0x12;
| do {
0x0000d1e6 movs r3, 0 | r3 = 0;
0x0000d1e8 mov r2, r7 | r2 = r7;
0x0000d1ea mov r1, sl | r1 = sl;
0x0000d1ec mov r0, r4 | r0 = r4;
0x0000d1ee blx 0x6450 | fcn_00006450 ();
0x0000d1f0 ldmdb r0!, {r3, r4, r6, r7, r8, ip, sp, pc} | __asm ("ldmdb r0!, {r3, r4, r6, r7, r8, ip, sp, pc}");
| label_0:
0x0000d1f4 movs r2, 0 | r2 = 0;
0x0000d1f6 ldr r0, [sp, 0x44] | r0 = var_44h;
0x0000d1f8 mov r1, r2 | r1 = r2;
0x0000d1fa bl 0xd06c | r0 = fcn_0000d06c (r0, r1, r2, r3);
0x0000d1fe cmp r0, 0 |
0x0000d200 beq 0xd1e6 |
| } while (r0 == 0);
0x0000d202 ldr r2, [sp, 0x44] | r2 = var_44h;
0x0000d204 ldr r3, [sp, 0x34] | r3 = var_34h;
0x0000d206 ldm.w r2, {r0, r1} | r0 = *(r2);
| r1 = *((r2 + 4));
0x0000d20a add.w r3, r3, fp, lsl 3 | r3 += (fp << 3);
0x0000d20e add.w fp, fp, 1 |
0x0000d212 stm.w r3, {r0, r1} | *(r3) = r0;
| *((r3 + 4)) = r1;
0x0000d216 ldr r0, [sp, 0x44] | r0 = var_44h;
0x0000d218 blx 0x5be4 | fcn_00005be4 ();
0x0000d21c movs r3, 0 | r3 = 0;
0x0000d21e mov r2, r7 | r2 = r7;
0x0000d220 mov r1, sl | r1 = sl;
0x0000d222 mov r0, r4 | r0 = r4;
0x0000d224 blx 0x6450 | r0 = fcn_00006450 ();
0x0000d228 cmp r0, 0 |
| if (r0 != 0) {
0x0000d22a bne 0xd1f4 | goto label_0;
| }
0x0000d22c cmp r5, fp |
0x0000d22e mov r2, r0 | r2 = r0;
| if (r5 <= fp) {
0x0000d230 blo.w 0xdb10 | goto label_46;
| }
0x0000d234 mov r0, r4 | r0 = r4;
0x0000d236 mov r1, r2 | r1 = r2;
0x0000d238 blx 0x648c | fcn_0000648c ();
| label_32:
0x0000d23c ldr.w r3, [pc, 0xa70] | r3 = *(0xdcb0);
0x0000d240 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000d242 ldr r0, [r3] | r0 = *(0xdcb0);
0x0000d244 blx 0x5e70 | get_color_mode ();
0x0000d248 cmp.w fp, 1 |
0x0000d24c ldr r4, [sp, 0x34] | r4 = var_34h;
| if (fp >= 1) {
0x0000d24e bls 0xd268 |
0x0000d250 cmp r4, 0 |
| if (r4 == 0) {
0x0000d252 beq.w 0xd9f0 | goto label_47;
| }
0x0000d256 ldr.w r3, [pc, 0xa5c] | r3 = *(0x0000dcb4);
0x0000d25a mov r0, r4 | r0 = r4;
0x0000d25c movs r2, 8 | r2 = 8;
0x0000d25e mov r1, fp | r1 = fp;
0x0000d260 add r3, pc | r3 += pc;
0x0000d262 blx 0x5684 | qsort ();
0x0000d266 ldr r4, [sp, 0x34] | r4 = var_34h;
| }
0x0000d268 ldr.w r2, [pc, 0xa4c] |
0x0000d26c movs r5, 0 | r5 = 0;
0x0000d26e ldr.w r1, [pc, 0xa4c] |
0x0000d272 mov r3, r5 | r3 = r5;
0x0000d274 ldr.w r0, [pc, 0xa48] |
0x0000d278 str r5, [sp, 0x48] | var_48h = r5;
0x0000d27a add r2, pc | r2 = 0x1af36;
0x0000d27c add r1, pc | r1 = 0x1af3e;
0x0000d27e strd r5, r5, [sl, 4] | __asm ("strd r5, r5, [sl, 4]");
0x0000d282 add r0, pc | r0 = 0x1af46;
0x0000d284 blx 0x61d4 | r0 = fcn_000061d4 ();
0x0000d288 mov r7, r0 | r7 = r0;
0x0000d28a cmp r0, 0 |
| if (r0 == 0) {
0x0000d28c beq.w 0xd838 | goto label_48;
| }
0x0000d290 ldr.w r3, [pc, 0xa30] | r3 = *(0xdcc4);
0x0000d294 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000d296 ldr r1, [r3] | r1 = *(0xdcc4);
0x0000d298 str r3, [sp, 0x28] | var_28h = r3;
0x0000d29a subs r1, 0 |
0x0000d29c it ne |
| if (r1 == 0) {
0x0000d29e movne r1, 1 | r1 = 1;
| }
0x0000d2a0 blx 0x6330 | fcn_00006330 ();
0x0000d2a4 ldr.w r3, [pc, 0xa20] | r3 = *(0xdcc8);
0x0000d2a8 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000d2aa ldrb r3, [r3] | r3 = *(r3);
0x0000d2ac cmp r3, 0 |
| if (r3 != 0) {
0x0000d2ae bne.w 0xd81e | goto label_49;
| }
0x0000d2b0 strh r6, [r6, 0x14] | *((r6 + 0x14)) = r6;
0x0000d2b2 ldr.w r1, [pc, 0xa18] |
0x0000d2b6 mov r0, r7 | r0 = r7;
0x0000d2b8 add.w sb, r4, fp, lsl 3 | sb = r4 + (fp << 3);
0x0000d2bc add r1, pc | r1 = 0x1af8e;
0x0000d2be blx 0x57b4 | fcn_000057b4 ();
0x0000d2c0 orns r8, sl, pc, lsr 31 | __asm ("orns r8, sl, pc, lsr 31");
0x0000d2c4 subs r2, 0xc | r2 -= 0xc;
0x0000d2c6 strd sl, r6, [sp, 0x18] | __asm ("strd sl, r6, [var_18h]");
0x0000d2ca mov sl, r7 | sl = r7;
0x0000d2cc str.w fp, [sp, 0x24] | __asm ("str.w fp, [var_24h]");
0x0000d2d0 add r3, pc | r3 += pc;
0x0000d2d2 str r3, [sp, 0x2c] | var_2ch = r3;
0x0000d2d4 ldr.w r3, [pc, 0x9fc] |
0x0000d2d6 subs r1, 0xfc | r1 -= 0xfc;
0x0000d2d8 add r3, pc | r3 = 0x1afb0;
0x0000d2da str r3, [sp, 0x20] | var_20h = r3;
| label_4:
0x0000d2dc cmp r4, sb |
| if (r4 >= sb) {
0x0000d2de bhs.w 0xd914 | goto label_50;
| }
0x0000d2e2 adds r4, 8 | r4 += 8;
0x0000d2e4 cmp r4, sb |
| if (r4 <= sb) {
0x0000d2e6 blo.w 0xd576 | goto label_51;
| }
| label_2:
0x0000d2ea ldr r2, [r4, -0x4] | r2 = *((r4 - 0x4));
0x0000d2ee cmp r2, 0xc |
| if (r2 > 0xc) {
0x0000d2f0 bhi.w 0xd688 | goto label_52;
| }
0x0000d2f4 mov.w r3, 0x1160 | r3 = 0x1160;
0x0000d2f8 lsrs r3, r2 | r3 >>= r2;
0x0000d2fa lsls r3, r3, 0x1f | r3 <<= 0x1f;
| if (r3 >= r3) {
0x0000d2fc bpl.w 0xd688 | goto label_52;
| }
0x0000d300 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000d304 cmp r0, 0 |
| if (r0 == 0) {
0x0000d306 beq.w 0xd6f8 | goto label_53;
| }
0x0000d30a ldr.w r8, [pc, 0x9cc] |
0x0000d30e ldr r0, [r4, -0x8] | r0 = *((r4 - 0x8));
0x0000d312 blx 0x6608 | cxa_finalize ();
0x0000d316 add r8, pc | r8 = 0x1aff4;
0x0000d318 mov r5, r0 | r5 = r0;
| label_9:
0x0000d31a ldr r0, [r4, -0x4] | r0 = *((r4 - 0x4));
0x0000d31e movs r7, 0 | r7 = 0;
0x0000d320 blx 0x5e04 | strextend_with_separator_internal ();
0x0000d324 ldr r6, [sp, 0x20] | r6 = var_20h;
0x0000d326 mov fp, r7 |
| label_3:
0x0000d328 movs r3, 0x29 | r3 = 0x29;
0x0000d32a movs r1, 1 | r1 = 1;
0x0000d32c movs r2, 0x21 | r2 = 0x21;
0x0000d32e str r0, [sp, 8] | var_8h = r0;
0x0000d330 str r2, [sp, 0x14] | var_14h = r2;
0x0000d332 mov r0, sl | r0 = sl;
0x0000d334 mov r2, r5 | r2 = r5;
0x0000d336 str.w r8, [sp, 0x10] | __asm ("str.w r8, [var_10h]");
0x0000d33a str r6, [sp] | *(sp) = r6;
0x0000d33c str r3, [sp, 0xc] | var_ch = r3;
0x0000d33e str r1, [sp, 4] | var_4h = r1;
0x0000d340 blx 0x5f30 | r0 = boot_entries_load_config_auto ();
0x0000d344 cmp r0, 0 |
| if (r0 < 0) {
0x0000d346 blt.w 0xd942 | goto label_54;
| }
0x0000d34a ldr r0, [r4, -0x4] | r0 = *((r4 - 0x4));
0x0000d34e bl 0x1c2c8 | fcn_0001c2c8 (r0);
0x0000d350 vtbl.8 d2, {d11}, d0 | __asm ("vtbl.8 d2, {d11}, d0");
| if (r0 != 0) {
0x0000d354 bne.w 0xd636 | goto label_55;
| }
0x0000d358 cmp r7, 0 |
| if (r7 == 0) {
0x0000d35a beq.w 0xd5d8 | goto label_56;
| }
0x0000d35e blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000d362 cmp r0, 0 |
| if (r0 == 0) {
0x0000d364 beq.w 0xd6cc | goto label_57;
| }
0x0000d368 cmp r0, 0x10 |
| if (r0 != 0x10) {
0x0000d36a bne.w 0xd764 | goto label_58;
| }
0x0000d36e blx 0x5f18 | r0 = table_add_many_internal ();
0x0000d372 cmp r0, 0 |
| if (r0 == 0) {
0x0000d374 beq.w 0xd7d2 | goto label_59;
| }
0x0000d378 ldr.w r3, [pc, 0x960] |
0x0000d37c add r3, pc | r3 = 0x1b05c;
0x0000d37e b 0xd5ea | goto label_8;
| label_41:
0x0000d380 mov r4, r0 | r4 = r0;
0x0000d382 add r1, sp, 0x40 | r1 += var_40h;
0x0000d384 movs r0, 1 | r0 = 1;
0x0000d386 str r4, [sp, 0x3c] | var_3ch = r4;
0x0000d388 strd r4, r4, [sp, 0x48] | __asm ("strd r4, r4, [var_48h]");
0x0000d38c str r4, [sp, 0x50] | var_50h = r4;
0x0000d38e bl 0x1a334 | r0 = fcn_0001a334 (r0, r1);
0x0000d392 subs.w r8, r0, 0 | r8 = r0 - 0;
0x0000d394 lsrs r0, r0, 0x20 | r0 >>= 0x20;
| if (r0 < r0) {
0x0000d396 blt.w 0xd530 | goto label_60;
| }
0x0000d39a ldr.w r3, [pc, 0x944] | r3 = *(0xdce2);
0x0000d39e add r7, sp, 0x3c | r7 += var_3ch;
0x0000d3a0 ldr r0, [sp, 0x40] | r0 = var_40h;
0x0000d3a2 mov r1, r7 | r1 = r7;
0x0000d3a4 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000d3a6 ldr.w r8, [r3] | r8 = *(0xdce2);
0x0000d3aa ldr.w r3, [pc, 0x938] |
0x0000d3ae mov r2, r8 | r2 = r8;
0x0000d3b0 add r3, pc | r3 = 0x1b09a;
0x0000d3b2 blx 0x65d8 | r0 = null_or_empty_path ();
0x0000d3b6 subs.w sb, r0, 0 | sb = r0 - 0;
| if (sb < r0) {
0x0000d3ba blt.w 0xd790 | goto label_61;
| }
0x0000d3be ldr.w r3, [pc, 0x8ec] | r3 = *(0xdcae);
0x0000d3c2 ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x0000d3c4 ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000d3c6 ldr r1, [r3] | r1 = *(0xdcae);
0x0000d3c8 str r3, [sp, 0x18] | var_18h = r3;
0x0000d3ca blx 0x6324 | r0 = fcn_00006324 ();
0x0000d3ce subs.w sb, r0, 0 | sb = r0 - 0;
| if (sb < r0) {
0x0000d3d2 blt.w 0xdaa6 | goto label_62;
| }
0x0000d3d6 ldr.w r3, [pc, 0x910] | r3 = *(0xdcea);
0x0000d3da ldr r3, [r6, r3] | r3 = *((r6 + r3));
0x0000d3dc ldrb r3, [r3] | r3 = *(r3);
0x0000d3de cmp r3, 0 |
| if (r3 == 0) {
0x0000d3e0 beq.w 0xd4f2 | goto label_63;
| }
0x0000d3e4 ldr.w sb, [sp, 0x40] | sb = var_40h;
0x0000d3e8 movs r1, 1 | r1 = 1;
0x0000d3ea mov r0, r5 | r0 = r5;
0x0000d3ec str r4, [sp, 0x44] | var_44h = r4;
0x0000d3ee blx 0x5ad4 | sd_bus_message_get_bus ();
0x0000d3f2 add r2, sp, 0x44 | r2 += var_44h;
0x0000d3f4 mov r1, r0 | r1 = r0;
0x0000d3f6 mov r0, sb | r0 = sb;
0x0000d3f8 bl 0x1b1f4 | r0 = fcn_0001b1f4 (r0, r1, r2);
0x0000d3fc subs.w sb, r0, 0 | sb = r0 - 0;
0x0000d3fe lsrs r0, r0, 4 | r0 >>= 4;
| if (r0 < r0) {
0x0000d400 blt.w 0xd99e | goto label_64;
| }
0x0000d404 ldr r1, [sp, 0x44] | r1 = var_44h;
0x0000d406 ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x0000d408 blx 0x6324 | r0 = fcn_00006324 ();
0x0000d40c subs.w sb, r0, 0 | sb = r0 - 0;
| if (sb < r0) {
0x0000d410 blt.w 0xdb24 | goto label_65;
| }
0x0000d414 ldr r0, [sp, 0x44] | r0 = var_44h;
| if (r0 != 0) {
0x0000d416 cbz r0, 0xd41c |
0x0000d418 blx 0x5dec | unit_file_state_to_string ();
| }
| label_1:
0x0000d41c add.w sb, sp, 0x30 | sb += var_30h;
0x0000d420 add.w sl, sp, 0x48 | sl += var_48h;
0x0000d424 ldrd r1, r0, [sp, 0x3c] | __asm ("ldrd r1, r0, [var_40h]");
0x0000d428 movs r2, 0 | r2 = 0;
0x0000d42a movs r3, 0 | r3 = 0;
0x0000d42c str.w sb, [sp, 4] | __asm ("str.w sb, [var_4h]");
0x0000d430 str.w sl, [sp] | __asm ("str.w sl, [sp]");
0x0000d434 blx 0x6030 | r0 = fcn_00006030 ();
0x0000d438 subs.w fp, r0, 0 |
| if (fp < r0) {
0x0000d43c blt.w 0xda12 | goto label_66;
| }
| label_35:
0x0000d440 ldr.w r3, [pc, 0x8a8] |
0x0000d444 movs r1, 0x61 | r1 = 0x61;
0x0000d446 ldr r0, [sp, 0x30] | r0 = var_30h;
0x0000d448 add r3, pc | r3 = 0x1b138;
0x0000d44a mov r2, r3 | r2 = r3;
0x0000d44c mov sb, r3 | sb = r3;
0x0000d44e blx 0x5838 | r0 = fcn_00005838 ();
0x0000d452 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x0000d456 blt.w 0xdb68 | goto label_67;
| }
0x0000d45a add r3, sp, 0x38 | r3 += var_38h;
0x0000d45c strd sl, r6, [sp, 0x24] | __asm ("strd sl, r6, [var_24h]");
0x0000d460 mov.w fp, 0 |
0x0000d464 add r7, sp, 0x44 | r7 += var_44h;
0x0000d466 mov sl, r3 | sl = r3;
0x0000d468 str r5, [sp, 0x20] | var_20h = r5;
0x0000d46a b 0xd4c0 |
| while (r0 > 0) {
0x0000d46c add.w r8, fp, 1 | r8 += arg_1h;
0x0000d470 movs r2, 8 | r2 = 8;
0x0000d472 mov r1, r8 | r1 = r8;
0x0000d474 add r0, sp, 0x34 | r0 += var_34h;
0x0000d476 blx 0x5c98 | r0 = fcn_00005c98 ();
0x0000d47a cmp r0, 0 |
| if (r0 == 0) {
0x0000d47c beq.w 0xdb4e | goto label_68;
| }
0x0000d480 ldr r6, [sp, 0x34] | r6 = var_34h;
0x0000d482 ldr r5, [sp, 0x44] | r5 = var_44h;
0x0000d484 ldr r0, [sp, 0x38] | r0 = var_38h;
0x0000d486 blx 0x591c | fcn_0000591c ();
0x0000d48a lsl.w r3, fp, 3 | r3 = fp << 3;
0x0000d48e str.w r5, [r6, fp, lsl 3] | __asm ("str.w r5, [r6, fp, lsl 3]");
0x0000d492 mov r2, r4 | r2 = r4;
0x0000d494 add r6, r3 | r6 += r3;
0x0000d496 str r0, [r6, 4] | *((r6 + 4)) = r0;
0x0000d498 ldr r6, [sp, 0x34] | r6 = var_34h;
0x0000d49a add r6, r3 | r6 += r3;
0x0000d49c mov r3, r4 | r3 = r4;
| if (r4 != 0) {
0x0000d49e cbz r4, 0xd4b2 |
0x0000d4a0 ldr r3, [sp, 0x18] | r3 = var_18h;
0x0000d4a2 movs r1, 1 | r1 = 1;
0x0000d4a4 ldr r0, [sp, 0x20] | r0 = var_20h;
0x0000d4a6 ldr r3, [r3] | r3 = *(r3);
0x0000d4a8 str r3, [sp, 0x1c] | var_1ch = r3;
0x0000d4aa blx 0x5ad4 | sd_bus_message_get_bus ();
0x0000d4ae ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x0000d4b0 mov r2, r0 | r2 = r0;
| }
0x0000d4b2 mov r1, r3 | r1 = r3;
0x0000d4b4 mov r0, r6 | r0 = r6;
0x0000d4b6 bl 0xd06c | r0 = fcn_0000d06c (r0, r1, r2, r3);
0x0000d4ba cmp r0, 0 |
0x0000d4bc it ne |
| if (r0 == 0) {
0x0000d4be movne fp, r8 |
| }
0x0000d4c0 ldr r0, [sp, 0x30] | r0 = var_30h;
0x0000d4c2 mov r3, sl | r3 = sl;
0x0000d4c4 mov r2, r7 | r2 = r7;
0x0000d4c6 mov r1, sb | r1 = sb;
0x0000d4c8 blx 0x5b10 | r0 = runlevel_to_target ();
0x0000d4cc cmp r0, 0 |
0x0000d4ce bgt 0xd46c |
| }
0x0000d4d0 ldrd sl, r6, [sp, 0x24] | __asm ("ldrd sl, r6, [var_24h]");
0x0000d4d4 mov r8, r0 | r8 = r0;
| if (r0 == 0) {
0x0000d4d6 beq.w 0xdba6 | goto label_69;
| }
0x0000d4da blx 0x5934 | r0 = fcn_00005934 ();
0x0000d4de cmp r0, 2 |
| if (r0 > 2) {
0x0000d4e0 bgt.w 0xdc62 | goto label_70;
| }
| label_29:
0x0000d4e4 rsb.w r8, r8, 0 | r8 -= ;
0x0000d4e8 uxtb.w r8, r8 | r8 = (int8_t) r8;
0x0000d4ec rsb.w r8, r8, 0 | r8 -= ;
0x0000d4f0 b 0xd7ac | goto label_22;
| label_63:
0x0000d4f2 ldr.w sb, [sp, 0x3c] | sb = var_3ch;
0x0000d4f6 movs r1, 1 | r1 = 1;
0x0000d4f8 mov r0, r5 | r0 = r5;
0x0000d4fa blx 0x5ad4 | r0 = sd_bus_message_get_bus ();
0x0000d4fe mov r1, r0 | r1 = r0;
0x0000d500 mov r0, sb | r0 = sb;
0x0000d502 blx 0x6324 | r0 = fcn_00006324 ();
0x0000d506 subs.w sb, r0, 0 | sb = r0 - 0;
| if (sb >= r0) {
0x0000d50a bge 0xd41c | goto label_1;
| }
0x0000d50c blx 0x5934 | r0 = fcn_00005934 ();
0x0000d510 cmp r0, 2 |
| if (r0 > 2) {
0x0000d512 bgt.w 0xdbc8 | goto label_71;
| }
| label_23:
0x0000d516 rsb.w r8, sb, 0 | r8 = sb - ;
0x0000d51a uxtb.w r8, r8 | r8 = (int8_t) r8;
0x0000d51e rsb.w r8, r8, 0 | r8 -= ;
0x0000d520 lsrs r0, r0, 0x20 | r0 >>= 0x20;
| label_24:
0x0000d522 cmp.w r8, 0 |
0x0000d526 it ge |
| if (r8 < 0) {
0x0000d528 addge sl, sp, 0x48 | sl += var_48h;
| }
| if (r8 >= 0) {
0x0000d52c bge.w 0xd7b4 | goto label_72;
| }
| label_60:
0x0000d530 add.w sl, sp, 0x48 | sl += var_48h;
| label_12:
0x0000d534 mov r0, sl | r0 = sl;
0x0000d536 blx 0x6024 | fcn_00006024 ();
0x0000d53a ldr r0, [sp, 0x3c] | r0 = var_3ch;
| if (r0 != 0) {
0x0000d53c cbz r0, 0xd542 |
0x0000d53e blx 0x582c | fcn_0000582c ();
| }
| label_5:
0x0000d542 ldr r0, [sp, 0x34] | r0 = var_34h;
| label_17:
0x0000d544 blx 0x5be4 | fcn_00005be4 ();
0x0000d548 ldr r0, [sp, 0x30] | r0 = var_30h;
0x0000d54a movs r3, 0 | r3 = 0;
0x0000d54c str r3, [sp, 0x34] | var_34h = r3;
| if (r0 != 0) {
0x0000d54e cbz r0, 0xd554 |
0x0000d550 blx 0x582c | fcn_0000582c ();
| }
0x0000d554 ldr.w r2, [pc, 0x798] | r2 = *(0x0000dcf0);
0x0000d558 ldr.w r3, [pc, 0x73c] | r3 = *(0xdc98);
0x0000d55c add r2, pc | r2 += pc;
0x0000d55e ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x0000d560 ldr r2, [r3] | r2 = *(0xdc98);
0x0000d562 ldr r3, [sp, 0x54] | r3 = var_54h;
0x0000d564 eors r2, r3 | r2 ^= r3;
0x0000d566 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000d56a bne.w 0xdc82 | goto label_73;
| }
0x0000d56e mov r0, r8 | r0 = r8;
0x0000d570 add sp, 0x5c |
0x0000d572 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_51:
0x0000d576 ldr r0, [r4, -0x8] | r0 = *((r4 - 0x8));
0x0000d57a bl 0x1b444 | r0 = fcn_0001b444 ();
0x0000d57e mov r5, r0 | r5 = r0;
0x0000d580 ldr r0, [r4] | r0 = *(r4);
0x0000d582 bl 0x1b444 | r0 = fcn_0001b444 ();
0x0000d586 mov r1, r0 | r1 = r0;
0x0000d588 mov r0, r5 | r0 = r5;
0x0000d58a blx 0x655c | r0 = fcn_0000655c ();
0x0000d58e cmp r0, 0 |
| if (r0 == 0) {
0x0000d590 beq.w 0xd2ea | goto label_2;
| }
0x0000d594 blx 0x5f18 | r0 = table_add_many_internal ();
0x0000d598 cmp r0, 0 |
| if (r0 == 0) {
0x0000d59a beq.w 0xd756 | goto label_74;
| }
0x0000d59c strh r4, [r3, 6] | *((r3 + 6)) = r4;
0x0000d59e ldr.w r6, [pc, 0x754] |
0x0000d5a2 add r6, pc | r6 = 0x1b29c;
| label_10:
0x0000d5a4 ldr r3, [r4, -0x4] | r3 = *((r4 - 0x4));
0x0000d5a8 cmp r3, 0xc |
| if (r3 <= 0xc) {
0x0000d5aa bhi 0xd5b6 |
0x0000d5ac mov.w r2, 0x1160 | r2 = 0x1160;
0x0000d5b0 lsrs r2, r3 | r2 >>= r3;
0x0000d5b2 lsls r2, r2, 0x1f | r2 <<= 0x1f;
| if (r2 < r2) {
0x0000d5b4 bmi 0xd6ac | goto label_75;
| }
| }
0x0000d5b6 bics r3, r3, 4 | __asm ("bics r3, r3, 4");
| if (r2 == r2) {
0x0000d5ba beq.w 0xd730 | goto label_76;
| }
0x0000d5be ldr r0, [r4, -0x8] | r0 = *((r4 - 0x8));
0x0000d5c2 mov fp, r6 |
0x0000d5c4 blx 0x6608 | cxa_finalize ();
0x0000d5c8 mov r8, r6 | r8 = r6;
0x0000d5ca mov r5, r0 | r5 = r0;
0x0000d5cc movs r7, 1 | r7 = 1;
| label_7:
0x0000d5ce ldr r0, [r4, -0x4] | r0 = *((r4 - 0x4));
0x0000d5d2 blx 0x5e04 | strextend_with_separator_internal ();
0x0000d5d6 b 0xd328 | goto label_3;
| label_56:
0x0000d5d8 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000d5dc cmp r0, 0 |
| if (r0 == 0) {
0x0000d5de beq 0xd6cc | goto label_57;
| }
0x0000d5e0 cmp r0, 0x10 |
| if (r0 != 0x10) {
0x0000d5e2 bne 0xd6d4 | goto label_77;
| }
0x0000d5e4 ldr.w r3, [pc, 0x710] |
0x0000d5e8 add r3, pc | r3 = 0x1b2e4;
| label_8:
0x0000d5ea movs r2, 0x21 | r2 = 0x21;
0x0000d5ec movs r1, 0 | r1 = 0;
0x0000d5ee str r2, [sp] | *(sp) = r2;
0x0000d5f0 mov r0, sl | r0 = sl;
0x0000d5f2 movs r2, 0x29 | r2 = 0x29;
0x0000d5f4 blx 0x5f30 | r0 = boot_entries_load_config_auto ();
| label_6:
0x0000d5f8 cmp r0, 0 |
| if (r0 >= 0) {
0x0000d5fa bge.w 0xd2dc | goto label_4;
| }
0x0000d5fe mov r8, r0 | r8 = r0;
0x0000d600 mov r7, sl | r7 = sl;
0x0000d602 blx 0x5934 | r0 = fcn_00005934 ();
0x0000d606 cmp r0, 2 |
0x0000d608 ldr.w sl, [sp, 0x18] | sl = var_18h;
| if (r0 > 2) {
0x0000d60c bgt.w 0xd9d0 | goto label_78;
| }
| label_19:
0x0000d610 rsb.w r8, r8, 0 | r8 -= ;
0x0000d614 uxtb.w r8, r8 | r8 = (int8_t) r8;
0x0000d616 strb.w pc, [r8, 0x1c8] | *((r8 + 0x1c8)) = pc;
0x0000d61a lsrs r0, r0, 0x20 | r0 >>= 0x20;
| label_20:
0x0000d61c cmp.w r8, 0 |
| if (r8 < 0) {
0x0000d620 blt.w 0xdc54 | goto label_79;
| }
0x0000d624 mov r0, sl | r0 = sl;
0x0000d626 mvn r8, 0x55 | r8 = ~0x55;
0x0000d62a blx 0x5f84 | version ();
0x0000d62c stc p6, c4, [ip], 0xe0 | __asm ("stc p6, c4, [ip], 0xe0");
0x0000d630 blx 0x5b04 | sd_bus_message_read ();
0x0000d634 b 0xd542 | goto label_5;
| label_55:
0x0000d636 ldr r0, [sp, 0x1c] | r0 = var_1ch;
0x0000d638 mov r2, r5 | r2 = r5;
0x0000d63a ldr.w r3, [pc, 0x66c] | r3 = *(0xdcaa);
0x0000d63e ldr r3, [r0, r3] | r3 = *((r0 + r3));
0x0000d640 ldr r1, [r3] | r1 = *(0xdcaa);
0x0000d642 ldr.w r3, [pc, 0x660] | r3 = *(0xdca6);
0x0000d646 ldr r3, [r0, r3] | r3 = *((r0 + r3));
0x0000d648 ldr r0, [r3] | r0 = *(0xdca6);
0x0000d64a ldr r3, [sp, 0x18] | r3 = var_18h;
0x0000d64c blx 0x5cd4 | r0 = fcn_00005cd4 ();
0x0000d650 cmp r0, 0 |
| if (r0 < 0) {
0x0000d652 blt 0xd6dc | goto label_80;
| }
| if (r0 == 0) {
0x0000d654 beq.w 0xd772 | goto label_81;
| }
0x0000d658 cmp r7, 0 |
| if (r7 == 0) {
0x0000d65a beq.w 0xd892 | goto label_82;
| }
0x0000d65e blx 0x5f18 | r0 = table_add_many_internal ();
0x0000d662 cmp r0, 0 |
| if (r0 == 0) {
0x0000d664 beq.w 0xd892 | goto label_82;
| }
0x0000d668 ldr.w r2, [pc, 0x690] |
0x0000d66c ldr.w fp, [pc, 0x690] |
0x0000d670 add r2, pc | r2 = 0x1b370;
0x0000d672 add fp, pc | fp = 0x1b376;
| do {
| label_11:
0x0000d674 movs r3, 0x21 | r3 = 0x21;
0x0000d676 movs r1, 1 | r1 = 1;
0x0000d678 str r3, [sp, 4] | var_4h = r3;
0x0000d67a mov r0, sl | r0 = sl;
0x0000d67c movs r3, 0x29 | r3 = 0x29;
0x0000d67e str.w fp, [sp] | __asm ("str.w fp, [sp]");
0x0000d682 blx 0x5f30 | boot_entries_load_config_auto ();
0x0000d686 b 0xd5f8 | goto label_6;
| label_52:
0x0000d688 bics r3, r2, 4 | __asm ("bics r3, r2, 4");
| if (r3 == 0x29) {
0x0000d68c beq 0xd70a | goto label_83;
| }
0x0000d68e ldr r0, [r4, -0x8] | r0 = *((r4 - 0x8));
0x0000d692 movs r7, 0 | r7 = 0;
0x0000d694 blx 0x6608 | r0 = cxa_finalize ();
0x0000d698 mov r5, r0 | r5 = r0;
0x0000d69a ldr r0, [r4, -0x4] | r0 = *((r4 - 0x4));
0x0000d69e blx 0x5e04 | strextend_with_separator_internal ();
0x0000d6a2 ldr.w r8, [sp, 0x2c] | r8 = var_2ch;
0x0000d6a6 mov fp, r7 |
0x0000d6a8 mov r6, r8 | r6 = r8;
0x0000d6aa b 0xd328 | goto label_3;
| label_75:
0x0000d6ac blx 0x5f18 | r0 = table_add_many_internal ();
0x0000d6b0 cmp r0, 0 |
| if (r0 == 0) {
0x0000d6b2 beq.w 0xd828 | goto label_84;
| }
0x0000d6b6 ldr.w r8, [pc, 0x64c] |
0x0000d6ba add r8, pc | r8 = 0x1b3c4;
| label_16:
0x0000d6bc ldr r0, [r4, -0x8] | r0 = *((r4 - 0x8));
0x0000d6c0 mov fp, r6 |
0x0000d6c2 blx 0x6608 | cxa_finalize ();
0x0000d6c6 movs r7, 1 | r7 = 1;
0x0000d6c8 mov r5, r0 | r5 = r0;
0x0000d6ca b 0xd5ce | goto label_7;
| label_57:
0x0000d6cc ldr.w r3, [pc, 0x638] |
0x0000d6d0 add r3, pc | r3 = 0x1b3dc;
0x0000d6d2 b 0xd5ea | goto label_8;
| label_77:
0x0000d6d4 ldr.w r3, [pc, 0x634] |
0x0000d6d8 add r3, pc | r3 = 0x1b3e8;
0x0000d6da b 0xd5ea | goto label_8;
| label_80:
0x0000d6dc cmp r7, 0 |
| if (r7 == 0) {
0x0000d6de beq.w 0xd7f4 | goto label_85;
| }
0x0000d6e2 cmp.w fp, 0 |
| if (fp != 0) {
0x0000d6e6 bne.w 0xdc8c | goto label_86;
| }
| label_14:
0x0000d6ea ldr.w r2, [pc, 0x624] |
0x0000d6ee ldr.w fp, [pc, 0x624] |
0x0000d6f2 add r2, pc | r2 = 0x1b408;
0x0000d6f4 add fp, pc | fp = 0x1b40e;
0x0000d6f6 b 0xd674 |
| } while (1);
| label_53:
0x0000d6f8 ldr.w r8, [pc, 0x61c] |
0x0000d6fc ldr r0, [r4, -0x8] | r0 = *((r4 - 0x8));
0x0000d6fe lsrs r0, r1, 0x10 | r0 = r1 >> 0x10;
0x0000d700 blx 0x6608 | cxa_finalize ();
0x0000d704 add r8, pc | r8 = 0x1b420;
0x0000d706 mov r5, r0 | r5 = r0;
0x0000d708 b 0xd31a | goto label_9;
| label_83:
0x0000d70a blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000d70e cmp r0, 0 |
| if (r0 != 0) {
0x0000d710 bne 0xd7ba | goto label_87;
| }
0x0000d712 ldr.w r8, [pc, 0x608] |
0x0000d716 add r8, pc | r8 = 0x1b438;
| label_13:
0x0000d718 ldr.w r6, [pc, 0x604] |
0x0000d71c mov.w fp, 0 |
0x0000d720 ldr r0, [r4, -0x8] | r0 = *((r4 - 0x8));
0x0000d724 mov r7, fp | r7 = fp;
0x0000d726 blx 0x6608 | cxa_finalize ();
0x0000d72a add r6, pc | r6 = 0x1b44e;
0x0000d72c mov r5, r0 | r5 = r0;
0x0000d72e b 0xd5ce | goto label_7;
| label_76:
0x0000d730 blx 0x5f18 | r0 = table_add_many_internal ();
0x0000d734 cmp r0, 0 |
| if (r0 == 0) {
0x0000d736 beq 0xd80c | goto label_88;
| }
0x0000d738 ldr.w r8, [pc, 0x5e8] |
0x0000d73c add r8, pc | r8 = 0x1b464;
| label_15:
0x0000d73e ldr r0, [r4, -0x8] | r0 = *((r4 - 0x8));
0x0000d742 mov fp, r6 |
0x0000d744 blx 0x6608 | r0 = cxa_finalize ();
0x0000d748 mov r5, r0 | r5 = r0;
0x0000d74a ldr r0, [r4, -0x4] | r0 = *((r4 - 0x4));
0x0000d74e movs r7, 1 | r7 = 1;
0x0000d750 blx 0x5e04 | strextend_with_separator_internal ();
0x0000d754 b 0xd328 | goto label_3;
| label_74:
0x0000d756 blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 == 0) {
0x0000d75a cbz r0, 0xd7c2 | goto label_89;
| }
0x0000d75c ldr.w r6, [pc, 0x5c8] |
0x0000d760 add r6, pc | r6 = 0x1b48c;
0x0000d762 b 0xd5a4 | goto label_10;
| label_58:
0x0000d764 blx 0x5f18 | r0 = table_add_many_internal ();
| if (r0 == 0) {
0x0000d768 cbz r0, 0xd7ca | goto label_90;
| }
0x0000d76a ldr.w r3, [pc, 0x5c0] |
0x0000d76e add r3, pc | r3 = 0x1b4a0;
0x0000d770 b 0xd5ea | goto label_8;
| label_81:
0x0000d772 cmp r7, 0 |
| if (r7 == 0) {
0x0000d774 beq.w 0xd8a8 | goto label_91;
| }
0x0000d778 blx 0x5f18 | r0 = table_add_many_internal ();
0x0000d77c cmp r0, 0 |
| if (r0 == 0) {
0x0000d77e beq.w 0xd8a8 | goto label_91;
| }
0x0000d782 ldr.w r2, [pc, 0x5ac] |
0x0000d786 ldr.w fp, [pc, 0x5ac] |
0x0000d78a add r2, pc | r2 = 0x1b4c0;
0x0000d78c add fp, pc | fp = 0x1b4c6;
0x0000d78e b 0xd674 | goto label_11;
| label_61:
0x0000d790 blx 0x5934 | r0 = fcn_00005934 ();
0x0000d794 cmp r0, 2 |
0x0000d796 ittt le |
| if (r0 <= 2) {
0x0000d798 rsble r8, sb, 0 | __asm ("rsble r8, sb, 0");
| }
| if (r0 <= 2) {
0x0000d79c uxtble r8, r8 | __asm ("uxtble r8, r8");
| }
| if (r0 <= 2) {
0x0000d7a0 rsb.w r8, r8, 0 | r8 -= ;
| }
| if (r0 > 2) {
0x0000d7a4 bgt.w 0xdad0 | goto label_92;
| }
0x0000d7a6 strh r4, [r2, 0xc] | *((r2 + 0xc)) = r4;
| label_25:
0x0000d7a8 add.w sl, sp, 0x48 | sl += var_48h;
| label_22:
0x0000d7ac cmp.w r8, 0 |
| if (r8 < 0) {
0x0000d7b0 blt.w 0xd534 | goto label_12;
| }
| label_72:
0x0000d7b4 mvn r8, 0x55 | r8 = ~0x55;
0x0000d7b8 b 0xd534 | goto label_12;
| label_87:
0x0000d7ba ldr.w r8, [pc, 0x57c] |
0x0000d7be add r8, pc | r8 = 0x1b4fc;
0x0000d7c0 b 0xd718 | goto label_13;
| label_89:
0x0000d7c2 ldr.w r6, [pc, 0x578] |
0x0000d7c6 add r6, pc | r6 = 0x1b508;
0x0000d7c8 b 0xd5a4 | goto label_10;
| label_90:
0x0000d7ca ldr.w r3, [pc, 0x574] |
0x0000d7ce add r3, pc | r3 = 0x1b514;
0x0000d7d0 b 0xd5ea | goto label_8;
| label_59:
0x0000d7d2 ldr.w r3, [pc, 0x570] |
0x0000d7d6 add r3, pc | r3 = 0x1b520;
0x0000d7d8 b 0xd5ea | goto label_8;
| label_42:
0x0000d7da ldr.w r1, [pc, 0x56c] |
0x0000d7de movs r2, 0x98 | r2 = 0x98;
0x0000d7e0 ldr.w r3, [pc, 0x568] |
0x0000d7e4 movs r0, 3 | r0 = 3;
0x0000d7e6 add r1, pc | r1 = 0x1b534;
0x0000d7e8 add r3, pc | r3 = 0x1b538;
0x0000d7ea adds r1, 7 | r1 += 7;
0x0000d7ec blx 0x65cc | r0 = fflush_and_check ();
0x0000d7f0 mov r8, r0 | r8 = r0;
0x0000d7f2 b 0xd542 | goto label_5;
| label_85:
0x0000d7f4 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000d7f8 cmp r0, 0 |
| if (r0 == 0) {
0x0000d7fa beq.w 0xd6ea | goto label_14;
| }
0x0000d7fe ldr.w r2, [pc, 0x550] |
0x0000d802 ldr.w fp, [pc, 0x550] |
0x0000d806 add r2, pc | r2 = 0x1b55c;
0x0000d808 add fp, pc | fp = 0x1b562;
0x0000d80a b 0xd674 | goto label_11;
| label_88:
0x0000d80c blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000d810 cmp r0, 0 |
| if (r0 == 0) {
0x0000d812 beq.w 0xd996 | goto label_93;
| }
0x0000d816 ldr.w r8, [pc, 0x540] |
0x0000d81a add r8, pc | r8 = 0x1b578;
0x0000d81c b 0xd73e | goto label_15;
| label_49:
0x0000d81e mov r1, r5 | r1 = r5;
0x0000d820 mov r0, r7 | r0 = r7;
0x0000d822 blx 0x58d4 | fcn_000058d4 ();
0x0000d824 invalid |
| label_84:
0x0000d828 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000d82c cmp r0, 0 |
| if (r0 != 0) {
0x0000d82e bne 0xd908 | goto label_94;
| }
0x0000d830 ldr.w r8, [pc, 0x528] |
0x0000d834 add r8, pc | r8 = 0x1b594;
0x0000d836 b 0xd6bc | goto label_16;
| label_48:
0x0000d838 ldr.w r1, [pc, 0x524] |
0x0000d83c movs r2, 0x3b | r2 = 0x3b;
0x0000d83e ldr.w r3, [pc, 0x524] |
0x0000d842 movs r0, 3 | r0 = 3;
0x0000d844 add r1, pc | r1 = 0x1b5a8;
0x0000d846 add r3, pc | r3 = 0x1b5b0;
0x0000d848 adds r1, 7 | r1 += 7;
0x0000d84a blx 0x65cc | r0 = fflush_and_check ();
0x0000d84e mov r8, r0 | r8 = r0;
0x0000d850 mov r0, sl | r0 = sl;
0x0000d852 blx 0x5f84 | version ();
0x0000d856 cmp r8, r5 |
| if (r8 < r5) {
0x0000d858 blt.w 0xd542 | goto label_5;
| }
| label_18:
0x0000d85c bl 0x1bcac | r0 = fcn_0001bcac ();
0x0000d860 cmp r0, 0 |
| if (r0 == 0) {
0x0000d862 beq 0xd910 | goto label_95;
| }
0x0000d864 ldr r4, [sp, 0x34] | r4 = var_34h;
0x0000d866 lsl.w r5, fp, 3 | r5 = fp << 3;
0x0000d86a adds r3, r4, r5 | r3 = r4 + r5;
0x0000d86c cmp r4, r3 |
| if (r4 >= r3) {
0x0000d86e bhs.w 0xdba2 | goto label_96;
| }
| do {
0x0000d872 ldr r0, [r4], 8 | r0 = *(r4);
| r4 += 8;
0x0000d876 blx 0x5be4 | fcn_00005be4 ();
0x0000d87a ldr r0, [sp, 0x34] | r0 = var_34h;
0x0000d87c adds r3, r0, r5 | r3 = r0 + r5;
0x0000d87e cmp r4, r3 |
0x0000d880 blo 0xd872 |
| } while (r4 <= r3);
| do {
| label_31:
0x0000d882 cmp.w fp, 0 |
0x0000d886 ite ne |
| if (fp == 0) {
0x0000d888 movne r8, 0 | r8 = 0;
| }
| if (fp == 0) {
0x0000d88c mvn r8, 1 | r8 = ~1;
| }
0x0000d890 b 0xd544 | goto label_17;
| label_82:
0x0000d892 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000d896 cmp r0, 0 |
| if (r0 != 0) {
0x0000d898 bne 0xd97a | goto label_97;
| }
0x0000d89a ldr.w r2, [pc, 0x4cc] |
0x0000d89e ldr.w fp, [pc, 0x4cc] |
0x0000d8a2 add r2, pc | r2 = 0x1b610;
0x0000d8a4 add fp, pc | fp = 0x1b616;
0x0000d8a6 b 0xd674 | goto label_11;
| label_91:
0x0000d8a8 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000d8ac cmp r0, 0 |
| if (r0 != 0) {
0x0000d8ae bne 0xd988 | goto label_98;
| }
0x0000d8b0 ldr.w r2, [pc, 0x4bc] |
0x0000d8b4 ldr.w fp, [pc, 0x4bc] |
0x0000d8b8 add r2, pc | r2 = 0x1b62c;
0x0000d8ba add fp, pc | fp = 0x1b632;
0x0000d8bc b 0xd674 | goto label_11;
| label_43:
0x0000d8be blx 0x639c | fcn_0000639c ();
0x0000d8c2 blx 0x5934 | r0 = fcn_00005934 ();
0x0000d8c6 cmp r0, 2 |
0x0000d8c8 ittt le |
| if (r0 <= 2) {
0x0000d8ca rsble r8, r8, 0 | __asm ("rsble r8, r8, 0");
| }
| if (r0 <= 2) {
0x0000d8ce uxtble r8, r8 | __asm ("uxtble r8, r8");
| }
| if (r0 <= 2) {
0x0000d8d2 rsb.w r8, r8, 0 | r8 -= ;
| }
0x0000d8d4 lsrs r0, r0, 0x20 | r0 >>= 0x20;
| if (r0 > r0) {
0x0000d8d6 bgt.w 0xdaf0 | goto label_99;
| }
| label_26:
0x0000d8da cmp.w r8, 0 |
0x0000d8de it ge |
| if (r8 < 0) {
0x0000d8e0 mvnge r8, 0x55 | r8 = ~0x55;
| }
0x0000d8e4 b 0xd542 | goto label_5;
| label_44:
0x0000d8e6 str r7, [sp, 0x34] | var_34h = r7;
| label_45:
0x0000d8e8 mov r0, r4 | r0 = r4;
0x0000d8ea blx 0x639c | fcn_0000639c ();
0x0000d8ee ldr.w r1, [pc, 0x488] |
0x0000d8f2 movs r2, 0xa5 | r2 = 0xa5;
0x0000d8f4 ldr.w r3, [pc, 0x484] |
0x0000d8f8 movs r0, 3 | r0 = 3;
0x0000d8fa add r1, pc | r1 = 0x1b678;
0x0000d8fc add r3, pc | r3 = 0x1b67c;
0x0000d8fe adds r1, 7 | r1 += 7;
0x0000d900 blx 0x65cc | r0 = fflush_and_check ();
0x0000d904 mov r8, r0 | r8 = r0;
0x0000d906 b 0xd542 | goto label_5;
| label_94:
0x0000d908 ldr.w r8, [pc, 0x474] |
0x0000d90c add r8, pc | r8 = 0x1b690;
0x0000d90e b 0xd6bc | goto label_16;
| label_95:
0x0000d910 ldr r0, [sp, 0x34] | r0 = var_34h;
0x0000d912 b 0xd882 |
| } while (1);
| label_50:
0x0000d914 mov r7, sl | r7 = sl;
0x0000d916 ldr.w fp, [sp, 0x24] | fp = var_24h;
0x0000d91a mov r0, r7 | r0 = r7;
0x0000d91c ldr.w sl, [sp, 0x18] | sl = var_18h;
0x0000d920 bl 0x1c208 | r0 = fcn_0001c208 (r0);
0x0000d924 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x0000d928 blt.w 0xdc54 | goto label_79;
| }
0x0000d92c ldr r3, [sp, 0x28] | r3 = var_28h;
0x0000d92e ldr r3, [r3] | r3 = *(r3);
0x0000d930 cmp r3, 0 |
| if (r3 != 0) {
0x0000d932 bne 0xda04 | goto label_100;
| }
| label_21:
0x0000d934 mov r0, sl | r0 = sl;
0x0000d936 blx 0x5f84 | version ();
0x0000d93a mov r0, r7 | r0 = r7;
0x0000d93c blx 0x5b04 | sd_bus_message_read ();
0x0000d940 b 0xd85c | goto label_18;
| label_54:
0x0000d942 mov r8, r0 | r8 = r0;
0x0000d944 mov r7, sl | r7 = sl;
0x0000d946 blx 0x5934 | r0 = fcn_00005934 ();
0x0000d94a cmp r0, 2 |
0x0000d94c ldr.w sl, [sp, 0x18] | sl = var_18h;
| if (r0 <= 2) {
0x0000d950 ble.w 0xd610 | goto label_19;
| }
0x0000d954 ldr.w r3, [pc, 0x42c] |
0x0000d958 mov r1, r8 | r1 = r8;
0x0000d95a ldr.w r2, [pc, 0x42c] |
0x0000d95e movs r0, 3 | r0 = 3;
0x0000d960 add r3, pc | r3 = 0x1b6e8;
0x0000d962 str r3, [sp, 4] | var_4h = r3;
0x0000d964 add r2, pc | r2 = 0x1b6f2;
0x0000d966 ldr.w r3, [pc, 0x424] |
0x0000d96a adds r2, 7 | r2 += 7;
0x0000d96c add r3, pc | r3 = 0x1b6fe;
0x0000d96e str r3, [sp] | *(sp) = r3;
0x0000d970 movs r3, 0x62 | r3 = 0x62;
0x0000d972 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000d976 mov r8, r0 | r8 = r0;
0x0000d978 b 0xd61c | goto label_20;
| label_97:
0x0000d97a ldr.w r2, [pc, 0x414] |
0x0000d97e ldr.w fp, [pc, 0x414] |
0x0000d982 add r2, pc | r2 = 0x1b718;
0x0000d984 add fp, pc | fp = 0x1b71e;
0x0000d986 b 0xd674 | goto label_11;
| label_98:
0x0000d988 ldr.w r2, [pc, 0x40c] |
0x0000d98c ldr.w fp, [pc, 0x40c] |
0x0000d990 add r2, pc | r2 = 0x1b72c;
0x0000d992 add fp, pc | fp = 0x1b732;
0x0000d994 b 0xd674 | goto label_11;
| label_93:
0x0000d996 ldr.w r8, [pc, 0x408] |
0x0000d99a add r8, pc | r8 = 0x1b740;
0x0000d99c b 0xd73e | goto label_15;
| label_64:
0x0000d99e blx 0x5934 | r0 = fcn_00005934 ();
0x0000d9a2 cmp r0, 2 |
| if (r0 > 2) {
0x0000d9a4 bgt.w 0xdb92 | goto label_101;
| }
| label_27:
0x0000d9a8 rsb.w r8, sb, 0 | r8 = sb - ;
0x0000d9ac uxtb.w r8, r8 | r8 = (int8_t) r8;
0x0000d9b0 rsb.w r8, r8, 0 | r8 -= ;
| label_28:
0x0000d9b4 ldr r0, [sp, 0x44] | r0 = var_44h;
0x0000d9b6 cmp.w r8, 0 |
0x0000d9ba it ge |
| if (r8 < 0) {
0x0000d9bc mvnge r8, 0x55 | r8 = ~0x55;
| }
0x0000d9be lsrs r5, r2, 1 | r5 = r2 >> 1;
0x0000d9c0 add.w sl, sp, 0x48 | sl += var_48h;
0x0000d9c4 cmp r0, 0 |
| if (r0 == 0) {
0x0000d9c6 beq.w 0xd534 | goto label_12;
| }
0x0000d9ca blx 0x5dec | unit_file_state_to_string ();
0x0000d9ce b 0xd534 | goto label_12;
| label_78:
0x0000d9d0 ldr r3, [pc, 0x3d0] |
0x0000d9d2 mov r1, r8 | r1 = r8;
0x0000d9d4 ldr r2, [pc, 0x3d0] |
0x0000d9d6 movs r0, 3 | r0 = 3;
0x0000d9d8 add r3, pc | r3 = 0x1b780;
0x0000d9da str r3, [sp, 4] | var_4h = r3;
0x0000d9dc add r2, pc | r2 = 0x1b788;
0x0000d9de ldr r3, [pc, 0x3cc] |
0x0000d9e0 adds r2, 7 | r2 += 7;
0x0000d9e2 add r3, pc | r3 = 0x1b794;
0x0000d9e4 str r3, [sp] | *(sp) = r3;
0x0000d9e6 movs r3, 0x7b | r3 = 0x7b;
0x0000d9e8 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000d9ec mov r8, r0 | r8 = r0;
0x0000d9ee b 0xd61c | goto label_20;
| label_47:
0x0000d9f0 ldr r1, [pc, 0x3bc] |
0x0000d9f2 movs r2, 0x2e | r2 = 0x2e;
0x0000d9f4 ldr r3, [pc, 0x3bc] |
0x0000d9f6 ldr r0, [pc, 0x3c0] |
0x0000d9f8 add r1, pc | r1 = 0x1b7ac;
0x0000d9fa add r3, pc | r3 = 0x1b7b2;
0x0000d9fc adds r1, 7 | r1 += 7;
0x0000d9fe add r0, pc | r0 = 0x1b7bc;
0x0000da00 blx 0x5e40 | unit_file_get_default ();
| label_100:
0x0000da04 ldr r1, [pc, 0x3b4] |
0x0000da06 mov r2, fp | r2 = fp;
0x0000da08 movs r0, 1 | r0 = 1;
0x0000da0a add r1, pc | r1 = 0x1b7ca;
0x0000da0c blx 0x59a0 | fcn_000059a0 ();
0x0000da10 b 0xd934 | goto label_21;
| label_66:
0x0000da12 ldr r1, [pc, 0x3ac] |
0x0000da14 mov r0, sl | r0 = sl;
0x0000da16 add r1, pc | r1 = 0x1b7dc;
0x0000da18 blx 0x6288 | r0 = fcn_00006288 ();
| if (r0 != 0) {
0x0000da1c cbz r0, 0xda64 |
0x0000da1e blx 0x5934 | r0 = fcn_00005934 ();
0x0000da22 cmp r0, 6 |
| if (r0 > 6) {
0x0000da24 bgt.w 0xdc02 | goto label_102;
| }
0x0000da26 strh r5, [r5, 6] | *((r5 + 6)) = r5;
| label_34:
0x0000da28 ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x0000da2a blx 0x582c | fcn_0000582c ();
0x0000da2e str r0, [sp, 0x3c] | var_3ch = r0;
0x0000da30 mov r0, sl | r0 = sl;
0x0000da32 blx 0x6024 | fcn_00006024 ();
0x0000da36 ldr r3, [pc, 0x38c] |
0x0000da38 mov r2, r8 | r2 = r8;
0x0000da3a ldr r0, [sp, 0x40] | r0 = var_40h;
0x0000da3c mov r1, r7 | r1 = r7;
0x0000da3e add r3, pc | r3 = 0x1b808;
0x0000da40 blx 0x65d8 | r0 = null_or_empty_path ();
0x0000da44 subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x0000da48 blt.w 0xdbd8 | goto label_103;
| }
0x0000da4c ldrd r1, r0, [sp, 0x3c] | __asm ("ldrd r1, r0, [var_40h]");
0x0000da50 movs r2, 0 | r2 = 0;
0x0000da52 movs r3, 0 | r3 = 0;
0x0000da54 strd sl, sb, [sp] | __asm ("strd sl, sb, [sp]");
0x0000da58 blx 0x6030 | r0 = fcn_00006030 ();
0x0000da5c subs.w fp, r0, 0 |
| if (fp >= r0) {
0x0000da60 bge.w 0xdc86 | goto label_104;
| }
| }
0x0000da64 blx 0x5934 | r0 = fcn_00005934 ();
0x0000da68 cmp r0, 2 |
0x0000da6a ittt le |
| if (r0 <= 2) {
0x0000da6c rsble r8, fp, 0 | __asm ("rsble r8, fp, 0");
| }
| if (r0 <= 2) {
0x0000da70 uxtble r8, r8 | __asm ("uxtble r8, r8");
| }
| if (r0 > 2) {
0x0000da74 rsb.w r8, r8, 0 | r8 -= ;
| goto label_105;
| }
| if (r0 <= 2) {
| label_105:
0x0000da78 ble.w 0xd7ac | goto label_22;
| }
0x0000da7c mov r1, fp | r1 = fp;
0x0000da7e mov r0, sl | r0 = sl;
0x0000da80 blx 0x566c | bus_error_message ();
0x0000da82 invalid |
0x0000da86 mov r1, fp | r1 = fp;
0x0000da88 str r0, [sp, 8] | var_8h = r0;
0x0000da8a ldr r3, [pc, 0x340] |
0x0000da8c ldr r0, [pc, 0x340] |
0x0000da8e add r2, pc | r2 += pc;
0x0000da90 adds r2, 7 | r2 += 7;
0x0000da92 add r3, pc | r3 = 0x1b864;
0x0000da94 add r0, pc | r0 = 0x1b868;
0x0000da96 str r3, [sp, 4] | var_4h = r3;
0x0000da98 str r0, [sp] | *(sp) = r0;
0x0000da9a movs r3, 0xe4 | r3 = 0xe4;
0x0000da9c movs r0, 3 | r0 = 3;
0x0000da9e blx 0x61a4 | fcn_000061a4 ();
0x0000daa0 invalid |
0x0000daa4 b 0xd7ac | goto label_22;
| label_62:
0x0000daa6 blx 0x5934 | r0 = fcn_00005934 ();
0x0000daaa cmp r0, 2 |
| if (r0 <= 2) {
0x0000daac ble.w 0xd516 | goto label_23;
| }
0x0000dab0 ldr r2, [pc, 0x320] |
0x0000dab2 movs r3, 0xc3 | r3 = 0xc3;
0x0000dab4 ldr r4, [pc, 0x320] |
0x0000dab6 ldr r0, [pc, 0x324] |
0x0000dab8 add r2, pc | r2 = 0x1b890;
0x0000daba add r4, pc | r4 = 0x1b896;
0x0000dabc add r0, pc | r0 = 0x1b89e;
| label_33:
0x0000dabe strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x0000dac2 mov r1, sb | r1 = sb;
0x0000dac4 adds r2, 7 | r2 += 7;
0x0000dac6 movs r0, 3 | r0 = 3;
0x0000dac8 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000dacc mov r8, r0 | r8 = r0;
0x0000dace b 0xd522 | goto label_24;
| label_92:
0x0000dad0 ldr r2, [pc, 0x30c] |
0x0000dad2 movs r3, 0xbf | r3 = 0xbf;
0x0000dad4 ldr r4, [pc, 0x30c] |
0x0000dad6 mov r1, sb | r1 = sb;
0x0000dad8 ldr r0, [pc, 0x30c] |
0x0000dada add r2, pc | r2 = 0x1b8be;
0x0000dadc add r4, pc | r4 = 0x1b8c4;
0x0000dade adds r2, 7 | r2 += 7;
0x0000dae0 add r0, pc | r0 = 0x1b8cc;
0x0000dae2 strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x0000dae6 movs r0, 3 | r0 = 3;
0x0000dae8 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000daec mov r8, r0 | r8 = r0;
0x0000daee b 0xd7a8 | goto label_25;
| label_99:
0x0000daf0 ldr r2, [pc, 0x2f8] |
0x0000daf2 mov r1, r8 | r1 = r8;
0x0000daf4 ldr r4, [pc, 0x2f8] |
0x0000daf6 movs r3, 0x9d | r3 = 0x9d;
0x0000daf8 ldr r0, [pc, 0x2f8] |
0x0000dafa add r2, pc | r2 = 0x1b8ea;
0x0000dafc add r4, pc | r4 = 0x1b8f0;
0x0000dafe adds r2, 7 | r2 += 7;
0x0000db00 add r0, pc | r0 = 0x1b8f8;
0x0000db02 strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x0000db06 movs r0, 3 | r0 = 3;
0x0000db08 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000db0c mov r8, r0 | r8 = r0;
0x0000db0e b 0xd8da | goto label_26;
| label_46:
0x0000db10 ldr r1, [pc, 0x2e4] |
0x0000db12 movs r2, 0xb0 | r2 = 0xb0;
0x0000db14 ldr r3, [pc, 0x2e4] |
0x0000db16 ldr r0, [pc, 0x2e8] |
0x0000db18 add r1, pc | r1 = 0x1b914;
0x0000db1a add r3, pc | r3 = 0x1b91a;
0x0000db1c adds r1, 7 | r1 += 7;
0x0000db1e add r0, pc | r0 = 0x1b924;
0x0000db20 blx 0x5e40 | unit_file_get_default ();
| label_65:
0x0000db24 blx 0x5934 | r0 = fcn_00005934 ();
0x0000db28 cmp r0, 2 |
| if (r0 <= 2) {
0x0000db2a ble.w 0xd9a8 | goto label_27;
| }
0x0000db2e ldr r2, [pc, 0x2d4] |
0x0000db30 movs r3, 0xce | r3 = 0xce;
0x0000db32 ldr r4, [pc, 0x2d4] |
0x0000db34 ldr r0, [pc, 0x2d4] |
0x0000db36 add r2, pc | r2 = 0x1b940;
0x0000db38 add r4, pc | r4 = 0x1b946;
0x0000db3a add r0, pc | r0 = 0x1b94a;
| label_30:
0x0000db3c strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x0000db40 mov r1, sb | r1 = sb;
0x0000db42 adds r2, 7 | r2 += 7;
0x0000db44 movs r0, 3 | r0 = 3;
0x0000db46 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000db4a mov r8, r0 | r8 = r0;
0x0000db4c b 0xd9b4 | goto label_28;
| label_68:
0x0000db4e ldr r1, [pc, 0x2c0] |
0x0000db50 movs r2, 0xed | r2 = 0xed;
0x0000db52 ldr r3, [pc, 0x2c0] |
0x0000db54 movs r0, 3 | r0 = 3;
0x0000db56 ldr.w sl, [sp, 0x24] | sl = var_24h;
0x0000db5a add r1, pc | r1 = 0x1b970;
0x0000db5c add r3, pc | r3 = 0x1b976;
0x0000db5e adds r1, 7 | r1 += 7;
0x0000db60 blx 0x65cc | r0 = fflush_and_check ();
0x0000db64 mov r8, r0 | r8 = r0;
0x0000db66 b 0xd534 | goto label_12;
| label_67:
0x0000db68 blx 0x5934 | r0 = fcn_00005934 ();
0x0000db6c cmp r0, 2 |
| if (r0 <= 2) {
0x0000db6e ble.w 0xd4e4 | goto label_29;
| }
0x0000db70 add r4, sp, 0x2e4 | r4 = sp + 0x2e4;
0x0000db72 ldr r2, [pc, 0x2a4] |
0x0000db74 mov r1, r8 | r1 = r8;
0x0000db76 ldr r0, [pc, 0x2a4] |
0x0000db78 ldr r3, [pc, 0x2a4] |
0x0000db7a add r2, pc | r2 = 0x1b998;
0x0000db7c add r0, pc | r0 = 0x1b99e;
0x0000db7e adds r2, 7 | r2 += 7;
0x0000db80 add r3, pc | r3 = 0x1b9a4;
0x0000db82 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0000db86 movs r3, 0xe8 | r3 = 0xe8;
0x0000db88 movs r0, 3 | r0 = 3;
0x0000db8a blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000db8e mov r8, r0 | r8 = r0;
0x0000db90 b 0xd7ac | goto label_22;
| label_101:
0x0000db92 ldr r2, [pc, 0x290] |
0x0000db94 movs r3, 0xca | r3 = 0xca;
0x0000db96 ldr r4, [pc, 0x290] |
0x0000db98 ldr r0, [pc, 0x290] |
0x0000db9a add r2, pc | r2 = 0x1b9c4;
0x0000db9c add r4, pc | r4 = 0x1b9ca;
0x0000db9e add r0, pc | r0 = 0x1b9ce;
0x0000dba0 b 0xdb3c | goto label_30;
| label_96:
0x0000dba2 mov r0, r4 | r0 = r4;
0x0000dba4 b 0xd882 | goto label_31;
| label_69:
0x0000dba6 ldr r0, [sp, 0x30] | r0 = var_30h;
0x0000dba8 blx 0x5d98 | r0 = execv ();
0x0000dbac subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x0000dbb0 blt 0xdc2a | goto label_106;
| }
0x0000dbb2 mov r0, sl | r0 = sl;
0x0000dbb4 blx 0x6024 | fcn_00006024 ();
0x0000dbb8 ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x0000dbba cmp r0, 0 |
| if (r0 == 0) {
0x0000dbbc beq.w 0xd23c | goto label_32;
| }
0x0000dbc0 blx 0x582c | fcn_0000582c ();
0x0000dbc4 b.w 0xd23c | goto label_32;
| label_71:
0x0000dbc8 ldr r2, [pc, 0x264] |
0x0000dbca movs r3, 0xd2 | r3 = 0xd2;
0x0000dbcc ldr r4, [pc, 0x264] |
0x0000dbce ldr r0, [pc, 0x268] |
0x0000dbd0 add r2, pc | r2 = 0x1ba04;
0x0000dbd2 add r4, pc | r4 = 0x1ba0a;
0x0000dbd4 add r0, pc | r0 = 0x1ba12;
0x0000dbd6 b 0xdabe | goto label_33;
| label_103:
0x0000dbd8 blx 0x5934 | r0 = fcn_00005934 ();
0x0000dbdc cmp r0, 2 |
| if (r0 <= 2) {
0x0000dbde ble.w 0xd4e4 | goto label_29;
| }
0x0000dbe2 ldr r2, [pc, 0x258] |
0x0000dbe4 mov r1, r8 | r1 = r8;
0x0000dbe6 ldr r0, [pc, 0x258] |
0x0000dbe8 ldr r3, [pc, 0x258] |
0x0000dbea add r2, pc | r2 = 0x1ba2c;
0x0000dbec add r0, pc | r0 = 0x1ba32;
0x0000dbee adds r2, 7 | r2 += 7;
0x0000dbf0 add r3, pc | r3 = 0x1ba38;
0x0000dbf2 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0000dbf6 movs r3, 0xdf | r3 = 0xdf;
0x0000dbf8 movs r0, 3 | r0 = 3;
0x0000dbfa blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000dbfe mov r8, r0 | r8 = r0;
0x0000dc00 b 0xd7ac | goto label_22;
| label_102:
0x0000dc02 mov r1, fp | r1 = fp;
0x0000dc04 mov r0, sl | r0 = sl;
0x0000dc06 blx 0x566c | bus_error_message ();
0x0000dc0a ldr r3, [pc, 0x23c] |
0x0000dc0c mov r1, fp | r1 = fp;
0x0000dc0e ldr r2, [pc, 0x23c] |
0x0000dc10 str r0, [sp, 8] | var_8h = r0;
0x0000dc12 movs r0, 7 | r0 = 7;
0x0000dc14 add r3, pc | r3 = 0x1ba62;
0x0000dc16 str r3, [sp, 4] | var_4h = r3;
0x0000dc18 add r2, pc | r2 = 0x1ba6a;
0x0000dc1a ldr r3, [pc, 0x234] |
0x0000dc1c adds r2, 7 | r2 += 7;
0x0000dc1e add r3, pc | r3 = 0x1ba74;
0x0000dc20 str r3, [sp] | *(sp) = r3;
0x0000dc22 movs r3, 0xd9 | r3 = 0xd9;
0x0000dc24 blx 0x61a4 | fcn_000061a4 ();
0x0000dc28 b 0xda28 | goto label_34;
| label_106:
0x0000dc2a blx 0x5934 | r0 = fcn_00005934 ();
0x0000dc2e cmp r0, 2 |
| if (r0 <= 2) {
0x0000dc30 ble.w 0xd4e4 | goto label_29;
| }
0x0000dc34 ldr r2, [pc, 0x21c] |
0x0000dc36 mov r1, r8 | r1 = r8;
0x0000dc38 ldr r0, [pc, 0x21c] |
0x0000dc3a ldr r3, [pc, 0x220] |
0x0000dc3c add r2, pc | r2 = 0x1ba94;
0x0000dc3e add r0, pc | r0 = 0x1ba9a;
0x0000dc40 adds r2, 7 | r2 += 7;
0x0000dc42 add r3, pc | r3 = 0x1baa4;
0x0000dc44 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0000dc48 movs r3, 0xff | r3 = 0xff;
0x0000dc4a movs r0, 3 | r0 = 3;
0x0000dc4c blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000dc50 mov r8, r0 | r8 = r0;
0x0000dc52 b 0xd7ac | goto label_22;
| label_79:
0x0000dc54 mov r0, sl | r0 = sl;
0x0000dc56 blx 0x5f84 | version ();
0x0000dc58 invalid |
0x0000dc5c blx 0x5b04 | sd_bus_message_read ();
0x0000dc60 b 0xd542 | goto label_5;
| label_70:
0x0000dc62 ldr r2, [pc, 0x1fc] |
0x0000dc64 mov r1, r8 | r1 = r8;
0x0000dc66 ldr r0, [pc, 0x1fc] |
0x0000dc68 ldr r3, [pc, 0x1fc] |
0x0000dc6a add r2, pc | r2 = 0x1bad0;
0x0000dc6c add r0, pc | r0 = 0x1bad6;
0x0000dc6e adds r2, 7 | r2 += 7;
0x0000dc70 add r3, pc | r3 = 0x1badc;
0x0000dc72 strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x0000dc76 movs r3, 0xfb | r3 = 0xfb;
0x0000dc78 movs r0, 3 | r0 = 3;
0x0000dc7a blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000dc7e mov r8, r0 | r8 = r0;
0x0000dc80 b 0xd7ac | goto label_22;
| label_73:
0x0000dc82 blx 0x6114 | fcn_00006114 ();
| label_104:
0x0000dc86 movs r4, 1 | r4 = 1;
0x0000dc88 b.w 0xd440 | goto label_35;
| label_86:
0x0000dc8c ldr r2, [pc, 0x1dc] |
0x0000dc8e add r2, pc | r2 = 0x1bafe;
0x0000dc90 b 0xd674 | goto label_11;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/systemctl @ 0xf414 */
| #include <stdint.h>
|
; (fcn) fcn.0000f414 () | void fcn_0000f414 (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_4ch;
| size_t nmemb;
| 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_94h;
| int32_t var_94h_2;
| int16_t var_9ch;
| 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;
| int32_t var_c0h_2;
| int16_t var_c8h;
| int16_t var_d4h;
| r0 = arg1;
| r1 = arg2;
0x0000f414 push {r3, r4, r5, lr} |
| if (r0 != 0) {
0x0000f416 cbz r0, 0xf46c |
| if (r1 == 0) {
0x0000f418 cbz r1, 0xf482 | goto label_13;
| }
0x0000f41a mov r2, r0 | r2 = r0;
0x0000f41c ldrd r3, r4, [r1, 8] | __asm ("ldrd r3, r4, [r1, 8]");
0x0000f420 ldrd r0, r1, [r1] | __asm ("ldrd r0, r1, [r1]");
0x0000f424 adds.w lr, r3, -1 | lr = r3 + -1;
0x0000f428 adc ip, r4, -1 | __asm ("adc ip, r4, -1");
0x0000f42c cmn.w lr, 2 |
0x0000f430 adcs ip, ip, 0 | __asm ("adcs ip, ip, 0");
| if (lr < 2) {
0x0000f434 bhs 0xf464 |
0x0000f436 ldr r5, [r2] | r5 = *(r2);
0x0000f438 adds r3, r3, r5 | r3 += r5;
0x0000f43a ldr r5, [r2, 4] | r5 = *((r2 + 4));
0x0000f43c adc.w r4, r4, r5 | __asm ("adc.w r4, r4, r5");
0x0000f440 ldr r5, [r2, 8] | r5 = *((r2 + 8));
0x0000f442 ldr r2, [r2, 0xc] | r2 = *((r2 + 0xc));
0x0000f444 subs r3, r3, r5 | r3 -= r5;
0x0000f446 sbc.w r4, r4, r2 | __asm ("sbc.w r4, r4, r2");
0x0000f44a adds.w ip, r0, -1 |
0x0000f44e adc r2, r1, -1 | __asm ("adc r2, r1, -1");
0x0000f452 cmn.w ip, 2 |
0x0000f456 sbcs r2, r2, -1 | __asm ("sbcs r2, r2, -1");
| if (ip >= 2) {
0x0000f45a bhs 0xf466 | goto label_14;
| }
0x0000f45c cmp r3, r0 |
0x0000f45e sbcs.w r2, r4, r1 | __asm ("sbcs.w r2, r4, r1");
| if (r3 <= r0) {
0x0000f462 blo 0xf466 | goto label_14;
| }
| }
0x0000f464 pop {r3, r4, r5, pc} |
| label_14:
0x0000f466 mov r0, r3 | r0 = r3;
0x0000f468 mov r1, r4 | r1 = r4;
0x0000f46a pop {r3, r4, r5, pc} |
| }
0x0000f46c ldr r1, [pc, 0x28] |
0x0000f46e movw r2, 0x29d | r2 = 0x29d;
0x0000f472 ldr r3, [pc, 0x28] |
0x0000f474 ldr r0, [pc, 0x28] |
0x0000f476 add r1, pc | r1 = 0x1e912;
0x0000f478 add r3, pc | r3 = 0x1e91a;
0x0000f47a adds r1, 7 | r1 += 7;
0x0000f47c add r0, pc | r0 = 0x1e920;
0x0000f47e blx 0x5e40 | unit_file_get_default ();
| label_13:
0x0000f482 ldr r1, [pc, 0x20] |
0x0000f484 movw r2, 0x29e |
0x0000f488 ldr r3, [pc, 0x1c] |
0x0000f48a ldr r0, [pc, 0x20] |
0x0000f48c add r1, pc | r1 = 0x1e936;
0x0000f48e add r3, pc | r3 = 0x1e93a;
0x0000f490 adds r1, 7 | r1 += 7;
0x0000f492 add r0, pc | r0 = 0x1e944;
0x0000f494 blx 0x5e40 | unit_file_get_default ();
0x0000f498 adds r6, r7, r5 | r6 = r7 + r5;
0x0000f49a movs r1, r0 | r1 = r0;
0x0000f49c subs r0, r7, 6 | r0 = r7 - 6;
0x0000f49e movs r1, r0 | r1 = r0;
0x0000f4a0 adds r0, r5, 6 | r0 = r5 + 6;
0x0000f4a2 movs r1, r0 | r1 = r0;
0x0000f4a4 adds r0, r5, r5 | r0 = r5 + r5;
0x0000f4a6 movs r1, r0 | r1 = r0;
0x0000f4a8 subs r2, r4, 6 | r2 = r4 - 6;
0x0000f4aa movs r1, r0 | r1 = r0;
0x0000f4ac adds r6, r2, 6 | r6 = r2 + 6;
0x0000f4ae movs r1, r0 | r1 = r0;
0x0000f4b0 ldr.w r2, [pc, 0x6ec] | r2 = *(0x0000fba0);
0x0000f4b4 ldr.w r3, [pc, 0x6ec] | r3 = *(0xfba4);
0x0000f4b8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0000f4bc movs r5, 0 | r5 = 0;
0x0000f4be add r2, pc | r2 = 0xf760;
0x0000f4c0 vpush {d8} | __asm ("vpush {d8}");
0x0000f4c4 sub sp, 0xdc |
0x0000f4c6 mov r7, r0 | r7 = r0;
0x0000f4c8 ldr r3, [r2, r3] |
0x0000f4ca mov r6, r1 | r6 = r1;
0x0000f4cc ldr.w fp, [pc, 0x6d8] | fp = *(0x0000fba8);
0x0000f4d0 movs r0, 1 | r0 = 1;
0x0000f4d2 add r1, sp, 0x80 | r1 += var_80h;
0x0000f4d4 ldr r3, [r3] | r3 = *(0xf760);
0x0000f4d6 str r3, [sp, 0xd4] | var_d4h = r3;
0x0000f4d8 mov.w r3, 0 | r3 = 0;
0x0000f4dc strd r5, r5, [sp, 0x6c] | __asm ("strd r5, r5, [var_6ch]");
0x0000f4e0 strd r5, r5, [sp, 0x74] | __asm ("strd r5, r5, [var_78h]");
0x0000f4e4 add fp, pc |
0x0000f4e6 str r5, [sp, 0x7c] | var_7ch = r5;
0x0000f4e8 bl 0x1a334 | r0 = fcn_0001a334 (r0, r1);
0x0000f4ec subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0000f4ee blt.w 0xf724 | goto label_15;
| }
0x0000f4f2 ldr.w r3, [pc, 0x6b8] | r3 = *(0xfbae);
0x0000f4f6 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x0000f4f8 adds r0, 3 | r0 += 3;
0x0000f4fa ldr r0, [r3] | r0 = *(0xfbae);
0x0000f4fc blx 0x5e70 | get_color_mode ();
0x0000f500 movs r1, 1 | r1 = 1;
0x0000f502 mov r0, r6 | r0 = r6;
0x0000f504 ldr r4, [sp, 0x80] | r4 = var_80h;
0x0000f506 blx 0x5ad4 | sd_bus_message_get_bus ();
0x0000f50a ldr.w r2, [pc, 0x6a4] |
0x0000f50e mov r1, r0 | r1 = r0;
0x0000f510 add r3, sp, 0x74 | r3 += var_74h;
0x0000f512 mov r0, r4 | r0 = r4;
0x0000f514 str r5, [sp] | *(sp) = r5;
0x0000f516 add r2, pc | r2 = 0x1f0cc;
0x0000f518 bl 0x1ba10 | r0 = fcn_0001ba10 (r0, r1, r2, r3, r4, r5, r6);
0x0000f51c subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0000f51e blt.w 0xf724 | goto label_15;
| }
0x0000f522 cmp r7, 1 |
0x0000f524 ldr r1, [sp, 0x74] | r1 = var_74h;
| if (r7 != 1) {
0x0000f526 beq 0xf52e |
0x0000f528 cmp r1, 0 |
| if (r1 == 0) {
0x0000f52a beq.w 0xf7ae | goto label_16;
| }
| }
0x0000f52e add r2, sp, 0x70 | r2 += var_70h;
0x0000f530 ldr r0, [sp, 0x80] | r0 = var_80h;
0x0000f532 str r2, [sp] | *(sp) = r2;
0x0000f534 add r3, sp, 0x6c | r3 += var_6ch;
0x0000f536 add r2, sp, 0x7c | r2 += var_7ch;
0x0000f538 bl 0xe018 | r0 = fcn_0000e018 (r0, r1, r2, r3, r4);
0x0000f53c subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x0000f53e blt.w 0xf78a | goto label_17;
| }
0x0000f542 add r3, sp, 0xa0 | r3 += var_a0h;
0x0000f544 mov r0, r3 | r0 = r3;
0x0000f546 str r3, [sp, 0x58] | var_58h = r3;
0x0000f548 blx 0x56f0 | dual_timestamp_get ();
0x0000f54c ldr.w sb, [sp, 0x7c] | sb = var_7ch;
0x0000f550 movs r3, 0x2c | r3 = 0x2c;
0x0000f552 mla r3, r3, r5, sb | __asm ("mla r3, r3, r5, sb");
0x0000f556 cmp sb, r3 |
0x0000f558 str r3, [sp, 0x54] | var_54h = r3;
| if (sb >= r3) {
0x0000f55a bhs.w 0xf7ae | goto label_16;
| }
0x0000f55e ldr.w r3, [pc, 0x654] |
0x0000f562 mov r7, sb | r7 = sb;
0x0000f564 vmov.i32 d8, 0 | __asm ("vmov.i32 d8, 0");
0x0000f568 add r6, sp, 0xb0 | r6 += var_b0h;
0x0000f56a str.w sb, [sp, 0x5c] | __asm ("str.w sb, [var_5ch]");
0x0000f56e add r3, pc | r3 = "%s: required argument missing.";
0x0000f570 str.w fp, [sp, 0x64] | __asm ("str.w fp, [var_64h]");
0x0000f574 adds r3, 7 | r3 += 7;
0x0000f576 str r3, [sp, 0x60] | var_60h = r3;
0x0000f578 movs r3, 0 | r3 = 0;
0x0000f57a str r3, [sp, 0x50] | nmemb = r3;
| do {
0x0000f57c ldr.w r1, [pc, 0x638] |
0x0000f580 movs r5, 0 | r5 = 0;
0x0000f582 vstr d8, [sp, 0x88] | __asm ("vstr d8, [sp, 0x88]");
0x0000f586 str r5, [sp, 0x84] | var_84h = r5;
0x0000f588 strd r5, r5, [r6] | __asm ("strd r5, r5, [r6]");
0x0000f58c add r1, pc | r1 = "Expected single character argument.";
0x0000f58e strd r5, r5, [r6, 8] | __asm ("strd r5, r5, [var_8h_2]");
0x0000f592 ldr r0, [r7, 4] | r0 = *((r7 + 4));
0x0000f594 blx 0x6198 | r0 = fcn_00006198 ();
0x0000f598 cmp r0, 0 |
| if (r0 != 0) {
0x0000f59a beq.w 0xf6c4 |
0x0000f59e ldr r1, [r7, 0x1c] | r1 = *((r7 + 0x1c));
0x0000f5a0 add r2, sp, 0x84 | r2 += var_84h;
0x0000f5a2 ldr r0, [sp, 0x80] | r0 = var_80h;
0x0000f5a4 bl 0xdf08 | r0 = fcn_0000df08 (r0, r1);
0x0000f5a8 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0000f5aa blt.w 0xfb3a | goto label_18;
| }
0x0000f5ae ldr.w r8, [sp, 0x80] | r8 = var_80h;
0x0000f5b2 ldr r2, [r7, 0x1c] | r2 = *((r7 + 0x1c));
0x0000f5b4 strd r5, r5, [sp, 0x94] | __asm ("strd r5, r5, [var_94h]");
0x0000f5b8 str r5, [sp, 0x9c] | var_9ch = r5;
0x0000f5ba cmp.w r8, 0 |
| if (r8 == 0) {
0x0000f5be beq.w 0xf9fa | goto label_19;
| }
0x0000f5c2 cmp r2, 0 |
| if (r2 == 0) {
0x0000f5c4 beq.w 0xfa10 | goto label_20;
| }
0x0000f5c8 ldr.w r3, [pc, 0x5f0] |
0x0000f5cc add.w sb, sp, 0x94 | sb += var_94h;
0x0000f5d0 ldr.w fp, [pc, 0x5ec] |
0x0000f5d4 mov r0, r8 | r0 = r8;
0x0000f5d6 ldr.w sl, [pc, 0x5ec] |
0x0000f5da add r4, sp, 0xc0 | r4 += var_c0h;
0x0000f5dc add r3, pc | r3 = 0x1f19c;
0x0000f5de str.w sb, [sp, 4] | __asm ("str.w sb, [var_4h]");
0x0000f5e0 str r0, [sp, 0x10] | *((sp + 0x10)) = r0;
0x0000f5e2 str r3, [sp] | *(sp) = r3;
0x0000f5e4 add r3, sp, 0xc8 | r3 += var_c8h;
0x0000f5e6 str r3, [sp, 0xc] | var_ch = r3;
0x0000f5e8 add fp, pc | fp = 0x1f1ac;
0x0000f5ea movs r3, 0x74 | r3 = 0x74;
0x0000f5ec add sl, pc | sl = 0x1f1b6;
0x0000f5ee mov r1, sl | r1 = sl;
0x0000f5f0 str r3, [sp, 8] | var_8h = r3;
0x0000f5f2 mov r3, fp | r3 = fp;
0x0000f5f4 str r2, [sp, 0x4c] | var_4ch = r2;
0x0000f5f6 blx 0x57c0 | r0 = fcn_000057c0 ();
0x0000f5fa subs r1, r0, 0 | r1 = r0 - 0;
0x0000f5fc ldr r2, [sp, 0x4c] | r2 = var_4ch;
| if (r1 < r0) {
0x0000f5fe blt.w 0xf91e | goto label_21;
| }
0x0000f602 movs r3, 0x74 | r3 = 0x74;
0x0000f604 mov r0, r8 | r0 = r8;
0x0000f606 strd sb, r3, [sp, 4] | __asm ("strd sb, r3, [var_4h]");
0x0000f60a mov r1, sl | r1 = sl;
0x0000f60c ldr.w r3, [pc, 0x5b8] |
0x0000f610 str r4, [sp, 0xc] | var_ch = r4;
0x0000f612 add r3, pc | r3 = 0x1f1de;
0x0000f614 str r3, [sp] | *(sp) = r3;
0x0000f616 mov r3, fp | r3 = fp;
0x0000f618 blx 0x57c0 | r0 = fcn_000057c0 ();
0x0000f61c subs.w r8, r0, 0 | r8 = r0 - 0;
| if (r8 < r0) {
0x0000f620 blt.w 0xf98a | goto label_22;
| }
0x0000f624 ldm.w r4, {r0, r1, r2, r3} | r0 = *(r4);
| r1 = *((r4 + 4));
| r2 = *((r4 + 8));
| r3 = *((r4 + 12));
0x0000f628 stm.w r6, {r0, r1, r2, r3} | *(r6) = r0;
| *((r6 + 4)) = r1;
| *((r6 + 8)) = r2;
| *((r6 + 12)) = r3;
0x0000f62a movs r7, r1 | r7 = r1;
0x0000f62c mov r0, sb | r0 = sb;
0x0000f62e blx 0x6024 | fcn_00006024 ();
0x0000f632 ldr r0, [sp, 0x80] | r0 = var_80h;
0x0000f634 ldr r2, [r7, 0x1c] | r2 = *((r7 + 0x1c));
0x0000f636 strd r5, r5, [sp, 0xc0] | __asm ("strd r5, r5, [var_c0h]");
0x0000f63a str r5, [sp, 0xc8] | var_c8h = r5;
0x0000f63c cmp r0, 0 |
| if (r0 == 0) {
0x0000f63e beq.w 0xfa92 | goto label_23;
| }
0x0000f642 cmp r2, 0 |
| if (r2 == 0) {
0x0000f644 beq.w 0xfad8 | goto label_24;
| }
0x0000f648 ldr.w r5, [pc, 0x580] |
0x0000f64c movs r3, 0x74 | r3 = 0x74;
0x0000f64e str r3, [sp, 8] | var_8h = r3;
0x0000f650 mov r1, sl | r1 = sl;
0x0000f652 mov r3, fp | r3 = fp;
0x0000f654 str r4, [sp, 4] | var_4h = r4;
0x0000f656 add r5, pc | r5 = 0x1f226;
0x0000f658 str r5, [sp] | *(sp) = r5;
0x0000f65a add r5, sp, 0x88 | r5 += var_88h;
0x0000f65c str r5, [sp, 0xc] | var_ch = r5;
0x0000f65e blx 0x57c0 | r0 = fcn_000057c0 ();
0x0000f662 subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x0000f664 blt.w 0xf95a | goto label_25;
| }
| label_4:
0x0000f668 mov r0, r4 | r0 = r4;
0x0000f66a blx 0x6024 | fcn_00006024 ();
0x0000f66c vldmia ip, {d25, d26, d27, d28, d29, d30, d31} | __asm ("vldmia ip, {d25, d26, d27, d28, d29, d30, d31}");
0x0000f670 movs r2, 0x20 | r2 = 0x20;
0x0000f672 add r0, sp, 0x78 | r0 += var_78h;
0x0000f674 adds r4, r3, 1 | r4 = r3 + 1;
0x0000f676 mov r1, r4 | r1 = r4;
0x0000f678 lsls r5, r3, 5 | r5 = r3 << 5;
0x0000f67a blx 0x5c98 | r0 = fcn_00005c98 ();
0x0000f67e cmp r0, 0 |
| if (r0 == 0) {
0x0000f680 beq.w 0xfb5c | goto label_26;
| }
0x0000f684 ldr r0, [sp, 0x58] | r0 = var_58h;
0x0000f686 mov r1, r6 | r1 = r6;
0x0000f688 bl 0xf414 | fcn_0000f414 (r0, r1, r2);
0x0000f68c ldr.w r8, [r7] | r8 = *(r7);
0x0000f690 movs r3, 0 | r3 = 0;
0x0000f692 ldr r2, [sp, 0x78] | r2 = var_78h;
0x0000f694 ldr.w lr, [r7, 4] |
0x0000f698 ldr.w ip, [sp, 0x84] | ip = var_84h;
0x0000f69c ldrd sl, fp, [sp, 0x88] | __asm ("ldrd sl, fp, [var_88h]");
0x0000f6a0 str r3, [sp, 0x84] | var_84h = r3;
0x0000f6a2 adds r3, r2, r5 | r3 = r2 + r5;
0x0000f6a4 str.w r8, [r2, r5] | __asm ("str.w r8, [r2, r5]");
0x0000f6a8 strd r0, r1, [r3, 8] | __asm ("strd r0, r1, [r3, 8]");
0x0000f6aa lsls r2, r0, 4 | r2 = r0 << 4;
0x0000f6ac ldr r0, [sp, 0x84] | r0 = var_84h;
0x0000f6ae strd sl, fp, [r3, 0x10] | __asm ("strd sl, fp, [r3, 0x10]");
0x0000f6b2 str.w lr, [r3, 4] | __asm ("str.w lr, [r3, 4]");
0x0000f6b6 str.w ip, [r3, 0x18] | __asm ("str.w ip, [r3, 0x18]");
| if (r0 != 0) {
0x0000f6ba cbz r0, 0xf6c0 |
0x0000f6bc blx 0x5dec | unit_file_state_to_string ();
| }
0x0000f6c0 str r4, [sp, 0x50] | nmemb = r4;
0x0000f6c2 movs r4, 0 | r4 = 0;
| }
0x0000f6c4 ldr r3, [sp, 0x54] | r3 = var_54h;
0x0000f6c6 adds r7, 0x2c | r7 += 0x2c;
0x0000f6c8 cmp r7, r3 |
0x0000f6ca blo.w 0xf57c |
| } while (r7 <= r3);
0x0000f6ce ldr r3, [sp, 0x50] | r3 = nmemb;
0x0000f6d0 ldr.w fp, [sp, 0x64] | fp = var_64h;
0x0000f6d4 ldr r0, [sp, 0x78] | r0 = var_78h;
0x0000f6d6 cmp r3, 1 |
0x0000f6d8 str r3, [sp, 0x58] | var_58h = r3;
| if (r3 > 1) {
0x0000f6da ble 0xf6f2 |
0x0000f6dc cmp r0, 0 |
| if (r0 == 0) {
0x0000f6de beq.w 0xfb7e | goto label_27;
| }
0x0000f6e2 ldr.w r3, [pc, 0x4ec] | r3 = *(0x0000fbd0);
0x0000f6e6 movs r2, 0x20 | r2 = 0x20;
0x0000f6e8 ldr r1, [sp, 0x50] | r1 = nmemb;
0x0000f6ea add r3, pc | r3 += pc;
0x0000f6ec blx 0x5684 | qsort ();
0x0000f6f0 ldr r0, [sp, 0x78] | r0 = var_78h;
| }
0x0000f6f2 ldr r2, [sp, 0x50] | r2 = nmemb;
0x0000f6f4 clz r3, r0 | r3 &= r0;
0x0000f6f8 lsrs r3, r3, 5 | r3 >>= 5;
0x0000f6fa mov r5, r0 | r5 = r0;
0x0000f6fc cmp r2, 0 |
0x0000f6fe it eq |
| if (r2 != 0) {
0x0000f700 moveq r3, 0 | r3 = 0;
| }
0x0000f702 cmp r3, 0 |
| if (r3 == 0) {
0x0000f704 beq.w 0xfb96 | goto label_28;
| }
0x0000f708 ldr.w r1, [pc, 0x4c8] |
0x0000f70c movw r2, 0x25e | r2 = 0x25e;
0x0000f710 ldr.w r3, [pc, 0x4c4] |
0x0000f714 ldr.w r0, [pc, 0x4c4] |
0x0000f716 lsls r4, r0, 0x13 | r4 = r0 << 0x13;
0x0000f718 add r1, pc | r1 = 0x1f2f0;
0x0000f71a add r3, pc | r3 = 0x1f2f6;
0x0000f71c adds r1, 7 | r1 += 7;
0x0000f71e add r0, pc | r0 = 0x1f2fe;
0x0000f720 blx 0x5e40 | unit_file_get_default ();
| label_15:
0x0000f724 ldr r0, [sp, 0x78] | r0 = var_78h;
0x0000f726 movs r6, 0 | r6 = 0;
0x0000f728 blx 0x5be4 | fcn_00005be4 ();
0x0000f72c ldr r5, [sp, 0x74] | r5 = var_74h;
0x0000f72e mov r7, r6 | r7 = r6;
0x0000f730 str r6, [sp, 0x78] | var_78h = r6;
| if (r5 == 0) {
0x0000f732 cbz r5, 0xf74c | goto label_29;
| }
| label_0:
0x0000f734 mov r0, r5 | r0 = r5;
0x0000f736 mov r5, r6 | r5 = r6;
0x0000f738 blx 0x5dec | unit_file_state_to_string ();
0x0000f73c str r0, [sp, 0x74] | var_74h = r0;
| if (r7 == 0) {
| label_1:
0x0000f73e cbz r7, 0xf74c | goto label_29;
| }
0x0000f740 mov r0, r7 | r0 = r7;
0x0000f742 blx 0x5dec | unit_file_state_to_string ();
0x0000f746 b 0xf74c |
| while (r0 != 0) {
0x0000f748 blx 0x582c | fcn_0000582c ();
| label_29:
0x0000f74c movs r2, 0 | r2 = 0;
0x0000f74e movs r1, 1 | r1 = 1;
0x0000f750 mov r0, r5 | r0 = r5;
0x0000f752 blx 0x5b4c | r0 = dirname_malloc ();
0x0000f756 mov r2, r0 | r2 = r0;
0x0000f758 cmp r0, 0 |
0x0000f75a bne 0xf748 |
| }
0x0000f75c mov r1, r0 | r1 = r0;
0x0000f75e mov r0, r5 | r0 = r5;
0x0000f760 blx 0x648c | fcn_0000648c ();
0x0000f764 ldr.w r2, [pc, 0x478] | r2 = *(0x0000fbe0);
0x0000f768 ldr.w r3, [pc, 0x438] | r3 = *(0xfba4);
0x0000f76c add r2, pc | r2 += pc;
0x0000f76e ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x0000f770 ldr r2, [r3] | r2 = *(0xfba4);
0x0000f772 ldr r3, [sp, 0xd4] | r3 = var_d4h;
0x0000f774 eors r2, r3 | r2 ^= r3;
0x0000f776 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0000f77a bne.w 0xfb92 | goto label_30;
| }
0x0000f77e mov r0, r4 | r0 = r4;
0x0000f780 add sp, 0xdc |
0x0000f782 vpop {d8} | __asm ("vpop {d8}");
0x0000f786 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_17:
0x0000f78a ldr.w sb, [sp, 0x7c] | sb = var_7ch;
0x0000f78e mov r4, r5 | r4 = r5;
0x0000f790 ldrd r6, r7, [sp, 0x6c] | __asm ("ldrd r6, r7, [var_6ch]");
| label_2:
0x0000f794 mov r0, sb | r0 = sb;
0x0000f796 blx 0x5be4 | fcn_00005be4 ();
0x0000f79a ldr r0, [sp, 0x78] | r0 = var_78h;
0x0000f79c blx 0x5be4 | fcn_00005be4 ();
0x0000f7a0 ldr r5, [sp, 0x74] | r5 = var_74h;
0x0000f7a2 movs r3, 0 | r3 = 0;
0x0000f7a4 str r3, [sp, 0x78] | var_78h = r3;
0x0000f7a6 cmp r5, 0 |
| if (r5 != 0) {
0x0000f7a8 bne 0xf734 | goto label_0;
| }
0x0000f7aa mov r5, r6 | r5 = r6;
0x0000f7ac b 0xf73e | goto label_1;
| label_16:
0x0000f7ae ldr r5, [sp, 0x78] | r5 = var_78h;
0x0000f7b0 movs r3, 0 | r3 = 0;
0x0000f7b2 str r3, [sp, 0x54] | var_54h = r3;
0x0000f7b4 str r3, [sp, 0x50] | nmemb = r3;
0x0000f7b6 str r3, [sp, 0x58] | var_58h = r3;
| label_12:
0x0000f7b8 ldr.w r3, [pc, 0x428] |
0x0000f7bc movs r6, 0 | r6 = 0;
0x0000f7be ldr.w r2, [pc, 0x428] |
0x0000f7c2 ldr.w r1, [pc, 0x428] |
0x0000f7c6 add r3, pc | r3 = 0x1f3ae;
0x0000f7c8 ldr.w r0, [pc, 0x424] |
0x0000f7cc str r3, [sp, 4] | var_4h = r3;
0x0000f7ce add r2, pc | r2 = 0x1f3bc;
0x0000f7d0 ldr.w r3, [pc, 0x420] |
0x0000f7d4 add r1, pc | r1 = 0x1f3c6;
0x0000f7d6 add r0, pc | r0 = 0x1f3ca;
0x0000f7d8 str r6, [sp, 8] | var_8h = r6;
0x0000f7da add r3, pc | r3 = 0x1f3d2;
0x0000f7dc str r3, [sp] | *(sp) = r3;
0x0000f7de ldr.w r3, [pc, 0x418] |
0x0000f7e2 add r3, pc | r3 = 0x1f3e0;
0x0000f7e4 blx 0x61d4 | r0 = fcn_000061d4 ();
0x0000f7e8 mov sb, r0 | sb = r0;
0x0000f7ea cmp r0, 0 |
| if (r0 == 0) {
0x0000f7ec beq.w 0xfaee | goto label_31;
| }
0x0000f7f0 ldr.w r3, [pc, 0x408] | r3 = *(0xfbfc);
0x0000f7f4 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x0000f7f8 ldr r1, [r3] | r1 = *(0xfbfc);
0x0000f7fa str r3, [sp, 0x60] | var_60h = r3;
0x0000f7fc subs r1, 0 |
0x0000f7fe it ne |
| if (r1 == 0) {
0x0000f800 movne r1, 1 | r1 = 1;
| }
0x0000f802 blx 0x6330 | fcn_00006330 ();
0x0000f804 vldr d4, [r6, 0x3f8] | __asm ("vldr d4, [r6, 0x3f8]");
0x0000f808 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x0000f80c ldrb r3, [r3] | r3 = *(r3);
0x0000f80e cmp r3, 0 |
| if (r3 != 0) {
0x0000f810 bne.w 0xfa26 | goto label_32;
| }
| label_6:
0x0000f814 ldr r3, [sp, 0x58] | r3 = var_58h;
0x0000f816 mov r0, sb | r0 = sb;
0x0000f818 ldr r1, [pc, 0x3e8] |
0x0000f81a add.w r3, r5, r3, lsl 5 | r3 = r5 + (r3 << 5);
0x0000f81e add r1, pc | r1 = 0x1f426;
0x0000f820 mov r6, r3 | r6 = r3;
0x0000f822 str r3, [sp, 0x4c] | var_4ch = r3;
0x0000f824 blx 0x57b4 | fcn_000057b4 ();
0x0000f828 cmp r6, r5 |
| if (r6 < r5) {
0x0000f82a bls.w 0xfa36 | goto label_33;
| }
0x0000f82e ldr r3, [pc, 0x3d8] |
0x0000f830 ldr.w sl, [pc, 0x3d8] |
0x0000f834 str r4, [sp, 0x5c] | var_5ch = r4;
0x0000f836 add r3, pc | r3 = 0x1f444;
0x0000f838 str.w fp, [sp, 0x64] | __asm ("str.w fp, [var_64h]");
0x0000f83c add sl, pc | sl = "editor";
0x0000f83e mov r8, r3 | r8 = r3;
0x0000f840 b 0xf89e |
| while (r0 != 0) {
0x0000f842 ldrd r2, r3, [r5, 8] | __asm ("ldrd r2, r3, [r5, 8]");
0x0000f846 mov.w lr, 1 | lr = 1;
0x0000f84a vldr d16, [r5, 0x10] | __asm ("vldr d16, [r5, 0x10]");
0x0000f84e mov.w ip, 8 |
0x0000f852 movs r1, 6 | r1 = 6;
0x0000f854 mov.w fp, 0x21 |
0x0000f858 mov r0, sb | r0 = sb;
0x0000f85a str.w fp, [sp, 0x40] | __asm ("str.w fp, [var_40h]");
0x0000f85c add sp, 0x100 |
0x0000f85e str r7, [sp, 0x34] | var_34h = r7;
0x0000f860 str r1, [sp, 0x10] | var_10h = r1;
0x0000f862 strd lr, r6, [sp, 0x38] | __asm ("strd lr, r6, [var_38h]");
0x0000f866 str.w lr, [sp, 0x30] | __asm ("str.w lr, [var_30h]");
0x0000f86a vstr d16, [sp, 0x28] | __asm ("vstr d16, [sp, 0x28]");
0x0000f86e vstr d16, [sp, 0x18] | __asm ("vstr d16, [sp, 0x18]");
0x0000f872 str.w ip, [sp, 0x20] | __asm ("str.w ip, [var_20h]");
0x0000f876 str.w ip, [sp] | __asm ("str.w ip, [sp]");
0x0000f87a strd r2, r3, [sp, 8] | __asm ("strd r2, r3, [var_8h]");
0x0000f87e blx 0x5f30 | r0 = boot_entries_load_config_auto ();
0x0000f882 cmp r0, 0 |
| if (r0 < 0) {
0x0000f884 blt.w 0xfaa8 | goto label_34;
| }
0x0000f888 mov r0, r6 | r0 = r6;
0x0000f88a adds r5, 0x20 | r5 += 0x20;
0x0000f88c blx 0x5be4 | fcn_00005be4 ();
0x0000f890 mov r0, r4 | r0 = r4;
0x0000f892 blx 0x5be4 | fcn_00005be4 ();
0x0000f896 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x0000f898 cmp r3, r5 |
| if (r3 < r5) {
0x0000f89a bls.w 0xfa30 | goto label_35;
| }
0x0000f89e ldrd r4, r7, [r5] | __asm ("ldrd r4, r7, [r5]");
| if (r4 != 0) {
0x0000f8a2 cbz r4, 0xf8ba |
0x0000f8a4 mov r2, r7 | r2 = r7;
0x0000f8a6 mov r0, r4 | r0 = r4;
0x0000f8a8 movs r3, 0 | r3 = 0;
0x0000f8aa mov r1, r8 | r1 = r8;
0x0000f8ac blx 0x5ab0 | r0 = execvp ();
0x0000f8b0 mov r7, r0 | r7 = r0;
0x0000f8b2 cmp r0, 0 |
| if (r0 == 0) {
0x0000f8b4 beq.w 0xfb08 | goto label_36;
| }
0x0000f8b8 mov r4, r0 | r4 = r0;
| }
0x0000f8ba movs r3, 0 | r3 = 0;
0x0000f8bc ldr r0, [r5, 0x18] | r0 = *((r5 + 0x18));
0x0000f8be mov r2, r3 | r2 = r3;
0x0000f8c0 mov r1, sl | r1 = sl;
0x0000f8c2 blx 0x576c | r0 = fcn_0000576c ();
0x0000f8c6 mov r6, r0 | r6 = r0;
0x0000f8c8 cmp r0, 0 |
0x0000f8ca bne 0xf842 |
| }
0x0000f8cc ldr r1, [pc, 0x340] |
0x0000f8ce mov.w r2, 0x278 | r2 = 0x278;
0x0000f8d2 ldr r3, [pc, 0x340] |
0x0000f8d4 movs r0, 3 | r0 = 3;
0x0000f8d6 mov r8, r4 | r8 = r4;
0x0000f8d8 ldr r4, [sp, 0x5c] | r4 = var_5ch;
0x0000f8da add r1, pc | r1 = 0x1f4ee;
0x0000f8dc adds r1, 7 | r1 += 7;
0x0000f8de add r3, pc | r3 = 0x1f4f8;
0x0000f8e0 blx 0x65cc | fflush_and_check ();
| label_8:
0x0000f8e4 mov r0, r6 | r0 = r6;
0x0000f8e6 blx 0x5be4 | fcn_00005be4 ();
0x0000f8ea mov r0, r8 | r0 = r8;
0x0000f8ec blx 0x5be4 | fcn_00005be4 ();
| label_7:
0x0000f8f0 mov r0, sb | r0 = sb;
0x0000f8f2 blx 0x5b04 | sd_bus_message_read ();
0x0000f8f6 ldr.w sb, [sp, 0x7c] | sb = var_7ch;
| label_3:
0x0000f8fa ldr r5, [sp, 0x78] | r5 = var_78h;
0x0000f8fc ldr r2, [sp, 0x54] | r2 = var_54h;
0x0000f8fe ldrd r6, r7, [sp, 0x6c] | __asm ("ldrd r6, r7, [var_6ch]");
0x0000f902 adds r3, r5, r2 | r3 = r5 + r2;
0x0000f904 cmp r5, r3 |
| if (r5 >= r3) {
0x0000f906 bhs.w 0xf794 | goto label_2;
| }
0x0000f90a mov r8, r2 | r8 = r2;
| do {
0x0000f90c ldr r0, [r5, 0x18] | r0 = *((r5 + 0x18));
0x0000f90e adds r5, 0x20 | r5 += 0x20;
0x0000f910 blx 0x5dec | unit_file_state_to_string ();
0x0000f914 ldr r3, [sp, 0x78] | r3 = var_78h;
0x0000f916 add r3, r8 | r3 += r8;
0x0000f918 cmp r5, r3 |
0x0000f91a blo 0xf90c |
| } while (r5 <= r3);
0x0000f91c b 0xf794 | goto label_2;
| label_21:
0x0000f91e str r1, [sp, 0x4c] | var_4ch = r1;
0x0000f920 mov r5, sb | r5 = sb;
0x0000f922 blx 0x5934 | fcn_00005934 ();
0x0000f926 ldr r1, [sp, 0x4c] | r1 = var_4ch;
0x0000f928 cmp r0, 2 |
0x0000f92a ldr.w sb, [sp, 0x5c] | sb = var_5ch;
0x0000f92e ittt le |
| if (r0 <= 2) {
0x0000f930 rsble r4, r1, 0 | __asm ("rsble r4, r1, 0");
| }
| if (r0 <= 2) {
0x0000f932 uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x0000f934 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 > 2) {
0x0000f936 bgt 0xf9d0 | goto label_37;
| }
| label_5:
0x0000f938 ldr r3, [sp, 0x50] | r3 = nmemb;
0x0000f93a cmp r4, 0 |
0x0000f93c mov r0, r5 | r0 = r5;
0x0000f93e lsl.w r5, r3, 5 | r5 = r3 << 5;
| if (r4 < 0) {
0x0000f942 blt.w 0xfb78 | goto label_38;
| }
0x0000f946 mvn r4, 0x55 | r4 = ~0x55;
0x0000f94a blx 0x6024 | fcn_00006024 ();
| label_10:
0x0000f94e ldr r0, [sp, 0x84] | r0 = var_84h;
| if (r0 != 0) {
0x0000f950 cbz r0, 0xf956 |
0x0000f952 blx 0x5dec | unit_file_state_to_string ();
| }
0x0000f956 str r5, [sp, 0x54] | var_54h = r5;
0x0000f958 b 0xf8fa | goto label_3;
| label_25:
0x0000f95a blx 0x5934 | r0 = fcn_00005934 ();
0x0000f95e cmp r0, 2 |
| if (r0 <= 2) {
0x0000f960 ble.w 0xf668 | goto label_4;
| }
0x0000f964 mov r1, r5 | r1 = r5;
0x0000f966 mov r0, r4 | r0 = r4;
0x0000f968 blx 0x566c | bus_error_message ();
0x0000f96c ldr r3, [pc, 0x2a8] |
0x0000f96e mov r1, r5 | r1 = r5;
0x0000f970 str r0, [sp, 8] | var_8h = r0;
0x0000f972 movs r0, 3 | r0 = 3;
0x0000f974 ldr r2, [sp, 0x60] | r2 = var_60h;
0x0000f976 add r3, pc | r3 = 0x1f592;
0x0000f978 str r3, [sp, 4] | var_4h = r3;
0x0000f97a ldr r3, [pc, 0x2a0] |
0x0000f97c add r3, pc | r3 = 0x1f59e;
0x0000f97e str r3, [sp] | *(sp) = r3;
0x0000f980 movw r3, 0x23b | r3 = 0x23b;
0x0000f984 blx 0x61a4 | fcn_000061a4 ();
0x0000f988 b 0xf668 | goto label_4;
| label_22:
0x0000f98a blx 0x5934 | r0 = fcn_00005934 ();
0x0000f98e cmp r0, 2 |
0x0000f990 mov r5, sb | r5 = sb;
0x0000f992 it le |
| if (r0 <= 2) {
0x0000f994 rsble r4, r8, 0 | __asm ("rsble r4, r8, 0");
| }
0x0000f998 ldr.w sb, [sp, 0x5c] | sb = var_5ch;
0x0000f99c itt le |
| if (r0 <= 2) {
0x0000f99e uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 > 2) {
0x0000f9a0 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| goto label_39;
| }
| if (r0 <= 2) {
| label_39:
0x0000f9a2 ble 0xf938 | goto label_5;
| }
0x0000f9a4 mov r1, r8 | r1 = r8;
0x0000f9a6 mov r0, r5 | r0 = r5;
0x0000f9a8 blx 0x566c | bus_error_message ();
0x0000f9ac ldr r3, [pc, 0x270] |
0x0000f9ae mov r1, r8 | r1 = r8;
0x0000f9b0 ldr r2, [pc, 0x270] |
0x0000f9b2 str r0, [sp, 8] | var_8h = r0;
0x0000f9b4 movs r0, 3 | r0 = 3;
0x0000f9b6 add r3, pc | r3 = 0x1f5da;
0x0000f9b8 str r3, [sp, 4] | var_4h = r3;
0x0000f9ba add r2, pc | r2 = 0x1f5e2;
0x0000f9bc ldr r3, [pc, 0x268] |
0x0000f9be adds r2, 7 | r2 += 7;
0x0000f9c0 add r3, pc | r3 = 0x1f5ec;
0x0000f9c2 str r3, [sp] | *(sp) = r3;
0x0000f9c4 movw r3, 0x21f | r3 = 0x21f;
0x0000f9c8 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000f9cc mov r4, r0 | r4 = r0;
0x0000f9ce b 0xf938 | goto label_5;
| label_37:
0x0000f9d0 mov r0, r5 | r0 = r5;
0x0000f9d2 blx 0x566c | bus_error_message ();
0x0000f9d6 ldr r3, [pc, 0x254] |
0x0000f9d8 ldr r2, [pc, 0x254] |
0x0000f9da str r0, [sp, 8] | var_8h = r0;
0x0000f9dc movs r0, 3 | r0 = 3;
0x0000f9de add r3, pc | r3 = 0x1f610;
0x0000f9e0 ldr r1, [sp, 0x4c] | r1 = var_4ch;
0x0000f9e2 str r3, [sp, 4] | var_4h = r3;
0x0000f9e4 add r2, pc | r2 = 0x1f618;
0x0000f9e6 ldr r3, [pc, 0x24c] |
0x0000f9e8 adds r2, 7 | r2 += 7;
0x0000f9ea add r3, pc | r3 = 0x1f624;
0x0000f9ec str r3, [sp] | *(sp) = r3;
0x0000f9ee movw r3, 0x213 | r3 = 0x213;
0x0000f9f2 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0000f9f6 mov r4, r0 | r4 = r0;
0x0000f9f8 b 0xf938 | goto label_5;
| label_19:
0x0000f9fa ldr r1, [pc, 0x23c] |
0x0000f9fc movw r2, 0x205 | r2 = 0x205;
0x0000fa00 ldr r3, [pc, 0x238] |
0x0000fa02 ldr r0, [pc, 0x23c] |
0x0000fa04 add r1, pc | r1 = 0x1f642;
0x0000fa06 add r3, pc | r3 = 0x1f646;
0x0000fa08 adds r1, 7 | r1 += 7;
0x0000fa0a add r0, pc | r0 = 0x1f650;
0x0000fa0c blx 0x5e40 | unit_file_get_default ();
| label_20:
0x0000fa10 ldr r1, [pc, 0x230] |
0x0000fa12 movw r2, 0x206 | r2 = 0x206;
0x0000fa16 ldr r3, [pc, 0x230] |
0x0000fa18 ldr r0, [pc, 0x230] |
0x0000fa1a add r1, pc | r1 = 0x1f662;
0x0000fa1c add r3, pc | r3 = 0x1f66a;
0x0000fa1e adds r1, 7 | r1 += 7;
0x0000fa20 add r0, pc | r0 = 0x1f670;
0x0000fa22 blx 0x5e40 | unit_file_get_default ();
| label_32:
0x0000fa26 mov r1, r6 | r1 = r6;
0x0000fa28 mov r0, sb | r0 = sb;
0x0000fa2a blx 0x58d4 | fcn_000058d4 ();
0x0000fa2e b 0xf814 | goto label_6;
| label_35:
0x0000fa30 ldr r4, [sp, 0x5c] | r4 = var_5ch;
0x0000fa32 ldr.w fp, [sp, 0x64] | fp = var_64h;
| label_33:
0x0000fa36 ldr r3, [sp, 0x50] | r3 = nmemb;
0x0000fa38 cmp r3, 0 |
| if (r3 == 0) {
0x0000fa3a beq 0xfb24 | goto label_40;
| }
0x0000fa3c blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000fa40 cmp r0, 0 |
| if (r0 != 0) {
0x0000fa42 bne 0xfb44 | goto label_41;
| }
0x0000fa44 ldr r5, [pc, 0x208] |
0x0000fa46 add r5, pc | r5 = 0x1f69a;
| label_11:
0x0000fa48 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0000fa4c cmp r0, 0 |
| if (r0 != 0) {
0x0000fa4e bne 0xfb4a | goto label_42;
| }
0x0000fa50 ldr r6, [pc, 0x200] |
0x0000fa52 add r6, pc | r6 = 0x1f6aa;
| label_9:
0x0000fa54 mov r0, sb | r0 = sb;
0x0000fa56 bl 0x1c208 | r0 = fcn_0001c208 (r0);
0x0000fa5a cmp r0, 0 |
| if (r0 < 0) {
0x0000fa5c blt.w 0xf8f0 | goto label_7;
| }
0x0000fa60 ldr r3, [sp, 0x60] | r3 = var_60h;
0x0000fa62 ldr r3, [r3] | r3 = *(r3);
0x0000fa64 cmp r3, 0 |
| if (r3 == 0) {
0x0000fa66 beq.w 0xf8f0 | goto label_7;
| }
0x0000fa6a ldr r1, [pc, 0x1ec] |
0x0000fa6c mov r2, r5 | r2 = r5;
0x0000fa6e ldr r3, [sp, 0x58] | r3 = var_58h;
0x0000fa70 movs r0, 1 | r0 = 1;
0x0000fa72 str r6, [sp] | *(sp) = r6;
0x0000fa74 add r1, pc | r1 = 0x1f6d2;
0x0000fa76 blx 0x59a0 | fcn_000059a0 ();
0x0000fa7a ldr r3, [pc, 0x1e0] | r3 = *(0xfc5e);
0x0000fa7c ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x0000fa80 ldrb r3, [r3] | r3 = *(r3);
0x0000fa82 cmp r3, 0 |
| if (r3 != 0) {
0x0000fa84 bne.w 0xf8f0 | goto label_7;
| }
0x0000fa88 ldr r0, [pc, 0x1d4] |
0x0000fa8a add r0, pc | r0 = 0x1f6ee;
0x0000fa8c blx 0x62a0 | fcn_000062a0 ();
0x0000fa90 b 0xf8f0 | goto label_7;
| label_23:
0x0000fa92 ldr r1, [pc, 0x1d0] |
0x0000fa94 movw r2, 0x22d | r2 = 0x22d;
0x0000fa98 ldr r3, [pc, 0x1cc] |
0x0000fa9a ldr r0, [pc, 0x1d0] |
0x0000fa9c add r1, pc | r1 = 0x1f706;
0x0000fa9e add r3, pc | r3 = 0x1f70a;
0x0000faa0 adds r1, 7 | r1 += 7;
0x0000faa2 add r0, pc | r0 = 0x1f714;
0x0000faa4 blx 0x5e40 | r0 = unit_file_get_default ();
| label_34:
0x0000faa8 mov r7, r0 | r7 = r0;
0x0000faaa mov r8, r4 | r8 = r4;
0x0000faac blx 0x5934 | r0 = fcn_00005934 ();
0x0000fab0 cmp r0, 2 |
0x0000fab2 ldr r4, [sp, 0x5c] | r4 = var_5ch;
| if (r0 <= 2) {
0x0000fab4 ble.w 0xf8e4 | goto label_8;
| }
0x0000fab8 ldr r3, [pc, 0x1b4] |
0x0000faba mov r1, r7 | r1 = r7;
0x0000fabc ldr r2, [pc, 0x1b4] |
0x0000fabe movs r0, 3 | r0 = 3;
0x0000fac0 add r3, pc | r3 = "\n\n### %s";
0x0000fac2 str r3, [sp, 4] | var_4h = r3;
0x0000fac4 add r2, pc | r2 = 0x1f73c;
0x0000fac6 ldr r3, [pc, 0x1b0] |
0x0000fac8 adds r2, 7 | r2 += 7;
0x0000faca add r3, pc | r3 = 0x1f748;
0x0000facc str r3, [sp] | *(sp) = r3;
0x0000face movw r3, 0x282 | r3 = 0x282;
0x0000fad2 blx 0x61a4 | fcn_000061a4 ();
0x0000fad4 sbc.w r7, r8, r5, lsl 24 | __asm ("sbc.w r7, r8, r5, lsl 24");
| label_24:
0x0000fad8 ldr r1, [pc, 0x1a0] |
0x0000fada movw r2, 0x22e | r2 = 0x22e;
0x0000fade ldr r3, [pc, 0x1a0] |
0x0000fae0 ldr r0, [pc, 0x1a0] |
0x0000fae2 add r1, pc | r1 = 0x1f762;
0x0000fae4 add r3, pc | r3 = 0x1f76a;
0x0000fae6 adds r1, 7 | r1 += 7;
0x0000fae8 add r0, pc | r0 = 0x1f770;
0x0000faea blx 0x5e40 | unit_file_get_default ();
| label_31:
0x0000faee ldr r1, [pc, 0x198] |
0x0000faf0 movw r2, 0x262 | r2 = 0x262;
0x0000faf4 ldr r3, [pc, 0x194] |
0x0000faf6 movs r0, 3 | r0 = 3;
0x0000faf8 add r1, pc | r1 = 0x1f786;
0x0000fafa add r3, pc | r3 = 0x1f78a;
0x0000fafc adds r1, 7 | r1 += 7;
0x0000fafe blx 0x65cc | fflush_and_check ();
0x0000fb02 ldr.w sb, [sp, 0x7c] | sb = var_7ch;
0x0000fb06 b 0xf8fa | goto label_3;
| label_36:
0x0000fb08 ldr r1, [pc, 0x184] |
0x0000fb0a mov r6, r0 | r6 = r0;
0x0000fb0c ldr r3, [pc, 0x184] |
0x0000fb0e movw r2, 0x271 | r2 = 0x271;
0x0000fb12 movs r0, 3 | r0 = 3;
0x0000fb14 ldr r4, [sp, 0x5c] | r4 = var_5ch;
0x0000fb16 add r1, pc | r1 = 0x1f7aa;
0x0000fb18 mov r8, r7 | r8 = r7;
0x0000fb1a adds r1, 7 | r1 += 7;
0x0000fb1c add r3, pc | r3 = "Failed to determine unit paths: %m";
0x0000fb1e blx 0x65cc | fflush_and_check ();
0x0000fb20 ldcl p6, c14, [r6, -0x37c] | __asm ("ldcl p6, c14, [r6, -0x37c]");
| label_40:
0x0000fb24 blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 != 0) {
0x0000fb28 cbnz r0, 0xfb56 | goto label_43;
| }
0x0000fb2a ldr r5, [pc, 0x16c] |
0x0000fb2c add r5, pc | r5 = 0x1f7ca;
| do {
0x0000fb2e blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 == 0) {
0x0000fb32 cbnz r0, 0xfb50 |
0x0000fb34 ldr r6, [pc, 0x164] |
0x0000fb36 add r6, pc | r6 = 0x1f7d6;
0x0000fb38 b 0xfa54 | goto label_9;
| label_18:
0x0000fb3a ldr r3, [sp, 0x50] | r3 = nmemb;
0x0000fb3c ldr.w sb, [sp, 0x5c] | sb = var_5ch;
0x0000fb40 lsls r5, r3, 5 | r5 = r3 << 5;
0x0000fb42 b 0xf94e | goto label_10;
| label_41:
0x0000fb44 ldr r5, [pc, 0x158] |
0x0000fb46 add r5, pc | r5 = 0x1f7ea;
0x0000fb48 b 0xfa48 | goto label_11;
| label_42:
0x0000fb4a ldr r6, [pc, 0x158] |
0x0000fb4c add r6, pc | r6 = 0x1f7f6;
0x0000fb4e b 0xfa54 | goto label_9;
| }
0x0000fb50 ldr r6, [pc, 0x154] |
0x0000fb52 add r6, pc | r6 = 0x1f7fe;
0x0000fb54 b 0xfa54 | goto label_9;
| label_43:
0x0000fb56 ldr r5, [pc, 0x154] |
0x0000fb58 add r5, pc | r5 = 0x1f80a;
0x0000fb5a b 0xfb2e |
| } while (1);
| label_26:
0x0000fb5c ldr r1, [pc, 0x150] |
0x0000fb5e movw r2, 0x2e2 | r2 = 0x2e2;
0x0000fb62 ldr r3, [pc, 0x150] |
0x0000fb64 movs r0, 3 | r0 = 3;
0x0000fb66 ldr.w sb, [sp, 0x5c] | sb = var_5ch;
0x0000fb6a add r1, pc | r1 = 0x1f81e;
0x0000fb6c add r3, pc | r3 = 0x1f826;
0x0000fb6e adds r1, 7 | r1 += 7;
0x0000fb70 blx 0x65cc | r0 = fflush_and_check ();
0x0000fb74 mov r4, r0 | r4 = r0;
0x0000fb76 b 0xf94e | goto label_10;
| label_38:
0x0000fb78 blx 0x6024 | fcn_00006024 ();
0x0000fb7c b 0xf94e | goto label_10;
| label_27:
0x0000fb7e ldr r1, [pc, 0x138] |
0x0000fb80 movs r2, 0x2e | r2 = 0x2e;
0x0000fb82 ldr r3, [pc, 0x138] |
0x0000fb84 ldr r0, [pc, 0x138] |
0x0000fb86 add r1, pc | r1 = 0x1f844;
0x0000fb88 add r3, pc | r3 = 0x1f84a;
0x0000fb8a adds r1, 7 | r1 += 7;
0x0000fb8c add r0, pc | r0 = 0x1f850;
0x0000fb8e blx 0x5e40 | unit_file_get_default ();
| label_30:
0x0000fb92 blx 0x6114 | fcn_00006114 ();
| label_28:
0x0000fb96 ldr r3, [sp, 0x50] | r3 = nmemb;
0x0000fb98 lsls r3, r3, 5 | r3 <<= 5;
0x0000fb9a str r3, [sp, 0x54] | var_54h = r3;
0x0000fb9c b 0xf7b8 | goto label_12;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/systemctl @ 0x1236c */
| #include <stdint.h>
|
; (fcn) fcn.0001236c () | void fcn_0001236c () {
0x0001236c push {r4, r5, r6, lr} |
0x0001236e ldr r5, [pc, 0x48] |
0x00012370 ldr r2, [pc, 0x48] | r2 = *(0x123bc);
0x00012372 ldr r3, [pc, 0x4c] | r3 = *(0x123c2);
0x00012374 add r5, pc | r5 = 0x24732;
0x00012376 ldr r1, [r5, r2] | r1 = *(0x24732);
0x00012378 ldr r2, [r5, r3] | r2 = *(0x24732);
0x0001237a ldrb r3, [r1] | r3 = *(r1);
0x0001237c ldr r4, [r2] | r4 = *(0x24732);
0x0001237e ubfx r4, r4, 1, 1 | r4 = (r4 >> 1) & ((1 << 1) - 1);
0x00012382 cbz r3, 0x123a6 |
| while (r0 == 0) {
0x00012384 movs r6, 4 | r6 = 4;
| label_0:
0x00012386 blx 0x5e88 | strcpy (r0, r1)
0x0001238a ldr r3, [pc, 0x38] | r3 = *(0x123c6);
0x0001238c subs r0, 0 |
0x0001238e it ne |
| if (r0 == 0) {
0x00012390 movne r0, 1 | r0 = 1;
| }
0x00012392 ldr r3, [r5, r3] | r3 = *((r5 + r3));
0x00012394 ldrb r3, [r3] | r3 = *(r3);
0x00012396 eor r3, r3, 1 | r3 ^= 1;
0x0001239a orr.w r4, r4, r3, lsl 1 | r4 |= (r3 << 1);
0x0001239c lsls r3, r0, 0x11 | r3 = r0 << 0x11;
0x0001239e orrs r4, r6 | r4 |= r6;
0x000123a0 orr.w r0, r4, r0, lsl 3 | r0 = r4 | (r0 << 3);
0x000123a4 pop {r4, r5, r6, pc} |
0x000123a6 blx 0x612c | r0 = fcn_0000612c ();
0x000123aa cmp r0, 0 |
0x000123ac beq 0x12384 |
| }
0x000123ae blx 0x6468 | r0 = fcn_00006468 ();
0x000123b2 lsls r6, r0, 2 | r6 = r0 << 2;
0x000123b4 b 0x12386 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/systemctl @ 0x12b24 */
| #include <stdint.h>
|
; (fcn) fcn.00012b24 () | void fcn_00012b24 (int16_t arg1, int16_t arg2, int16_t arg3) {
| int16_t var_0h;
| int16_t var_ch;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x00012b24 push {r4, r5, r6, lr} |
0x00012b26 mov r5, r2 | r5 = r2;
0x00012b28 ldr r2, [pc, 0xb8] |
0x00012b2a sub sp, 0x10 |
0x00012b2c mov r6, r1 | r6 = r1;
0x00012b2e ldr r3, [pc, 0xb8] | r3 = *(0x12bea);
0x00012b30 add r2, pc | r2 = 0x25718;
0x00012b32 ldr r3, [r2, r3] |
0x00012b34 ldr r3, [r3] | r3 = *(0x25718);
0x00012b36 str r3, [sp, 0xc] | var_ch = r3;
0x00012b38 mov.w r3, 0 | r3 = 0;
0x00012b3c cbnz r0, 0x12b5e |
| while (r0 == 0) {
0x00012b3e ldr r3, [pc, 0xac] |
0x00012b40 add r3, pc | r3 = 0x25732;
0x00012b42 str r3, [r5] | *(r5) = r3;
0x00012b44 str r3, [r6] | *(r6) = r3;
| label_0:
0x00012b46 ldr r2, [pc, 0xa8] |
0x00012b48 ldr r3, [pc, 0x9c] | r3 = *(0x12be8);
0x00012b4a add r2, pc | r2 = 0x25740;
0x00012b4c ldr r3, [r2, r3] | r3 = *(0x25740);
0x00012b4e ldr r2, [r3] | r2 = *(0x25740);
0x00012b50 ldr r3, [sp, 0xc] | r3 = var_ch;
0x00012b52 eors r2, r3 | r2 ^= r3;
0x00012b54 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00012b58 bne 0x12bde | goto label_3;
| }
0x00012b5a add sp, 0x10 |
0x00012b5c pop {r4, r5, r6, pc} |
0x00012b5e ldr r1, [pc, 0x94] |
0x00012b60 mov r4, r0 | r4 = r0;
0x00012b62 add r1, pc | r1 = 0x2575c;
0x00012b64 blx 0x655c | r0 = fcn_0000655c ();
| if (r0 == 0) {
0x00012b68 cbz r0, 0x12b9c | goto label_4;
| }
0x00012b6a ldr r3, [pc, 0x8c] |
0x00012b6c add r3, pc | r3 = 0x2576a;
0x00012b6e ldm.w r3, {r0, r1, r2} | r0 = *(r3);
| r1 = *((r3 + 4));
| r2 = *((r3 + 8));
0x00012b72 mov r3, sp | r3 = sp;
0x00012b74 stm.w r3, {r0, r1, r2} | *(r3) = r0;
| *((r3 + 4)) = r1;
| *((r3 + 8)) = r2;
0x00012b78 mov r1, r4 | r1 = r4;
0x00012b7a mov r0, r3 | r0 = r3;
0x00012b7c blx 0x6060 | r0 = fcn_00006060 ();
0x00012b7e orns r8, r0, r0, lsl 8 | __asm ("orns r8, r0, r0, lsl 8");
0x00012b82 beq 0x12b3e |
| }
0x00012b84 blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 == 0) {
0x00012b88 cbz r0, 0x12bca | goto label_5;
| }
0x00012b8a ldr r3, [pc, 0x70] |
0x00012b8c add r3, pc | r3 = 0x2578e;
0x00012b8e str r3, [r6] | *(r6) = r3;
0x00012b90 blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 != 0) {
0x00012b94 cbnz r0, 0x12bd8 | goto label_6;
| }
| label_2:
0x00012b96 ldr r3, [pc, 0x68] |
0x00012b98 add r3, pc | r3 = 0x2579e;
0x00012b9a b 0x12bb2 | goto label_1;
| label_4:
0x00012b9c blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 != 0) {
0x00012ba0 cbnz r0, 0x12bb6 | goto label_7;
| }
0x00012ba2 ldr r3, [pc, 0x60] |
0x00012ba4 add r3, pc | r3 = 0x257ae;
0x00012ba6 str r3, [r6] | *(r6) = r3;
0x00012ba8 blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 != 0) {
0x00012bac cbnz r0, 0x12bc4 | goto label_8;
| }
| do {
0x00012bae ldr r3, [pc, 0x58] |
0x00012bb0 add r3, pc | r3 = 0x257be;
| label_1:
0x00012bb2 str r3, [r5] | *(r5) = r3;
0x00012bb4 b 0x12b46 | goto label_0;
| label_7:
0x00012bb6 ldr r3, [pc, 0x54] |
0x00012bb8 add r3, pc | r3 = 0x257ca;
0x00012bba str r3, [r6] | *(r6) = r3;
0x00012bbc blx 0x5e88 | r0 = strcpy (r0, r1)
0x00012bc0 cmp r0, 0 |
0x00012bc2 beq 0x12bae |
| } while (r0 == 0);
| label_8:
0x00012bc4 ldr r3, [pc, 0x48] |
0x00012bc6 add r3, pc | r3 = 0x257da;
0x00012bc8 b 0x12bb2 | goto label_1;
| label_5:
0x00012bca ldr r3, [pc, 0x48] |
0x00012bcc add r3, pc | r3 = 0x257e6;
0x00012bce str r3, [r6] | *(r6) = r3;
0x00012bd0 blx 0x5e88 | r0 = strcpy (r0, r1)
0x00012bd4 cmp r0, 0 |
| if (r0 == 0) {
0x00012bd6 beq 0x12b96 | goto label_2;
| }
| label_6:
0x00012bd8 ldr r3, [pc, 0x3c] |
0x00012bda add r3, pc | r3 = 0x257f6;
0x00012bdc b 0x12bb2 | goto label_1;
| label_3:
0x00012bde blx 0x6114 | fcn_00006114 ();
0x00012be2 nop |
0x00012be4 ldrb r4, [r7, 0x18] | r4 = *((r7 + 0x18));
0x00012be6 movs r2, r0 | r2 = r0;
0x00012be8 lsls r0, r2, 0x18 | r0 = r2 << 0x18;
0x00012bea movs r0, r0 |
0x00012bec svc 0x78 | __asm ("svc 0x78");
0x00012bee movs r0, r0 |
0x00012bf0 ldrb r2, [r4, 0x18] | r2 = *((r4 + 0x18));
0x00012bf2 movs r2, r0 | r2 = r0;
0x00012bf4 udf 0xb6 | __asm ("udf 0xb6");
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/systemctl @ 0x12c1c */
| #include <stdint.h>
|
| #define SWAP32(n) ((uint32_t) (((n & 0x000000ff) << 24) | \
| ((n & 0x0000ff00) << 8) | \
| ((n & 0x00ff0000) >> 8) | \
| ((n & 0xff000000) >> 24)))
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.00012c1c () | void fcn_00012c1c (int16_t arg_244h, int16_t arg_254h, int16_t arg_27ch, int16_t arg_2a4h, int16_t arg_3a4h, int16_t arg_4a4h, int16_t arg1) {
| int16_t var_bp_0h;
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int32_t var_ch_2;
| int16_t var_14h;
| int32_t var_0h_2;
| int32_t var_8h_2;
| int16_t var_20h;
| int8_t var_14h_2;
| int8_t var_15h;
| int16_t var_2ch;
| int16_t var_30h;
| int16_t var_34h;
| int16_t var_38h;
| int32_t var_18h;
| int16_t var_40h;
| int16_t var_44h;
| int16_t var_48h;
| int16_t var_4ch;
| int16_t var_50h;
| int16_t var_54h;
| int32_t var_58h;
| int16_t var_5ch;
| int16_t var_68h;
| int16_t var_6ch;
| int16_t var_74h;
| int16_t var_78h;
| int16_t var_88h;
| int16_t var_98h;
| int32_t var_98h_2;
| int32_t var_a0h;
| int32_t var_a0h_2;
| int16_t var_16ch;
| r0 = arg1;
| if (? < ?) {
0x00012c1c eorhs r4, r0, 0x298000 | r4 = r0 ^ 0x298000;
| }
0x00012c20 ldr r3, [pc, 0x298] |
0x00012c22 push.w {r4, r5, r6, r7, r8, sb, lr} |
0x00012c26 sub sp, 0x174 |
0x00012c28 add r1, pc | r1 += pc;
0x00012c2a ldr.w r8, [pc, 0x294] |
0x00012c2e movs r4, 0 | r4 = 0;
0x00012c30 add r5, sp, 0x20 | r5 += var_20h;
0x00012c32 ldr r3, [r1, r3] | r3 = *((r1 + r3));
0x00012c34 add r6, sp, 0x14 | r6 += var_14h;
0x00012c36 mov sb, r0 | sb = r0;
0x00012c38 mov r0, r5 | r0 = r5;
0x00012c3a mov r1, r4 | r1 = r4;
0x00012c3c add r8, pc | r8 = 0x25b02;
0x00012c3e ldr r3, [r3] | r3 = *(0x12ebc);
0x00012c40 str r3, [sp, 0x16c] | var_16ch = r3;
0x00012c42 mov.w r3, 0 | r3 = 0;
0x00012c46 strd r4, r4, [r6] | __asm ("strd r4, r4, [r6]");
0x00012c4a str r4, [r6, 8] | var_8h_2 = r4;
0x00012c4c blx 0x5a68 | unit_load_state ();
0x00012c50 blx 0x6420 | r0 = fcn_00006420 ();
0x00012c54 mov r7, r0 | r7 = r0;
0x00012c56 cmp r0, 0 |
| if (r0 == 0) {
0x00012c58 beq.w 0x12e76 | goto label_68;
| }
0x00012c5a strh r5, [r1, 8] | *((r1 + 8)) = r5;
0x00012c5c ldr r3, [pc, 0x264] | r3 = *(0x12ec4);
0x00012c5e movs r2, 1 | r2 = 1;
0x00012c60 ldr r1, [pc, 0x264] |
0x00012c62 mov r0, sb | r0 = sb;
0x00012c64 ldr.w r3, [r8, r3] | r3 = *((r8 + r3));
0x00012c68 str r2, [sp] | *(sp) = r2;
0x00012c6a add r1, pc | r1 = 0x25b36;
0x00012c6c ldr r2, [pc, 0x25c] |
0x00012c6e strd r4, r5, [sp, 8] | __asm ("strd r4, r5, [var_8h]");
0x00012c72 str r6, [sp, 4] | var_4h = r6;
0x00012c74 add r2, pc | r2 = 0x25b44;
0x00012c76 blx 0x5c14 | r0 = fcn_00005c14 ();
0x00012c7a subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00012c7c blt.w 0x12dc4 | goto label_69;
| }
0x00012c80 ldr r4, [r5, 8] | r4 = var_14h_2;
0x00012c82 cbnz r4, 0x12caa |
| while (r0 != 0) {
0x00012c84 blx 0x5e88 | r0 = strcpy (r0, r1)
0x00012c88 cmp r0, 0 |
| if (r0 == 0) {
0x00012c8a beq.w 0x12e64 | goto label_70;
| }
0x00012c8e cmp r0, 0x10 |
| if (r0 != 0x10) {
0x00012c90 bne.w 0x12e0a | goto label_71;
| }
0x00012c94 ldr r4, [pc, 0x238] |
0x00012c96 add r4, pc | r4 = 0x25b6a;
| label_3:
0x00012c98 blx 0x5e88 | r0 = strcpy (r0, r1)
0x00012c9c cmp r0, 0 |
| if (r0 != 0) {
0x00012c9e bne.w 0x12e18 | goto label_72;
| }
0x00012ca0 strh r3, [r7, 4] | *((r7 + 4)) = r3;
| label_0:
0x00012ca2 ldr.w sb, [pc, 0x230] |
0x00012ca6 add sb, pc | sb = 0x25b80;
0x00012ca8 b 0x12ce6 | goto label_1;
0x00012caa ldr r1, [pc, 0x22c] |
0x00012cac mov r0, r4 | r0 = r4;
0x00012cae add r1, pc | r1 = 0x25b8c;
0x00012cb0 blx 0x655c | r0 = fcn_0000655c ();
0x00012cb4 cmp r0, 0 |
| if (r0 == 0) {
0x00012cb6 beq.w 0x12e4c | goto label_73;
| }
0x00012cba ldr r1, [pc, 0x220] |
0x00012cbc mov r0, r4 | r0 = r4;
0x00012cbe add r1, pc | r1 = 0x25ba0;
0x00012cc0 blx 0x655c | r0 = fcn_0000655c ();
0x00012cc4 cmp r0, 0 |
0x00012cc6 bne 0x12c84 |
| }
0x00012cc8 blx 0x5e88 | r0 = strcpy (r0, r1)
0x00012ccc cmp r0, 0 |
| if (r0 != 0) {
0x00012cce bne.w 0x12e96 | goto label_74;
| }
0x00012cd2 ldr r4, [pc, 0x20c] |
0x00012cd4 add r4, pc | r4 = 0x25bba;
| label_7:
0x00012cd6 blx 0x5e88 | r0 = strcpy (r0, r1)
0x00012cda cmp r0, 0 |
| if (r0 != 0) {
0x00012cdc bne.w 0x12e8e | goto label_75;
| }
0x00012ce0 ldr.w sb, [pc, 0x200] |
0x00012ce4 add sb, pc | sb = 0x25bcc;
| label_1:
0x00012ce6 movs r0, 5 | r0 = 5;
0x00012ce8 blx 0x6644 | sd_bus_message_close_container ();
0x00012cec ldr r2, [pc, 0x1f8] |
0x00012cee mov r3, r0 | r3 = r0;
0x00012cf0 ldr r1, [pc, 0x1f8] |
0x00012cf2 movs r0, 1 | r0 = 1;
0x00012cf4 ldr.w r2, [r8, r2] | r2 = *((r8 + r2));
0x00012cf8 str.w sb, [sp] | __asm ("str.w sb, [sp]");
0x00012cfc add r1, pc | r1 = 0x25bec;
0x00012cfe ldr r2, [r2] | r2 = *(0x12ee8);
0x00012d00 cmp r2, 0 |
0x00012d02 it eq |
| if (r2 != 0) {
0x00012d04 moveq r2, r7 | r2 = r7;
| }
0x00012d06 str r2, [sp, 4] | var_4h = r2;
0x00012d08 mov r2, r4 | r2 = r4;
0x00012d0a blx 0x59a0 | fcn_000059a0 ();
0x00012d0e ldr r3, [r5, 8] | r3 = var_14h_2;
0x00012d10 cmp r3, 0 |
| if (r3 == 0) {
0x00012d12 beq.w 0x12e70 | goto label_76;
| }
| label_5:
0x00012d16 ldr r1, [pc, 0x1d8] |
0x00012d18 mov r2, r4 | r2 = r4;
0x00012d1a movs r0, 1 | r0 = 1;
0x00012d1c str.w sb, [sp] | __asm ("str.w sb, [sp]");
0x00012d20 add r1, pc | r1 = 0x25c16;
0x00012d22 blx 0x59a0 | fcn_000059a0 ();
0x00012d26 ldr r1, [pc, 0x1cc] |
0x00012d28 movs r0, 1 | r0 = 1;
0x00012d2a ldr r2, [r5, 0x14] | r2 = var_34h;
0x00012d2c add r1, pc | r1 = 0x25c26;
0x00012d2e blx 0x59a0 | fcn_000059a0 ();
0x00012d32 ldr r1, [pc, 0x1c4] |
0x00012d34 movs r0, 1 | r0 = 1;
0x00012d36 ldr r2, [r5, 0x10] | r2 = var_30h;
0x00012d38 add r1, pc | r1 = 0x25c36;
0x00012d3a blx 0x59a0 | fcn_000059a0 ();
0x00012d3e ldr r3, [pc, 0x1bc] |
0x00012d40 movs r1, 0x26 | r1 = 0x26;
0x00012d42 add r0, sp, 0x44 | r0 += var_44h;
0x00012d44 ldr.w r3, [r8, r3] | r3 = *((r8 + r3));
0x00012d48 ldr r3, [r3] | r3 = *(0x12efe);
0x00012d4a str r3, [sp] | *(sp) = r3;
0x00012d4c ldrd r2, r3, [r5, 0x18] | __asm ("ldrd r2, r3, [var_38h]");
0x00012d50 blx 0x64bc | fcn_000064bc ();
0x00012d54 ldrd r2, r3, [r5, 0x18] | __asm ("ldrd r2, r3, [var_38h]");
0x00012d58 mov r4, r0 | r4 = r0;
0x00012d5a mov.w r1, 0x100 | r1 = 0x100;
0x00012d5e add r0, sp, 0x6c | r0 += var_6ch;
0x00012d60 blx 0x6210 | fcn_00006210 ();
0x00012d64 ldr r1, [pc, 0x198] |
0x00012d66 mov r3, r0 | r3 = r0;
0x00012d68 mov r2, r4 | r2 = r4;
0x00012d6a movs r0, 1 | r0 = 1;
0x00012d6c add r1, pc | r1 = 0x25c70;
0x00012d6e blx 0x59a0 | fcn_000059a0 ();
0x00012d72 ldr r2, [r5, 0xc] | r2 = var_2ch;
0x00012d74 cmp r2, 0 |
| if (r2 == 0) {
0x00012d76 beq 0x12e6a | goto label_77;
| }
| label_4:
0x00012d78 ldr r1, [pc, 0x188] |
0x00012d7a movs r0, 1 | r0 = 1;
0x00012d7c add r1, pc | r1 = 0x25c84;
0x00012d7e blx 0x59a0 | fcn_000059a0 ();
0x00012d82 ldr r3, [pc, 0x184] | r3 = *(0x12f0a);
0x00012d84 ldr.w r3, [r8, r3] | r3 = *((r8 + r3));
0x00012d88 ldr r4, [r3] | r4 = *(0x12f0a);
0x00012d8a bics r4, r4, 2 | __asm ("bics r4, r4, 2");
0x00012d8e it ne |
| if (r0 == 1) {
0x00012d90 movne r4, 0 | r4 = 0;
| }
| if (r0 == 1) {
0x00012d92 bne 0x12ddc |
0x00012d94 blx 0x6318 | fcn_00006318 ();
0x00012d98 ldr.w sb, [r5, 0xc] | sb = var_2ch;
0x00012d9c cmp r0, 0xb |
0x00012d9e ite hi |
| if (r0 <= 0xb) {
0x00012da0 subhi r8, r0, 0xb | r8 = r0 - 0xb;
| }
| if (r0 <= 0xb) {
0x00012da4 mov r8, r4 | r8 = r4;
| }
0x00012da6 cmp.w sb, 0 |
| if (sb == 0) {
0x00012daa beq 0x12eaa | goto label_78;
| }
| label_8:
0x00012dac bl 0x1236c | fcn_0001236c ();
0x00012db0 ldr r2, [pc, 0x158] |
0x00012db2 mov r3, r8 | r3 = r8;
0x00012db4 str r0, [sp] | *(sp) = r0;
0x00012db6 mov r1, sb | r1 = sb;
0x00012db8 ldr r0, [pc, 0x154] |
0x00012dba add r2, pc | r2 = 0x25cca;
0x00012dbc add r0, pc | r0 = 0x25cd0;
0x00012dbe blx 0x62d0 | fcn_000062d0 ();
0x00012dc2 b 0x12ddc | goto label_6;
| label_69:
0x00012dc4 blx 0x5934 | r0 = fcn_00005934 ();
0x00012dc8 cmp r0, 2 |
0x00012dca ittt le |
| if (r0 <= 2) {
0x00012dcc rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 <= 2) {
0x00012dce uxtble r4, r4 | __asm ("uxtble r4, r4");
| }
| if (r0 <= 2) {
0x00012dd0 rsble r4, r4, 0 | __asm ("rsble r4, r4, 0");
| }
| if (r0 > 2) {
0x00012dd2 bgt 0x12e20 | goto label_79;
| }
| label_2:
0x00012dd4 cmp r4, 0 |
0x00012dd6 it ge |
| if (r4 >= 0) {
0x00012dd8 mvnge r4, 0x55 | r4 = ~0x55;
| goto label_6;
| }
| }
| label_6:
0x00012ddc mov r0, r7 | r0 = r7;
0x00012dde blx 0x5be4 | fcn_00005be4 ();
0x00012de0 vmax.s8 d4, d2, d24 | __asm ("vmax.s8 d4, d2, d24");
0x00012de4 bl 0xc7d0 | fcn_0000c7d0 (r0, r1);
0x00012de8 mov r0, r6 | r0 = r6;
0x00012dea blx 0x6024 | fcn_00006024 ();
0x00012dee ldr r2, [pc, 0x124] |
0x00012df0 ldr r3, [pc, 0xc8] | r3 = *(0x12ebc);
0x00012df2 add r2, pc | r2 = 0x25d0c;
0x00012df4 ldr r3, [r2, r3] | r3 = *(0x25d0c);
0x00012df6 ldr r2, [r3] | r2 = *(0x25d0c);
0x00012df8 ldr r3, [sp, 0x16c] | r3 = var_16ch;
0x00012dfa eors r2, r3 | r2 ^= r3;
0x00012dfc mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00012e00 bne 0x12eb2 | goto label_80;
| }
0x00012e02 mov r0, r4 | r0 = r4;
0x00012e04 add sp, 0x174 |
0x00012e06 pop.w {r4, r5, r6, r7, r8, sb, pc} |
| label_71:
0x00012e0a ldr r4, [pc, 0x10c] |
0x00012e0c add r4, pc | r4 = 0x25d2a;
0x00012e0e blx 0x5e88 | r0 = strcpy (r0, r1)
0x00012e12 cmp r0, 0 |
| if (r0 == 0) {
0x00012e14 beq.w 0x12ca2 | goto label_0;
| }
0x00012e16 add r7, sp, 0x114 | r7 = sp + 0x114;
| label_72:
0x00012e18 ldr.w sb, [pc, 0x100] |
0x00012e1c add sb, pc | sb = 0x25d3c;
0x00012e1e b 0x12ce6 | goto label_1;
| label_79:
0x00012e20 mov r1, r4 | r1 = r4;
0x00012e22 mov r0, r6 | r0 = r6;
0x00012e24 blx 0x566c | bus_error_message ();
0x00012e28 ldr r3, [pc, 0xf4] |
0x00012e2a mov r1, r4 | r1 = r4;
0x00012e2c ldr r2, [pc, 0xf4] |
0x00012e2e str r0, [sp, 8] | var_8h = r0;
0x00012e30 movs r0, 3 | r0 = 3;
0x00012e32 add r3, pc | r3 = 0x25d56;
0x00012e34 str r3, [sp, 4] | var_4h = r3;
0x00012e36 add r2, pc | r2 = 0x25d5e;
0x00012e38 ldr r3, [pc, 0xec] |
0x00012e3a adds r2, 7 | r2 += 7;
0x00012e3c add r3, pc | r3 = 0x25d68;
0x00012e3e str r3, [sp] | *(sp) = r3;
0x00012e40 movw r3, 0x835 | r3 = 0x835;
0x00012e44 blx 0x61a4 | r0 = fcn_000061a4 ();
0x00012e48 mov r4, r0 | r4 = r0;
0x00012e4a b 0x12dd4 | goto label_2;
| label_73:
0x00012e4c blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 != 0) {
0x00012e50 cbnz r0, 0x12ea4 | goto label_81;
| }
0x00012e52 ldr r4, [pc, 0xd8] |
0x00012e54 add r4, pc | r4 = 0x25d86;
| do {
0x00012e56 blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 == 0) {
0x00012e5a cbnz r0, 0x12e9c |
0x00012e5c ldr.w sb, [pc, 0xd0] |
0x00012e60 add sb, pc | sb = 0x25d94;
0x00012e62 b 0x12ce6 | goto label_1;
| label_70:
0x00012e64 ldr r4, [pc, 0xcc] |
0x00012e66 add r4, pc | r4 = 0x25d9e;
0x00012e68 b 0x12c98 | goto label_3;
| label_77:
0x00012e6a ldr r2, [pc, 0xcc] | r2 = *(0x12f3a);
| label_9:
0x00012e6c add r2, pc | r2 += pc;
0x00012e6e b 0x12d78 | goto label_4;
| label_76:
0x00012e70 ldr r3, [pc, 0xc8] |
0x00012e72 add r3, pc | r3 = 0x25db2;
0x00012e74 b 0x12d16 | goto label_5;
| label_68:
0x00012e76 ldr r1, [pc, 0xc8] |
0x00012e78 movw r2, 0x829 | r2 = 0x829;
0x00012e7c ldr r3, [pc, 0xc4] |
0x00012e7e movs r0, 3 | r0 = 3;
0x00012e80 add r1, pc | r1 = 0x25dc6;
0x00012e82 add r3, pc | r3 = 0x25dca;
0x00012e84 adds r1, 7 | r1 += 7;
0x00012e86 blx 0x65cc | r0 = fflush_and_check ();
0x00012e8a mov r4, r0 | r4 = r0;
0x00012e8c b 0x12ddc | goto label_6;
| label_75:
0x00012e8e ldr.w sb, [pc, 0xb8] |
0x00012e92 add sb, pc | sb = 0x25de0;
0x00012e94 b 0x12ce6 | goto label_1;
| label_74:
0x00012e96 ldr r4, [pc, 0xb4] |
0x00012e98 add r4, pc | r4 = 0x25dea;
0x00012e9a b 0x12cd6 | goto label_7;
| }
0x00012e9c ldr.w sb, [pc, 0xb0] |
0x00012ea0 add sb, pc | sb = 0x25df4;
0x00012ea2 b 0x12ce6 | goto label_1;
| label_81:
0x00012ea4 ldr r4, [pc, 0xac] |
0x00012ea6 add r4, pc | r4 = 0x25dfe;
0x00012ea8 b 0x12e56 |
| } while (1);
| label_78:
0x00012eaa ldr.w sb, [pc, 0xac] |
0x00012eae add sb, pc | sb = 0x25e0c;
0x00012eb0 b 0x12dac | goto label_8;
| label_80:
0x00012eb2 blx 0x6114 | fcn_00006114 ();
0x00012eb6 nop |
0x00012eb8 ldrb r4, [r0, 0x15] | r4 = var_15h;
0x00012eba movs r2, r0 | r2 = r0;
0x00012ebc lsls r0, r2, 0x18 | r0 = r2 << 0x18;
0x00012ebe movs r0, r0 |
0x00012ec0 ldrb r0, [r6, 0x14] | r0 = var_14h_2;
0x00012ec2 movs r2, r0 | r2 = r0;
0x00012ec4 lsls r0, r3, 0x16 | r0 = r3 << 0x16;
0x00012ec6 movs r0, r0 |
| if (r0 <= r0) {
0x00012ec8 ble 0x12f18 | goto label_82;
| }
0x00012eca movs r0, r0 |
| if (r0 > r0) {
0x00012ecc ble 0x12ed0 |
0x00012ece movs r0, r0 |
| }
| if (r0 <= r0) {
0x00012ed0 ble 0x12f30 | goto label_83;
| }
0x00012ed2 movs r0, r0 |
0x00012ed4 udf 0x12 | __asm ("udf 0x12");
| if (r0 < r0) {
| label_82:
0x00012f18 blt 0x12e6c | goto label_9;
| }
0x00012f1a movs r0, r0 |
0x00012f1c rev r4, r1 | r1 = SWAP32 (r4);
0x00012f1e movs r0, r0 |
0x00012f20 subw r0, sl, 0x800 | __asm ("subw r0, sl, 0x800");
0x00012f22 movs r0, r0 |
0x00012f24 invalid |
| if (r0 <= r0) {
| label_83:
0x00012f30 bgt 0x12fe4 |
0x00012f32 movs r0, r0 |
| if (r0 <= r0) {
0x00012f34 bgt 0x12fdc |
0x00012f36 movs r0, r0 |
0x00012f38 invalid |
| }
0x00012fdc vstr d16, [r4, 0x140] | __asm ("vstr d16, [r4, 0x140]");
0x00012fe0 vstr d16, [r4, 0x148] | __asm ("vstr d16, [r4, 0x148]");
| }
0x00012fe4 vstr d16, [r4, 0x150] | __asm ("vstr d16, [r4, 0x150]");
0x00012fe8 vstr d16, [r4, 0x158] | __asm ("vstr d16, [r4, 0x158]");
0x00012fec vstr d16, [r4, 0x160] | __asm ("vstr d16, [r4, 0x160]");
0x00012ff0 vstr d16, [r4, 0x168] | __asm ("vstr d16, [r4, 0x168]");
0x00012ff2 lsrs r2, r3, 0xd | r2 = r3 >> 0xd;
0x00012ff4 vstr d16, [r4, 0x170] | __asm ("vstr d16, [r4, 0x170]");
0x00012ff8 vstr d16, [r4, 0x178] | __asm ("vstr d16, [r4, 0x178]");
0x00012ffc str r3, [sp, 0x38] | var_38h = r3;
0x00012ffe cmp r6, 0 |
| if (r6 == 0) {
0x00013000 beq.w 0x135a0 | goto label_84;
| }
0x00013004 blx 0x5934 | r0 = fcn_00005934 ();
0x00013008 cmp r0, 6 |
| if (r0 > 6) {
0x0001300a bgt 0x130fa | goto label_85;
| }
0x0001300c cmp r7, 1 |
| if (r7 == 1) {
0x0001300e beq 0x130f2 | goto label_86;
| }
0x00013010 ldr.w r3, [pc, 0xb48] |
0x00013014 add r3, pc | r3 = 0x26b74;
| label_11:
0x00013016 ldr r1, [sp, 0x30] | r1 = var_30h;
0x00013018 mov r2, r6 | r2 = r6;
0x0001301a mov r0, r5 | r0 = r5;
0x0001301c str r4, [sp, 0xc] | var_ch = r4;
0x0001301e str r1, [sp, 8] | var_8h = r1;
0x00013020 ldr r1, [sp, 0x34] | r1 = var_34h;
0x00013022 str r1, [sp, 4] | var_4h = r1;
0x00013024 movs r1, 2 | r1 = 2;
0x00013026 str r1, [sp] | *(sp) = r1;
0x00013028 ldr.w r1, [pc, 0xb34] |
0x0001302c add r1, pc | r1 = 0x26b90;
0x0001302e blx 0x5c14 | fcn_00005c14 ();
0x00013032 subs r6, r0, 0 | r6 -= var_20h;
| if (r6 < var_20h) {
0x00013034 blt 0x13122 | goto label_87;
| }
0x00013036 cmp.w r8, 0 |
| if (r8 != 0) {
0x0001303a beq 0x13044 |
0x0001303c ldr r0, [r4, 4] | r0 = *((r4 + 4));
0x0001303e cmp r0, 0 |
| if (r0 != 0) {
0x00013040 bne.w 0x133f2 | goto label_88;
| }
| }
| label_18:
0x00013044 ldrb.w r3, [sb] | r3 = *(sb);
0x00013048 cmp r3, 0 |
| if (r3 != 0) {
0x0001304a bne.w 0x1327c | goto label_19;
| }
0x0001304e movs r3, 1 | r3 = 1;
0x00013050 cmp r7, r3 |
0x00013052 strb.w r3, [sb] | *(sb) = r3;
| if (r7 == r3) {
0x00013056 beq.w 0x1328e | goto label_89;
| }
| label_15:
0x0001305a cmp r7, 2 |
| if (r7 == 2) {
0x0001305c beq.w 0x135bc | goto label_90;
| }
| label_20:
0x00013060 ldr r3, [sp, 0x30] | r3 = var_30h;
0x00013062 movs r1, 1 | r1 = 1;
0x00013064 ldr r0, [r3] | r0 = *(r3);
0x00013066 blx 0x5ee8 | r0 = raise (r0);
0x0001306a subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 < r0) {
0x0001306c blt.w 0x133b0 | goto label_91;
| }
0x00013070 ldr r1, [sp, 0x38] | r1 = var_38h;
0x00013072 ldr.w r2, [pc, 0xaf0] | r2 = *(0x13b66);
0x00013074 cmp r2, 0xf0 |
0x00013076 ldr.w r3, [pc, 0xaf0] |
0x0001307a ldr r6, [r1, r2] | r6 = *((r1 + r2));
0x0001307c ldr r3, [r1, r3] | r3 = *((r1 + r3));
0x0001307e ldr r2, [sp, 0x2c] | r2 = var_2ch;
0x00013080 ldr.w r1, [pc, 0xae8] |
0x00013084 ldr r3, [r3] | r3 = *(0x13b6a);
0x00013086 str r2, [sp] | *(sp) = r2;
0x00013088 ldr r2, [sp, 0x30] | r2 = var_30h;
0x0001308a add r1, pc | r1 = 0x26bfa;
0x0001308c ldr r0, [r2] | r0 = *(0x13b66);
0x0001308e ldr r2, [r6] | r2 = *(r6);
0x00013090 blx 0x5b64 | show_man_page ();
0x00013092 stcl p14, c1, [r8, -0x14]! | __asm ("stcl p14, c1, [r8, -0x14]!");
| if (r2 < 0xf0) {
0x00013096 blt.w 0x13242 | goto label_92;
| }
0x0001309a ldr r6, [r6] | r6 = *(r6);
0x0001309c cmp r6, 0 |
| if (r6 == 0) {
0x0001309e beq.w 0x133ee | goto label_22;
| }
0x000130a2 ldr.w r8, [pc, 0xacc] |
0x000130a6 subs r7, r6, 4 | r7 = r6 - 4;
0x000130a8 ldr.w r6, [pc, 0xac8] |
0x000130ac add r8, pc | r8 = 0x26c22;
0x000130ae add.w r8, r8, 7 | r8 += 7;
0x000130b2 add r6, pc | r6 = 0x26c2a;
| do {
| label_10:
0x000130b4 ldr r1, [r7, 4]! | r1 = *((r7 += 4));
0x000130b8 cmp r1, 0 |
| if (r1 == 0) {
0x000130ba beq.w 0x133ec | goto label_93;
| }
0x000130be ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x000130c0 ldr r0, [r3] | r0 = *(r3);
0x000130c2 blx 0x654c | r0 = fcn_0000654c ();
0x000130c6 mov r5, r0 | r5 = r0;
0x000130c8 cmp r0, 0 |
0x000130ca bne 0x130b4 |
| } while (r0 != 0);
0x000130cc blx 0x5934 | r0 = fcn_00005934 ();
0x000130d0 cmp r0, 6 |
| if (r0 <= 6) {
0x000130d2 ble 0x130b4 | goto label_10;
| }
0x000130d4 ldr r3, [r7] | r3 = *(r7);
0x000130d6 mov r1, r5 | r1 = r5;
0x000130d8 mov r2, r8 | r2 = r8;
0x000130da movs r0, 7 | r0 = 7;
0x000130dc strd r6, r3, [sp, 4] | __asm ("strd r6, r3, [var_8h]");
0x000130e0 ldr.w r3, [pc, 0xa94] |
0x000130e4 add r3, pc | r3 = 0x26c60;
0x000130e6 str r3, [sp] | *(sp) = r3;
0x000130e8 movw r3, 0x7db | r3 = 0x7db;
0x000130ec blx 0x61a4 | fcn_000061a4 ();
0x000130f0 b 0x130b4 | goto label_10;
| label_86:
0x000130f2 ldr.w r3, [pc, 0xa88] |
0x000130f6 add r3, pc | r3 = 0x26c78;
0x000130f8 b 0x13016 | goto label_11;
| label_85:
0x000130fa ldr.w r3, [pc, 0xa84] |
0x000130fe mov r1, sl | r1 = sl;
0x00013100 ldr.w r2, [pc, 0xa80] |
0x00013104 movs r0, 7 | r0 = 7;
0x00013106 str r6, [sp, 8] | var_8h = r6;
0x00013108 add r3, pc | r3 = 0x26c8e;
0x0001310a str r3, [sp, 4] | var_4h = r3;
0x0001310c add r2, pc | r2 = 0x26c94;
0x0001310e ldr.w r3, [pc, 0xa78] |
0x00013112 adds r2, 7 | r2 += 7;
0x00013114 add r3, pc | r3 = 0x26ca2;
0x00013116 str r3, [sp] | *(sp) = r3;
0x00013118 movw r3, 0x7a7 | r3 = 0x7a7;
0x0001311c blx 0x61a4 | fcn_000061a4 ();
0x0001311e strex r7, lr, [r2, 0x1d0] | __asm ("strex r7, lr, [r2, 0x1d0]");
| label_87:
0x00013122 blx 0x5934 | r0 = fcn_00005934 ();
0x00013126 cmp r0, 2 |
| if (r0 > 2) {
0x00013128 bgt 0x13210 | goto label_94;
| }
| label_16:
0x0001312a rsbs r6, r6, 0 | r6 -= ;
0x0001312c uxtb r6, r6 | r6 = (int8_t) r6;
0x0001312e rsbs r6, r6, 0 | r6 -= ;
| label_14:
0x00013130 ldr r5, [r4, 0x24] | r5 = *((r4 + 0x24));
0x00013132 cmp r6, 0 |
0x00013134 it ge |
| if (r6 < 0) {
0x00013136 mvnge r6, 0x55 | r6 = ~0x55;
| }
0x00013138 lsls r5, r2, 0x19 | r5 = r2 << 0x19;
| label_17:
0x0001313a mov r0, r5 | r0 = r5;
0x0001313c blx 0x5dec | unit_file_state_to_string ();
0x00013140 ldr r0, [r4, 0x34] | r0 = *((r4 + 0x34));
0x00013142 blx 0x5dec | unit_file_state_to_string ();
0x00013146 ldr r0, [r4, 0x38] | r0 = *((r4 + 0x38));
0x00013148 blx 0x5dec | unit_file_state_to_string ();
0x0001314c ldr r0, [r4, 0x3c] | r0 = *((r4 + 0x3c));
0x0001314e blx 0x5dec | unit_file_state_to_string ();
0x00013152 ldr.w r0, [r4, 0xf8] | r0 = *((r4 + 0xf8));
0x00013156 blx 0x5dec | unit_file_state_to_string ();
0x0001315a ldr.w r5, [r4, 0xbc] | r5 = *((r4 + 0xbc));
| if (r5 != 0) {
0x0001315e cbnz r5, 0x1317e | goto label_95;
| }
0x00013160 b 0x1319c | goto label_96;
| do {
0x00013162 ldr r2, [r5, 0x10] | r2 = *((r5 + 0x10));
0x00013164 str r2, [r3, 0x10] | *((r3 + 0x10)) = r2;
| label_12:
0x00013166 ldr r0, [r5] | r0 = *(r5);
0x00013168 blx 0x5be4 | fcn_00005be4 ();
0x0001316c ldr r0, [r5, 4] | r0 = *((r5 + 4));
0x0001316e blx 0x5be4 | fcn_00005be4 ();
0x00013172 mov r0, r5 | r0 = r5;
0x00013174 blx 0x5be4 | fcn_00005be4 ();
0x00013178 ldr.w r5, [r4, 0xbc] | r5 = *((r4 + 0xbc));
| if (r5 == 0) {
0x0001317c cbz r5, 0x1319c | goto label_96;
| }
| label_95:
0x0001317e ldr r3, [r5, 0x10] | r3 = *((r5 + 0x10));
| if (r3 != 0) {
0x00013180 cbz r3, 0x13186 |
0x00013182 ldr r2, [r5, 0x14] | r2 = *((r5 + 0x14));
0x00013184 str r2, [r3, 0x14] | *((r3 + 0x14)) = r2;
| }
0x00013186 ldr r3, [r5, 0x14] | r3 = *((r5 + 0x14));
0x00013188 cmp r3, 0 |
0x0001318a bne 0x13162 |
| } while (r3 != 0);
0x0001318c ldr.w r3, [r4, 0xbc] | r3 = *((r4 + 0xbc));
0x00013190 cmp r3, r5 |
| if (r3 != r5) {
0x00013192 bne 0x131f4 | goto label_97;
| }
0x00013194 ldr r3, [r5, 0x10] | r3 = *((r5 + 0x10));
0x00013196 str.w r3, [r4, 0xbc] | __asm ("str.w r3, [r4, 0xbc]");
0x0001319a b 0x13166 | goto label_12;
| label_96:
0x0001319c ldr.w r5, [r4, 0x190] | r5 = *((r4 + 0x190));
0x000131a0 cmp r5, 0 |
| if (r5 == 0) {
0x000131a2 beq.w 0x13364 | goto label_98;
| }
0x000131a6 movs r7, 0 | r7 = 0;
0x000131a8 b 0x131d4 |
| while (r3 != 0) {
0x000131aa ldr r2, [r5, 0x30] | r2 = *((r5 + 0x30));
0x000131ac str r2, [r3, 0x30] | *((r3 + 0x30)) = r2;
| label_13:
0x000131ae ldr r0, [r5] | r0 = *(r5);
0x000131b0 strd r7, r7, [r5, 0x30] | __asm ("strd r7, r7, [r5, 0x30]");
0x000131b4 blx 0x5be4 | fcn_00005be4 ();
0x000131b8 ldr r0, [r5, 4] | r0 = *((r5 + 4));
0x000131ba blx 0x5be4 | fcn_00005be4 ();
0x000131be ldr r0, [r5, 8] | r0 = *((r5 + 8));
0x000131c0 blx 0x5dec | unit_file_state_to_string ();
0x000131c4 mov r0, r5 | r0 = r5;
0x000131c6 blx 0x5be4 | fcn_00005be4 ();
0x000131ca ldr.w r5, [r4, 0x190] | r5 = *((r4 + 0x190));
0x000131ce cmp r5, 0 |
| if (r5 == 0) {
0x000131d0 beq.w 0x13364 | goto label_98;
| }
0x000131d4 ldr r3, [r5, 0x30] | r3 = *((r5 + 0x30));
| if (r3 != 0) {
0x000131d6 cbz r3, 0x131dc |
0x000131d8 ldr r2, [r5, 0x34] | r2 = *((r5 + 0x34));
0x000131da str r2, [r3, 0x34] | *((r3 + 0x34)) = r2;
| }
0x000131dc ldr r3, [r5, 0x34] | r3 = *((r5 + 0x34));
0x000131de cmp r3, 0 |
0x000131e0 bne 0x131aa |
| }
0x000131e2 ldr.w r3, [r4, 0x190] | r3 = *((r4 + 0x190));
0x000131e6 cmp r3, r5 |
| if (r3 != r5) {
0x000131e8 bne.w 0x13628 | goto label_99;
| }
0x000131ec ldr r3, [r5, 0x30] | r3 = *((r5 + 0x30));
0x000131ee str.w r3, [r4, 0x190] | __asm ("str.w r3, [r4, 0x190]");
0x000131f2 b 0x131ae | goto label_13;
| label_97:
0x000131f4 ldr.w r1, [pc, 0x994] |
0x000131f8 movw r2, 0x115 | r2 = 0x115;
0x000131fc ldr.w r3, [pc, 0x990] |
0x000131fe subs r1, 0x90 | r1 -= 0x90;
0x00013200 ldr.w r0, [pc, 0x990] |
0x00013204 add r1, pc | r1 = 0x26d94;
0x00013206 add r3, pc | r3 = 0x26d9a;
0x00013208 adds r1, 7 | r1 += 7;
0x0001320a add r0, pc | r0 = 0x26da2;
0x0001320c blx 0x5e40 | unit_file_get_default ();
| label_94:
0x00013210 mov r1, r6 | r1 = r6;
0x00013212 ldr r0, [sp, 0x34] | r0 = var_34h;
0x00013214 blx 0x566c | bus_error_message ();
0x00013216 bic.w r8, sl, pc, lsr 31 | r8 = BIT_MASK (sl, pc);
0x0001321a subs r1, 0x7c | r1 -= 0x7c;
0x0001321c mov r1, r6 | r1 = r6;
0x0001321e ldr.w r2, [pc, 0x97c] |
0x00013222 str r0, [sp, 8] | var_8h = r0;
0x00013224 movs r0, 3 | r0 = 3;
0x00013226 add r3, pc | r3 += pc;
0x00013228 str r3, [sp, 4] | var_4h = r3;
0x0001322a add r2, pc | r2 = 0x26dcc;
0x0001322c ldr.w r3, [pc, 0x970] |
0x00013230 adds r2, 7 | r2 += 7;
0x00013232 add r3, pc | r3 = 0x26dd6;
0x00013234 str r3, [sp] | *(sp) = r3;
0x00013236 movw r3, 0x7b3 | r3 = 0x7b3;
0x0001323a blx 0x61a4 | r0 = fcn_000061a4 ();
0x0001323e mov r6, r0 | r6 = r0;
0x00013240 b 0x13130 | goto label_14;
| label_92:
0x00013242 blx 0x5934 | r0 = fcn_00005934 ();
0x00013246 cmp r0, 2 |
0x00013248 ittt le |
| if (r0 <= 2) {
0x0001324a rsble r6, r5, 0 | __asm ("rsble r6, r5, 0");
| }
| if (r0 <= 2) {
0x0001324c uxtble r6, r6 | __asm ("uxtble r6, r6");
| }
| if (r0 > 2) {
0x0001324e rsble r6, r6, 0 | __asm ("rsble r6, r6, 0");
| goto label_100;
| }
| if (r0 <= 2) {
| label_100:
0x00013250 ble.w 0x13130 | goto label_14;
| }
0x00013254 ldr.w r3, [pc, 0x94c] |
0x00013258 mov r1, r5 | r1 = r5;
0x0001325a ldr.w r2, [pc, 0x94c] |
0x0001325e movs r0, 3 | r0 = 3;
0x00013260 add r3, pc | r3 = 0x26e08;
0x00013262 str r3, [sp, 4] | var_4h = r3;
0x00013264 add r2, pc | r2 = 0x26e12;
0x00013266 ldr.w r3, [pc, 0x944] |
0x0001326a adds r2, 7 | r2 += 7;
0x0001326c add r3, pc | r3 = 0x26e1e;
0x0001326e str r3, [sp] | *(sp) = r3;
0x00013270 movw r3, 0x7d7 | r3 = 0x7d7;
0x00013274 blx 0x61a4 | r0 = fcn_000061a4 ();
0x00013278 mov r6, r0 | r6 = r0;
0x0001327a b 0x13130 | goto label_14;
| label_19:
0x0001327c movs r0, 0xa | r0 = 0xa;
0x0001327e blx 0x59b8 | fcn_000059b8 ();
0x00013282 movs r3, 1 | r3 = 1;
0x00013284 cmp r7, r3 |
0x00013286 strb.w r3, [sb] | *(sb) = r3;
0x00013288 adds r0, 0 | r0 += 0;
| if (r0 != 0) {
0x0001328a bne.w 0x1305a | goto label_15;
| }
| label_89:
0x0001328e add r3, sp, 0x78 | r3 += var_78h;
0x00013290 add.w r8, sp, 0x6c | r8 += var_6ch;
0x00013292 lsrs r4, r5, 1 | r4 = r5 >> 1;
0x00013294 add r7, sp, 0x68 | r7 += var_68h;
0x00013296 mov r2, r8 | r2 = r8;
0x00013298 mov r1, r7 | r1 = r7;
0x0001329a ldr r0, [r4, 8] | r0 = *((r4 + 8));
0x0001329c mov r6, r3 | r6 = r3;
0x0001329e str r3, [sp, 0x48] | var_48h = r3;
0x000132a0 movs r3, 0 | r3 = 0;
0x000132a2 str r3, [r6] | *(r6) = r3;
0x000132a4 bl 0x12b24 | fcn_00012b24 (r0, r1, r2);
0x000132a8 ldr r0, [r4, 8] | r0 = *((r4 + 8));
0x000132aa blx 0x5f3c | unit_file_add_dependency ();
0x000132ae blx 0x5edc | running_in_chroot ();
0x000132b2 ldr r3, [sp, 0x68] | r3 = var_68h;
0x000132b4 str r3, [sp, 0x40] | var_40h = r3;
0x000132b6 blx 0x6644 | sd_bus_message_close_container ();
0x000132ba ldr r2, [r4] | r2 = *(r4);
0x000132bc ldr r3, [sp, 0x6c] | r3 = var_6ch;
0x000132be str r3, [sp, 0x44] | var_44h = r3;
0x000132c0 mov r3, r0 | r3 = r0;
0x000132c2 cmp r2, 0 |
| if (r2 == 0) {
0x000132c4 beq.w 0x141b0 | goto label_101;
| }
| label_40:
0x000132c8 str r2, [sp, 4] | var_4h = r2;
0x000132ca movs r0, 1 | r0 = 1;
0x000132cc ldr r2, [sp, 0x44] | r2 = var_44h;
0x000132ce ldr.w r1, [pc, 0x8e0] |
0x000132d2 str r2, [sp] | *(sp) = r2;
0x000132d4 add r1, pc | r1 = 0x26e8a;
0x000132d6 ldr r2, [sp, 0x40] | r2 = var_40h;
0x000132d8 blx 0x59a0 | fcn_000059a0 ();
0x000132dc ldr r6, [r4, 0x1c] | r6 = *((r4 + 0x1c));
| if (r6 != 0) {
0x000132de cbz r6, 0x132f6 |
0x000132e0 ldr r0, [r4] | r0 = *(r4);
0x000132e2 cmp r0, 0 |
| if (r0 != 0) {
0x000132e4 bne.w 0x13674 | goto label_102;
| }
| label_28:
0x000132e8 ldr.w r1, [pc, 0x8c8] |
0x000132ec mov r2, r6 | r2 = r6;
0x000132ee movs r0, 1 | r0 = 1;
0x000132f0 add r1, pc | r1 = 0x26ea8;
0x000132f2 blx 0x59a0 | fcn_000059a0 ();
| }
| label_27:
0x000132f6 movs r0, 0xa | r0 = 0xa;
0x000132f8 blx 0x59b8 | fcn_000059b8 ();
0x000132fc ldr r2, [r4, 0x20] | r2 = *((r4 + 0x20));
| if (r2 != 0) {
0x000132fe cbz r2, 0x1330c |
0x00013300 ldr.w r1, [pc, 0x8b4] |
0x00013304 movs r0, 1 | r0 = 1;
0x00013306 add r1, pc | r1 = 0x26ec2;
0x00013308 blx 0x59a0 | fcn_000059a0 ();
| }
0x0001330c ldr r7, [r4, 4] | r7 = *((r4 + 4));
0x0001330e cmp r7, 0 |
| if (r7 == 0) {
0x00013310 beq.w 0x13454 | goto label_103;
| }
0x00013314 ldr.w r3, [pc, 0x8a4] |
0x00013318 add r6, sp, 0x244 | r6 += arg_244h;
0x0001331a add r3, pc | r3 = 0x26eda;
0x0001331c adds r3, 0xc | r3 += 0xc;
0x0001331e ldm r3, {r0, r1, r2, r3} | r0 = *(r3);
| r1 = *((r3 + 4));
| r2 = *((r3 + 8));
| r3 = *((r3 + 12));
0x00013320 stm.w r6, {r0, r1, r2, r3} | *(r6) = r0;
| *((r6 + 4)) = r1;
| *((r6 + 8)) = r2;
| *((r6 + 12)) = r3;
0x00013324 mov r1, r7 | r1 = r7;
0x00013326 mov r0, r6 | r0 = r6;
0x00013328 blx 0x6060 | r0 = fcn_00006060 ();
0x0001332c cmp r0, 0 |
| if (r0 == 0) {
0x0001332e beq.w 0x13454 | goto label_103;
| }
0x00013332 blx 0x5e88 | r0 = strcpy (r0, r1)
0x00013336 cmp r0, 0 |
| if (r0 == 0) {
0x00013338 beq.w 0x142fc | goto label_104;
| }
0x0001333c ldr.w r6, [pc, 0x880] |
0x00013340 add r6, pc | r6 = 0x26f04;
| label_48:
0x00013342 add.w fp, sp, 0x70 |
0x00013346 str.w r6, [fp] | __asm ("str.w r6, [fp]");
0x00013348 str r0, [r0] | *(r0) = r0;
0x0001334a blx 0x5e88 | r0 = strcpy (r0, r1)
0x0001334e cmp r0, 0 |
| if (r0 != 0) {
0x00013350 bne.w 0x142f2 | goto label_105;
| }
0x00013354 ldr.w sb, [pc, 0x86c] |
0x00013358 add sb, pc | sb = 0x26f20;
| label_47:
0x0001335a add.w r8, sp, 0x74 | r8 += var_74h;
0x0001335e str.w sb, [r8] | __asm ("str.w sb, [r8]");
0x00013362 b 0x1346e | goto label_106;
| label_98:
0x00013364 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x00013366 ldr r0, [r3] | r0 = *(r3);
| if (r0 != 0) {
0x00013368 cbz r0, 0x13376 |
0x0001336a movs r2, 0 | r2 = 0;
0x0001336c mov r1, r2 | r1 = r2;
0x0001336e blx 0x648c | fcn_0000648c ();
0x00013370 invalid |
0x00013374 str r0, [r3] | *(r3) = r0;
| }
0x00013376 ldr r0, [sp, 0x34] | r0 = var_34h;
0x00013378 blx 0x6024 | fcn_00006024 ();
0x0001337c ldr r3, [sp, 0x30] | r3 = var_30h;
0x0001337e ldr r0, [r3] | r0 = *(r3);
| if (r0 != 0) {
0x00013380 cbz r0, 0x13386 |
0x00013382 blx 0x582c | fcn_0000582c ();
| }
0x00013386 ldr.w r2, [pc, 0x840] |
0x0001338a ldr.w r3, [pc, 0x7c8] | r3 = *(0x13b56);
0x0001338e add r2, pc | r2 = 0x26f5c;
0x00013390 ldr r3, [r2, r3] | r3 = *(0x26f5c);
0x00013392 ldr r2, [r3] | r2 = *(0x26f5c);
0x00013394 ldr.w r3, [sp, 0x4a4] | r3 = *(arg_4a4h);
0x00013398 eors r2, r3 | r2 ^= r3;
0x0001339a mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0001339e bne.w 0x147e0 | goto label_107;
| }
0x000133a2 mov r0, r6 | r0 = r6;
0x000133a4 addw sp, sp, 0x4ac | __asm ("addw sp, sp, 0x4ac");
0x000133a6 ldr r5, [pc, 0x2b0] | r5 = *(0x1365a);
0x000133a8 vpop {d8} | __asm ("vpop {d8}");
0x000133ac pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_91:
0x000133b0 blx 0x5934 | r0 = fcn_00005934 ();
0x000133b4 cmp r0, 2 |
| if (r0 <= 2) {
0x000133b6 ble.w 0x1312a | goto label_16;
| }
0x000133ba mov r1, r6 | r1 = r6;
0x000133bc ldr r0, [sp, 0x34] | r0 = var_34h;
0x000133be blx 0x566c | bus_error_message ();
0x000133c2 ldr.w r3, [pc, 0x808] |
0x000133c4 subs r0, 8 | r0 -= 8;
0x000133c6 mov r1, r6 | r1 = r6;
0x000133c8 ldr.w r2, [pc, 0x804] |
0x000133cc str r0, [sp, 8] | var_8h = r0;
0x000133ce movs r0, 3 | r0 = 3;
0x000133d0 add r3, pc | r3 = 0x26fa2;
0x000133d2 str r3, [sp, 4] | var_4h = r3;
0x000133d4 add r2, pc | r2 = 0x26fa8;
0x000133d6 ldr.w r3, [pc, 0x7fc] |
0x000133da adds r2, 7 | r2 += 7;
0x000133dc add r3, pc | r3 = 0x26fb6;
0x000133de str r3, [sp] | *(sp) = r3;
0x000133e0 movw r3, 0x7d3 | r3 = 0x7d3;
0x000133e4 blx 0x61a4 | r0 = fcn_000061a4 ();
0x000133e8 mov r6, r0 | r6 = r0;
0x000133ea b 0x13130 | goto label_14;
| label_93:
0x000133ec mov r6, r1 | r6 = r1;
| label_22:
0x000133ee ldr r5, [r4, 0x24] | r5 = *((r4 + 0x24));
0x000133f0 b 0x1313a | goto label_17;
| label_88:
0x000133f2 ldr.w r1, [pc, 0x7e4] |
0x000133f6 add r1, pc | r1 = 0x26fd4;
0x000133f8 blx 0x655c | fcn_0000655c ();
0x000133fa ldm.w r0!, {fp, sp} | fp = *(r0!);
| sp = *((r0! + 4));
| if (r2 != 7) {
0x000133fe bne.w 0x13044 | goto label_18;
| }
0x00013402 ldr r0, [r4, 8] | r0 = *((r4 + 8));
0x00013404 cmp r0, 0 |
| if (r0 == 0) {
0x00013406 beq.w 0x13044 | goto label_18;
| }
0x0001340a ldr.w r1, [pc, 0x7d0] |
0x0001340e add r1, pc | r1 = 0x26ff0;
0x00013410 blx 0x655c | r0 = fcn_0000655c ();
0x00013414 cmp r0, 0 |
| if (r0 != 0) {
0x00013416 bne.w 0x13044 | goto label_18;
| }
0x0001341a blx 0x5934 | fcn_00005934 ();
0x0001341e cmp r7, 0 |
| if (r7 == 0) {
0x00013420 beq.w 0x13644 | goto label_108;
| }
0x00013424 cmp r0, 2 |
0x00013426 it gt |
| if (r0 <= 2) {
0x00013428 movgt r0, 3 | r0 = 3;
| }
| if (r0 > 2) {
0x0001342a bgt.w 0x1364c | goto label_109;
| }
| label_26:
0x0001342e cmp r7, 1 |
| if (r7 == 1) {
0x00013430 beq.w 0x1468e | goto label_110;
| }
0x00013434 cmp r7, 2 |
0x00013436 itt eq |
| if (r7 != 2) {
0x00013438 ldreq r5, [r4, 0x24] | r5 = *((r4 + 0x24));
| }
| if (r7 == 2) {
0x0001343a mvneq r6, 1 | r6 = ~1;
| goto label_111;
| }
| if (r7 == 2) {
| label_111:
0x0001343e beq.w 0x1313a | goto label_17;
| }
0x00013440 add r6, sp, 0x1f0 | r6 = sp + 0x1f0;
| label_25:
0x00013442 ldrb.w r3, [sb] | r3 = *(sb);
0x00013446 cmp r3, 0 |
| if (r3 != 0) {
0x00013448 bne.w 0x1327c | goto label_19;
| }
0x0001344c movs r3, 1 | r3 = 1;
0x0001344e strb.w r3, [sb] | *(sb) = r3;
0x00013452 b 0x13060 | goto label_20;
| label_103:
0x00013454 ldr.w r3, [pc, 0x788] |
0x00013458 add.w r8, sp, 0x74 | r8 += var_74h;
0x0001345c add.w fp, sp, 0x70 |
0x00013460 add r3, pc | r3 = 0x27044;
0x00013462 mov sb, r3 | sb = r3;
0x00013464 mov r6, r3 | r6 = r3;
0x00013466 str.w r3, [r8] | __asm ("str.w r3, [r8]");
0x0001346a str.w r3, [fp] | __asm ("str.w r3, [fp]");
| label_106:
0x0001346e ldr r7, [r4, 0x2c] | r7 = *((r4 + 0x2c));
0x00013470 cmp r7, 0 |
| if (r7 == 0) {
0x00013472 beq.w 0x14126 | goto label_112;
| }
| label_36:
0x00013476 ldr.w sl, [sp, 0x48] | sl = var_48h;
0x0001347a movs r1, 0 | r1 = 0;
0x0001347c mov r0, r7 | r0 = r7;
0x0001347e mov r2, sl | r2 = sl;
0x00013480 blx 0x5c44 | r0 = fcn_00005c44 ();
0x00013484 cmp r0, 0 |
0x00013486 ldr r2, [r4, 0x40] | r2 = *((r4 + 0x40));
| if (r0 < 0) {
0x00013488 blt.w 0x13682 | goto label_113;
| }
0x0001348c ldr.w r7, [sl] | r7 = *(sl);
0x00013490 cmp r2, 0 |
| if (r2 == 0) {
0x00013492 beq.w 0x136e2 | goto label_114;
| }
| label_29:
0x00013496 ldrb r3, [r2] | r3 = *(r2);
0x00013498 cmp r3, 0 |
| if (r3 == 0) {
0x0001349a beq.w 0x136e2 | goto label_114;
| }
| label_38:
0x0001349e ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x000134a0 cmp r3, 0 |
| if (r3 == 0) {
0x000134a2 beq.w 0x14402 | goto label_115;
| }
0x000134a4 strh r6, [r5, 0x3c] | *((r5 + 0x3c)) = r6;
| label_49:
0x000134a6 ldr.w r1, [pc, 0x73c] |
0x000134aa movs r0, 1 | r0 = 1;
0x000134ac strd sb, r2, [sp] | __asm ("strd sb, r2, [sp]");
0x000134b0 mov r2, r6 | r2 = r6;
0x000134b2 add r1, pc | r1 = 0x2709c;
0x000134b4 blx 0x59a0 | fcn_000059a0 ();
| label_30:
0x000134b8 ldrb.w r3, [r4, 0x71] | r3 = *((r4 + 0x71));
0x000134bc cmp r3, 0 |
| if (r3 != 0) {
0x000134be bne.w 0x141ba | goto label_116;
| }
| label_41:
0x000134c2 ldr r7, [r4, 0x34] | r7 = *((r4 + 0x34));
0x000134c4 cmp r7, 0 |
| if (r7 == 0) {
0x000134c6 beq.w 0x13726 | goto label_117;
| }
0x000134ca ldr r3, [r7] | r3 = *(r7);
0x000134cc cmp r3, 0 |
| if (r3 == 0) {
0x000134ce beq.w 0x13726 | goto label_117;
| }
0x000134d2 ldr.w r2, [pc, 0x714] |
0x000134d6 mov.w sb, 0 | sb = 0;
0x000134da ldr.w r3, [pc, 0x710] |
0x000134de mov r6, sb | r6 = sb;
0x000134e0 str r5, [sp, 0x54] | var_54h = r5;
0x000134e2 add.w sl, sp, 0x98 | sl += var_98h;
0x000134e6 add r2, pc | r2 = 0x270d4;
0x000134e8 mov r5, sb | r5 = sb;
0x000134ea str r2, [sp, 0x4c] | var_4ch = r2;
0x000134ec add r3, pc | r3 = 0x270de;
0x000134ee ldr.w r2, [pc, 0x700] |
0x000134f2 mov sb, r3 | sb = r3;
0x000134f4 strd fp, r8, [sp, 0x58] | __asm ("strd fp, r8, [var_5ch]");
0x000134f8 str r4, [sp, 0x50] | var_50h = r4;
0x000134fa add r2, pc | r2 = 0x270f0;
0x000134fc mov fp, r2 |
0x000134fe b 0x13524 |
| while (r0 != r0) {
0x00013500 ldr.w r3, [pc, 0x6f0] |
0x00013504 add r3, pc | r3 = 0x270fc;
| label_21:
0x00013506 ldr.w r1, [pc, 0x6f0] |
0x0001350a movs r0, 1 | r0 = 1;
0x0001350c add r1, pc | r1 = 0x2710a;
0x0001350e blx 0x59a0 | fcn_000059a0 ();
0x00013512 ldr.w r0, [sl] | r0 = *(sl);
0x00013516 blx 0x5be4 | fcn_00005be4 ();
0x0001351a ldr r3, [r7, 4]! | r3 = *((r7 += 4));
0x0001351e cmp r3, 0 |
| if (r3 == 0) {
0x00013520 beq.w 0x13716 | goto label_118;
| }
0x00013524 movs r3, 0 | r3 = 0;
0x00013526 str.w r3, [sl] | __asm ("str.w r3, [sl]");
0x0001352a cmp r6, 0 |
| if (r6 == 0) {
0x0001352c beq.w 0x1370a | goto label_119;
| }
0x00013530 mov r1, fp | r1 = fp;
| if (r5 != 0) {
0x00013532 cbz r5, 0x13560 |
| label_32:
0x00013534 movs r0, 1 | r0 = 1;
0x00013536 blx 0x59a0 | r0 = fcn_000059a0 ();
0x00013538 bics.w r6, r4, r0, ror 16 | __asm ("bics.w r6, r4, r0, ror 16");
0x0001353c blx 0x5be4 | fcn_00005be4 ();
0x00013540 ldr r0, [r7] | r0 = *(r7);
0x00013542 blx 0x5b58 | r0 = bus_message_print_all_properties ();
0x00013546 mov r6, r0 | r6 = r0;
0x00013548 cmp r0, 0 |
| if (r0 == 0) {
0x0001354a beq.w 0x146a0 | goto label_120;
| }
0x0001354e movs r0, 2 | r0 = 2;
0x00013550 blx 0x6644 | sd_bus_message_close_container ();
0x00013554 mov r2, r6 | r2 = r6;
0x00013556 mov r3, r0 | r3 = r0;
0x00013558 mov r1, sb | r1 = sb;
0x0001355a movs r0, 1 | r0 = 1;
0x0001355c blx 0x59a0 | fcn_000059a0 ();
| }
0x00013560 ldr r0, [r7, 4] | r0 = *((r7 + 4));
0x00013562 cmp r0, 0 |
| if (r0 == 0) {
0x00013564 beq.w 0x1370e | goto label_121;
| }
0x00013568 mov r1, r6 | r1 = r6;
0x0001356a blx 0x63c0 | r0 = fcn_000063c0 ();
0x0001356e clz r5, r0 | r5 &= r0;
0x00013572 lsrs r5, r5, 5 | r5 >>= 5;
0x00013574 mov r8, r5 | r8 = r5;
| label_33:
0x00013576 ldr r4, [r7] | r4 = *(r7);
0x00013578 mov r0, r4 | r0 = r4;
0x0001357a blx 0x6608 | cxa_finalize ();
0x0001357e mov r2, sl | r2 = sl;
0x00013580 mov r1, r0 | r1 = r0;
0x00013582 mov r0, r4 | r0 = r4;
0x00013584 blx 0x5c44 | r0 = fcn_00005c44 ();
0x00013586 adcs.w r8, lr, r0, lsl 8 | __asm ("adcs.w r8, lr, r0, lsl 8");
0x0001358a ite ge |
| if (r5 < r5) {
0x0001358c ldrge r2, [sl] | r2 = *(sl);
| }
| if (r5 < r5) {
0x00013590 ldr r2, [r7] | r2 = *(r7);
| }
0x00013592 cmp.w r8, 0 |
0x00013594 lsrs r0, r0, 0x1c | r0 >>= 0x1c;
0x00013596 bne 0x13500 |
| }
0x00013598 ldr.w r3, [pc, 0x660] |
0x0001359c add r3, pc | r3 = 0x2719c;
0x0001359e b 0x13506 | goto label_21;
| label_84:
0x000135a0 ldr.w r1, [pc, 0x65c] |
0x000135a4 movw r2, 0x7a4 | r2 = 0x7a4;
0x000135a8 ldr.w r3, [pc, 0x658] |
0x000135ac ldr.w r0, [pc, 0x658] |
0x000135b0 add r1, pc | r1 = 0x271b4;
0x000135b2 add r3, pc | r3 = 0x271ba;
0x000135b4 adds r1, 7 | r1 += 7;
0x000135b6 add r0, pc | r0 = 0x271c2;
0x000135b8 blx 0x5e40 | unit_file_get_default ();
| label_90:
0x000135bc ldr r5, [r4, 0x24] | r5 = *((r4 + 0x24));
0x000135be cmp r5, 0 |
| if (r5 == 0) {
0x000135c0 beq.w 0x1440c | goto label_122;
| }
0x000135c4 ldr r6, [r5] | r6 = *(r5);
0x000135c6 cmp r6, 0 |
| if (r6 == 0) {
0x000135c8 beq.w 0x1313a | goto label_17;
| }
0x000135cc ldr.w sb, [pc, 0x63c] |
0x000135d0 ldr.w r8, [pc, 0x63c] |
0x000135d4 add sb, pc | sb = 0x271e4;
0x000135d6 add.w sb, sb, 7 | sb += 7;
0x000135da add r8, pc | r8 = 0x271ee;
0x000135dc b 0x135f0 | goto label_123;
| label_23:
0x000135de adds r0, r6, 4 | r0 = r6 + 4;
0x000135e0 movs r1, 0 | r1 = 0;
0x000135e2 blx 0x5b70 | reboot_with_parameter ();
| label_24:
0x000135e6 ldr r6, [r5, 4]! | r6 = *((r5 += 4));
0x000135ea cmp r6, 0 |
| if (r6 == 0) {
0x000135ec beq.w 0x133ee | goto label_22;
| }
| label_123:
0x000135f0 mov r1, r8 | r1 = r8;
0x000135f2 mov r0, r6 | r0 = r6;
0x000135f4 blx 0x63c0 | r0 = fcn_000063c0 ();
0x000135f8 mov r7, r0 | r7 = r0;
0x000135fa cmp r0, 0 |
| if (r0 != 0) {
0x000135fc bne 0x135de | goto label_23;
| }
0x000135fe blx 0x5934 | r0 = fcn_00005934 ();
0x00013602 cmp r0, 5 |
| if (r0 <= 5) {
0x00013604 ble 0x135e6 | goto label_24;
| }
0x00013606 ldr.w r3, [pc, 0x60c] |
0x0001360a mov r1, r7 | r1 = r7;
0x0001360c mov r2, sb | r2 = sb;
0x0001360e str r6, [sp, 8] | var_8h = r6;
0x00013610 movs r0, 6 | r0 = 6;
0x00013612 add r3, pc | r3 = 0x2722c;
0x00013614 str r3, [sp, 4] | var_4h = r3;
0x00013616 ldr.w r3, [pc, 0x600] |
0x0001361a add r3, pc | r3 = 0x27238;
0x0001361c str r3, [sp] | *(sp) = r3;
0x0001361e movw r3, 0x31b | r3 = 0x31b;
0x00013622 blx 0x61a4 | fcn_000061a4 ();
0x00013626 b 0x135e6 | goto label_24;
| label_99:
0x00013628 ldr.w r1, [pc, 0x5f0] |
0x0001362c mov.w r2, 0x11a | r2 = 0x11a;
0x00013630 ldr.w r3, [pc, 0x5ec] |
0x00013634 ldr.w r0, [pc, 0x5ec] |
0x00013638 add r1, pc | r1 = 0x27258;
0x0001363a add r3, pc | r3 = 0x2725e;
0x0001363c adds r1, 7 | r1 += 7;
0x0001363e add r0, pc | r0 = 0x27266;
0x00013640 blx 0x5e40 | r0 = unit_file_get_default ();
| label_108:
0x00013644 cmp r0, 6 |
| if (r0 <= 6) {
0x00013646 ble.w 0x13442 | goto label_25;
| }
0x0001364a movs r0, 7 | r0 = 7;
| label_109:
0x0001364c ldr.w r3, [pc, 0x5d8] |
0x00013650 movs r1, 0 | r1 = 0;
0x00013652 ldr.w r2, [pc, 0x5d8] |
0x00013656 str.w r8, [sp, 8] | __asm ("str.w r8, [var_8h]");
0x0001365a add r3, pc | r3 = 0x27286;
0x0001365c str r3, [sp, 4] | var_4h = r3;
0x0001365e add r2, pc | r2 = 0x27290;
0x00013660 ldr.w r3, [pc, 0x5cc] |
0x00013664 adds r2, 7 | r2 += 7;
0x00013666 add r3, pc | r3 = 0x2729a;
0x00013668 str r3, [sp] | *(sp) = r3;
0x0001366a movw r3, 0x7b6 | r3 = 0x7b6;
0x0001366e blx 0x61a4 | fcn_000061a4 ();
0x00013672 b 0x1342e | goto label_26;
| label_102:
0x00013674 mov r1, r6 | r1 = r6;
0x00013676 blx 0x655c | r0 = fcn_0000655c ();
0x0001367a cmp r0, 0 |
| if (r0 == 0) {
0x0001367c beq.w 0x132f6 | goto label_27;
| }
0x00013680 b 0x132e8 | goto label_28;
| label_113:
0x00013682 cmp r2, 0 |
| if (r2 != 0) {
0x00013684 bne.w 0x13496 | goto label_29;
| }
0x00013686 add r7, sp, 0x1c | r7 = sp + 0x1c;
| do {
0x00013688 ldr r0, [r4, 0x14] | r0 = *((r4 + 0x14));
0x0001368a cmp r0, 0 |
| if (r0 == 0) {
0x0001368c beq.w 0x1425c | goto label_124;
| }
0x00013690 ldrb r3, [r0] | r3 = *(r0);
0x00013692 cmp r3, 0 |
| if (r3 == 0) {
0x00013694 beq.w 0x1425c | goto label_124;
| }
0x00013698 ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
0x0001369a cmp r3, 0 |
| if (r3 == 0) {
0x0001369c beq.w 0x146d0 | goto label_125;
| }
0x000136a0 ldrb r3, [r3] | r3 = *(r3);
0x000136a2 cmp r3, 0 |
| if (r3 == 0) {
0x000136a4 beq.w 0x146d0 | goto label_125;
| }
0x000136a8 blx 0x591c | fcn_0000591c ();
0x000136ac bl 0x1c2c8 | fcn_0001c2c8 (r0);
0x000136b0 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x000136b2 mov r2, r0 | r2 = r0;
0x000136b4 ldr r0, [r4, 0x14] | r0 = *((r4 + 0x14));
| if (r3 == 0) {
0x000136b6 cbz r3, 0x13702 | goto label_126;
| }
| label_31:
0x000136b8 cmp r2, 0 |
| if (r2 == 0) {
0x000136ba beq.w 0x147d6 | goto label_127;
| }
0x000136be ldr.w r2, [pc, 0x574] |
0x000136c2 ldr r1, [r4, 0x18] | r1 = *((r4 + 0x18));
0x000136c4 add r2, pc | r2 = 0x272fe;
| label_56:
0x000136c6 strd r2, r1, [sp, 0xc] | __asm ("strd r2, r1, [var_ch]");
0x000136ca mov r2, r6 | r2 = r6;
0x000136cc ldr.w r1, [pc, 0x568] |
0x000136d0 strd r7, r0, [sp, 4] | __asm ("strd r7, r0, [var_8h]");
0x000136d4 movs r0, 1 | r0 = 1;
0x000136d6 str.w sb, [sp] | __asm ("str.w sb, [sp]");
0x000136d8 str r0, [sp] | *(sp) = r0;
0x000136da add r1, pc | r1 = 0x27316;
0x000136dc blx 0x59a0 | fcn_000059a0 ();
0x000136e0 b 0x134b8 | goto label_30;
| label_114:
0x000136e2 cmp r7, 0 |
0x000136e4 bne 0x13688 |
| } while (r7 != 0);
| label_37:
0x000136e6 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x000136e8 cmp r3, 0 |
| if (r3 == 0) {
0x000136ea beq.w 0x146ec | goto label_128;
| }
| label_58:
0x000136ee ldr.w r1, [pc, 0x54c] |
0x000136f2 mov r2, r6 | r2 = r6;
0x000136f4 str.w sb, [sp] | __asm ("str.w sb, [sp]");
0x000136f8 movs r0, 1 | r0 = 1;
0x000136fa add r1, pc | r1 = 0x2733c;
0x000136fc blx 0x59a0 | fcn_000059a0 ();
0x00013700 b 0x134b8 | goto label_30;
| label_126:
0x00013702 ldr.w r3, [pc, 0x53c] |
0x00013706 add r3, pc | r3 = 0x2734c;
0x00013708 b 0x136b8 | goto label_31;
| label_119:
0x0001370a ldr r1, [sp, 0x4c] | r1 = var_4ch;
0x0001370c b 0x13534 | goto label_32;
| label_121:
0x0001370e mov.w r8, 1 | r8 = 1;
0x00013712 mov r5, r8 | r5 = r8;
0x00013714 b 0x13576 | goto label_33;
| label_118:
0x00013716 mov r0, r6 | r0 = r6;
0x00013718 ldrd r5, fp, [sp, 0x54] | __asm ("ldrd r5, fp, [var_54h]");
0x0001371c ldr.w r8, [sp, 0x5c] | r8 = var_5ch;
0x00013720 ldr r4, [sp, 0x50] | r4 = var_50h;
0x00013722 blx 0x5be4 | fcn_00005be4 ();
| label_117:
0x00013726 ldr r6, [r4, 8] | r6 = *((r4 + 8));
0x00013728 ldr r7, [r4, 0x10] | r7 = *((r4 + 0x10));
0x0001372a cmp r6, 0 |
0x0001372c it ne |
| if (r6 != 0) {
0x0001372e cmpne r7, 0 | __asm ("cmpne r7, 0");
| }
| if (r6 != 0) {
0x00013730 bne.w 0x141e8 | goto label_129;
| }
0x00013734 cmp r6, r7 |
| if (r6 <= r7) {
0x00013736 blo.w 0x13b30 | goto label_130;
| }
| if (r6 > r7) {
0x0001373a bhi.w 0x13b30 | goto label_130;
| }
| label_34:
0x0001373e cmp r6, 0 |
| if (r6 == 0) {
0x00013740 beq.w 0x14306 | goto label_131;
| }
| label_44:
0x00013744 ldr r3, [sp, 0x44] | r3 = var_44h;
0x00013746 movs r0, 1 | r0 = 1;
0x00013748 ldr.w r1, [pc, 0x4f8] |
0x0001374c ldr r2, [sp, 0x40] | r2 = var_40h;
0x0001374e str r3, [sp] | *(sp) = r3;
0x00013750 mov r3, r6 | r3 = r6;
0x00013752 add r1, pc | r1 = 0x2739a;
0x00013754 blx 0x59a0 | fcn_000059a0 ();
| label_35:
0x00013758 ldr r6, [r4, 0xc] | r6 = *((r4 + 0xc));
| if (r6 != 0) {
0x0001375a cbz r6, 0x13772 |
0x0001375c ldrb r3, [r6] | r3 = *(r6);
| if (r3 == 0) {
0x0001375e cbz r3, 0x13772 | goto label_51;
| }
0x00013760 ldr.w r1, [pc, 0x4e4] |
0x00013764 mov r0, r6 | r0 = r6;
0x00013766 add r1, pc | r1 = 0x273b2;
0x00013768 blx 0x655c | r0 = fcn_0000655c ();
0x0001376c cmp r0, 0 |
| if (r0 != 0) {
0x0001376e bne.w 0x144b6 | goto label_132;
| }
| }
| label_51:
0x00013772 ldr r6, [r4, 0x44] | r6 = *((r4 + 0x44));
| if (r6 != 0) {
0x00013774 cbz r6, 0x1378c |
0x00013776 ldrb r3, [r6] | r3 = *(r6);
| if (r3 == 0) {
0x00013778 cbz r3, 0x1378c | goto label_53;
| }
0x0001377a ldr.w r1, [pc, 0x4d0] |
0x0001377e mov r0, r6 | r0 = r6;
0x00013780 add r1, pc | r1 = 0x273d2;
0x00013782 blx 0x655c | r0 = fcn_0000655c ();
0x00013786 cmp r0, 0 |
| if (r0 != 0) {
0x00013788 bne.w 0x145cc | goto label_133;
| }
| }
| label_53:
0x0001378c ldr.w sb, [r4, 8] | sb = *((r4 + 8));
0x00013790 cmp.w sb, 0 |
| if (sb == 0) {
0x00013794 beq.w 0x146c8 | goto label_134;
| }
0x00013798 ldr.w r7, [pc, 0x4b4] |
0x0001379c add r6, sp, 0x244 | r6 += arg_244h;
0x0001379e add r7, pc | r7 = 0x273f2;
0x000137a0 ldm.w r7, {r0, r1, r2} | r0 = *(r7);
| r1 = *((r7 + 4));
| r2 = *((r7 + 8));
0x000137a4 stm.w r6, {r0, r1, r2} | *(r6) = r0;
| *((r6 + 4)) = r1;
| *((r6 + 8)) = r2;
0x000137a8 mov r1, sb | r1 = sb;
0x000137aa mov r0, r6 | r0 = r6;
0x000137ac blx 0x6060 | r0 = fcn_00006060 ();
0x000137b0 cmp r0, 0 |
| if (r0 == 0) {
0x000137b2 beq.w 0x141c8 | goto label_135;
| }
0x000137b6 ldrd r6, r7, [r4, 0x58] | __asm ("ldrd r6, r7, [r4, 0x58]");
| label_42:
0x000137ba add r3, sp, 0x2a4 | r3 += arg_2a4h;
0x000137bc mov r2, r6 | r2 = r6;
0x000137be mov r0, r3 | r0 = r3;
0x000137c0 str r3, [sp, 0x54] | var_54h = r3;
0x000137c2 add r3, sp, 0x254 | r3 += arg_254h;
0x000137c4 mov.w r1, 0x100 | r1 = 0x100;
0x000137c8 str r3, [sp, 0x4c] | var_4ch = r3;
0x000137ca mov r3, r7 | r3 = r7;
0x000137cc blx 0x6210 | fcn_00006210 ();
0x000137d0 mov r2, r6 | r2 = r6;
0x000137d2 ldr.w r1, [pc, 0x480] | r1 = *(0x13c56);
0x000137d6 ldr r6, [sp, 0x38] | r6 = var_38h;
0x000137d8 mov sb, r0 | sb = r0;
0x000137da mov r3, r7 | r3 = r7;
0x000137dc ldr r0, [sp, 0x4c] | r0 = var_4ch;
0x000137de ldr r1, [r6, r1] | r1 = *((r6 + r1));
0x000137e0 mov r6, r1 | r6 = r1;
0x000137e2 str r1, [sp, 0x50] | var_50h = r1;
0x000137e4 ldr r6, [r6] | r6 = *(r6);
0x000137e6 movs r1, 0x26 | r1 = 0x26;
0x000137e8 str r6, [sp] | *(sp) = r6;
0x000137ea blx 0x64bc | r0 = fcn_000064bc ();
0x000137ee mov r2, r0 | r2 = r0;
0x000137f0 cmp.w sb, 0 |
| if (sb == 0) {
0x000137f4 beq.w 0x1414a | goto label_136;
| }
0x000137f8 ldr.w r1, [pc, 0x45c] |
0x000137fc mov r3, sb | r3 = sb;
0x000137fe movs r0, 1 | r0 = 1;
0x00013800 add r1, pc | r1 = 0x2745c;
0x00013802 blx 0x59a0 | fcn_000059a0 ();
| label_39:
0x00013806 ldr r6, [r4, 0x38] | r6 = *((r4 + 0x38));
0x00013808 cmp r6, 0 |
| if (r6 == 0) {
0x0001380a beq 0x13884 | goto label_137;
| }
0x0001380c ldr.w r3, [pc, 0x44c] |
0x00013810 subs r6, 4 | r6 -= 4;
0x00013812 ldr.w r7, [pc, 0x44c] |
0x00013816 add r3, pc | r3 = 0x27476;
0x00013818 str r3, [sp, 0x40] | var_40h = r3;
0x0001381a add r7, pc | r7 = 0x27480;
0x0001381c ldr.w r3, [pc, 0x444] |
0x00013820 add r3, pc | r3 = 0x27488;
0x00013822 str r3, [sp, 0x44] | var_44h = r3;
0x00013824 b 0x1387c |
| while (r3 != 0) {
0x00013826 add.w sb, sp, 0x98 | sb += var_98h;
0x0001382a mvn r2, 0x15 | r2 = ~0x15;
0x0001382e str r2, [sp, 0x98] | var_98h = r2;
0x00013830 mov r0, r5 | r0 = r5;
0x00013832 mov r2, sb | r2 = sb;
0x00013834 ldr r1, [r6] | r1 = *(r6);
0x00013836 bl 0x1a604 | fcn_0001a604 (r0, r1, r2, r3, r4, r5);
0x0001383a ldr r0, [sp, 0x98] | r0 = var_98h;
0x0001383c blx 0x609c | fcn_0000609c ();
0x00013840 mov r1, fp | r1 = fp;
0x00013842 mov r2, r8 | r2 = r8;
0x00013844 bl 0x12b24 | fcn_00012b24 (r0, r1, r2);
0x00013848 ldr r3, [r4, 0x38] | r3 = *((r4 + 0x38));
0x0001384a ldr r0, [sp, 0x98] | r0 = var_98h;
0x0001384c ldr.w sl, [fp] | sl = *(fp);
0x00013850 cmp r3, r6 |
0x00013852 ldrd r3, r2, [sp, 0x40] | __asm ("ldrd r3, r2, [var_40h]");
0x00013856 ite eq |
| if (r3 != r6) {
0x00013858 moveq sb, r3 | sb = r3;
| }
| if (r3 == r6) {
0x0001385a movne sb, r2 | sb = r2;
| }
0x0001385c blx 0x5edc | running_in_chroot ();
0x00013860 blx 0x6644 | sd_bus_message_close_container ();
0x00013862 mrc p8, 7, r6, c0, c1, 1 | __asm ("mrc p8, 7, r6, c0, c1, 1");
0x00013866 mov r3, sl | r3 = sl;
0x00013868 str r0, [sp] | *(sp) = r0;
0x0001386a mov r2, sb | r2 = sb;
0x0001386c movs r0, 1 | r0 = 1;
0x0001386e str r1, [sp, 8] | var_8h = r1;
0x00013870 ldr.w r1, [r8] | r1 = *(r8);
0x00013874 str r1, [sp, 4] | var_4h = r1;
0x00013876 mov r1, r7 | r1 = r7;
0x00013878 blx 0x59a0 | fcn_000059a0 ();
0x0001387c ldr r3, [r6, 4]! | r3 = *((r6 += 4));
0x00013880 cmp r3, 0 |
0x00013882 bne 0x13826 |
| }
| label_137:
0x00013884 ldr r1, [pc, 0x3e0] |
0x00013886 ldr r0, [r4] | r0 = *(r4);
0x00013888 add r1, pc | r1 = 0x274f4;
0x0001388a blx 0x6198 | r0 = fcn_00006198 ();
| if (r0 != 0) {
0x0001388e cbz r0, 0x138fa |
0x00013890 ldrd r2, r3, [r4, 0xd8] | __asm ("ldrd r2, r3, [r4, 0xd8]");
0x00013894 add r7, sp, 0x88 | r7 += var_88h;
0x00013896 ldr r1, [pc, 0x3d4] |
0x00013898 movs r0, 1 | r0 = 1;
0x0001389a add r6, sp, 0x98 | r6 += var_98h;
0x0001389c strd r2, r3, [sp, 0x98] | __asm ("strd r2, r3, [var_98h]");
0x000138a0 ldrd r2, r3, [r4, 0xe0] | __asm ("ldrd r2, r3, [r4, 0xe0]");
0x000138a4 add r1, pc | r1 = 0x27516;
0x000138a6 strd r2, r3, [sp, 0xa0] | __asm ("strd r2, r3, [var_a0h]");
0x000138aa blx 0x59a0 | fcn_000059a0 ();
0x000138ae mov r0, r7 | r0 = r7;
0x000138b0 blx 0x56f0 | dual_timestamp_get ();
0x000138b4 mov r1, r6 | r1 = r6;
0x000138b6 mov r0, r7 | r0 = r7;
0x000138b8 bl 0xf414 | r0 = fcn_0000f414 (r0, r1, r2);
0x000138bc mov r2, r0 | r2 = r0;
0x000138be mov r3, r1 | r3 = r1;
0x000138c0 mov sb, r0 | sb = r0;
0x000138c2 mov r7, r1 | r7 = r1;
0x000138c4 add r0, sp, 0x3a4 | r0 += arg_3a4h;
0x000138c6 mov.w r1, 0x100 | r1 = 0x100;
0x000138ca blx 0x6210 | fcn_00006210 ();
0x000138ce ldr r1, [sp, 0x50] | r1 = var_50h;
0x000138d0 mov r6, r0 | r6 = r0;
0x000138d2 mov r2, sb | r2 = sb;
0x000138d4 mov r3, r7 | r3 = r7;
0x000138d6 add r0, sp, 0x27c | r0 += arg_27ch;
0x000138d8 ldr r1, [r1] | r1 = *(r1);
0x000138da str r1, [sp] | *(sp) = r1;
0x000138dc movs r1, 0x26 | r1 = 0x26;
0x000138de blx 0x64bc | r0 = fcn_000064bc ();
0x000138e2 cmp r0, 0 |
0x000138e4 it ne |
| if (r0 != 0) {
0x000138e6 cmpne r6, 0 | __asm ("cmpne r6, 0");
| }
| if (r0 == 0) {
0x000138e8 beq.w 0x1427a | goto label_138;
| }
0x000138ec ldr r1, [pc, 0x380] |
0x000138ee mov r2, r0 | r2 = r0;
0x000138f0 mov r3, r6 | r3 = r6;
0x000138f2 movs r0, 1 | r0 = 1;
0x000138f4 add r1, pc | r1 = 0x27568;
0x000138f6 blx 0x59a0 | fcn_000059a0 ();
| }
| label_46:
0x000138fa ldr r6, [r4, 0x3c] | r6 = *((r4 + 0x3c));
0x000138fc cmp r6, 0 |
| if (r6 == 0) {
0x000138fe beq 0x1396a | goto label_139;
| }
0x00013900 ldr r3, [pc, 0x370] |
0x00013902 subs r6, 4 | r6 -= 4;
0x00013904 ldr.w sl, [pc, 0x370] |
0x00013908 ldr r7, [pc, 0x370] |
0x0001390a add r3, pc | r3 = 0x27582;
0x0001390c add sl, pc | sl = 0x27588;
0x0001390e str r3, [sp, 0x40] | var_40h = r3;
0x00013910 add r7, pc | r7 = 0x27590;
0x00013912 b 0x13962 |
| while (r3 != 0) {
0x00013914 mvn r3, 0x15 | r3 = ~0x15;
0x00013918 add.w sb, sp, 0x98 | sb += var_98h;
0x0001391c mov r2, sb | r2 = sb;
0x0001391e str r3, [sp, 0x98] | var_98h = r3;
0x00013920 mov r0, r5 | r0 = r5;
0x00013922 ldr r1, [r6] | r1 = *(r6);
0x00013924 bl 0x1a604 | fcn_0001a604 (r0, r1, r2, r3, r4, r5);
0x00013928 ldr r0, [sp, 0x98] | r0 = var_98h;
0x0001392a blx 0x609c | fcn_0000609c ();
0x0001392e mov r2, r8 | r2 = r8;
0x00013930 mov r1, fp | r1 = fp;
0x00013932 bl 0x12b24 | fcn_00012b24 (r0, r1, r2);
0x00013936 ldr r3, [r4, 0x3c] | r3 = *((r4 + 0x3c));
0x00013938 movs r0, 5 | r0 = 5;
0x0001393a cmp r3, r6 |
0x0001393c ldr r3, [sp, 0x40] | r3 = var_40h;
0x0001393e ite eq |
| if (r3 != r6) {
0x00013940 moveq sb, sl | sb = sl;
| }
| if (r3 == r6) {
0x00013942 movne sb, r3 | sb = r3;
| }
0x00013944 blx 0x6644 | sd_bus_message_close_container ();
0x00013948 ldr r3, [r6] | r3 = *(r6);
0x0001394a mov r2, sb | r2 = sb;
0x0001394c str r0, [sp] | *(sp) = r0;
0x0001394e movs r0, 1 | r0 = 1;
0x00013950 str r3, [sp, 8] | var_8h = r3;
0x00013952 ldr.w r1, [r8] | r1 = *(r8);
0x00013956 ldr.w r3, [fp] | r3 = *(fp);
0x0001395a str r1, [sp, 4] | var_4h = r1;
0x0001395c mov r1, r7 | r1 = r7;
0x0001395e blx 0x59a0 | fcn_000059a0 ();
0x00013962 ldr r3, [r6, 4]! | r3 = *((r6 += 4));
0x00013966 cmp r3, 0 |
0x00013968 bne 0x13914 |
| }
| label_139:
0x0001396a ldrb.w r3, [r4, 0xb8] | r3 = *((r4 + 0xb8));
| if (r3 == 0) {
0x0001396e cbnz r3, 0x1397c |
0x00013970 ldrd r2, r3, [r4, 0xb0] | __asm ("ldrd r2, r3, [r4, 0xb0]");
0x00013974 orrs.w r1, r2, r3 | r1 = r2 | r3;
| if (r1 != r2) {
0x00013978 bne.w 0x144f2 | goto label_140;
| }
| }
| label_52:
0x0001397c ldrb.w r3, [r4, 0xc8] | r3 = *((r4 + 0xc8));
| if (r3 == 0) {
0x00013980 cbnz r3, 0x1398e |
0x00013982 ldrd r2, r3, [r4, 0xc0] | __asm ("ldrd r2, r3, [r4, 0xc0]");
0x00013986 orrs.w r1, r2, r3 | r1 = r2 | r3;
| if (r1 != r2) {
0x0001398a bne.w 0x145fc | goto label_141;
| }
| }
| label_54:
0x0001398e ldr.w r2, [r4, 0xfc] | r2 = *((r4 + 0xfc));
| if (r2 != 0) {
0x00013992 cbz r2, 0x1399e |
0x00013994 ldr r1, [pc, 0x2e8] |
0x00013996 movs r0, 1 | r0 = 1;
0x00013998 add r1, pc | r1 = 0x2761c;
0x0001399a blx 0x59a0 | fcn_000059a0 ();
| }
0x0001399e ldr.w r2, [r4, 0x100] | r2 = *((r4 + 0x100));
| if (r2 != 0) {
0x000139a2 cbz r2, 0x139ae |
0x000139a4 ldr r1, [pc, 0x2dc] |
0x000139a6 movs r0, 1 | r0 = 1;
0x000139a8 add r1, pc | r1 = 0x27630;
0x000139aa blx 0x59a0 | fcn_000059a0 ();
| }
0x000139ae ldr.w r2, [r4, 0x104] | r2 = *((r4 + 0x104));
| if (r2 != 0) {
0x000139b2 cbz r2, 0x139be |
0x000139b4 ldr r1, [pc, 0x2d0] |
0x000139b6 movs r0, 1 | r0 = 1;
0x000139b8 add r1, pc | r1 = 0x27644;
0x000139ba blx 0x59a0 | fcn_000059a0 ();
| }
0x000139be ldr r6, [r4, 0x24] | r6 = *((r4 + 0x24));
| if (r6 == 0) {
0x000139c0 cbz r6, 0x13a18 | goto label_142;
| }
0x000139c2 ldr r7, [pc, 0x2c8] |
0x000139c4 subs r6, 4 | r6 -= 4;
0x000139c6 ldr.w sl, [pc, 0x2c8] |
0x000139ca ldr.w sb, [pc, 0x2c8] |
0x000139ce add r7, pc | r7 = 0x27660;
0x000139d0 str r5, [sp, 0x40] | var_40h = r5;
0x000139d2 add sl, pc | sl = 0x27668;
0x000139d4 add sb, pc | sb = 0x2766e;
0x000139d6 b 0x13a0e |
| while (r3 != 0) {
0x000139d8 add r5, sp, 0x98 | r5 += var_98h;
0x000139da movs r1, 0 | r1 = 0;
0x000139dc str r1, [r5] | *(r5) = r1;
0x000139de mov r2, r5 | r2 = r5;
0x000139e0 ldr r0, [r6] | r0 = *(r6);
0x000139e2 blx 0x63b4 | r0 = fcn_000063b4 ();
0x000139e6 cmp r0, 0 |
0x000139e8 mov.w r2, 9 | r2 = 9;
0x000139ec it ge |
| if (r0 < 0) {
0x000139ee ldrge r3, [r5] | r3 = *(r5);
| }
0x000139f0 mov r1, sb | r1 = sb;
0x000139f2 it lt |
| if (r0 >= 0) {
0x000139f4 ldrlt r3, [r6] | r3 = *(r6);
| }
0x000139f6 movs r0, 1 | r0 = 1;
0x000139f8 str r3, [sp] | *(sp) = r3;
0x000139fa ldr r3, [r4, 0x24] | r3 = *((r4 + 0x24));
0x000139fc cmp r3, r6 |
0x000139fe ite ne |
| if (r3 == r6) {
0x00013a00 movne r3, r7 | r3 = r7;
| }
| if (r3 != r6) {
0x00013a02 moveq r3, sl | r3 = sl;
| }
0x00013a04 blx 0x59a0 | fcn_000059a0 ();
0x00013a08 ldr r0, [r5] | r0 = *(r5);
0x00013a0a blx 0x5be4 | fcn_00005be4 ();
0x00013a0e ldr r3, [r6, 4]! | r3 = *((r6 += 4));
0x00013a12 cmp r3, 0 |
0x00013a14 bne 0x139d8 |
| }
0x00013a16 ldr r5, [sp, 0x40] | r5 = var_40h;
| label_142:
0x00013a18 ldr.w r6, [r4, 0xf8] | r6 = *((r4 + 0xf8));
| if (r6 == 0) {
0x00013a1c cbz r6, 0x13a58 | goto label_143;
| }
0x00013a1e ldr.w sb, [pc, 0x278] |
0x00013a22 ldr r7, [pc, 0x278] |
0x00013a24 ldr.w sl, [pc, 0x278] |
0x00013a28 add sb, pc | sb = 0x276c6;
0x00013a2a add r7, pc | r7 = 0x276cc;
0x00013a2c add sl, pc | sl = 0x276d0;
0x00013a2e b 0x13a52 |
| while (r3 != 0) {
0x00013a30 ldr r2, [r6, 4] | r2 = *((r6 + 4));
| if (r2 == 0) {
0x00013a32 cbz r2, 0x13a58 | goto label_143;
| }
0x00013a52 ldr r3, [r6] | r3 = *(r6);
0x00013a54 cmp r3, 0 |
0x00013a56 bne 0x13a30 |
| }
| label_143:
0x00013a58 ldrb.w r3, [r4, 0xf4] | r3 = *((r4 + 0xf4));
0x00013a5c cmp r3, 0 |
| if (r3 != 0) {
0x00013a5e bne.w 0x14202 | goto label_144;
| }
| label_45:
0x00013a62 ldr.w r6, [r4, 0x190] | r6 = *((r4 + 0x190));
0x00013a66 cmp r6, 0 |
| if (r6 == 0) {
0x00013a68 beq.w 0x13cca | goto label_145;
| }
0x00013a6c ldr.w sl, [pc, 0x234] |
0x00013a70 str r5, [sp, 0x40] | var_40h = r5;
0x00013a72 add sl, pc | sl = 0x2771a;
0x00013a74 mov r7, sl | r7 = sl;
0x00013a76 b 0x13a80 | void (*0x13a80)() ();
| label_130:
0x00013b30 cmp r7, 0 |
| if (r7 == 0) {
0x00013b32 beq.w 0x1373e | goto label_34;
| }
0x00013b36 ldr r6, [pc, 0x188] |
0x00013b38 add r6, pc | r6 = 0x277fe;
| label_43:
0x00013b3a ldr r3, [sp, 0x44] | r3 = var_44h;
0x00013b3c movs r0, 1 | r0 = 1;
0x00013b3e ldr r1, [pc, 0x184] |
0x00013b40 ldr r2, [sp, 0x40] | r2 = var_40h;
0x00013b42 strd r7, r3, [sp] | __asm ("strd r7, r3, [sp]");
0x00013b46 mov r3, r6 | r3 = r6;
0x00013b48 add r1, pc | r1 = 0x27812;
0x00013b4a blx 0x59a0 | fcn_000059a0 ();
0x00013b4e b 0x13758 | goto label_35;
| label_145:
0x00013cca ldr r2, [r4, 0x74] | r2 = *((r4 + 0x74));
0x00013ccc cmp r2, 0 |
| if (r2 <= 0) {
0x00013cce ble.w 0x14160 | void (*0x14160)() ();
| }
0x00013cd0 strh r7, [r0, 0x12] | *((r0 + 0x12)) = r7;
| label_55:
0x0001407a ldr r6, [r4, 8] | r6 = *((r4 + 8));
0x0001407c ldr r5, [r4, 0x24] | r5 = *((r4 + 0x24));
| if (r6 == 0) {
0x0001407e cbz r6, 0x140a0 | goto label_50;
| }
0x00014080 ldr.w r3, [pc, 0x7bc] |
0x00014084 add r3, pc | r3 = 0x288c8;
0x00014086 ldm.w r3, {r0, r1, r2} | r0 = *(r3);
| r1 = *((r3 + 4));
| r2 = *((r3 + 8));
0x0001408a add r3, sp, 0x244 | r3 += arg_244h;
0x0001408c stm.w r3, {r0, r1, r2} | *(r3) = r0;
| *((r3 + 4)) = r1;
| *((r3 + 8)) = r2;
0x00014090 mov r1, r6 | r1 = r6;
0x00014092 mov r0, r3 | r0 = r3;
0x00014094 movs r6, 3 | r6 = 3;
0x00014096 blx 0x6060 | r0 = fcn_00006060 ();
0x0001409a cmp r0, 0 |
| if (r0 == 0) {
0x0001409c beq.w 0x1313a | goto label_17;
| }
| label_50:
0x000140a0 movs r6, 0 | r6 = 0;
0x000140a2 b.w 0x1313a | goto label_17;
| label_112:
0x00014126 ldr r7, [r4, 0x28] | r7 = *((r4 + 0x28));
0x00014128 cmp r7, 0 |
| if (r7 != 0) {
0x0001412a bne.w 0x13476 | goto label_36;
| }
0x0001412e ldr r2, [r4, 0x40] | r2 = *((r4 + 0x40));
0x00014130 cmp r2, 0 |
| if (r2 == 0) {
0x00014132 beq.w 0x136e6 | goto label_37;
| }
0x00014136 ldrb r3, [r2] | r3 = *(r2);
0x00014138 cmp r3, 0 |
| if (r3 == 0) {
0x0001413a beq.w 0x136e6 | goto label_37;
| }
0x0001413e b.w 0x1349e | goto label_38;
| label_136:
0x0001414a cmp r0, 0 |
| if (r0 == 0) {
0x0001414c beq.w 0x14696 | goto label_146;
| }
0x00014150 ldr.w r1, [pc, 0x704] |
0x00014154 movs r0, 1 | r0 = 1;
0x00014156 add r1, pc | r1 = 0x289b2;
0x00014158 blx 0x59a0 | fcn_000059a0 ();
0x0001415c b.w 0x13806 | goto label_39;
| label_101:
0x000141b0 ldr.w r2, [pc, 0x6b4] |
0x000141b4 add r2, pc | r2 = 0x28a20;
0x000141b6 b.w 0x132c8 | goto label_40;
| label_116:
0x000141ba ldr.w r0, [pc, 0x6b0] |
0x000141be add r0, pc | r0 = 0x28a30;
0x000141c0 blx 0x62a0 | fcn_000062a0 ();
0x000141c4 b.w 0x134c2 | goto label_41;
| label_135:
0x000141c8 adds r7, 0x1c | r7 += 0x1c;
0x000141ca ldm.w r7, {r0, r1, r2} | r0 = *(r7);
| r1 = *((r7 + 4));
| r2 = *((r7 + 8));
0x000141ce stm.w r6, {r0, r1, r2} | *(r6) = r0;
| *((r6 + 4)) = r1;
| *((r6 + 8)) = r2;
0x000141d0 movs r7, r0 | r7 = r0;
0x000141d2 mov r1, sb | r1 = sb;
0x000141d4 mov r0, r6 | r0 = r6;
0x000141d6 blx 0x6060 | r0 = fcn_00006060 ();
0x000141da cmp r0, 0 |
| if (r0 == 0) {
0x000141dc beq.w 0x14310 | goto label_147;
| }
0x000141e0 ldrd r6, r7, [r4, 0x68] | __asm ("ldrd r6, r7, [r4, 0x68]");
0x000141e4 b.w 0x137ba | goto label_42;
| label_129:
0x000141e8 mov r1, r7 | r1 = r7;
0x000141ea mov r0, r6 | r0 = r6;
0x000141ec blx 0x655c | r0 = fcn_0000655c ();
0x000141f0 cmp r0, 0 |
| if (r0 != 0) {
0x000141f2 bne.w 0x13b3a | goto label_43;
| }
0x000141f6 b.w 0x13744 | goto label_44;
| label_144:
0x00014202 ldr.w r1, [pc, 0x66c] |
0x00014206 movs r0, 1 | r0 = 1;
0x00014208 ldrd r2, r3, [r4, 0xe8] | __asm ("ldrd r2, r3, [r4, 0xe8]");
0x0001420a movs r3, 0x3a | r3 = 0x3a;
0x0001420c add r1, pc | r1 = 0x28a82;
0x0001420e blx 0x59a0 | fcn_000059a0 ();
0x00014212 ldr.w r2, [r4, 0xf0] | r2 = *((r4 + 0xf0));
0x00014216 cmp r2, 0 |
| if (r2 != 0) {
0x00014218 bne.w 0x146e0 | goto label_148;
| }
| label_57:
0x0001421c movs r0, 0xa | r0 = 0xa;
0x0001421e blx 0x59b8 | fcn_000059b8 ();
0x00014222 b 0x13a62 | goto label_45;
| label_124:
0x0001425c ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x0001425e cmp r3, 0 |
| if (r3 == 0) {
0x00014260 beq.w 0x1471c | goto label_149;
| }
| label_65:
0x00014264 ldr.w r1, [pc, 0x618] |
0x00014268 mov r2, r6 | r2 = r6;
0x0001426a strd sb, r7, [sp] | __asm ("strd sb, r7, [sp]");
0x0001426e movs r0, 1 | r0 = 1;
0x00014270 add r1, pc | r1 = 0x28af4;
0x00014272 blx 0x59a0 | fcn_000059a0 ();
0x00014276 b.w 0x134b8 | goto label_30;
| if (r7 != 0) {
0x00014278 cbnz r7, 0x14282 | void (*0x14282)() ();
| }
| label_138:
0x0001427a ldr.w r0, [pc, 0x608] |
0x0001427e add r0, pc | r0 = 0x28b08;
0x00014280 blx 0x62a0 | fcn_000062a0 ();
0x00014284 b.w 0x138fa | goto label_46;
| label_105:
0x000142f2 ldr.w sb, [pc, 0x5a0] |
0x000142f6 add sb, pc | sb = 0x28b90;
0x000142f8 b.w 0x1335a | goto label_47;
| label_104:
0x000142fc ldr.w r6, [pc, 0x598] |
0x00014300 add r6, pc | r6 = 0x28b9c;
0x00014302 b.w 0x13342 | goto label_48;
| label_131:
0x00014306 ldr.w r6, [pc, 0x594] |
0x0001430a add r6, pc | r6 = 0x28bac;
0x0001430c b.w 0x13744 | goto label_44;
| label_147:
0x00014310 ldr.w r3, [pc, 0x58c] |
0x00014314 mov r1, sb | r1 = sb;
0x00014316 str r0, [r6, 4] | *((r6 + 4)) = r0;
0x00014318 mov r0, r6 | r0 = r6;
0x0001431a add r3, pc | r3 = 0x28bbe;
0x0001431c str r3, [r6] | *(r6) = r3;
0x0001431e blx 0x6060 | r0 = fcn_00006060 ();
0x00014322 cmp r0, 0 |
| if (r0 == 0) {
0x00014324 beq.w 0x146c8 | goto label_134;
| }
0x00014328 ldrd r6, r7, [r4, 0x48] | __asm ("ldrd r6, r7, [r4, 0x48]");
0x0001432c b.w 0x137ba | goto label_42;
| label_115:
0x00014402 ldr.w r3, [pc, 0x4bc] |
0x00014406 add r3, pc | r3 = 0x28ccc;
0x00014408 b.w 0x134a6 | goto label_49;
| label_122:
0x0001440c blx 0x5934 | r0 = fcn_00005934 ();
0x00014410 cmp r0, 5 |
0x00014412 it le |
| if (r0 <= 5) {
0x00014414 movle r6, r5 | r6 = r5;
| goto label_150;
| }
| if (r0 <= 5) {
| label_150:
0x00014416 ble.w 0x1313a | goto label_17;
| }
0x0001441a ldr r3, [r4] | r3 = *(r4);
0x0001441c mov r1, r5 | r1 = r5;
0x0001441e ldr.w r2, [pc, 0x4a4] |
0x00014422 movs r0, 6 | r0 = 6;
0x00014424 str r3, [sp, 8] | var_8h = r3;
0x00014426 ldr.w r3, [pc, 0x4a0] |
0x0001442a add r2, pc | r2 = 0x28cf4;
0x0001442c adds r2, 7 | r2 += 7;
0x0001442e add r3, pc | r3 = 0x28cfc;
0x00014430 str r3, [sp, 4] | var_4h = r3;
0x00014432 ldr.w r3, [pc, 0x498] |
0x00014436 add r3, pc | r3 = 0x28d08;
0x00014438 str r3, [sp] | *(sp) = r3;
0x0001443a movw r3, 0x313 | r3 = 0x313;
0x0001443e blx 0x61a4 | fcn_000061a4 ();
0x00014442 ldr r5, [r4, 0x24] | r5 = *((r4 + 0x24));
0x00014444 b 0x140a0 | goto label_50;
| label_132:
0x000144b6 blx 0x5e88 | r0 = strcpy (r0, r1)
0x000144ba cmp r0, 0 |
| if (r0 == 0) {
0x000144bc beq.w 0x14758 | goto label_151;
| }
0x000144c0 cmp r0, 0x10 |
| if (r0 != 0x10) {
0x000144c2 bne.w 0x14716 | goto label_152;
| }
0x000144c6 ldr.w r7, [pc, 0x41c] |
0x000144ca add r7, pc | r7 = 0x28db4;
| label_64:
0x000144cc blx 0x5e88 | r0 = strcpy (r0, r1)
0x000144d0 cmp r0, 0 |
| if (r0 != 0) {
0x000144d2 bne.w 0x14702 | goto label_153;
| }
0x000144d6 ldr.w r3, [pc, 0x410] |
0x000144da add r3, pc | r3 = 0x28dc8;
| label_61:
0x000144dc ldr.w r1, [pc, 0x40c] |
0x000144e0 mov r2, r7 | r2 = r7;
0x000144e2 str r3, [sp] | *(sp) = r3;
0x000144e4 movs r0, 1 | r0 = 1;
0x000144e6 mov r3, r6 | r3 = r6;
0x000144e8 add r1, pc | r1 = 0x28dd8;
0x000144ea blx 0x59a0 | fcn_000059a0 ();
0x000144ee b.w 0x13772 | goto label_51;
| label_140:
0x000144f2 mov.w r1, 0x100 | r1 = 0x100;
0x000144f6 ldr r0, [sp, 0x54] | r0 = var_54h;
0x000144f8 blx 0x6210 | fcn_00006210 ();
0x000144fc ldr r3, [sp, 0x50] | r3 = var_50h;
0x000144fe mov r6, r0 | r6 = r0;
0x00014500 movs r1, 0x26 | r1 = 0x26;
0x00014502 ldr r0, [sp, 0x4c] | r0 = var_4ch;
0x00014504 ldr r3, [r3] | r3 = *(r3);
0x00014506 str r3, [sp] | *(sp) = r3;
0x00014508 ldrd r2, r3, [r4, 0xb0] | __asm ("ldrd r2, r3, [r4, 0xb0]");
0x0001450c blx 0x64bc | r0 = fcn_000064bc ();
0x00014510 mov r7, r0 | r7 = r0;
0x00014512 blx 0x5e88 | r0 = strcpy (r0, r1)
0x00014516 cmp r0, 0 |
| if (r0 == 0) {
0x00014518 beq.w 0x14750 | goto label_154;
| }
0x0001451c cmp r0, 0x10 |
| if (r0 != 0x10) {
0x0001451e bne.w 0x1470e | goto label_155;
| }
0x00014522 ldr.w sb, [pc, 0x3cc] |
0x00014526 add sb, pc | sb = 0x28e1c;
| label_63:
0x00014528 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0001452c cmp r0, 0 |
| if (r0 != 0) {
0x0001452e bne.w 0x14708 | goto label_156;
| }
0x00014532 ldr r3, [pc, 0x3c0] |
0x00014534 add r3, pc | r3 = 0x28e2e;
| label_62:
0x00014536 cmp r6, 0 |
| if (r6 == 0) {
0x00014538 beq.w 0x14748 | goto label_157;
| }
0x0001453c ldr r2, [pc, 0x3b8] |
0x0001453e add r2, pc | r2 = 0x28e3a;
| label_66:
0x00014540 ldr r1, [pc, 0x3b8] |
0x00014542 movs r0, 1 | r0 = 1;
0x00014544 strd r2, r6, [sp, 4] | __asm ("strd r2, r6, [var_8h]");
0x00014548 mov r2, sb | r2 = sb;
0x0001454a str r7, [sp] | *(sp) = r7;
0x0001454c add r1, pc | r1 = 0x28e4c;
0x0001454e blx 0x59a0 | fcn_000059a0 ();
0x00014552 ldr.w r6, [r4, 0xbc] | r6 = *((r4 + 0xbc));
0x00014556 cmp r6, 0 |
| if (r6 == 0) {
0x00014558 beq.w 0x1397c | goto label_52;
| }
0x0001455c mov r3, r6 | r3 = r6;
0x0001455e movs r7, 0 | r7 = 0;
| do {
0x00014560 ldr r2, [r3, 0xc] | r2 = *((r3 + 0xc));
0x00014562 ldr r3, [r3, 0x10] | r3 = *((r3 + 0x10));
0x00014564 cmp r2, 0 |
0x00014566 it lt |
| if (r2 >= 0) {
0x00014568 addlt r7, 1 | r7++;
| }
0x0001456a cmp r3, 0 |
0x0001456c bne 0x14560 |
| } while (r3 != 0);
| label_133:
0x000145cc ldr r1, [pc, 0x344] |
0x000145ce mov r2, r6 | r2 = r6;
0x000145d0 movs r0, 1 | r0 = 1;
0x000145d2 add r1, pc | r1 = 0x28eea;
0x000145d4 blx 0x59a0 | fcn_000059a0 ();
0x000145d8 b.w 0x1378c | goto label_53;
| label_141:
0x000145fc mov.w r1, 0x100 | r1 = 0x100;
0x00014600 ldr r0, [sp, 0x54] | r0 = var_54h;
0x00014602 blx 0x6210 | fcn_00006210 ();
0x00014606 ldr r3, [sp, 0x50] | r3 = var_50h;
0x00014608 mov r6, r0 | r6 = r0;
0x0001460a movs r1, 0x26 | r1 = 0x26;
0x0001460c ldr r0, [sp, 0x4c] | r0 = var_4ch;
0x0001460e ldr r3, [r3] | r3 = *(r3);
0x00014610 str r3, [sp] | *(sp) = r3;
0x00014612 ldrd r2, r3, [r4, 0xc0] | __asm ("ldrd r2, r3, [r4, 0xc0]");
0x00014616 blx 0x64bc | r0 = fcn_000064bc ();
0x0001461a mov r7, r0 | r7 = r0;
0x0001461c blx 0x5e88 | r0 = strcpy (r0, r1)
0x00014620 cmp r0, 0 |
| if (r0 != 0) {
0x00014622 bne 0x146fa | goto label_158;
| }
0x00014624 ldr.w sb, [pc, 0x2f4] |
0x00014628 add sb, pc | sb = 0x28f48;
| label_60:
0x0001462a blx 0x5e88 | r0 = strcpy (r0, r1)
0x0001462e cmp r0, 0 |
| if (r0 != 0) {
0x00014630 bne 0x146f4 | goto label_159;
| }
0x00014632 ldr r3, [pc, 0x2ec] |
0x00014634 add r3, pc | r3 = 0x28f5a;
| label_59:
0x00014636 cmp r6, 0 |
| if (r6 == 0) {
0x00014638 beq.w 0x1476a | goto label_160;
| }
0x0001463a strh r7, [r2, 4] | *((r2 + 4)) = r7;
0x0001463c ldr r2, [pc, 0x2e4] |
0x0001463e add r2, pc | r2 = 0x28f66;
| label_67:
0x00014640 ldr r1, [pc, 0x2e4] |
0x00014642 movs r0, 1 | r0 = 1;
0x00014644 strd r2, r6, [sp, 4] | __asm ("strd r2, r6, [var_8h]");
0x00014648 mov r2, sb | r2 = sb;
0x0001464a str r7, [sp] | *(sp) = r7;
0x0001464c add r1, pc | r1 = 0x28f78;
0x0001464e blx 0x59a0 | fcn_000059a0 ();
0x00014652 ldrb.w r3, [r4, 0xc9] | r3 = *((r4 + 0xc9));
0x00014656 cmp r3, 0 |
| if (r3 != 0) {
0x00014658 bne.w 0x1475e | goto label_161;
| }
0x0001465c ldr.w r2, [r4, 0xcc] | r2 = *((r4 + 0xcc));
0x00014660 cmp r2, 0 |
| if (r2 == 0) {
0x00014662 beq.w 0x1398e | goto label_54;
| }
| label_110:
0x0001468e ldr r5, [r4, 0x24] | r5 = *((r4 + 0x24));
0x00014690 movs r6, 4 | r6 = 4;
0x00014692 b.w 0x1313a | goto label_17;
| label_146:
0x00014696 movs r0, 0xa | r0 = 0xa;
0x00014698 blx 0x59b8 | fcn_000059b8 ();
0x0001469c b.w 0x13806 | goto label_39;
| label_120:
0x000146a0 ldr r1, [pc, 0x290] |
0x000146a2 mov.w r2, 0x17e | r2 = 0x17e;
0x000146a6 ldr r3, [pc, 0x290] |
0x000146a8 movs r0, 3 | r0 = 3;
0x000146aa ldr r4, [sp, 0x50] | r4 = var_50h;
0x000146ac add r1, pc | r1 = 0x28fe4;
0x000146ae adds r1, 7 | r1 += 7;
0x000146b0 add r3, pc | r3 = 0x28fee;
0x000146b2 blx 0x65cc | fflush_and_check ();
0x000146b6 ldr.w r0, [sl] | r0 = *(sl);
0x000146ba blx 0x5be4 | fcn_00005be4 ();
0x000146be ldr r3, [sp, 0x48] | r3 = var_48h;
0x000146c0 ldr r0, [r3] | r0 = *(0x28fee);
0x000146c2 blx 0x5be4 | fcn_00005be4 ();
0x000146c6 b 0x1407a | goto label_55;
| label_134:
0x000146c8 ldrd r6, r7, [r4, 0x60] | __asm ("ldrd r6, r7, [r4, 0x60]");
0x000146cc b.w 0x137ba | goto label_42;
| label_125:
0x000146d0 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x000146d2 cmp r3, 0 |
| if (r3 != 0) {
0x000146d4 beq 0x14778 |
0x000146d6 ldr r2, [pc, 0x264] |
0x000146d8 add r2, pc | r2 = 0x2901a;
0x000146da mov r1, r2 | r1 = r2;
0x000146dc b.w 0x136c6 | goto label_56;
| label_148:
0x000146e0 ldr r1, [pc, 0x25c] |
0x000146e2 movs r0, 1 | r0 = 1;
0x000146e4 add r1, pc | r1 = 0x29028;
0x000146e6 blx 0x59a0 | fcn_000059a0 ();
0x000146ea b 0x1421c | goto label_57;
| label_128:
0x000146ec ldr r3, [pc, 0x254] |
0x000146ee add r3, pc | r3 = 0x29036;
0x000146f0 b.w 0x136ee | goto label_58;
| label_159:
0x000146f4 ldr r3, [pc, 0x250] |
0x000146f6 add r3, pc | r3 = 0x29042;
0x000146f8 b 0x14636 | goto label_59;
| label_158:
0x000146fa ldr.w sb, [pc, 0x250] |
0x000146fe add sb, pc | sb = 0x29050;
0x00014700 b 0x1462a | goto label_60;
| label_153:
0x00014702 ldr r3, [pc, 0x24c] |
0x00014704 add r3, pc | r3 = 0x2905a;
0x00014706 b 0x144dc | goto label_61;
| label_156:
0x00014708 ldr r3, [pc, 0x248] |
0x0001470a add r3, pc | r3 = 0x29062;
0x0001470c b 0x14536 | goto label_62;
| label_155:
0x0001470e ldr.w sb, [pc, 0x248] |
0x00014712 add sb, pc | sb = 0x29070;
0x00014714 b 0x14528 | goto label_63;
| label_152:
0x00014716 ldr r7, [pc, 0x244] |
0x00014718 add r7, pc | r7 = 0x2907a;
0x0001471a b 0x144cc | goto label_64;
| label_149:
0x0001471c ldr r3, [pc, 0x240] |
0x0001471e add r3, pc | r3 = 0x29082;
0x00014720 b 0x14264 | goto label_65;
| label_157:
0x00014748 ldr r6, [pc, 0x21c] |
0x0001474a add r6, pc | r6 = 0x290b6;
0x0001474c mov r2, r6 | r2 = r6;
0x0001474e b 0x14540 | goto label_66;
| label_154:
0x00014750 ldr.w sb, [pc, 0x218] |
0x00014754 add sb, pc | sb = 0x290c4;
0x00014756 b 0x14528 | goto label_63;
| label_151:
0x00014758 ldr r7, [pc, 0x214] |
0x0001475a add r7, pc | r7 = 0x290ce;
0x0001475c b 0x144cc | goto label_64;
| label_161:
0x0001475e ldr r0, [pc, 0x214] |
0x00014760 add r0, pc | r0 = 0x290da;
0x00014762 blx 0x62a0 | fcn_000062a0 ();
0x00014766 b.w 0x1398e | goto label_54;
| label_160:
0x0001476a ldr r6, [pc, 0x20c] |
0x0001476c add r6, pc | r6 = 0x290ea;
0x0001476e mov r2, r6 | r2 = r6;
0x00014770 b 0x14640 | goto label_67;
| }
0x00014778 ldr r2, [pc, 0x204] |
0x0001477a ldr r3, [pc, 0x208] |
0x0001477c add r2, pc | r2 = 0x29100;
0x0001477e add r3, pc | r3 = 0x29108;
0x00014780 mov r1, r2 | r1 = r2;
0x00014782 b.w 0x136c6 | goto label_56;
| label_127:
0x000147d6 ldr r2, [pc, 0x1c0] |
0x000147d8 add r2, pc | r2 = 0x29176;
0x000147da mov r1, r2 | r1 = r2;
0x000147dc b.w 0x136c6 | goto label_56;
| label_107:
0x000147e0 blx 0x6114 | fcn_00006114 ();
0x000147e4 ldc p0, c0, [r8], 0 | __asm ("ldc p0, c0, [r8], 0");
0x000147e8 lsls r4, r7, 0x17 | r4 = r7 << 0x17;
0x000147ea movs r0, r0 |
0x000147ec stcl p0, c0, [r4], {0} | __asm ("stcl p0, c0, [r4], {0}");
0x000147f0 ldc p0, c0, [sl], 0 | __asm ("ldc p0, c0, [sl], 0");
0x000147f4 stc p0, c0, [r6], {0} | __asm ("stc p0, c0, [r6], {0}");
0x000147f8 mrrc p0, 0, r0, r6, c0 | __asm ("mrrc p0, 0, r0, r6, c0");
0x000147fc mrrc p0, 0, r0, lr, c0 | __asm ("mrrc p0, 0, r0, lr, c0");
0x00014800 mrrc p0, 0, r0, r4, c0 | __asm ("mrrc p0, 0, r0, r4, c0");
0x00014804 ldc p0, c0, [r6], -0 | __asm ("ldc p0, c0, [r6], -0");
0x00014808 invalid |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/systemctl @ 0x189b4 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.000189b4 () | void fcn_000189b4 (int16_t arg_0h, int16_t arg_d8h, int16_t arg_f0h, int16_t arg_268h, int16_t arg_270h_2, int16_t arg_198h, int16_t arg_1d8h, int16_t arg_368h, int16_t arg_270h, int16_t arg_2c0h, int16_t arg_2f0h, int16_t arg_300h, int16_t arg_338h, int16_t arg_3e8h, int16_t arg2) {
| int16_t var_34h;
| int8_t var_1h_2;
| int16_t var_10h_4;
| 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_3;
| int16_t var_8h_3;
| int16_t var_ch_2;
| int16_t var_10h_3;
| int32_t var_0h_2;
| int32_t var_8h_4;
| int16_t var_1ch_2;
| int16_t var_20h_2;
| int16_t var_38h;
| int16_t var_68h;
| int16_t var_b0h_2;
| int16_t var_b8h;
| int16_t var_138h;
| int32_t var_12ch;
| int32_t var_134h;
| int16_t var_13ch;
| int16_t var_160h;
| int16_t var_170h;
| int16_t var_4h_2;
| int16_t var_8h_2;
| int16_t var_ch;
| int16_t var_10h_2;
| int32_t var_10h_6;
| int16_t var_18h;
| 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;
| int16_t var_44h;
| int16_t var_48h;
| int16_t var_4ch;
| int16_t c;
| int16_t var_58h;
| int16_t var_5ch;
| int16_t var_60h;
| char * s;
| int16_t var_68h_2;
| int16_t var_6ch;
| int16_t var_70h;
| int16_t var_74h;
| int16_t var_78h;
| int16_t var_7ch;
| int16_t var_1f0h;
| int16_t var_84h;
| int16_t var_88h;
| int32_t var_88h_2;
| int16_t var_90h;
| int16_t var_94h;
| int32_t var_10h_5;
| int32_t var_14h;
| int16_t var_a4h;
| int16_t var_a8h;
| int16_t var_b0h;
| int16_t var_230h;
| r1 = arg2;
0x000189b4 svcmi 0xf0e92d | __asm ("svcmi 0xf0e92d");
0x000189b8 sub sp, 0xac |
0x000189ba ldr.w r4, [pc, 0xc50] |
0x000189be movs r3, 0 | r3 = 0;
0x000189c0 ldr.w r0, [pc, 0xc4c] | r0 = *(0x19610);
0x000189c4 add r4, pc | r4 = 0x31fd6;
0x000189c6 ldr.w fp, [pc, 0xc4c] |
0x000189ca ldr.w r2, [pc, 0xc4c] | r2 = *(0x1961a);
0x000189ce ldr r0, [r4, r0] |
0x000189d0 mov r4, r1 | r4 = r1;
0x000189d2 add fp, pc | fp = 0x31fec;
0x000189d4 ldr r0, [r0] | r0 = *(0x31fd6);
0x000189d6 str r0, [sp, 0xa4] | var_a4h = r0;
0x000189d8 mov.w r0, 0 | r0 = 0;
0x000189dc strd r3, r3, [sp, 0x54] | __asm ("strd r3, r3, [var_58h]");
0x000189e0 strd r3, r3, [sp, 0x5c] | __asm ("strd r3, r3, [var_60h]");
0x000189e4 ldr.w r3, [fp, r2] | r3 = *(0x31fec);
0x000189e8 ldrb r5, [r3] | r5 = *(r3);
0x000189ea str r3, [sp, 0x18] | var_18h = r3;
| if (r5 != 0) {
0x000189ec cbz r5, 0x18a0c |
0x000189ee ldr.w r3, [pc, 0xc2c] |
0x000189f2 add r3, pc | r3 = 0x32014;
0x000189f4 ldm.w r3, {r0, r1, r2} | r0 = *(r3);
| r1 = *((r3 + 4));
| r2 = *((r3 + 8));
0x000189f8 add r3, sp, 0x94 | r3 += var_94h;
0x000189fa stm.w r3, {r0, r1, r2} | *(r3) = r0;
| *((r3 + 4)) = r1;
| *((r3 + 8)) = r2;
0x000189fe mov r0, r3 | r0 = r3;
0x00018a00 ldr r1, [r4] | r1 = *(r4);
0x00018a02 blx 0x6060 | r0 = fcn_00006060 ();
0x00018a06 cmp r0, 0 |
| if (r0 == 0) {
0x00018a08 beq.w 0x18f34 | goto label_58;
| }
| }
0x00018a0c add r1, sp, 0x64 | r1 += s;
0x00018a0e eor r0, r5, 1 | r0 = r5 ^ 1;
0x00018a12 bl 0x1a334 | r0 = fcn_0001a334 (r0, r1);
0x00018a16 subs.w sb, r0, 0 | sb = r0 - 0;
| if (sb < r0) {
0x00018a1a blt.w 0x18ce2 | goto label_59;
| }
0x00018a1e bl 0x1a4dc | fcn_0001a4dc ();
0x00018a22 bl 0x1a518 | fcn_0001a518 ();
0x00018a26 ldr.w r3, [pc, 0xbf8] | r3 = *(0x19622);
0x00018a2a ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00018a2e ldr r5, [r3] | r5 = *(0x19622);
0x00018a30 str r3, [sp, 0x28] | var_28h = r3;
0x00018a32 cmp r5, 0 |
| if (r5 == 0) {
0x00018a34 beq.w 0x18c7c | goto label_60;
| }
0x00018a38 cmp r5, 0x15 |
| if (r5 > 0x15) {
0x00018a3a bhi.w 0x1942c | goto label_61;
| }
0x00018a3e ldr.w r3, [pc, 0xbe4] |
0x00018a42 add.w r5, r5, r5, lsl 1 | r5 += (r5 << 1);
0x00018a46 lsls r5, r5, 2 | r5 <<= 2;
0x00018a48 add r3, pc | r3 = 0x32072;
0x00018a4a ldr r6, [r3, r5] | r6 = *(0x32072);
0x00018a4c cmp r6, 0 |
| if (r6 == 0) {
0x00018a4e beq.w 0x19448 | goto label_62;
| }
0x00018a52 add r3, r5 | r3 += r5;
0x00018a54 ldr r3, [r3, 8] | r3 = *((r3 + 8));
0x00018a56 str r3, [sp, 0x20] | var_20h = r3;
0x00018a58 cmp r3, 0 |
| if (r3 == 0) {
0x00018a5a beq.w 0x1916a | goto label_63;
| }
| label_0:
0x00018a5e mov r0, r6 | r0 = r6;
0x00018a60 movs r1, 0 | r1 = 0;
0x00018a62 blx 0x5cb0 | fcn_00005cb0 ();
0x00018a66 str r0, [sp, 0x60] | var_60h = r0;
0x00018a68 cmp r0, 0 |
| if (r0 == 0) {
0x00018a6a beq.w 0x18cc8 | goto label_64;
| }
0x00018a6e ldr.w r3, [pc, 0xbb8] |
0x00018a72 add r3, pc | r3 = 0x320a0;
0x00018a74 str r3, [sp, 0x2c] | var_2ch = r3;
0x00018a76 ldr.w r3, [pc, 0xbb4] |
0x00018a7a add r3, pc | r3 = 0x320ac;
0x00018a7c str r3, [sp, 0x1c] | var_1ch = r3;
| label_1:
0x00018a7e ldr.w r3, [pc, 0xbb0] | r3 = *(0x19632);
0x00018a82 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00018a86 str r3, [sp, 0x30] | var_30h = r3;
0x00018a88 ldrb r3, [r3] | r3 = *(r3);
0x00018a8a cmp r3, 0 |
| if (r3 == 0) {
0x00018a8c beq.w 0x18e2e | goto label_65;
| }
| label_5:
0x00018a90 ldr r3, [sp, 0x18] | r3 = var_18h;
0x00018a92 ldrb r3, [r3] | r3 = *(r3);
0x00018a94 cmp r3, 0 |
| if (r3 != 0) {
0x00018a96 bne.w 0x18f7a | goto label_66;
| }
| label_9:
0x00018a9a ldr.w r3, [pc, 0xb98] | r3 = *(0x19636);
0x00018a9e ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00018aa2 ldrb r2, [r3] | r2 = *(r3);
0x00018aa4 cmp r2, 0 |
| if (r2 != 0) {
0x00018aa6 bne.w 0x18d2a | goto label_67;
| }
0x00018aaa ldr r3, [sp, 0x60] | r3 = var_60h;
0x00018aac cmp r3, 0 |
| if (r3 == 0) {
0x00018aae beq.w 0x1987e | goto label_68;
| }
0x00018ab2 subs r6, r3, 4 | r6 = r3 - 4;
0x00018ab4 ldr.w r3, [pc, 0xb80] |
0x00018ab8 add r3, pc | r3 = 0x320f4;
0x00018aba adds r3, 7 | r3 += 7;
0x00018abc str r3, [sp, 0x48] | var_48h = r3;
0x00018abe ldr.w r3, [pc, 0xb7c] |
0x00018ac2 add r3, pc | r3 = 0x32104;
0x00018ac4 adds r3, 7 | r3 += 7;
0x00018ac6 str r3, [sp, 0x44] | var_44h = r3;
0x00018ac8 ldr.w r3, [pc, 0xb74] |
0x00018acc add r3, pc | r3 = 0x32110;
0x00018ace strd r2, r3, [sp, 0x38] | __asm ("strd r2, r3, [var_38h_2]");
| label_4:
0x00018ad2 ldr r3, [r6, 4]! | r3 = *((r6 += 4));
0x00018ad6 cmp r3, 0 |
| if (r3 == 0) {
0x00018ad8 beq.w 0x194ce | goto label_69;
| }
0x00018adc movs r3, 0 | r3 = 0;
0x00018ade ldr r5, [sp, 0x64] | r5 = s;
0x00018ae0 strd r3, r3, [sp, 0x7c] | __asm ("strd r3, r3, [var_1f0h]");
0x00018ae4 str r3, [sp, 0x84] | var_84h = r3;
0x00018ae6 ldr r4, [r6] | r4 = *(r6);
0x00018ae8 str r3, [sp, 0x68] | var_68h_2 = r3;
0x00018aea ldr r3, [sp, 0x58] | r3 = var_58h;
0x00018aec str r3, [sp, 0x24] | var_24h = r3;
0x00018aee ldr r3, [sp, 0x54] | r3 = c;
0x00018af0 str r3, [sp, 0x34] | var_34h_2 = r3;
0x00018af2 ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x00018af4 cmp r3, 0 |
| if (r3 == 0) {
0x00018af6 beq.w 0x19366 | goto label_70;
| }
0x00018afa cmp r4, 0 |
| if (r4 == 0) {
0x00018afc beq.w 0x19404 | goto label_71;
| }
0x00018b00 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00018b02 cmp r3, 0 |
| if (r3 == 0) {
0x00018b04 beq.w 0x19418 | goto label_72;
| }
0x00018b08 blx 0x5934 | fcn_00005934 ();
0x00018b0c ldr.w r3, [pc, 0xb34] | r3 = *(0x19644);
0x00018b10 cmp r0, 6 |
0x00018b12 ldr.w r7, [fp, r3] | r7 = *((fp + r3));
0x00018b16 ldrb r3, [r7] | r3 = *(r7);
| if (r0 <= 6) {
0x00018b18 ble.w 0x18e0e | goto label_73;
| }
0x00018b1c cmp r3, 0 |
| if (r3 != 0) {
0x00018b1e bne.w 0x18fbe | goto label_74;
| }
0x00018b22 ldr.w r3, [pc, 0xb24] |
0x00018b26 add r3, pc | r3 = 0x32174;
| label_10:
0x00018b28 str r3, [sp, 8] | var_8h_2 = r3;
0x00018b2a movs r1, 0 | r1 = 0;
0x00018b2c ldr r3, [sp, 0x20] | r3 = var_20h;
0x00018b2e movs r0, 7 | r0 = 7;
0x00018b30 ldr.w r2, [pc, 0xb18] |
0x00018b34 add.w r8, sp, 0x7c | r8 += var_7ch;
0x00018b38 strd r4, r3, [sp, 0x10] | __asm ("strd r4, r3, [var_10h_2]");
0x00018b3c ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x00018b3e add r2, pc | r2 = 0x3218e;
0x00018b40 adds r2, 7 | r2 += 7;
0x00018b42 str r3, [sp, 0xc] | var_ch = r3;
0x00018b44 ldr.w r3, [pc, 0xb08] |
0x00018b48 add r3, pc | r3 = 0x3219c;
0x00018b4a str r3, [sp, 4] | var_4h_2 = r3;
0x00018b4c ldr.w r3, [pc, 0xb04] |
0x00018b50 add r3, pc | r3 = 0x321a8;
0x00018b52 str r3, [sp] | *(sp) = r3;
0x00018b54 movs r3, 0x4a | r3 = 0x4a;
0x00018b56 blx 0x61a4 | fcn_000061a4 ();
0x00018b5a ldrb r3, [r7] | r3 = *(r7);
0x00018b5c cmp r3, 0 |
| if (r3 != 0) {
0x00018b5e bne.w 0x18f26 | goto label_75;
| }
| label_3:
0x00018b62 ldr.w r3, [pc, 0xaf4] | r3 = *(0x1965a);
0x00018b66 add.w sb, sp, 0x68 | sb += var_68h_2;
0x00018b6a ldr.w r2, [pc, 0xaf0] | r2 = *(0x1965e);
0x00018b6e ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00018b72 ldr.w r2, [fp, r2] | r2 = *((fp + r2));
0x00018b76 ldrb r3, [r3] | r3 = *(r3);
0x00018b78 ldr.w r8, [r2] | r8 = *(0x1965e);
0x00018b7c cmp r3, 0 |
| if (r3 == 0) {
0x00018b7e beq.w 0x18e90 | goto label_37;
| }
0x00018b82 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00018b84 add.w sb, sp, 0x68 | sb += var_68h_2;
0x00018b88 ldr.w r2, [pc, 0xad4] |
0x00018b8c mov.w sl, 0 | sl = 0;
0x00018b90 mov r1, r8 | r1 = r8;
0x00018b92 mov r0, r5 | r0 = r5;
0x00018b94 str r3, [sp, 0x10] | var_10h_2 = r3;
0x00018b96 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x00018b98 add r2, pc | r2 = 0x321fc;
0x00018b9a str.w sb, [sp] | __asm ("str.w sb, [sp]");
0x00018b9e strd sl, sl, [sp, 0x88] | __asm ("strd sl, sl, [var_88h]");
0x00018ba2 strd r4, r3, [sp, 8] | __asm ("strd r4, r3, [var_8h_2]");
0x00018ba6 ldr.w r3, [pc, 0xabc] |
0x00018baa str.w sl, [sp, 0x90] | __asm ("str.w sl, [var_90h]");
0x00018bae add r3, pc | r3 = 0x32218;
0x00018bb0 str r3, [sp, 4] | var_4h_2 = r3;
0x00018bb2 add r3, sp, 0x88 | r3 += var_88h;
0x00018bb4 str r3, [sp, 0x40] | var_40h = r3;
0x00018bb6 blx 0x5d44 | r0 = strlen (r0);
0x00018bba subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 < r0) {
0x00018bbc blt.w 0x18e6e | goto label_76;
| }
0x00018bc0 ldr.w r1, [pc, 0xaa4] |
0x00018bc4 add.w sb, sp, 0x78 | sb += var_78h;
0x00018bc8 add.w r8, sp, 0x74 | r8 += var_74h;
0x00018bcc add r7, sp, 0x70 | r7 += var_70h;
0x00018bce ldr r0, [sp, 0x68] | r0 = var_68h_2;
0x00018bd0 add r3, sp, 0x6c | r3 += var_6ch;
0x00018bd2 add r1, pc | r1 = 0x3223e;
0x00018bd4 mov r2, sb | r2 = sb;
0x00018bd6 str.w sl, [sp, 4] | __asm ("str.w sl, [var_4h_2]");
0x00018bda str.w r8, [sp, 8] | __asm ("str.w r8, [var_8h_2]");
0x00018bde str r7, [sp] | *(sp) = r7;
0x00018be0 blx 0x5b10 | r0 = runlevel_to_target ();
0x00018be4 subs r1, r0, 0 | r1 = r0 - 0;
| if (r1 < r0) {
0x00018be6 blt.w 0x191c6 | goto label_77;
| }
0x00018bea blx 0x5934 | r0 = fcn_00005934 ();
0x00018bee cmp r0, 5 |
| if (r0 > 5) {
0x00018bf0 bgt.w 0x19518 | goto label_78;
| }
| label_32:
0x00018bf4 ldr.w sl, [pc, 0xa74] |
0x00018bf8 movs r1, 0x61 | r1 = 0x61;
0x00018bfa ldr r0, [sp, 0x68] | r0 = var_68h_2;
0x00018bfc add sl, pc | sl = 0x3226c;
0x00018bfe mov r2, sl | r2 = sl;
0x00018c00 blx 0x5838 | r0 = fcn_00005838 ();
0x00018c04 subs r1, r0, 0 | r1 = r0 - 0;
| if (r1 < r0) {
0x00018c06 blt.w 0x195a0 | goto label_79;
| }
0x00018c0a mov r3, r8 | r3 = r8;
0x00018c0c mov r8, r4 | r8 = r4;
0x00018c0e mov r4, r3 | r4 = r3;
0x00018c10 str r5, [sp, 0x4c] | var_4ch = r5;
| label_31:
0x00018c12 movs r5, 0 | r5 = 0;
0x00018c14 b 0x18c24 |
| if (r5 == 0) {
| while (r0 >= 0) {
0x00018c16 beq.w 0x194d4 | goto label_80;
| }
0x00018c1a blx 0x5934 | r0 = fcn_00005934 ();
0x00018c1e cmp r0, 5 |
| if (r0 > 5) {
0x00018c20 bgt.w 0x194f0 | goto label_81;
| }
0x00018c24 ldr r0, [sp, 0x68] | r0 = var_68h_2;
0x00018c26 movs r3, 0 | r3 = 0;
0x00018c28 mov r2, sb | r2 = sb;
0x00018c2a mov r1, sl | r1 = sl;
0x00018c2c strd r5, r4, [sp, 4] | __asm ("strd r5, r4, [var_4h_2]");
0x00018c30 str r7, [sp] | *(sp) = r7;
0x00018c32 blx 0x5b10 | r0 = runlevel_to_target ();
0x00018c36 cmp r0, 0 |
0x00018c38 bge 0x18c16 |
| }
0x00018c3a str r0, [sp, 0x24] | var_24h = r0;
0x00018c3c blx 0x5934 | r0 = fcn_00005934 ();
0x00018c40 cmp r0, 2 |
0x00018c42 ldr r1, [sp, 0x24] | r1 = var_24h;
| if (r0 > 2) {
0x00018c44 bgt.w 0x198ca | goto label_82;
| }
| label_18:
0x00018c48 rsbs r7, r1, 0 | r7 = r1 - ;
0x00018c4a uxtb r7, r7 | r7 = (int8_t) r7;
0x00018c4c rsbs r7, r7, 0 | r7 -= ;
| label_19:
0x00018c4e add.w r8, sp, 0x7c | r8 += var_7ch;
0x00018c52 cmp r7, 0 |
0x00018c54 ldr r0, [sp, 0x40] | r0 = var_40h;
0x00018c56 it ge |
| if (r7 < 0) {
0x00018c58 mvnge r7, 0x55 | r7 = ~0x55;
| }
0x00018c5c blx 0x6024 | fcn_00006024 ();
| label_6:
0x00018c60 ldr r0, [sp, 0x68] | r0 = var_68h_2;
| if (r0 != 0) {
0x00018c62 cbz r0, 0x18c68 |
0x00018c64 blx 0x582c | fcn_0000582c ();
| }
0x00018c68 ldr r3, [sp, 0x38] | r3 = var_38h_2;
0x00018c6a cmp r3, 0 |
| if (r3 != 0) {
0x00018c6c bne.w 0x18e26 | goto label_11;
| }
0x00018c70 mov r0, r7 | r0 = r7;
0x00018c72 mov r1, r8 | r1 = r8;
0x00018c74 bl 0x1a548 | fcn_0001a548 (r0, r1);
0x00018c78 str r0, [sp, 0x38] | var_38h_2 = r0;
0x00018c7a b 0x18e26 | goto label_11;
| label_60:
0x00018c7c ldr r6, [r4] | r6 = *(r4);
0x00018c7e mov r0, r6 | r0 = r6;
0x00018c80 bl 0x18968 | r0 = fcn_00018968 (r0);
0x00018c84 cmn.w r0, 0x16 |
| if (r0 == 0x16) {
0x00018c88 beq.w 0x18dc6 | goto label_83;
| }
0x00018c8c ldr.w r3, [pc, 0x9e0] |
0x00018c90 add.w r0, r0, r0, lsl 1 | r0 += (r0 << 1);
0x00018c94 lsls r0, r0, 2 | r0 <<= 2;
0x00018c96 add r3, pc |
0x00018c98 ldr r6, [r3, r0] | r6 = *(0x3230a);
0x00018c9a add r3, r0 | r3 += r0;
0x00018c9c ldr r3, [r3, 8] | r3 = *(0x32312);
0x00018c9e str r3, [sp, 0x20] | var_20h = r3;
0x00018ca0 cmp r6, 0 |
| if (r6 != 0) {
0x00018ca2 bne.w 0x18a5e | goto label_0;
| }
| label_14:
0x00018ca6 ldr.w r3, [pc, 0x98c] | r3 = *(0x19636);
0x00018caa ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00018cae ldrb r3, [r3] | r3 = *(r3);
0x00018cb0 cmp r3, 0 |
| if (r3 == 0) {
0x00018cb2 beq.w 0x19380 | goto label_84;
| }
0x00018cb6 ldr.w r3, [pc, 0x9bc] |
0x00018cba add r3, pc | r3 = 0x32334;
0x00018cbc str r3, [sp, 0x2c] | var_2ch = r3;
0x00018cbe ldr.w r3, [pc, 0x9b8] |
0x00018cc2 add r3, pc | r3 = 0x32340;
0x00018cc4 str r3, [sp, 0x1c] | var_1ch = r3;
0x00018cc6 b 0x18a7e | goto label_1;
| label_64:
0x00018cc8 ldr.w r1, [pc, 0x9b0] |
0x00018ccc mov.w r2, 0x14a | r2 = 0x14a;
0x00018cd0 ldr.w r3, [pc, 0x9ac] |
0x00018cd4 movs r0, 3 | r0 = 3;
0x00018cd6 add r1, pc | r1 = 0x32356;
0x00018cd8 add r3, pc | r3 = 0x3235c;
0x00018cda adds r1, 7 | r1 += 7;
0x00018cdc blx 0x65cc | r0 = fflush_and_check ();
0x00018ce0 mov sb, r0 | sb = r0;
| do {
| label_59:
0x00018ce2 ldr r0, [sp, 0x60] | r0 = var_60h;
| if (r0 != 0) {
| label_2:
0x00018ce4 cbz r0, 0x18cec |
0x00018ce6 blx 0x5dec | unit_file_state_to_string ();
0x00018cea str r0, [sp, 0x60] | var_60h = r0;
| }
| label_8:
0x00018cec ldr r0, [sp, 0x5c] | r0 = var_5ch;
0x00018cee blx 0x5be4 | fcn_00005be4 ();
0x00018cf2 ldr r0, [sp, 0x58] | r0 = var_58h;
0x00018cf4 movs r3, 0 | r3 = 0;
0x00018cf6 str r3, [sp, 0x5c] | var_5ch = r3;
| if (r0 != 0) {
0x00018cf8 cbz r0, 0x18d00 |
0x00018cfa blx 0x57cc | fcn_000057cc ();
0x00018cfe str r0, [sp, 0x58] | var_58h = r0;
| }
0x00018d00 ldr r0, [sp, 0x54] | r0 = c;
| if (r0 != 0) {
0x00018d02 cbz r0, 0x18d08 |
0x00018d04 blx 0x5f0c | output_mode_from_string ();
| }
0x00018d08 ldr.w r2, [pc, 0x978] |
0x00018d0c ldr.w r3, [pc, 0x900] | r3 = *(0x19610);
0x00018d10 add r2, pc | r2 = 0x32398;
0x00018d12 ldr r3, [r2, r3] | r3 = *(0x32398);
0x00018d14 ldr r2, [r3] | r2 = *(0x32398);
0x00018d16 ldr r3, [sp, 0xa4] | r3 = var_a4h;
0x00018d18 eors r2, r3 | r2 ^= r3;
0x00018d1a mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00018d1e bne.w 0x199d4 | goto label_85;
| }
0x00018d22 mov r0, sb | r0 = sb;
0x00018d24 add sp, 0xac |
0x00018d26 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_67:
0x00018d2a movs r3, 0 | r3 = 0;
0x00018d2c ldr r4, [sp, 0x64] | r4 = s;
0x00018d2e str r3, [sp, 0x78] | var_78h = r3;
0x00018d30 strd r3, r3, [sp, 0x88] | __asm ("strd r3, r3, [var_88h]");
0x00018d34 str r3, [sp, 0x90] | var_90h = r3;
0x00018d36 blx 0x5934 | fcn_00005934 ();
0x00018d3a ldr.w r3, [pc, 0x908] | r3 = *(0x19646);
0x00018d3e cmp r0, 6 |
0x00018d40 ldr r6, [sp, 0x58] | r6 = var_58h;
0x00018d42 ldr.w r5, [fp, r3] | r5 = *((fp + r3));
| if (r0 > 6) {
0x00018d46 ble 0x18d7a |
0x00018d48 ldrb r3, [r5] | r3 = *(r5);
0x00018d4a cmp r3, 0 |
| if (r3 != 0) {
0x00018d4c bne.w 0x19442 | goto label_86;
| }
0x00018d50 ldr.w r3, [pc, 0x934] |
0x00018d54 add r3, pc | r3 = 0x323e0;
| label_26:
0x00018d56 str r3, [sp, 8] | var_8h_2 = r3;
0x00018d58 movs r1, 0 | r1 = 0;
0x00018d5a ldr.w r3, [pc, 0x930] |
0x00018d5e movs r0, 7 | r0 = 7;
0x00018d60 ldr.w r2, [pc, 0x92c] |
0x00018d64 add r3, pc | r3 = 0x323f6;
0x00018d66 str r3, [sp, 4] | var_4h_2 = r3;
0x00018d68 add r2, pc | r2 = 0x323fc;
0x00018d6a ldr.w r3, [pc, 0x928] |
0x00018d6e adds r2, 7 | r2 += 7;
0x00018d70 add r3, pc | r3 = 0x3240a;
0x00018d72 str r3, [sp] | *(sp) = r3;
0x00018d74 movs r3, 0xbb | r3 = 0xbb;
0x00018d76 blx 0x61a4 | fcn_000061a4 ();
| }
0x00018d7a ldrb r7, [r5] | r7 = *(r5);
0x00018d7c cmp r7, 0 |
| if (r7 == 0) {
0x00018d7e beq.w 0x190bc | goto label_87;
| }
0x00018d82 add r5, sp, 0x88 | r5 += var_88h;
| label_12:
0x00018d84 mov.w sb, 0 | sb = 0;
| label_27:
0x00018d88 mov r0, r5 | r0 = r5;
0x00018d8a blx 0x6024 | fcn_00006024 ();
0x00018d8e ldr r0, [sp, 0x78] | r0 = var_78h;
| if (r0 != 0) {
0x00018d90 cbz r0, 0x18d96 |
0x00018d92 blx 0x582c | fcn_0000582c ();
| }
| label_29:
0x00018d96 ldr r3, [sp, 0x30] | r3 = var_30h;
0x00018d98 ldrb r3, [r3] | r3 = *(r3);
0x00018d9a cmp r3, 0 |
| if (r3 == 0) {
0x00018d9c beq.w 0x19392 | goto label_88;
| }
| label_25:
0x00018da0 ldr r3, [sp, 0x18] | r3 = var_18h;
0x00018da2 ldrb r3, [r3] | r3 = *(r3);
0x00018da4 cmp r3, 0 |
0x00018da6 beq 0x18ce2 |
| } while (r3 == 0);
0x00018da8 ldr r0, [sp, 0x54] | r0 = c;
0x00018daa blx 0x5d2c | r0 = bus_call_method ();
0x00018dae subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00018db0 blt.w 0x19830 | goto label_89;
| }
0x00018db4 cmp r4, 1 |
0x00018db6 it eq |
| if (r4 == 1) {
0x00018db8 cmpeq sb, 0 | __asm ("cmpeq sb, 0");
| }
0x00018dbc ldr r0, [sp, 0x60] | r0 = var_60h;
0x00018dbe it eq |
| if (r4 != 1) {
0x00018dc0 moveq sb, 1 | sb = 1;
| }
0x00018dc4 b 0x18ce4 | goto label_2;
| label_83:
0x00018dc6 ldr.w r7, [pc, 0x8d0] |
0x00018dca mov r0, r6 | r0 = r6;
0x00018dcc add r7, pc | r7 = 0x3246a;
0x00018dce mov r1, r7 | r1 = r7;
0x00018dd0 blx 0x655c | r0 = fcn_0000655c ();
0x00018dd4 cmp r0, 0 |
| if (r0 == 0) {
0x00018dd6 beq.w 0x19158 | goto label_90;
| }
0x00018dda ldr.w r3, [pc, 0x858] | r3 = *(0x19636);
0x00018dde ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00018de2 ldrb r3, [r3] | r3 = *(r3);
0x00018de4 cmp r3, 0 |
| if (r3 != 0) {
0x00018de6 bne.w 0x1945e | goto label_91;
| }
0x00018dea ldr.w r7, [pc, 0x8b0] |
0x00018dee mov r5, r3 | r5 = r3;
0x00018df0 ldr.w r0, [pc, 0x8ac] |
0x00018df4 add r7, pc | r7 = 0x32496;
0x00018df6 add r0, pc | r0 = 0x3249a;
0x00018df8 mov r8, r7 | r8 = r7;
| do {
0x00018dfa cmp r0, 0 |
| if (r0 != 0) {
0x00018dfc bne.w 0x1922a | goto label_92;
| }
| label_22:
0x00018e00 adds r5, 1 | r5++;
0x00018e02 cmp r5, 0xc |
| if (r5 == 0xc) {
0x00018e04 beq.w 0x1956a | goto label_93;
| }
0x00018e08 ldr r0, [r8, 0xc]! | r0 = *((r8 += 0xc));
0x00018e0c b 0x18dfa |
| } while (1);
| label_73:
0x00018e0e add.w r8, sp, 0x7c | r8 += var_7ch;
0x00018e12 cmp r3, 0 |
| if (r3 == 0) {
0x00018e14 beq.w 0x18b62 | goto label_3;
| }
| label_7:
0x00018e18 ldr r1, [sp, 0x3c] | r1 = var_3ch;
0x00018e1a ldr r0, [sp, 0x1c] | r0 = var_1ch;
0x00018e1c blx 0x655c | r0 = fcn_0000655c ();
0x00018e20 cmp r0, 0 |
| if (r0 == 0) {
0x00018e22 beq.w 0x18fc6 | goto label_94;
| }
| label_11:
0x00018e26 mov r0, r8 | r0 = r8;
0x00018e28 blx 0x6024 | fcn_00006024 ();
0x00018e2c b 0x18ad2 | goto label_4;
| label_65:
0x00018e2e ldr r0, [sp, 0x64] | r0 = s;
0x00018e30 add r1, sp, 0x58 | r1 += var_58h;
0x00018e32 blx 0x5e64 | r0 = path_extend_internal ();
0x00018e36 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 >= r0) {
0x00018e38 bge.w 0x18a90 | goto label_5;
| }
0x00018e3c blx 0x5934 | r0 = fcn_00005934 ();
0x00018e40 cmp r0, 2 |
| if (r0 <= 2) {
0x00018e42 ble.w 0x190a6 | goto label_95;
| }
0x00018e46 ldr.w r2, [pc, 0x85c] |
0x00018e4a movw r3, 0x15f | r3 = 0x15f;
0x00018e4e ldr.w r5, [pc, 0x858] |
0x00018e52 ldr.w r0, [pc, 0x858] |
0x00018e56 add r2, pc | r2 = 0x32500;
0x00018e58 add r5, pc | r5 = 0x32506;
0x00018e5a add r0, pc | r0 = 0x3250c;
| label_17:
0x00018e5c strd r0, r5, [sp] | __asm ("strd r0, r5, [sp]");
0x00018e60 mov r1, r4 | r1 = r4;
0x00018e62 adds r2, 7 | r2 += 7;
0x00018e64 movs r0, 3 | r0 = 3;
0x00018e66 blx 0x61a4 | r0 = fcn_000061a4 ();
0x00018e6a mov sb, r0 | sb = r0;
0x00018e6c b 0x190ae | goto label_96;
| label_76:
0x00018e6e ldr.w r1, [pc, 0x840] |
0x00018e72 ldr r0, [sp, 0x40] | r0 = var_40h;
0x00018e74 add r1, pc | r1 = 0x3252a;
0x00018e76 blx 0x6288 | r0 = fcn_00006288 ();
0x00018e7a cmp r0, 0 |
| if (r0 == 0) {
0x00018e7c beq.w 0x18ff8 | goto label_97;
| }
0x00018e80 blx 0x5934 | r0 = fcn_00005934 ();
0x00018e84 cmp r0, 4 |
| if (r0 > 4) {
0x00018e86 bgt.w 0x195e6 | goto label_98;
| }
0x00018e8a ldr r0, [sp, 0x40] | r0 = var_40h;
0x00018e8c blx 0x6024 | fcn_00006024 ();
| label_37:
0x00018e90 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00018e92 mov r1, r8 | r1 = r8;
0x00018e94 add.w r8, sp, 0x7c | r8 += var_7ch;
0x00018e98 ldr r2, [sp, 0x1c] | r2 = var_1ch;
0x00018e9a mov r0, r5 | r0 = r5;
0x00018e9c str.w sb, [sp] | __asm ("str.w sb, [sp]");
0x00018ea0 strd r4, r3, [sp, 8] | __asm ("strd r4, r3, [var_8h_2]");
0x00018ea4 ldr.w r3, [pc, 0x80c] |
0x00018ea8 add r3, pc | r3 = 0x32560;
0x00018eaa str r3, [sp, 4] | var_4h_2 = r3;
0x00018eac mov r3, r8 | r3 = r8;
0x00018eae blx 0x5d44 | r0 = strlen (r0);
0x00018eb2 subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 < r0) {
0x00018eb4 blt.w 0x1900c | goto label_99;
| }
0x00018eb8 ldr.w r1, [pc, 0x7fc] |
0x00018ebc add r2, sp, 0x6c | r2 += var_6ch;
0x00018ebe ldr r0, [sp, 0x68] | r0 = var_68h_2;
0x00018ec0 add r1, pc | r1 = 0x3257c;
0x00018ec2 blx 0x5b10 | r0 = runlevel_to_target ();
0x00018ec6 subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 < r0) {
0x00018ec8 blt.w 0x19488 | goto label_100;
| }
| label_30:
0x00018ecc mov r0, r5 | r0 = r5;
0x00018ece mov r1, r4 | r1 = r4;
0x00018ed0 bl 0x1aa48 | r0 = fcn_0001aa48 (r0, r1, r2);
0x00018ed4 cmp r0, 0 |
| if (r0 > 0) {
0x00018ed6 bgt.w 0x19162 | goto label_101;
| }
| label_15:
0x00018eda ldr r3, [sp, 0x24] | r3 = var_24h;
| if (r3 != 0) {
0x00018edc cbz r3, 0x18ef6 |
0x00018ede blx 0x5934 | r0 = fcn_00005934 ();
0x00018ee2 cmp r0, 6 |
| if (r0 > 6) {
0x00018ee4 bgt.w 0x19186 | goto label_102;
| }
| label_16:
0x00018ee8 ldr r0, [sp, 0x24] | r0 = var_24h;
0x00018eea ldr r1, [sp, 0x6c] | r1 = var_6ch;
0x00018eec blx 0x5898 | r0 = fcn_00005898 ();
0x00018ef0 subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 < r0) {
0x00018ef2 blt.w 0x191f8 | goto label_103;
| }
| }
0x00018ef6 ldr r3, [sp, 0x34] | r3 = var_34h_2;
| if (r3 != 0) {
0x00018ef8 cbz r3, 0x18f26 |
0x00018efa mov r0, r3 | r0 = r3;
0x00018efc movs r3, 0 | r3 = 0;
0x00018efe movs r2, 6 | r2 = 6;
0x00018f00 mov r1, r4 | r1 = r4;
0x00018f02 str r3, [sp] | *(sp) = r3;
0x00018f04 blx 0x5c8c | r0 = fcn_00005c8c ();
0x00018f08 subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 >= r0) {
0x00018f0a bge 0x18f26 | goto label_75;
| }
0x00018f0c blx 0x5934 | r0 = fcn_00005934 ();
0x00018f10 cmp r0, 2 |
| if (r0 > 2) {
0x00018f12 bgt.w 0x1996e | goto label_104;
| }
| label_20:
0x00018f16 rsbs r7, r7, 0 | r7 -= ;
0x00018f18 uxtb r7, r7 | r7 = (int8_t) r7;
0x00018f1a rsbs r7, r7, 0 | r7 -= ;
| label_21:
0x00018f1c cmp r7, 0 |
0x00018f1e it ge |
| if (r7 < 0) {
0x00018f20 mvnge r7, 0x55 | r7 = ~0x55;
| }
0x00018f24 b 0x18c60 | goto label_6;
| }
| label_75:
0x00018f26 ldr r0, [sp, 0x68] | r0 = var_68h_2;
0x00018f28 cmp r0, 0 |
| if (r0 == 0) {
0x00018f2a beq.w 0x18e18 | goto label_7;
| }
0x00018f2e blx 0x582c | fcn_0000582c ();
0x00018f32 b 0x18e18 | goto label_7;
| label_58:
0x00018f34 blx 0x5934 | r0 = fcn_00005934 ();
0x00018f38 cmp r0, 2 |
0x00018f3a it le |
| if (r0 <= 2) {
0x00018f3c mvnle sb, 0x15 | sb = ~0x15;
| goto label_105;
| }
| if (r0 <= 2) {
| label_105:
0x00018f40 ble.w 0x18cec | goto label_8;
| }
0x00018f44 ldr.w r2, [pc, 0x774] |
0x00018f48 movs r1, 0x16 | r1 = 0x16;
0x00018f4a ldr.w r0, [pc, 0x774] |
0x00018f4e movw r3, 0x113 | r3 = 0x113;
0x00018f52 ldr.w r4, [pc, 0x770] |
0x00018f56 movt r1, 0x4000 | r1 = (r1 & 0xFFFF) | 0x40000000;
0x00018f5a add r2, pc | r2 = 0x3261a;
0x00018f5c add r0, pc | r0 = 0x32622;
0x00018f5e adds r2, 7 | r2 += 7;
0x00018f60 add r4, pc | r4 = 0x3262a;
0x00018f62 str r0, [sp, 4] | var_4h_2 = r0;
0x00018f64 str r4, [sp] | *(sp) = r4;
0x00018f66 movs r0, 3 | r0 = 3;
0x00018f68 blx 0x61a4 | r0 = fcn_000061a4 ();
0x00018f6c subs.w sb, r0, 0 | sb = r0 - 0;
0x00018f70 ldr r0, [sp, 0x60] | r0 = var_60h;
0x00018f72 it ge |
| if (sb < r0) {
0x00018f74 mvnge sb, 0x55 | sb = ~0x55;
| }
0x00018f78 b 0x18ce4 | goto label_2;
| label_66:
0x00018f7a ldr.w r3, [pc, 0x6e0] | r3 = *(0x1965e);
0x00018f7e movs r1, 0 | r1 = 0;
0x00018f80 ldr r0, [sp, 0x64] | r0 = s;
0x00018f82 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00018f86 strd r1, r1, [sp, 4] | __asm ("strd r1, r1, [var_4h_2]");
0x00018f8a str r1, [sp] | *(sp) = r1;
0x00018f8c ldr r2, [r3] | r2 = *(0x1965e);
0x00018f8e ldr.w r3, [pc, 0x738] |
0x00018f92 add r3, pc | r3 = 0x32660;
0x00018f94 blx 0x6534 | r0 = fcn_00006534 ();
0x00018f98 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00018f9a blt 0x1909c | goto label_106;
| }
0x00018f9c ldr r0, [sp, 0x64] | r0 = s;
0x00018f9e add r1, sp, 0x54 | r1 += c;
0x00018fa0 blx 0x5a8c | r0 = strrchr (r0, r1);
0x00018fa4 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 >= r0) {
0x00018fa6 bge.w 0x18a9a | goto label_9;
| }
0x00018faa blx 0x5934 | r0 = fcn_00005934 ();
0x00018fae cmp r0, 2 |
| if (r0 > 2) {
0x00018fb0 bgt.w 0x198b6 | goto label_107;
| }
| label_28:
0x00018fb4 rsbs r3, r4, 0 | r3 = r4 - ;
0x00018fb6 uxtb r3, r3 | r3 = (int8_t) r3;
0x00018fb8 rsb.w sb, r3, 0 | sb = r3 - ;
0x00018fbc b 0x190ae | goto label_96;
| label_74:
0x00018fbe ldr.w r3, [pc, 0x70c] |
0x00018fc2 add r3, pc | r3 = 0x32694;
0x00018fc4 b 0x18b28 | goto label_10;
| label_94:
0x00018fc6 ldr r1, [r6] | r1 = *(r6);
0x00018fc8 add r0, sp, 0x5c | r0 += var_5ch;
0x00018fca blx 0x588c | r0 = fcn_0000588c ();
0x00018fce cmp r0, 0 |
| if (r0 >= 0) {
0x00018fd0 bge.w 0x18e26 | goto label_11;
| }
0x00018fd4 ldr.w r1, [pc, 0x6f8] |
0x00018fd8 mov.w r2, 0x17a | r2 = 0x17a;
0x00018fdc ldr.w r3, [pc, 0x6f4] |
0x00018fe0 movs r0, 3 | r0 = 3;
0x00018fe2 add r1, pc | r1 = 0x326b6;
0x00018fe4 add r3, pc | r3 = 0x326bc;
0x00018fe6 adds r1, 7 | r1 += 7;
0x00018fe8 blx 0x65cc | r0 = fflush_and_check ();
0x00018fec mov sb, r0 | sb = r0;
0x00018fee mov r0, r8 | r0 = r8;
0x00018ff0 blx 0x6024 | fcn_00006024 ();
0x00018ff4 ldr r0, [sp, 0x60] | r0 = var_60h;
0x00018ff6 b 0x18ce4 | goto label_2;
| label_97:
0x00018ff8 ldr r5, [sp, 0x40] | r5 = var_40h;
0x00018ffa add.w r8, sp, 0x7c | r8 += var_7ch;
0x00018ffe mov r0, r8 | r0 = r8;
0x00019000 mov r1, r5 | r1 = r5;
0x00019002 blx 0x5c5c | fcn_00005c5c ();
0x00019006 mov r0, r5 | r0 = r5;
0x00019008 blx 0x6024 | fcn_00006024 ();
| label_99:
0x0001900c ldr r3, [sp, 0x28] | r3 = var_28h;
0x0001900e ldr r3, [r3] | r3 = *(r3);
0x00019010 cmp r3, 0 |
| if (r3 != 0) {
0x00019012 bne.w 0x18c60 | goto label_6;
| }
0x00019016 blx 0x5934 | r0 = fcn_00005934 ();
0x0001901a cmp r0, 2 |
| if (r0 > 2) {
0x0001901c bgt.w 0x19572 | goto label_108;
| }
| label_36:
0x00019020 movs r3, 0 | r3 = 0;
0x00019022 ldr.w r2, [pc, 0x6b4] |
0x00019026 ldr.w r1, [pc, 0x6b4] |
0x0001902a mov r0, r8 | r0 = r8;
0x0001902c str r3, [sp] | *(sp) = r3;
0x0001902e ldr.w r3, [pc, 0x6b0] |
0x00019032 add r2, pc | r2 = 0x32710;
0x00019034 add r1, pc | r1 = 0x32716;
0x00019036 add r3, pc | r3 = 0x3271c;
0x00019038 blx 0x63cc | r0 = fcn_000063cc ();
0x0001903c cmp r0, 0 |
| if (r0 != 0) {
0x0001903e bne.w 0x18c60 | goto label_6;
| }
0x00019042 blx 0x5934 | r0 = fcn_00005934 ();
0x00019046 cmp r0, 2 |
| if (r0 <= 2) {
0x00019048 ble.w 0x18c60 | goto label_6;
| }
0x0001904c ldr.w r3, [pc, 0x694] |
0x00019050 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00019054 ldr r3, [r3] | r3 = *(0x196e4);
0x00019056 cmp r3, 0 |
| if (r3 != 0) {
0x00019058 bne.w 0x198ea | goto label_109;
| }
0x0001905c ldr.w r2, [pc, 0x688] |
0x00019060 ldr.w r1, [pc, 0x688] |
0x00019064 add r2, pc | r2 = 0x32750;
0x00019066 add r1, pc | r1 = 0x32756;
| label_42:
0x00019068 ldrb r3, [r4] | r3 = *(r4);
0x0001906a cmp r3, 0x2d |
| if (r3 == 0x2d) {
0x0001906c beq.w 0x19966 | goto label_110;
| }
0x00019070 ldr.w r3, [pc, 0x67c] |
0x00019074 add r3, pc | r3 = 0x32768;
| label_44:
0x00019076 strd r3, r4, [sp, 0x10] | __asm ("strd r3, r4, [var_10h_2]");
0x0001907a movs r0, 3 | r0 = 3;
0x0001907c ldr.w r3, [pc, 0x674] |
0x00019080 strd r2, r1, [sp, 8] | __asm ("strd r2, r1, [var_8h_2]");
0x00019084 movs r1, 0 | r1 = 0;
0x00019086 ldr r2, [sp, 0x48] | r2 = var_48h;
0x00019088 add r3, pc | r3 = 0x32780;
0x0001908a str r3, [sp, 4] | var_4h_2 = r3;
0x0001908c ldr.w r3, [pc, 0x668] |
0x00019090 add r3, pc | r3 = 0x3278c;
0x00019092 str r3, [sp] | *(sp) = r3;
0x00019094 movs r3, 0xaa | r3 = 0xaa;
0x00019096 blx 0x61a4 | fcn_000061a4 ();
0x0001909a b 0x18c60 | goto label_6;
| label_106:
0x0001909c blx 0x5934 | r0 = fcn_00005934 ();
0x000190a0 cmp r0, 2 |
| if (r0 > 2) {
0x000190a2 bgt.w 0x191ae | goto label_111;
| }
| label_95:
0x000190a6 rsbs r0, r4, 0 | r0 = r4 - ;
0x000190a8 uxtb r0, r0 | r0 = (int8_t) r0;
0x000190aa rsb.w sb, r0, 0 | sb = r0 - ;
| label_96:
0x000190ae cmp.w sb, 0 |
0x000190b2 ldr r0, [sp, 0x60] | r0 = var_60h;
0x000190b4 it ge |
| if (sb < 0) {
0x000190b6 mvnge sb, 0x55 | sb = ~0x55;
| }
0x000190ba b 0x18ce4 | goto label_2;
| label_87:
0x000190bc ldr.w r3, [pc, 0x59c] | r3 = *(0x1965c);
0x000190c0 add r5, sp, 0x88 | r5 += var_88h;
0x000190c2 ldr.w r2, [pc, 0x638] |
0x000190c6 mov r0, r4 | r0 = r4;
0x000190c8 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x000190cc add r2, pc | r2 = 0x327ce;
0x000190ce str r7, [sp, 4] | var_4h_2 = r7;
0x000190d0 ldr r1, [r3] | r1 = *(0x1965c);
0x000190d2 add r3, sp, 0x78 | r3 += var_78h;
0x000190d4 str r3, [sp] | *(sp) = r3;
0x000190d6 mov r3, r5 | r3 = r5;
0x000190d8 blx 0x5d44 | r0 = strlen (r0);
0x000190dc subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x000190de blt.w 0x19468 | goto label_112;
| }
0x000190e2 ldr r0, [sp, 0x78] | r0 = var_78h;
0x000190e4 add r1, sp, 0x7c | r1 += var_7ch;
0x000190e6 str r7, [sp, 0x7c] | var_7ch = r7;
0x000190e8 blx 0x5648 | r0 = sd_bus_message_read_strv ();
0x000190ec subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x000190ee blt.w 0x1985c | goto label_113;
| }
0x000190f2 ldr r0, [sp, 0x7c] | r0 = var_7ch;
0x000190f4 cmp r6, 0 |
| if (r6 == 0) {
0x000190f6 beq.w 0x195d2 | goto label_114;
| }
0x000190fa cmp r0, 0 |
| if (r0 == 0) {
0x000190fc beq.w 0x18d84 | goto label_12;
| }
0x00019100 ldr.w r8, [pc, 0x5fc] |
0x00019104 mov r4, r0 | r4 = r0;
0x00019106 ldr.w sb, [pc, 0x5fc] |
0x0001910a add r8, pc | r8 = 0x3280e;
0x0001910c add sb, pc | sb = 0x32816;
0x0001910e add.w r8, r8, 7 | r8 += 7;
0x00019112 mov sl, sb | sl = sb;
0x00019114 mov sb, r5 | sb = r5;
0x00019116 b 0x19126 |
| while (r0 <= 6) {
| label_13:
0x00019118 mov r1, r5 | r1 = r5;
0x0001911a mov r0, r6 | r0 = r6;
0x0001911c blx 0x5898 | r0 = fcn_00005898 ();
0x00019120 cmp r0, 0 |
| if (r0 < 0) {
0x00019122 blt.w 0x198f6 | goto label_115;
| }
0x00019126 mov r7, r4 | r7 = r4;
0x00019128 ldr r5, [r4], 4 | r5 = *(r4);
| r4 += 4;
0x0001912c cmp r5, 0 |
| if (r5 == 0) {
0x0001912e beq.w 0x195ce | goto label_116;
| }
0x00019132 blx 0x5934 | r0 = fcn_00005934 ();
0x00019136 cmp r0, 6 |
0x00019138 ble 0x19118 |
| }
0x0001913a ldr.w r3, [pc, 0x5cc] |
0x0001913e mov r2, r8 | r2 = r8;
0x00019140 strd sl, r5, [sp, 4] | __asm ("strd sl, r5, [var_4h_2]");
0x00019144 movs r1, 0 | r1 = 0;
0x00019146 movs r0, 7 | r0 = 7;
0x00019148 add r3, pc | r3 = 0x32856;
0x0001914a str r3, [sp] | *(sp) = r3;
0x0001914c movs r3, 0xce | r3 = 0xce;
0x0001914e blx 0x61a4 | fcn_000061a4 ();
0x00019152 ldr r5, [r4, -0x4] | r5 = *((r4 - 0x4));
0x00019156 b 0x19118 | goto label_13;
| label_90:
0x00019158 ldr.w r6, [pc, 0x5b0] |
0x0001915c str r7, [sp, 0x20] | var_20h = r7;
0x0001915e add r6, pc | r6 = 0x3286e;
0x00019160 b 0x18ca6 | goto label_14;
| label_101:
0x00019162 mov r0, r4 | r0 = r4;
0x00019164 bl 0x1ab10 | fcn_0001ab10 (r0, r1, r2);
0x00019168 b 0x18eda | goto label_15;
| label_63:
0x0001916a ldr.w r1, [pc, 0x5a4] |
0x0001916e movw r2, 0x13f | r2 = 0x13f;
0x00019172 ldr.w r3, [pc, 0x5a0] |
0x00019176 ldr.w r0, [pc, 0x5a0] |
0x0001917a add r1, pc | r1 = 0x32890;
0x0001917c add r3, pc | r3 = 0x32896;
0x0001917e adds r1, 7 | r1 += 7;
0x00019180 add r0, pc | r0 = 0x3289e;
0x00019182 blx 0x5e40 | unit_file_get_default ();
| label_102:
0x00019186 ldr r3, [sp, 0x6c] | r3 = var_6ch;
0x00019188 movs r1, 0 | r1 = 0;
0x0001918a ldr.w r2, [pc, 0x590] |
0x0001918e movs r0, 7 | r0 = 7;
0x00019190 str r3, [sp, 8] | var_8h_2 = r3;
0x00019192 ldr.w r3, [pc, 0x58c] |
0x00019196 add r2, pc | r2 = 0x328b8;
0x00019198 adds r2, 7 | r2 += 7;
0x0001919a add r3, pc | r3 = 0x328c0;
0x0001919c str r3, [sp, 4] | var_4h_2 = r3;
0x0001919e ldr.w r3, [pc, 0x584] |
0x000191a2 add r3, pc | r3 = 0x328cc;
0x000191a4 str r3, [sp] | *(sp) = r3;
0x000191a6 movs r3, 0x92 | r3 = 0x92;
0x000191a8 blx 0x61a4 | fcn_000061a4 ();
0x000191ac b 0x18ee8 | goto label_16;
| label_111:
0x000191ae ldr.w r2, [pc, 0x578] |
0x000191b2 movw r3, 0x165 | r3 = 0x165;
0x000191b6 ldr.w r5, [pc, 0x574] |
0x000191ba ldr.w r0, [pc, 0x574] |
0x000191be add r2, pc | r2 = 0x328ec;
0x000191c0 add r5, pc | r5 = 0x328f2;
0x000191c2 add r0, pc | r0 = 0x328f8;
0x000191c4 b 0x18e5c | goto label_17;
| label_77:
0x000191c6 str r1, [sp, 0x24] | var_24h = r1;
0x000191c8 blx 0x5934 | r0 = fcn_00005934 ();
0x000191cc cmp r0, 2 |
0x000191ce ldr r1, [sp, 0x24] | r1 = var_24h;
| if (r0 <= 2) {
0x000191d0 ble.w 0x18c48 | goto label_18;
| }
0x000191d4 ldr.w r3, [pc, 0x55c] |
0x000191d8 movs r0, 3 | r0 = 3;
0x000191da ldr.w r2, [pc, 0x55c] |
0x000191de add r3, pc | r3 = 0x32916;
0x000191e0 str r3, [sp, 4] | var_4h_2 = r3;
0x000191e2 add r2, pc | r2 = 0x32920;
0x000191e4 ldr.w r3, [pc, 0x554] |
0x000191e8 adds r2, 7 | r2 += 7;
0x000191ea add r3, pc | r3 = 0x3292a;
0x000191ec str r3, [sp] | *(sp) = r3;
0x000191ee movs r3, 0x6b | r3 = 0x6b;
0x000191f0 blx 0x61a4 | r0 = fcn_000061a4 ();
0x000191f4 mov r7, r0 | r7 = r0;
0x000191f6 b 0x18c4e | goto label_19;
| label_103:
0x000191f8 blx 0x5934 | r0 = fcn_00005934 ();
0x000191fc cmp r0, 2 |
| if (r0 <= 2) {
0x000191fe ble.w 0x18f16 | goto label_20;
| }
0x00019202 ldr.w r3, [pc, 0x53c] |
0x00019206 mov r1, r7 | r1 = r7;
0x00019208 ldr.w r2, [pc, 0x538] |
0x0001920c movs r0, 3 | r0 = 3;
0x0001920e str r4, [sp, 8] | var_8h_2 = r4;
0x00019210 add r3, pc | r3 = 0x32956;
0x00019212 str r3, [sp, 4] | var_4h_2 = r3;
0x00019214 add r2, pc | r2 = 0x3295c;
0x00019216 ldr.w r3, [pc, 0x530] |
0x0001921a adds r2, 7 | r2 += 7;
0x0001921c add r3, pc | r3 = 0x3296a;
0x0001921e str r3, [sp] | *(sp) = r3;
0x00019220 movs r3, 0x95 | r3 = 0x95;
0x00019222 blx 0x61a4 | r0 = fcn_000061a4 ();
0x00019226 mov r7, r0 | r7 = r0;
0x00019228 b 0x18f1c | goto label_21;
| label_92:
0x0001922a mov r1, r6 | r1 = r6;
0x0001922c blx 0x655c | r0 = fcn_0000655c ();
0x00019230 cmp r0, 0 |
| if (r0 != 0) {
0x00019232 bne.w 0x18e00 | goto label_22;
| }
0x00019236 ldr.w r3, [pc, 0x514] |
0x0001923a add.w r5, r5, r5, lsl 1 | r5 += (r5 << 1);
0x0001923e add r3, pc | r3 = 0x32990;
0x00019240 add.w r3, r3, r5, lsl 2 | r3 += (r5 << 2);
0x00019244 ldr r3, [r3, 4] | r3 = *((r3 + 4));
0x00019246 str r3, [sp, 0x1c] | var_1ch = r3;
| label_35:
0x00019248 ldr.w r0, [pc, 0x504] |
0x0001924c movs r5, 0 | r5 = 0;
0x0001924e add r0, pc | r0 = 0x329a2;
| if (r0 != 0) {
| do {
0x00019250 cbnz r0, 0x19260 | goto label_117;
| }
| label_23:
0x00019252 adds r5, 1 | r5++;
0x00019254 cmp r5, 0xc |
| if (r5 == 0xc) {
0x00019256 beq.w 0x19562 | goto label_118;
| }
0x0001925a ldr r0, [r7, 0xc]! | r0 = *((r7 += 0xc));
0x0001925e b 0x19250 |
| } while (1);
| label_117:
0x00019260 mov r1, r6 | r1 = r6;
0x00019262 blx 0x655c | r0 = fcn_0000655c ();
0x00019266 cmp r0, 0 |
| if (r0 != 0) {
0x00019268 bne 0x19252 | goto label_23;
| }
0x0001926a ldr.w r3, [pc, 0x4e8] |
0x0001926e add.w r5, r5, r5, lsl 1 | r5 += (r5 << 1);
0x00019272 add r3, pc | r3 = 0x329cc;
0x00019274 add.w r3, r3, r5, lsl 2 | r3 += (r5 << 2);
0x00019278 ldr r3, [r3, 8] | r3 = *((r3 + 8));
0x0001927a str r3, [sp, 0x2c] | var_2ch = r3;
| label_34:
0x0001927c ldr.w r3, [pc, 0x4d8] |
0x00019280 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x00019284 ldr r3, [r3] | r3 = *(0x19758);
0x00019286 str r3, [sp, 0x20] | var_20h = r3;
0x00019288 cmp r3, 0 |
| if (r3 == 0) {
0x0001928a beq.w 0x198ae | goto label_119;
| }
| label_41:
0x0001928e movs r6, 0 | r6 = 0;
| label_24:
0x00019290 mov r0, r4 | r0 = r4;
0x00019292 ldr r4, [sp, 0x64] | r4 = s;
0x00019294 movs r1, 1 | r1 = 1;
0x00019296 add r5, sp, 0x88 | r5 += var_88h;
0x00019298 blx 0x5ad4 | sd_bus_message_get_bus ();
0x0001929c mov r2, r6 | r2 = r6;
0x0001929e mov r1, r0 | r1 = r0;
0x000192a0 add r3, sp, 0x60 | r3 += var_60h;
0x000192a2 mov r0, r4 | r0 = r4;
0x000192a4 str r5, [sp] | *(sp) = r5;
0x000192a6 bl 0x1ba10 | r0 = fcn_0001ba10 (r0, r1, r2, r3, r4, r5, r6);
0x000192aa subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x000192ac blt.w 0x194b2 | goto label_120;
| }
0x000192b0 ldr.w r3, [pc, 0x4a8] | r3 = *(0x1975c);
0x000192b4 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x000192b8 ldrb r3, [r3] | r3 = *(r3);
0x000192ba cmp r3, 0 |
| if (r3 != 0) {
0x000192bc bne.w 0x18a7e | goto label_1;
| }
0x000192c0 ldrb.w r3, [sp, 0x88] | r3 = var_88h;
0x000192c4 cmp r3, 0 |
| if (r3 == 0) {
0x000192c6 beq.w 0x18a7e | goto label_1;
| }
0x000192ca ldr.w r1, [pc, 0x494] |
0x000192ce ldr r0, [sp, 0x2c] | r0 = var_2ch;
0x000192d0 add r1, pc | r1 = 0x32a36;
0x000192d2 blx 0x655c | r0 = fcn_0000655c ();
0x000192d6 cmp r0, 0 |
| if (r0 != 0) {
0x000192d8 bne.w 0x18a7e | goto label_1;
| }
0x000192dc ldr.w r3, [pc, 0x484] | r3 = *(0x19764);
0x000192e0 ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x000192e4 ldrb r3, [r3] | r3 = *(r3);
0x000192e6 cmp r3, 0 |
| if (r3 != 0) {
0x000192e8 bne.w 0x18a7e | goto label_1;
| }
0x000192ea add r3, sp, 0x324 | r3 = sp + 0x324;
0x000192ec blx 0x5934 | r0 = fcn_00005934 ();
0x000192f0 cmp r0, 3 |
| if (r0 <= 3) {
0x000192f2 ble.w 0x18a7e | goto label_1;
| }
0x000192f6 blx 0x5e88 | r0 = strcpy (r0, r1)
0x000192fa cmp r0, 0 |
| if (r0 != 0) {
0x000192fc bne.w 0x199ce | goto label_121;
| }
0x00019300 ldr.w r4, [pc, 0x464] |
0x00019304 add r4, pc | r4 = 0x32a70;
| label_46:
0x00019306 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0001930a cmp r0, 0 |
| if (r0 != 0) {
0x0001930c bne.w 0x199c8 | goto label_122;
| }
0x00019310 ldr.w r3, [pc, 0x458] |
0x00019314 add r3, pc | r3 = 0x32a84;
| label_45:
0x00019316 strd r4, r3, [sp, 8] | __asm ("strd r4, r3, [var_8h_2]");
0x0001931a movs r1, 0 | r1 = 0;
0x0001931c ldr.w r4, [pc, 0x450] |
0x00019320 movs r0, 4 | r0 = 4;
0x00019322 ldr.w r3, [pc, 0x450] |
0x00019326 ldr.w r5, [pc, 0x450] |
0x0001932a add r4, pc | r4 = 0x32a9e;
0x0001932c add r3, pc | r3 = 0x32aa6;
0x0001932e adds r4, 7 | r4 += 7;
0x00019330 add r5, pc | r5 = 0x32aae;
0x00019332 mov r2, r4 | r2 = r4;
0x00019334 str r3, [sp, 4] | var_4h_2 = r3;
0x00019336 movw r3, 0x153 | r3 = 0x153;
0x0001933a str r5, [sp] | *(sp) = r5;
0x0001933c blx 0x61a4 | fcn_000061a4 ();
0x00019340 blx 0x5934 | r0 = fcn_00005934 ();
0x00019344 cmp r0, 4 |
| if (r0 <= 4) {
0x00019346 ble.w 0x18a7e | goto label_1;
| }
0x0001934a ldr.w r3, [pc, 0x430] |
0x0001934e mov r2, r4 | r2 = r4;
0x00019350 movs r1, 0 | r1 = 0;
0x00019352 str r5, [sp] | *(sp) = r5;
0x00019354 movs r0, 5 | r0 = 5;
0x00019356 add r3, pc | r3 = 0x32ad8;
0x00019358 str r3, [sp, 4] | var_4h_2 = r3;
0x0001935a mov.w r3, 0x156 | r3 = 0x156;
0x0001935e blx 0x61a4 | fcn_000061a4 ();
0x00019362 b.w 0x18a7e | goto label_1;
| label_70:
0x00019366 ldr.w r1, [pc, 0x418] |
0x0001936a movs r2, 0x45 | r2 = 0x45;
0x0001936c ldr.w r3, [pc, 0x414] |
0x00019370 ldr.w r0, [pc, 0x414] |
0x00019374 add r1, pc | r1 = 0x32afa;
0x00019376 add r3, pc | r3 = 0x32afe;
0x00019378 adds r1, 7 | r1 += 7;
0x0001937a add r0, pc | r0 = 0x32b06;
0x0001937c blx 0x5e40 | unit_file_get_default ();
| label_84:
0x00019380 ldr.w r3, [pc, 0x408] |
0x00019384 add r3, pc | r3 = 0x32b14;
0x00019386 str r3, [sp, 0x2c] | var_2ch = r3;
0x00019388 ldr.w r3, [pc, 0x404] |
0x0001938c add r3, pc | r3 = 0x32b20;
0x0001938e str r3, [sp, 0x1c] | var_1ch = r3;
0x00019390 b 0x19290 | goto label_24;
| label_88:
0x00019392 ldr r3, [pc, 0x3d0] | r3 = *(0x19766);
0x00019394 ldr r0, [sp, 0x58] | r0 = var_58h;
0x00019396 ldr.w r4, [fp, r3] | r4 = *((fp + r3));
0x0001939a ldr r3, [pc, 0x348] |
0x0001939c ldrb r1, [r4] | r1 = *(r4);
0x0001939e ldr.w r3, [fp, r3] | r3 = *((fp + r3));
0x000193a2 ldr r3, [r3] | r3 = *(0x196e6);
| if (r3 != 0) {
0x000193a4 cbz r3, 0x193ae |
0x000193a6 ldr r3, [pc, 0x3ec] |
0x000193a8 add r3, pc | r3 = 0x32b42;
0x000193aa str r3, [sp, 0x94] | var_94h = r3;
0x000193ac movs r3, 1 | r3 = 1;
| }
0x000193ae ldr r2, [pc, 0x3e8] |
0x000193b0 ldr.w r2, [fp, r2] | r2 = *((fp + r2));
0x000193b4 ldr r2, [r2] | r2 = *(0x1979a);
0x000193b6 cmp r2, 1 |
| if (r2 == 1) {
0x000193b8 beq.w 0x19544 | goto label_123;
| }
0x000193bc cmp r2, 2 |
| if (r2 == 2) {
0x000193be beq.w 0x19856 | goto label_124;
| }
0x000193c2 cmp r2, 0 |
| if (r2 != 0) {
0x000193c4 bne.w 0x199b2 | goto label_125;
| }
| label_33:
0x000193c8 add r2, sp, 0xa8 | r2 += var_a8h;
0x000193ca add.w r3, r2, r3, lsl 2 | r3 = r2 + (r3 << 2);
0x000193ce movs r2, 0 | r2 = 0;
0x000193d0 str r2, [r3, -0x14] | var_14h = r2;
0x000193d4 add r2, sp, 0x94 | r2 += var_94h;
0x000193d6 blx 0x5fd0 | r0 = fcn_00005fd0 ();
0x000193da subs r3, r0, 0 | r3 = r0 - 0;
| if (r3 < r0) {
0x000193dc blt.w 0x1984e | goto label_126;
| }
0x000193e0 ldrb r3, [r4] | r3 = *(r4);
0x000193e2 cmp r3, 0 |
| if (r3 != 0) {
0x000193e4 bne.w 0x18da0 | goto label_25;
| }
0x000193e8 ldr r4, [sp, 0x5c] | r4 = var_5ch;
0x000193ea cmp r4, 0 |
| if (r4 == 0) {
0x000193ec beq.w 0x18da0 | goto label_25;
| }
0x000193f0 subs r4, 4 | r4 -= 4;
0x000193f2 b 0x193fa |
| while (r1 != 0) {
0x000193f4 ldr r0, [sp, 0x64] | r0 = s;
0x000193f6 bl 0x1a7b4 | fcn_0001a7b4 (r0, r1, r2, r3, r4);
0x000193fa ldr r1, [r4, 4]! | r1 = *((r4 += 4));
0x000193fe cmp r1, 0 |
0x00019400 bne 0x193f4 |
| }
0x00019402 b 0x18da0 | goto label_25;
| label_71:
0x00019404 ldr r1, [pc, 0x394] |
0x00019406 movs r2, 0x46 | r2 = 0x46;
0x00019408 ldr r3, [pc, 0x394] |
0x0001940a ldr r0, [pc, 0x398] |
0x0001940c add r1, pc | r1 = 0x32bac;
0x0001940e add r3, pc | r3 = 0x32bb2;
0x00019410 adds r1, 7 | r1 += 7;
0x00019412 add r0, pc | r0 = 0x32bbc;
0x00019414 blx 0x5e40 | unit_file_get_default ();
| label_72:
0x00019418 ldr r1, [pc, 0x38c] |
0x0001941a movs r2, 0x47 | r2 = 0x47;
0x0001941c ldr r3, [pc, 0x38c] |
0x0001941e ldr r0, [pc, 0x390] |
0x00019420 add r1, pc | r1 = 0x32bcc;
0x00019422 add r3, pc | r3 = 0x32bd2;
0x00019424 adds r1, 7 | r1 += 7;
0x00019426 add r0, pc | r0 = 0x32bdc;
0x00019428 blx 0x5e40 | unit_file_get_default ();
| label_61:
0x0001942c ldr r1, [pc, 0x384] |
0x0001942e movw r2, 0x13d | r2 = 0x13d;
0x00019432 ldr r3, [pc, 0x384] |
0x00019434 ldr r0, [pc, 0x384] |
0x00019436 add r1, pc | r1 = 0x32bee;
0x00019438 add r3, pc | r3 = 0x32bf6;
0x0001943a adds r1, 7 | r1 += 7;
0x0001943c add r0, pc | r0 = 0x32bfc;
0x0001943e blx 0x5e40 | unit_file_get_default ();
| label_86:
0x00019442 ldr r3, [pc, 0x37c] |
0x00019444 add r3, pc | r3 = 0x32c0a;
0x00019446 b 0x18d56 | goto label_26;
| label_62:
0x00019448 ldr r1, [pc, 0x378] |
0x0001944a mov.w r2, 0x13e | r2 = 0x13e;
0x0001944e ldr r3, [pc, 0x378] |
0x00019450 ldr r0, [pc, 0x378] |
0x00019452 add r1, pc | r1 = 0x32c1a;
0x00019454 add r3, pc | r3 = 0x32c22;
0x00019456 adds r1, 7 | r1 += 7;
0x00019458 add r0, pc | r0 = 0x32c28;
0x0001945a blx 0x5e40 | unit_file_get_default ();
| label_91:
0x0001945e str r5, [sp, 0x20] | var_20h = r5;
0x00019460 str r5, [sp, 0x2c] | var_2ch = r5;
0x00019462 str r5, [sp, 0x1c] | var_1ch = r5;
0x00019464 b.w 0x18a7e | goto label_1;
| label_112:
0x00019468 blx 0x5934 | r0 = fcn_00005934 ();
0x0001946c cmp r0, 2 |
0x0001946e ittt le |
| if (r0 <= 2) {
0x00019470 rsble r3, r4, 0 | __asm ("rsble r3, r4, 0");
| }
| if (r0 <= 2) {
0x00019472 uxtble r3, r3 | __asm ("uxtble r3, r3");
| }
| if (r0 <= 2) {
0x00019474 rsble sb, r3, 0 | __asm ("rsble sb, r3, 0");
| }
| if (r0 > 2) {
0x00019478 bgt.w 0x19884 | goto label_127;
| }
| label_40:
0x0001947c cmp.w sb, 0 |
0x00019480 it ge |
| if (sb < 0) {
0x00019482 mvnge sb, 0x55 | sb = ~0x55;
| }
0x00019486 b 0x18d88 | goto label_27;
| label_100:
0x00019488 blx 0x5934 | r0 = fcn_00005934 ();
0x0001948c cmp r0, 2 |
| if (r0 <= 2) {
0x0001948e ble.w 0x18f16 | goto label_20;
| }
0x00019492 ldr r3, [pc, 0x33c] |
0x00019494 mov r1, r7 | r1 = r7;
0x00019496 ldr r2, [pc, 0x33c] |
0x00019498 movs r0, 3 | r0 = 3;
0x0001949a add r3, pc | r3 = 0x32c70;
0x0001949c str r3, [sp, 4] | var_4h_2 = r3;
0x0001949e add r2, pc | r2 = 0x32c78;
0x000194a0 ldr r3, [pc, 0x334] |
0x000194a2 adds r2, 7 | r2 += 7;
0x000194a4 add r3, pc | r3 = 0x32c80;
0x000194a6 str r3, [sp] | *(sp) = r3;
0x000194a8 movs r3, 0x8b | r3 = 0x8b;
0x000194aa blx 0x61a4 | r0 = fcn_000061a4 ();
0x000194ae mov r7, r0 | r7 = r0;
0x000194b0 b 0x18f1c | goto label_21;
| label_120:
0x000194b2 blx 0x5934 | r0 = fcn_00005934 ();
0x000194b6 cmp r0, 2 |
| if (r0 <= 2) {
0x000194b8 ble.w 0x18fb4 | goto label_28;
| }
0x000194bc ldr r2, [pc, 0x31c] |
0x000194be mov.w r3, 0x150 | r3 = 0x150;
0x000194c2 ldr r5, [pc, 0x31c] |
0x000194c4 ldr r0, [pc, 0x31c] |
0x000194c6 add r2, pc | r2 = 0x32ca6;
0x000194c8 add r5, pc | r5 = 0x32cae;
0x000194ca add r0, pc | r0 = 0x32cb2;
0x000194cc b 0x18e5c | goto label_17;
| label_69:
0x000194ce ldr.w sb, [sp, 0x38] | sb = var_38h_2;
0x000194d2 b 0x18d96 | goto label_29;
| label_80:
0x000194d4 ldr r0, [sp, 0x68] | r0 = var_68h_2;
0x000194d6 mov r4, r8 | r4 = r8;
0x000194d8 ldr r5, [sp, 0x4c] | r5 = var_4ch;
0x000194da blx 0x5d98 | r0 = execv ();
0x000194de subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 < r0) {
0x000194e0 blt.w 0x19932 | goto label_128;
| }
0x000194e4 ldr r0, [sp, 0x40] | r0 = var_40h;
0x000194e6 add.w r8, sp, 0x7c | r8 += var_7ch;
0x000194ea blx 0x6024 | fcn_00006024 ();
0x000194ee b 0x18ecc | goto label_30;
| label_81:
0x000194f0 ldr r3, [sp, 0x74] | r3 = var_74h;
0x000194f2 movs r1, 0 | r1 = 0;
0x000194f4 ldr r2, [sp, 0x44] | r2 = var_44h;
0x000194f6 movs r0, 6 | r0 = 6;
0x000194f8 str r3, [sp, 0x10] | var_10h_2 = r3;
0x000194fa ldr r3, [sp, 0x70] | r3 = var_70h;
0x000194fc str r3, [sp, 0xc] | var_ch = r3;
0x000194fe ldr r3, [sp, 0x78] | r3 = var_78h;
0x00019500 str r3, [sp, 8] | var_8h_2 = r3;
0x00019502 ldr r3, [pc, 0x2e4] |
0x00019504 add r3, pc | r3 = 0x32cf2;
0x00019506 str r3, [sp, 4] | var_4h_2 = r3;
0x00019508 ldr r3, [pc, 0x2e0] |
0x0001950a add r3, pc | r3 = 0x32cfa;
0x0001950c str r3, [sp] | *(sp) = r3;
0x0001950e movs r3, 0x79 | r3 = 0x79;
0x00019510 blx 0x61a4 | fcn_000061a4 ();
0x00019514 b.w 0x18c12 | goto label_31;
| label_78:
0x00019518 ldr r3, [sp, 0x74] | r3 = var_74h;
0x0001951a mov r1, sl | r1 = sl;
0x0001951c ldr r2, [pc, 0x2d0] |
0x0001951e movs r0, 6 | r0 = 6;
0x00019520 str r3, [sp, 0x10] | var_10h_2 = r3;
0x00019522 ldr r3, [sp, 0x70] | r3 = var_70h;
0x00019524 add r2, pc | r2 = 0x32d18;
0x00019526 adds r2, 7 | r2 += 7;
0x00019528 str r3, [sp, 0xc] | var_ch = r3;
0x0001952a ldr r3, [sp, 0x78] | r3 = var_78h;
0x0001952c str r3, [sp, 8] | var_8h_2 = r3;
0x0001952e ldr r3, [pc, 0x2c4] |
0x00019530 add r3, pc | r3 = 0x32d2a;
0x00019532 str r3, [sp, 4] | var_4h_2 = r3;
0x00019534 ldr r3, [pc, 0x2c0] |
0x00019536 add r3, pc | r3 = 0x32d32;
0x00019538 str r3, [sp] | *(sp) = r3;
0x0001953a movs r3, 0x6d | r3 = 0x6d;
0x0001953c blx 0x61a4 | fcn_000061a4 ();
0x00019540 b.w 0x18bf4 | goto label_32;
| label_123:
0x00019544 ldr r5, [pc, 0x2b4] |
0x00019546 add r5, pc | r5 = 0x32d46;
| label_38:
0x00019548 ldr r2, [pc, 0x2b4] |
0x0001954a add r6, sp, 0xa8 | r6 += var_a8h;
0x0001954c add.w r6, r6, r3, lsl 2 | r6 += (r3 << 2);
0x00019550 adds r3, 2 | r3 += 2;
0x00019552 str r5, [r6, -0x14] | var_94h = r5;
0x00019556 ldr.w r2, [fp, r2] | r2 = *((fp + r2));
0x0001955a ldr r2, [r2] | r2 = *(0x19800);
0x0001955c str r2, [r6, -0x10] | var_10h_5 = r2;
0x00019560 b 0x193c8 | goto label_33;
| label_118:
0x00019562 ldr r3, [pc, 0x2a0] |
0x00019564 add r3, pc | r3 = 0x32d6e;
0x00019566 str r3, [sp, 0x2c] | var_2ch = r3;
0x00019568 b 0x1927c | goto label_34;
| label_93:
0x0001956a ldr r3, [pc, 0x29c] |
0x0001956c add r3, pc | r3 = 0x32d7a;
0x0001956e str r3, [sp, 0x1c] | var_1ch = r3;
0x00019570 b 0x19248 | goto label_35;
| label_108:
0x00019572 mov r1, r7 | r1 = r7;
0x00019574 mov r0, r8 | r0 = r8;
0x00019576 blx 0x566c | bus_error_message ();
0x0001957a ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x0001957c mov r1, r7 | r1 = r7;
0x0001957e ldr r2, [pc, 0x28c] |
0x00019580 strd r4, r0, [sp, 0xc] | __asm ("strd r4, r0, [var_10h_2]");
0x00019584 movs r0, 3 | r0 = 3;
0x00019586 str r3, [sp, 8] | var_8h_2 = r3;
0x00019588 ldr r3, [pc, 0x284] |
0x0001958a add r2, pc | r2 = 0x32d9c;
0x0001958c adds r2, 7 | r2 += 7;
0x0001958e add r3, pc | r3 = 0x32da2;
0x00019590 str r3, [sp, 4] | var_4h_2 = r3;
0x00019592 ldr r3, [pc, 0x280] |
0x00019594 add r3, pc | r3 = 0x32dae;
0x00019596 str r3, [sp] | *(sp) = r3;
0x00019598 movs r3, 0xa5 | r3 = 0xa5;
0x0001959a blx 0x61a4 | fcn_000061a4 ();
0x0001959e b 0x19020 | goto label_36;
| label_79:
0x000195a0 str r1, [sp, 0x24] | var_24h = r1;
0x000195a2 blx 0x5934 | r0 = fcn_00005934 ();
0x000195a6 cmp r0, 2 |
0x000195a8 ldr r1, [sp, 0x24] | r1 = var_24h;
| if (r0 <= 2) {
0x000195aa ble.w 0x18c48 | goto label_18;
| }
0x000195ae ldr r3, [pc, 0x268] |
0x000195b0 movs r0, 3 | r0 = 3;
0x000195b2 ldr r2, [pc, 0x268] |
0x000195b4 add r3, pc | r3 = 0x32dd2;
0x000195b6 str r3, [sp, 4] | var_4h_2 = r3;
0x000195b8 add r2, pc | r2 = 0x32dda;
0x000195ba ldr r3, [pc, 0x264] |
0x000195bc adds r2, 7 | r2 += 7;
0x000195be add r3, pc | r3 = 0x32de4;
0x000195c0 str r3, [sp] | *(sp) = r3;
0x000195c2 movs r3, 0x71 | r3 = 0x71;
0x000195c4 blx 0x61a4 | r0 = fcn_000061a4 ();
0x000195c8 mov r7, r0 | r7 = r0;
0x000195ca b.w 0x18c4e | goto label_19;
| label_116:
0x000195ce ldr r0, [sp, 0x7c] | r0 = var_7ch;
0x000195d0 mov r5, sb | r5 = sb;
| label_114:
0x000195d2 mov.w sb, 0 | sb = 0;
| label_39:
0x000195d6 cmp r0, 0 |
| if (r0 == 0) {
0x000195d8 beq.w 0x18d88 | goto label_27;
| }
0x000195dc blx 0x5dec | unit_file_state_to_string ();
0x000195e0 str r0, [sp, 0x7c] | var_7ch = r0;
0x000195e2 b.w 0x18d88 | goto label_27;
| label_98:
0x000195e6 ldr r3, [pc, 0x23c] |
0x000195e8 mov r1, sl | r1 = sl;
0x000195ea ldr r2, [pc, 0x23c] |
0x000195ec movs r0, 5 | r0 = 5;
0x000195ee add r3, pc | r3 = 0x32e18;
0x000195f0 str r3, [sp, 4] | var_4h_2 = r3;
0x000195f2 add r2, pc | r2 = 0x32e20;
0x000195f4 ldr r3, [pc, 0x234] |
0x000195f6 adds r2, 7 | r2 += 7;
0x000195f8 add r3, pc | r3 = 0x32e28;
0x000195fa str r3, [sp] | *(sp) = r3;
0x000195fc movs r3, 0x64 | r3 = 0x64;
0x000195fe blx 0x61a4 | fcn_000061a4 ();
0x00019602 ldr r0, [sp, 0x40] | r0 = var_40h;
0x00019604 blx 0x6024 | fcn_00006024 ();
0x00019608 b 0x18e90 | goto label_37;
| label_89:
0x00019830 blx 0x5934 | r0 = fcn_00005934 ();
0x00019834 cmp r0, 2 |
| if (r0 <= 2) {
0x00019836 ble.w 0x18fb4 | goto label_28;
| }
0x0001983a ldr r2, [pc, 0x19c] |
0x0001983c movw r3, 0x18f | r3 = 0x18f;
0x00019840 ldr r5, [pc, 0x198] |
0x00019842 ldr r0, [pc, 0x19c] |
0x00019844 add r2, pc | r2 = 0x33222;
0x00019846 add r5, pc | r5 = 0x33226;
0x00019848 add r0, pc | r0 = 0x3322e;
0x0001984a b.w 0x18e5c | goto label_17;
| label_126:
0x0001984e ldr r0, [sp, 0x60] | r0 = var_60h;
0x00019850 mov sb, r3 | sb = r3;
0x00019852 b.w 0x18ce4 | goto label_2;
| label_124:
0x00019856 ldr r5, [pc, 0x18c] |
0x00019858 add r5, pc | r5 = 0x33242;
0x0001985a b 0x19548 | goto label_38;
| label_113:
0x0001985c blx 0x5934 | r0 = fcn_00005934 ();
0x00019860 cmp r0, 2 |
0x00019862 ittt le |
| if (r0 <= 2) {
0x00019864 rsble r3, r4, 0 | __asm ("rsble r3, r4, 0");
| }
| if (r0 <= 2) {
0x00019866 uxtble r3, r3 | __asm ("uxtble r3, r3");
| }
| if (r0 <= 2) {
0x00019868 rsble sb, r3, 0 | __asm ("rsble sb, r3, 0");
| }
| if (r0 > 2) {
0x0001986c bgt.w 0x19992 | goto label_129;
| }
| do {
| label_43:
0x00019870 cmp.w sb, 0 |
0x00019874 ldr r0, [sp, 0x7c] | r0 = var_7ch;
0x00019876 it ge |
| if (sb < 0) {
0x00019878 mvnge sb, 0x55 | sb = ~0x55;
| }
0x0001987c b 0x195d6 | goto label_39;
| label_68:
0x0001987e mov sb, r3 | sb = r3;
0x00019880 b.w 0x18d96 | goto label_29;
| label_127:
0x00019884 mov r1, r4 | r1 = r4;
0x00019886 mov r0, r5 | r0 = r5;
0x00019888 blx 0x566c | bus_error_message ();
0x0001988c ldr r3, [pc, 0x158] |
0x0001988e mov r1, r4 | r1 = r4;
0x00019890 ldr r2, [pc, 0x158] |
0x00019892 str r0, [sp, 8] | var_8h_2 = r0;
0x00019894 movs r0, 3 | r0 = 3;
0x00019896 add r3, pc | r3 = 0x33282;
0x00019898 str r3, [sp, 4] | var_4h_2 = r3;
0x0001989a add r2, pc | r2 = 0x3328a;
0x0001989c ldr r3, [pc, 0x150] |
0x0001989e adds r2, 7 | r2 += 7;
0x000198a0 add r3, pc | r3 = 0x33294;
0x000198a2 str r3, [sp] | *(sp) = r3;
0x000198a4 movs r3, 0xc3 | r3 = 0xc3;
0x000198a6 blx 0x61a4 | r0 = fcn_000061a4 ();
0x000198aa mov sb, r0 | sb = r0;
0x000198ac b 0x1947c | goto label_40;
| label_119:
0x000198ae ldr r3, [pc, 0x144] |
0x000198b0 add r3, pc | r3 = 0x332aa;
0x000198b2 str r3, [sp, 0x20] | var_20h = r3;
0x000198b4 b 0x1928e | goto label_41;
| label_107:
0x000198b6 ldr r2, [pc, 0x140] |
0x000198b8 movw r3, 0x169 | r3 = 0x169;
0x000198bc ldr r5, [pc, 0x13c] |
0x000198be ldr r0, [pc, 0x140] |
0x000198c0 add r2, pc | r2 = 0x332be;
0x000198c2 add r5, pc | r5 = 0x332c2;
0x000198c4 add r0, pc | r0 = 0x332ca;
0x000198c6 b.w 0x18e5c | goto label_17;
| label_82:
0x000198ca ldr r3, [pc, 0x138] |
0x000198cc movs r0, 3 | r0 = 3;
0x000198ce ldr r2, [pc, 0x138] |
0x000198d0 add r3, pc | r3 = 0x332da;
0x000198d2 str r3, [sp, 4] | var_4h_2 = r3;
0x000198d4 add r2, pc | r2 = 0x332e2;
0x000198d6 ldr r3, [pc, 0x134] |
0x000198d8 adds r2, 7 | r2 += 7;
0x000198da add r3, pc | r3 = 0x332ec;
0x000198dc str r3, [sp] | *(sp) = r3;
0x000198de movs r3, 0x75 | r3 = 0x75;
0x000198e0 blx 0x61a4 | r0 = fcn_000061a4 ();
0x000198e4 mov r7, r0 | r7 = r0;
0x000198e6 b.w 0x18c4e | goto label_19;
| label_109:
0x000198ea ldr r2, [pc, 0x124] |
0x000198ec ldr r1, [pc, 0x124] |
0x000198ee add r2, pc | r2 = 0x33304;
0x000198f0 add r1, pc | r1 = 0x33308;
0x000198f2 b.w 0x19068 | goto label_42;
| label_115:
0x000198f6 mov sl, r0 | sl = r0;
0x000198f8 mov r5, sb | r5 = sb;
0x000198fa blx 0x5934 | r0 = fcn_00005934 ();
0x000198fe cmp r0, 2 |
0x00019900 ittt le |
| if (r0 <= 2) {
0x00019902 rsble r3, sl, 0 | __asm ("rsble r3, sl, 0");
| }
| if (r0 <= 2) {
0x00019906 uxtble r3, r3 | __asm ("uxtble r3, r3");
| }
| if (r0 <= 2) {
0x00019908 rsb.w sb, r3, 0 | sb = r3 - ;
| }
0x0001990c ble 0x19870 |
| } while (r0 <= 2);
0x0001990e ldr r3, [r7] | r3 = *(r7);
0x00019910 mov r1, sl | r1 = sl;
0x00019912 ldr r2, [pc, 0x104] |
0x00019914 movs r0, 3 | r0 = 3;
0x00019916 str r3, [sp, 8] | var_8h_2 = r3;
0x00019918 ldr r3, [pc, 0x100] |
0x0001991a add r2, pc | r2 = 0x33338;
0x0001991c adds r2, 7 | r2 += 7;
0x0001991e add r3, pc | r3 = 0x3333e;
0x00019920 str r3, [sp, 4] | var_4h_2 = r3;
0x00019922 ldr r3, [pc, 0xfc] |
0x00019924 add r3, pc | r3 = 0x3334a;
0x00019926 str r3, [sp] | *(sp) = r3;
0x00019928 movs r3, 0xd1 | r3 = 0xd1;
0x0001992a blx 0x61a4 | r0 = fcn_000061a4 ();
0x0001992e mov sb, r0 | sb = r0;
0x00019930 b 0x19870 | goto label_43;
| label_128:
0x00019932 blx 0x5934 | r0 = fcn_00005934 ();
0x00019936 cmp r0, 2 |
0x00019938 ittt le |
| if (r0 <= 2) {
0x0001993a rsble r7, r7, 0 | __asm ("rsble r7, r7, 0");
| }
| if (r0 <= 2) {
0x0001993c uxtble r7, r7 | __asm ("uxtble r7, r7");
| }
| if (r0 > 2) {
0x0001993e rsble r7, r7, 0 | __asm ("rsble r7, r7, 0");
| goto label_130;
| }
| if (r0 <= 2) {
| label_130:
0x00019940 ble.w 0x18c4e | goto label_19;
| }
0x00019944 ldr r3, [pc, 0xdc] |
0x00019946 mov r1, r7 | r1 = r7;
0x00019948 ldr r2, [pc, 0xdc] |
0x0001994a movs r0, 3 | r0 = 3;
0x0001994c add r3, pc | r3 = 0x33374;
0x0001994e str r3, [sp, 4] | var_4h_2 = r3;
0x00019950 add r2, pc | r2 = 0x3337c;
0x00019952 ldr r3, [pc, 0xd8] |
0x00019954 adds r2, 7 | r2 += 7;
0x00019956 add r3, pc | r3 = 0x33388;
0x00019958 str r3, [sp] | *(sp) = r3;
0x0001995a movs r3, 0x7e | r3 = 0x7e;
0x0001995c blx 0x61a4 | r0 = fcn_000061a4 ();
0x00019960 mov r7, r0 | r7 = r0;
0x00019962 b.w 0x18c4e | goto label_19;
| label_110:
0x00019966 ldr r3, [pc, 0xc8] |
0x00019968 add r3, pc | r3 = 0x3339e;
0x0001996a b.w 0x19076 | goto label_44;
| label_104:
0x0001996e ldr r3, [pc, 0xc4] |
0x00019970 mov r1, r7 | r1 = r7;
0x00019972 ldr r2, [pc, 0xc4] |
0x00019974 movs r0, 3 | r0 = 3;
0x00019976 str r4, [sp, 8] | var_8h_2 = r4;
0x00019978 add r3, pc | r3 = 0x333b2;
0x0001997a str r3, [sp, 4] | var_4h_2 = r3;
0x0001997c add r2, pc | r2 = 0x333ba;
0x0001997e ldr r3, [pc, 0xbc] |
0x00019980 adds r2, 7 | r2 += 7;
0x00019982 add r3, pc | r3 = 0x333c4;
0x00019984 str r3, [sp] | *(sp) = r3;
0x00019986 movs r3, 0x9b | r3 = 0x9b;
0x00019988 blx 0x61a4 | r0 = fcn_000061a4 ();
0x0001998c mov r7, r0 | r7 = r0;
0x0001998e b.w 0x18f1c | goto label_21;
| label_129:
0x00019992 ldr r3, [pc, 0xac] |
0x00019994 mov r1, r4 | r1 = r4;
0x00019996 ldr r2, [pc, 0xac] |
0x00019998 movs r0, 3 | r0 = 3;
0x0001999a add r3, pc | r3 = 0x333e0;
0x0001999c str r3, [sp, 4] | var_4h_2 = r3;
0x0001999e add r2, pc | r2 = 0x333e8;
0x000199a0 ldr r3, [pc, 0xa4] |
0x000199a2 adds r2, 7 | r2 += 7;
0x000199a4 add r3, pc | r3 = 0x333f0;
0x000199a6 str r3, [sp] | *(sp) = r3;
0x000199a8 movs r3, 0xc8 | r3 = 0xc8;
0x000199aa blx 0x61a4 | r0 = fcn_000061a4 ();
0x000199ae mov sb, r0 | sb = r0;
0x000199b0 b 0x19870 | goto label_43;
| label_125:
0x000199b2 ldr r1, [pc, 0x98] |
0x000199b4 mov.w r2, 0x102 | r2 = 0x102;
0x000199b8 ldr r3, [pc, 0x94] |
0x000199ba ldr r0, [pc, 0x98] |
0x000199bc add r1, pc | r1 = 0x3340e;
0x000199be add r3, pc | r3 = 0x33412;
0x000199c0 adds r1, 7 | r1 += 7;
0x000199c2 add r0, pc | r0 = 0x3341c;
0x000199c4 blx 0x5e40 | unit_file_get_default ();
| label_122:
0x000199c8 ldr r3, [pc, 0x8c] |
0x000199ca add r3, pc | r3 = 0x33426;
0x000199cc b 0x19316 | goto label_45;
| label_121:
0x000199ce ldr r4, [pc, 0x8c] |
0x000199d0 add r4, pc | r4 = 0x33432;
0x000199d2 b 0x19306 | goto label_46;
| label_85:
0x000199d4 blx 0x6114 | fcn_00006114 ();
0x000199d8 adr r4, 0x300 | r4 = 0x300;
0x000199da movs r0, r0 |
0x000199dc ldr r7, [pc, 0x188] | r7 = *(0x19b68);
0x000199de movs r0, r0 |
0x000199e0 add r4, sp, 0xb0 | r4 += var_b0h;
0x000199e2 movs r0, r0 |
0x000199e4 add r1, sp, 0x270 | r1 += arg_270h;
0x000199e6 movs r0, r0 |
0x000199e8 adr r7, 0x68 | r7 = 0x68;
0x000199ea movs r0, r0 |
0x000199ec adr r4, 0x1a8 | r4 = 0x1a8;
0x000199ee movs r0, r0 |
0x000199f0 add r3, sp, 0x300 | r3 += arg_300h;
0x000199f2 movs r0, r0 |
0x000199f4 adr r4, 0x130 | r4 = 0x130;
0x000199f6 movs r0, r0 |
0x000199f8 adr r4, 0x110 | r4 = 0x110;
0x000199fa movs r0, r0 |
0x000199fc adr r6, 0x1a8 | r6 = 0x1a8;
0x000199fe movs r0, r0 |
0x00019a00 add r3, sp, 0x2c0 | r3 += arg_2c0h;
0x00019a02 movs r0, r0 |
0x00019a04 str r4, [r5, 0x68] | *((r5 + 0x68)) = r4;
0x00019a06 movs r0, r0 |
0x00019a08 adr r4, 0xc0 | r4 = 0xc0;
0x00019a0a movs r0, r0 |
0x00019a0c add r3, sp, 0x1d8 | r3 += arg_1d8h;
0x00019a0e movs r0, r0 |
0x00019a10 adr r3, 0x3e8 | r3 = 0x3e8;
0x00019a12 movs r0, r0 |
0x00019a14 ldrsh r4, [r3, r2] | r4 = *((r3 + r2));
0x00019a16 movs r0, r0 |
0x00019a18 adr r3, 0x3a8 | r3 = 0x3a8;
0x00019a1a movs r0, r0 |
0x00019a1c adr r6, 0x318 | r6 = 0x318;
0x00019a1e movs r0, r0 |
0x00019a20 add r3, sp, 0xf0 | r3 += arg_f0h;
0x00019a22 movs r0, r0 |
0x00019a24 str r0, [r6, 0x60] | *((r6 + 0x60)) = r0;
0x00019a26 movs r0, r0 |
0x00019a28 adr r3, 0x2d0 | r3 = 0x2d0;
0x00019a2a movs r0, r0 |
0x00019a2c add r2, sp, 0x3e8 | r2 += arg_3e8h;
0x00019a2e movs r0, r0 |
0x00019a30 adr r3, 0x240 | r3 = 0x240;
0x00019a32 movs r0, r0 |
0x00019a34 ldr r6, [pc, 0x50] | r6 = *(0x19a88);
0x00019a36 movs r0, r0 |
0x00019a38 adr r3, 0x220 | r3 = segment.PHDR;
0x00019a3a movs r0, r0 |
0x00019a3c add r2, sp, 0x338 | r2 += arg_338h;
0x00019a3e movs r0, r0 |
0x00019a40 str r2, [r4, 0x5c] | *((r4 + 0x5c)) = r2;
0x00019a42 movs r0, r0 |
0x00019a44 adr r3, 0x198 | r3 = 0x198;
0x00019a46 movs r0, r0 |
0x00019a48 add r2, sp, 0x2f0 | r2 += arg_2f0h;
0x00019a4a movs r0, r0 |
0x00019a4c adr r3, 0x120 | r3 = 0x120;
0x00019a4e movs r0, r0 |
0x00019a50 add r2, sp, 0x198 | r2 += arg_198h;
0x00019a52 movs r0, r0 |
0x00019a54 add r0, sp, 0xd8 | r0 += arg_d8h;
0x00019a56 movs r0, r0 |
0x00019a58 ldr r6, [pc, 0x178] | r6 = *(0x19bd4);
0x00019a5a movs r0, r0 |
0x00019a5c ldrb r0, [r6, r6] | r0 = *((r6 + r6));
0x00019a5e movs r0, r0 |
0x00019a60 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00019a64 sub sp, 0x14c |
0x00019a66 ldr.w r6, [pc, 0x444] |
0x00019a6a add r7, sp, 0x10 | r7 += var_10h;
0x00019a6c movs r4, 0 | r4 = 0;
0x00019a6e ldr.w r2, [pc, 0x440] | r2 = *(0x19eb2);
0x00019a72 add.w r5, r7, 0x10 | r5 += var_10h_3;
0x00019a76 add r6, pc | r6 = 0x33928;
0x00019a78 ldr.w sb, [pc, 0x438] |
0x00019a7c ldr.w r3, [pc, 0x438] | r3 = *(0x19eb8);
0x00019a80 add.w r8, r7, 8 | r8 += var_8h_3;
0x00019a84 ldr r2, [r6, r2] |
0x00019a86 add sb, pc | sb = 0x3393e;
0x00019a88 ldr r2, [r2] | r2 = *(0x33928);
0x00019a8a str.w r2, [r7, 0x134] | __asm ("str.w r2, [var_134h]");
0x00019a8e mov.w r2, 0 | r2 = 0;
0x00019a92 strd r4, r4, [r5] | __asm ("strd r4, r4, [r5]");
0x00019a96 str r4, [r5, 8] | var_8h_4 = r4;
0x00019a98 str.w r4, [r8] | __asm ("str.w r4, [r8]");
0x00019a9c ldr.w r3, [sb, r3] | r3 = *(0x3393e);
0x00019aa0 ldr r6, [r3] | r6 = *(0x3393e);
0x00019aa2 cmp r6, 0 |
| if (r6 != 0) {
0x00019aa4 bne.w 0x19c96 | goto label_131;
| }
0x00019aa8 subs r3, r0, 2 | r3 = r0 - 2;
0x00019aaa cmp r3, 1 |
| if (r3 > 1) {
0x00019aac bhi.w 0x19c74 | goto label_132;
| }
0x00019ab0 cmp r0, 3 |
0x00019ab2 ldr.w sl, [r1, 4] | sl = *((r1 + 4));
| if (r0 != 3) {
0x00019ab6 bne.w 0x19cd4 | goto label_133;
| }
0x00019aba ldr.w fp, [r1, 8] | fp = *((r1 + 8));
| label_48:
0x00019abe cmp.w fp, 0 |
| if (fp == 0) {
0x00019ac2 beq 0x19b82 | goto label_134;
| }
0x00019ac4 ldrb.w r3, [fp] | r3 = *(fp);
0x00019ac8 cmp r3, 0 |
| if (r3 == 0) {
0x00019aca beq 0x19b82 | goto label_134;
| }
0x00019acc cmp.w sl, 0 |
| if (sl == 0) {
0x00019ad0 beq.w 0x19dbe | goto label_135;
| }
0x00019ad4 ldrb.w r2, [sl] | r2 = *(sl);
0x00019ad8 cmp r2, 0 |
| if (r2 != 0) {
0x00019ada bne.w 0x19cf2 | goto label_136;
| }
0x00019ade cmp r3, 0x2f |
| if (r3 != 0x2f) {
0x00019ae0 bne.w 0x19e94 | goto label_137;
| }
0x00019ae4 ldr r3, [pc, 0x3d4] |
0x00019ae6 add r3, pc | r3 = 0x339a6;
0x00019ae8 adds r3, 1 | r3++;
| label_49:
0x00019aea mov r2, fp | r2 = fp;
| do {
0x00019aec mov r4, r2 | r4 = r2;
0x00019aee adds r2, 1 | r2++;
0x00019af0 ldrb r1, [r4, 1] | r1 = *((r4 + 1));
0x00019af2 cmp r1, 0x2f |
0x00019af4 beq 0x19aec |
| } while (r1 == 0x2f);
0x00019af6 cmp.w sl, 0 |
| if (sl == 0) {
0x00019afa beq 0x19b74 | goto label_57;
| }
| label_50:
0x00019afc ldrb.w r2, [sl] | r2 = *(sl);
0x00019b00 cmp r2, 0 |
| if (r2 == 0) {
0x00019b02 beq 0x19b74 | goto label_57;
| }
0x00019b04 mov r0, sl | r0 = sl;
0x00019b06 str r3, [r7] | *(r7) = r3;
0x00019b08 blx 0x5d5c | unlink (r0);
0x00019b0c str r0, [r7, 4] | var_4h_3 = r0;
0x00019b0e mov r0, r4 | r0 = r4;
0x00019b10 blx 0x5d5c | unlink (r0);
0x00019b14 ldr r2, [r7, 4] | r2 = var_4h_3;
0x00019b16 ldr r3, [r7] | r3 = *(r7);
0x00019b18 add r0, r2 | r0 += r2;
0x00019b1a adds r2, r0, 2 | r2 = r0 + 2;
0x00019b1c cmp.w r2, 0x400000 |
| if (r2 > 0x400000) {
0x00019b20 bhi.w 0x19e42 | goto label_138;
| }
0x00019b24 adds r0, 9 | r0 += 9;
0x00019b26 mov r1, sl | r1 = sl;
0x00019b28 bic r0, r0, 7 | r0 = BIT_MASK (r0, 7);
0x00019b2c str r3, [r7] | *(r7) = r3;
0x00019b2e sub.w sp, sp, r0 |
0x00019b32 add r2, sp, 0x10 | r2 += var_10h;
0x00019b34 mov r0, r2 | r0 = r2;
0x00019b36 str r2, [r7, 4] | var_4h_3 = r2;
0x00019b38 blx 0x5a4c | fcn_00005a4c ();
0x00019b3c ldr r2, [r7, 4] | r2 = var_4h_3;
0x00019b3e mov r1, r0 | r1 = r0;
0x00019b40 ldr r3, [r7] | r3 = *(r7);
0x00019b42 cmp r0, r2 |
| if (r0 > r2) {
0x00019b44 bhi 0x19b4e | goto label_139;
| }
0x00019b46 b 0x19b5c | goto label_54;
| do {
0x00019b48 cmp r1, r2 |
| if (r1 == r2) {
0x00019b4a beq.w 0x19dca | goto label_140;
| }
| label_139:
0x00019b4e ldrb ip, [r1, -0x1] | ip = *((r1 - 0x1));
0x00019b52 mov r0, r1 | r0 = r1;
0x00019b54 subs r1, 1 | r1--;
0x00019b56 cmp.w ip, 0x2f |
0x00019b5a beq 0x19b48 |
| } while (ip == 0x2f);
| label_54:
0x00019b5c ldrb r1, [r4] | r1 = *(r4);
0x00019b5e str r3, [r7, 4] | var_4h_3 = r3;
0x00019b60 cmp r1, 0x2f |
0x00019b62 itt ne |
| if (r1 == 0x2f) {
0x00019b64 movne r1, 0x2f | r1 = 0x2f;
| }
| if (r1 == 0x2f) {
0x00019b66 strbne r1, [r0], 1 | *(r0) = r1;
| r0++;
| }
0x00019b6a mov r1, r4 | r1 = r4;
0x00019b6c mov r4, r2 | r4 = r2;
0x00019b6e blx 0x5ea0 | terminal_urlify_man ();
0x00019b72 ldr r3, [r7, 4] | r3 = var_4h_3;
| label_57:
0x00019b74 mov r1, r3 | r1 = r3;
0x00019b76 mov r0, r4 | r0 = r4;
0x00019b78 movs r2, 0 | r2 = 0;
0x00019b7a blx 0x61b0 | r0 = fcn_000061b0 ();
0x00019b7e cmp r0, 0 |
| if (r0 > 0) {
0x00019b80 ble 0x19b86 |
| label_134:
0x00019b82 mov.w fp, 0 |
| }
0x00019b86 ldr r3, [pc, 0x338] |
0x00019b88 ldr.w r3, [sb, r3] | r3 = *((sb + r3));
0x00019b8c ldr r3, [r3] | r3 = *(0x19ec2);
0x00019b8e cmp r3, 0 |
| if (r3 == 0) {
0x00019b90 beq.w 0x19dd2 | goto label_141;
| }
0x00019b94 ldr r3, [r3] | r3 = *(r3);
0x00019b96 cmp r3, 0 |
| if (r3 == 0) {
0x00019b98 beq.w 0x19de6 | goto label_142;
| }
0x00019b9c movs r2, 0x40 | r2 = 0x40;
0x00019b9e add.w r4, r7, 0xc | r4 += var_ch_2;
0x00019ba2 strb r2, [r3] | *(r3) = r2;
0x00019ba4 mov r1, r4 | r1 = r4;
0x00019ba6 movs r0, 1 | r0 = 1;
0x00019ba8 bl 0x1a334 | r0 = fcn_0001a334 (r0, r1);
0x00019bac subs r3, r0, 0 | r3 = r0 - 0;
| if (r3 < r0) {
0x00019bae blt.w 0x19cea | goto label_143;
| }
0x00019bb2 movs r2, 0x88 | r2 = 0x88;
0x00019bb4 movs r1, 0 | r1 = 0;
0x00019bb6 add.w r0, r7, 0x20 | r0 += var_20h_2;
0x00019bba blx 0x5a68 | unit_load_state ();
0x00019bbe add.w r0, r7, 0x1c | r0 += var_1ch_2;
0x00019bc2 movs r3, 1 | r3 = 1;
0x00019bc4 movs r1, 0xf | r1 = 0xf;
0x00019bc6 str r3, [r0] | *(r0) = r3;
0x00019bc8 mov.w r2, -1 | r2 = -1;
0x00019bcc mov.w r3, 0x10000000 | r3 = 0x10000000;
0x00019bd0 str.w r3, [r0, 0x84] | __asm ("str.w r3, [var_b0h_2]");
0x00019bd4 blx 0x59c4 | fcn_000059c4 ();
0x00019bd8 subs r1, r0, 0 | r1 -= var_1ch_2;
| if (r1 < var_1ch_2) {
0x00019bda blt.w 0x19d94 | goto label_144;
| }
| label_53:
0x00019bde blx 0x5934 | r0 = fcn_00005934 ();
0x00019be2 cmp r0, 6 |
| if (r0 > 6) {
0x00019be4 ble 0x19c10 |
0x00019be6 mov r3, fp | r3 = fp;
0x00019be8 cmp.w fp, 0 |
| if (fp == 0) {
0x00019bec beq.w 0x19e3c | goto label_145;
| }
| label_56:
0x00019bf0 strd sl, r3, [sp, 8] | __asm ("strd sl, r3, [var_8h]");
0x00019bf4 movs r1, 0 | r1 = 0;
0x00019bf6 ldr r3, [pc, 0x2cc] |
0x00019bf8 movs r0, 7 | r0 = 7;
0x00019bfa ldr r2, [pc, 0x2cc] |
0x00019bfc add r3, pc | r3 = 0x33ac6;
0x00019bfe str r3, [sp, 4] | var_4h = r3;
0x00019c00 add r2, pc | r2 = 0x33ace;
0x00019c02 ldr r3, [pc, 0x2c8] |
0x00019c04 adds r2, 7 | r2 += 7;
0x00019c06 add r3, pc | r3 = 0x33ad8;
0x00019c08 str r3, [sp] | *(sp) = r3;
0x00019c0a movs r3, 0x43 | r3 = 0x43;
0x00019c0c blx 0x61a4 | fcn_000061a4 ();
| }
| label_52:
0x00019c10 ldr r3, [pc, 0x2bc] | r3 = *(0x19ed0);
0x00019c12 ldr r0, [r4] | r0 = *(r4);
0x00019c14 ldr.w r2, [sb, r3] | r2 = *((sb + r3));
0x00019c18 mov.w sb, 0 | sb = 0;
0x00019c1c ldr r3, [pc, 0x2b4] |
0x00019c1e strd sl, fp, [sp, 8] | __asm ("strd sl, fp, [var_8h]");
0x00019c22 ldr r1, [r2] | r1 = *(r2);
0x00019c24 ldr r2, [pc, 0x2b0] |
0x00019c26 add r3, pc | r3 = 0x33afe;
0x00019c28 str r3, [sp, 4] | var_4h = r3;
0x00019c2a mov r3, r5 | r3 = r5;
0x00019c2c str.w sb, [sp] | __asm ("str.w sb, [sp]");
0x00019c30 add r2, pc | r2 = 0x33b0c;
0x00019c32 blx 0x5d44 | r0 = strlen (r0);
0x00019c36 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00019c38 blt.w 0x19dfa | goto label_146;
| }
0x00019c3c ldr.w r0, [r8] | r0 = *(r8);
| do {
| label_47:
0x00019c40 blx 0x5be4 | fcn_00005be4 ();
0x00019c44 movs r3, 0 | r3 = 0;
0x00019c46 mov r0, r5 | r0 = r5;
0x00019c48 str.w r3, [r8] | __asm ("str.w r3, [r8]");
0x00019c4c blx 0x6024 | fcn_00006024 ();
0x00019c50 ldr r2, [pc, 0x288] |
0x00019c52 ldr r3, [pc, 0x25c] | r3 = *(0x19eb2);
0x00019c54 add r2, pc | r2 = 0x33b34;
0x00019c56 ldr r3, [r2, r3] | r3 = *(0x33b34);
0x00019c58 ldr r2, [r3] | r2 = *(0x33b34);
0x00019c5a ldr.w r3, [r7, 0x134] | r3 = var_134h;
0x00019c5e eors r2, r3 | r2 ^= r3;
0x00019c60 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00019c64 bne.w 0x19ea8 | goto label_147;
| }
0x00019c68 mov r0, r6 | r0 = r6;
0x00019c6a add.w r7, r7, 0x13c | r7 += var_13ch;
0x00019c6e mov sp, r7 |
0x00019c70 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_132:
0x00019c74 blx 0x5934 | r0 = fcn_00005934 ();
0x00019c78 cmp r0, 2 |
0x00019c7a itt le |
| if (r0 > 2) {
0x00019c7c movle r0, r6 | r0 = r6;
| }
| if (r0 > 2) {
0x00019c7e mvnle r6, 0x15 | r6 = ~0x15;
| }
0x00019c82 ble 0x19c40 |
| } while (r0 <= 2);
0x00019c84 ldr r2, [pc, 0x258] |
0x00019c86 movs r1, 0x16 | r1 = 0x16;
0x00019c88 ldr r4, [pc, 0x258] |
0x00019c8a movs r3, 0x19 | r3 = 0x19;
0x00019c8c ldr r0, [pc, 0x258] |
0x00019c8e add r2, pc | r2 = 0x33b72;
0x00019c90 add r4, pc | r4 = 0x33b78;
0x00019c92 add r0, pc | r0 = 0x33b7e;
0x00019c94 b 0x19cb6 | goto label_148;
| label_131:
0x00019c96 blx 0x5934 | r0 = fcn_00005934 ();
0x00019c9a cmp r0, 2 |
0x00019c9c itt le |
| if (r0 > 2) {
0x00019c9e movle r0, r4 | r0 = r4;
| }
| if (r0 <= 2) {
0x00019ca0 mvnle r6, 0x15 | r6 = ~0x15;
| goto label_149;
| }
| if (r0 <= 2) {
| label_149:
0x00019ca4 ble 0x19c40 | goto label_47;
| }
0x00019ca6 ldr r2, [pc, 0x244] |
0x00019ca8 movs r1, 0x16 | r1 = 0x16;
0x00019caa ldr r4, [pc, 0x244] |
0x00019cac mov r3, r1 | r3 = r1;
0x00019cae ldr r0, [pc, 0x244] |
0x00019cb0 add r2, pc | r2 = 0x33ba2;
0x00019cb2 add r4, pc | r4 = 0x33ba8;
0x00019cb4 add r0, pc | r0 = 0x33bae;
| label_148:
0x00019cb6 strd r0, r4, [sp] | __asm ("strd r0, r4, [sp]");
0x00019cba movt r1, 0x4000 | r1 = (r1 & 0xFFFF) | 0x40000000;
0x00019cbe adds r2, 7 | r2 += 7;
0x00019cc0 movs r0, 3 | r0 = 3;
0x00019cc2 blx 0x61a4 | r0 = fcn_000061a4 ();
0x00019cc6 subs r6, r0, 0 | r6 = r0 - 0;
0x00019cc8 ldr.w r0, [r8] | r0 = *(r8);
0x00019ccc it ge |
| if (r6 < r0) {
0x00019cce mvnge r6, 0x55 | r6 = ~0x55;
| }
0x00019cd2 b 0x19c40 | goto label_47;
| label_133:
0x00019cd4 ldr r0, [pc, 0x220] |
0x00019cd6 mov r2, r8 | r2 = r8;
0x00019cd8 mov r1, r6 | r1 = r6;
0x00019cda add r0, pc | r0 = 0x33bd6;
0x00019cdc blx 0x6054 | r0 = fcn_00006054 ();
0x00019ce0 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00019ce2 blt 0x19d6e | goto label_150;
| }
| label_51:
0x00019ce4 ldr.w fp, [r8] | fp = *(r8);
0x00019ce8 b 0x19abe | goto label_48;
| label_143:
0x00019cea ldr.w r0, [r8] | r0 = *(r8);
0x00019cee mov r6, r3 | r6 = r3;
0x00019cf0 b 0x19c40 | goto label_47;
| label_136:
0x00019cf2 mov r0, sl | r0 = sl;
0x00019cf4 blx 0x5d5c | r0 = unlink (r0);
0x00019cf8 add.w r3, r0, 0x1a | r3 = r0 + 0x1a;
0x00019cfc cmp.w r3, 0x400000 |
| if (r3 > 0x400000) {
0x00019d00 bhi.w 0x19e56 | goto label_151;
| }
0x00019d04 adds r0, 0x21 | r0 += 0x21;
0x00019d06 mov r1, sl | r1 = sl;
0x00019d08 bic r0, r0, 7 | r0 = BIT_MASK (r0, 7);
0x00019d0c sub.w sp, sp, r0 |
0x00019d10 add r3, sp, 0x10 | r3 += var_10h;
0x00019d12 mov r0, r3 | r0 = r3;
0x00019d14 str r3, [r7, 4] | var_4h_3 = r3;
0x00019d16 blx 0x5a4c | fcn_00005a4c ();
0x00019d1a ldr r3, [r7, 4] | r3 = var_4h_3;
0x00019d1c mov r2, r0 | r2 = r0;
0x00019d1e cmp r3, r0 |
| if (r3 <= r0) {
0x00019d20 blo 0x19d28 | goto label_152;
| }
0x00019d22 b 0x19d34 | goto label_55;
| do {
0x00019d24 cmp r0, r3 |
| if (r0 == r3) {
0x00019d26 beq 0x19dce | goto label_153;
| }
| label_152:
0x00019d28 ldrb r1, [r0, -0x1] | r1 = *((r0 - 0x1));
0x00019d2c mov r2, r0 | r2 = r0;
0x00019d2e subs r0, 1 | r0--;
0x00019d30 cmp r1, 0x2f |
0x00019d32 beq 0x19d24 |
| } while (r1 == 0x2f);
| label_55:
0x00019d34 ldr r1, [pc, 0x1c4] |
0x00019d36 add r1, pc | r1 = 0x33c36;
0x00019d38 ldr.w r0, [r1, 1] | r0 = *(0x33c37);
0x00019d3c str r0, [r2] | *(r2) = r0;
0x00019d3e ldr.w r0, [r1, 5] | r0 = *(0x33c3b);
0x00019d42 str r0, [r2, 4] | *((r2 + 4)) = r0;
0x00019d44 ldr.w r0, [r1, 9] | r0 = *(0x33c3f);
0x00019d48 str r0, [r2, 8] | *((r2 + 8)) = r0;
0x00019d4a ldr.w r0, [r1, 0xd] | r0 = *(0x33c43);
0x00019d4e str r0, [r2, 0xc] | *((r2 + 0xc)) = r0;
0x00019d50 ldr.w r0, [r1, 0x11] | r0 = *(0x33c47);
0x00019d54 str r0, [r2, 0x10] | *((r2 + 0x10)) = r0;
0x00019d56 ldr.w r0, [r1, 0x15] | r0 = *(0x33c4b);
0x00019d5a ldrb r1, [r1, 0x19] | r1 = *((r1 + 0x19));
0x00019d5c str r0, [r2, 0x14] | *((r2 + 0x14)) = r0;
0x00019d5e strb r1, [r2, 0x18] | *((r2 + 0x18)) = r1;
0x00019d60 ldrb.w r2, [fp] | r2 = *(fp);
0x00019d64 cmp r2, 0x2f |
| if (r2 == 0x2f) {
0x00019d66 beq.w 0x19aea | goto label_49;
| }
0x00019d6a mov r4, fp | r4 = fp;
0x00019d6c b 0x19afc | goto label_50;
| label_150:
0x00019d6e blx 0x5934 | r0 = fcn_00005934 ();
0x00019d72 cmp r0, 6 |
| if (r0 <= 6) {
0x00019d74 ble 0x19ce4 | goto label_51;
| }
0x00019d76 ldr r3, [pc, 0x188] |
0x00019d78 mov r1, r4 | r1 = r4;
0x00019d7a ldr r2, [pc, 0x188] |
0x00019d7c movs r0, 7 | r0 = 7;
0x00019d7e add r3, pc | r3 = 0x33c84;
0x00019d80 str r3, [sp, 4] | var_4h = r3;
0x00019d82 add r2, pc | r2 = 0x33c8c;
0x00019d84 ldr r3, [pc, 0x180] |
0x00019d86 adds r2, 7 | r2 += 7;
0x00019d88 add r3, pc | r3 = 0x33c94;
0x00019d8a str r3, [sp] | *(sp) = r3;
0x00019d8c movs r3, 0x22 | r3 = 0x22;
0x00019d8e blx 0x61a4 | fcn_000061a4 ();
0x00019d92 b 0x19ce4 | goto label_51;
| label_144:
0x00019d94 str r1, [r7, 4] | var_4h_3 = r1;
0x00019d96 invalid |
0x00019d9a movs r2, r0 | r2 = r0;
0x00019d9c ldr r1, [r7, 4] | r1 = var_4h_3;
| if (r2 <= r0) {
0x00019d9e ble.w 0x19c10 | goto label_52;
| }
0x00019da2 ldr r3, [pc, 0x168] |
0x00019da4 movs r0, 4 | r0 = 4;
0x00019da6 ldr r2, [pc, 0x168] |
0x00019da8 add r3, pc | r3 = 0x33cba;
0x00019daa str r3, [sp, 4] | var_4h = r3;
0x00019dac add r2, pc | r2 = 0x33cc2;
0x00019dae ldr r3, [pc, 0x164] |
0x00019db0 adds r2, 7 | r2 += 7;
0x00019db2 add r3, pc | r3 = 0x33ccc;
0x00019db4 str r3, [sp] | *(sp) = r3;
0x00019db6 movs r3, 0x41 | r3 = 0x41;
0x00019db8 blx 0x61a4 | fcn_000061a4 ();
0x00019dbc b 0x19bde | goto label_53;
| label_135:
0x00019dbe cmp r3, 0x2f |
| if (r3 != 0x2f) {
0x00019dc0 bne 0x19e9e | goto label_154;
| }
0x00019dc2 ldr r3, [pc, 0x154] |
0x00019dc4 add r3, pc | r3 = 0x33ce2;
0x00019dc6 adds r3, 1 | r3++;
0x00019dc8 b 0x19aea | goto label_49;
| label_140:
0x00019dca mov r0, r2 | r0 = r2;
0x00019dcc b 0x19b5c | goto label_54;
| label_153:
0x00019dce mov r2, r3 | r2 = r3;
0x00019dd0 b 0x19d34 | goto label_55;
| label_141:
0x00019dd2 ldr r1, [pc, 0x148] |
0x00019dd4 movs r2, 0x35 | r2 = 0x35;
0x00019dd6 ldr r3, [pc, 0x148] |
0x00019dd8 ldr r0, [pc, 0x148] |
0x00019dda add r1, pc | r1 = 0x33cfc;
0x00019ddc add r3, pc | r3 = 0x33d02;
0x00019dde adds r1, 7 | r1 += 7;
0x00019de0 add r0, pc | r0 = 0x33d08;
0x00019de2 blx 0x5e40 | unit_file_get_default ();
| label_142:
0x00019de6 ldr r1, [pc, 0x140] |
0x00019de8 movs r2, 0x36 | r2 = 0x36;
0x00019dea ldr r3, [pc, 0x140] |
0x00019dec ldr r0, [pc, 0x140] |
0x00019dee add r1, pc | r1 = 0x33d1c;
0x00019df0 add r3, pc | r3 = 0x33d22;
0x00019df2 adds r1, 7 | r1 += 7;
0x00019df4 add r0, pc | r0 = 0x33d28;
0x00019df6 blx 0x5e40 | unit_file_get_default ();
| label_146:
0x00019dfa add.w r3, r7, 0xa8 | r3 += var_b8h;
0x00019dfe movs r2, 0x8c | r2 = 0x8c;
0x00019e00 mov r1, sb | r1 = sb;
0x00019e02 mov r0, r3 | r0 = r3;
0x00019e04 blx 0x5a68 | r0 = unit_load_state ();
0x00019e08 mov r3, r0 | r3 = r0;
0x00019e0a mov.w r0, 0x10000000 | r0 = 0x10000000;
0x00019e0e mov.w r2, -1 | r2 = -1;
0x00019e12 movs r1, 0xf | r1 = 0xf;
0x00019e14 str.w r0, [r7, 0x12c] | __asm ("str.w r0, [var_12ch]");
0x00019e18 mov r0, r3 | r0 = r3;
0x00019e1a blx 0x59c4 | fcn_000059c4 ();
0x00019e1e blx 0x5934 | r0 = fcn_00005934 ();
0x00019e22 cmp r0, 2 |
0x00019e24 ittt le |
| if (r0 <= 2) {
0x00019e26 rsble r3, r4, 0 | __asm ("rsble r3, r4, 0");
| }
| if (r0 <= 2) {
0x00019e28 uxtble r3, r3 | __asm ("uxtble r3, r3");
| }
| if (r0 <= 2) {
0x00019e2a rsble r6, r3, 0 | __asm ("rsble r6, r3, 0");
| }
0x00019e2c bgt 0x19e6a |
| while (1) {
0x00019e2e cmp r6, 0 |
0x00019e30 ldr.w r0, [r8] | r0 = *(r8);
0x00019e34 it ge |
| if (r6 < 0) {
0x00019e36 mvnge r6, 0x55 | r6 = ~0x55;
| }
0x00019e3a b 0x19c40 | goto label_47;
| label_145:
0x00019e3c ldr r3, [pc, 0xf4] |
0x00019e3e add r3, pc | r3 = 0x33d76;
0x00019e40 b 0x19bf0 | goto label_56;
| label_138:
0x00019e42 ldr r1, [pc, 0xf4] |
0x00019e44 movs r2, 0x2c | r2 = 0x2c;
0x00019e46 ldr r3, [pc, 0xf4] |
0x00019e48 ldr r0, [pc, 0xf4] |
0x00019e4a add r1, pc | r1 = 0x33d88;
0x00019e4c add r3, pc | r3 = 0x33d8e;
0x00019e4e adds r1, 7 | r1 += 7;
0x00019e50 add r0, pc | r0 = 0x33d94;
0x00019e52 blx 0x5e40 | unit_file_get_default ();
| label_151:
0x00019e56 ldr r1, [pc, 0xec] |
0x00019e58 movs r2, 0x2b | r2 = 0x2b;
0x00019e5a ldr r3, [pc, 0xec] |
0x00019e5c ldr r0, [pc, 0xec] |
0x00019e5e add r1, pc | r1 = 0x33da8;
0x00019e60 add r3, pc | r3 = 0x33dae;
0x00019e62 adds r1, 7 | r1 += 7;
0x00019e64 add r0, pc | r0 = 0x33db4;
0x00019e66 blx 0x5e40 | unit_file_get_default ();
0x00019e6a mov r1, r4 | r1 = r4;
0x00019e6c mov r0, r5 | r0 = r5;
0x00019e6e blx 0x566c | bus_error_message ();
0x00019e72 ldr r2, [pc, 0xdc] |
0x00019e74 mov r1, r4 | r1 = r4;
0x00019e76 str r0, [sp, 8] | var_8h = r0;
0x00019e78 ldr r3, [pc, 0xd8] |
0x00019e7a ldr r0, [pc, 0xdc] |
0x00019e7c add r2, pc | r2 = 0x33dd2;
0x00019e7e adds r2, 7 | r2 += 7;
0x00019e80 add r3, pc | r3 = 0x33dd8;
0x00019e82 add r0, pc | r0 = 0x33de0;
0x00019e84 str r3, [sp, 4] | var_4h = r3;
0x00019e86 str r0, [sp] | *(sp) = r0;
0x00019e88 movs r3, 0x49 | r3 = 0x49;
0x00019e8a movs r0, 3 | r0 = 3;
0x00019e8c blx 0x61a4 | r0 = fcn_000061a4 ();
0x00019e90 mov r6, r0 | r6 = r0;
0x00019e92 b 0x19e2e |
| }
| label_137:
0x00019e94 ldr r3, [pc, 0xc4] |
0x00019e96 mov r4, fp | r4 = fp;
0x00019e98 add r3, pc | r3 = 0x33df8;
0x00019e9a adds r3, 1 | r3++;
0x00019e9c b 0x19b74 | goto label_57;
| label_154:
0x00019e9e ldr r3, [pc, 0xc0] |
0x00019ea0 mov r4, fp | r4 = fp;
0x00019ea2 add r3, pc | r3 = 0x33e08;
0x00019ea4 adds r3, 1 | r3++;
0x00019ea6 b 0x19b74 | goto label_57;
| label_147:
0x00019ea8 blx 0x6114 | fcn_00006114 ();
0x00019eac lsrs r6, r6, 0x1b | r6 >>= 0x1b;
0x00019eae movs r2, r0 | r2 = r0;
0x00019eb0 lsls r0, r2, 0x18 | r0 = r2 << 0x18;
0x00019eb2 movs r0, r0 |
0x00019eb4 lsrs r6, r4, 0x1b | r6 = r4 >> 0x1b;
0x00019eb6 movs r2, r0 | r2 = r0;
0x00019eb8 lsls r4, r7, 0x17 | r4 = r7 << 0x17;
0x00019eba movs r0, r0 |
0x00019ebc add r1, sp, 0x268 | r1 += arg_268h;
0x00019ebe movs r0, r0 |
0x00019ec0 lsls r4, r3, 0x16 | r4 = r3 << 0x16;
0x00019ec2 movs r0, r0 |
0x00019ec4 add r1, sp, 0x230 | r1 += var_230h;
0x00019ec6 movs r0, r0 |
0x00019ec8 add r0, sp, 0x270 | r0 += arg_270h_2;
0x00019eca movs r0, r0 |
0x00019ecc add r1, sp, 0x368 | r1 += arg_368h;
0x00019ece movs r0, r0 |
0x00019ed0 lsls r0, r1, 0x16 | r0 = r1 << 0x16;
0x00019ed2 movs r0, r0 |
0x00019ed4 adr r4, 0x358 | r4 = 0x358;
0x00019ed6 movs r0, r0 |
0x00019ed8 add r1, sp, 0x1f0 | r1 += var_1f0h;
0x00019eda movs r0, r0 |
0x00019edc lsrs r0, r3, 0x14 | r0 = r3 >> 0x14;
0x00019ede movs r2, r0 | r2 = r0;
0x00019ee0 add r0, sp, 0x38 | r0 += var_38h;
0x00019ee2 movs r0, r0 |
0x00019ee4 add r0, sp, 0x170 | r0 += var_170h;
0x00019ee6 movs r0, r0 |
0x00019ee8 add r1, sp, 0x138 | r1 += var_138h;
0x00019eea movs r0, r0 |
0x00019eec adr r7, 0x3b0 | r7 = 0x3b0;
0x00019eee movs r0, r0 |
0x00019ef0 add r0, sp, 0x68 | r0 += var_68h;
0x00019ef2 movs r0, r0 |
0x00019ef4 add r1, sp, 0xb0 | r1 += var_b0h_2;
0x00019ef6 movs r0, r0 |
0x00019ef8 add r0, sp, 0xb8 | r0 += var_b8h;
0x00019efa movs r0, r0 |
0x00019efc adr r7, 0x128 | r7 = 0x128;
0x00019efe movs r0, r0 |
0x00019f00 adr r7, 0x248 | r7 = 0x248;
0x00019f02 movs r0, r0 |
0x00019f04 adr r7, 0x68 | r7 = 0x68;
0x00019f06 movs r0, r0 |
0x00019f08 add r0, sp, 0x160 | r0 += var_160h;
0x00019f0a movs r0, r0 |
0x00019f0c adr r7, 0x2a0 | r7 = 0x2a0;
0x00019f0e movs r0, r0 |
0x00019f10 adr r6, 0x3c0 | r6 = 0x3c0;
0x00019f12 movs r0, r0 |
0x00019f14 add r0, sp, 0xb8 | r0 += var_b8h;
0x00019f16 movs r0, r0 |
0x00019f18 adr r6, 0x2f0 | r6 = 0x2f0;
0x00019f1a movs r0, r0 |
0x00019f1c adr r6, 0x308 | r6 = segment.PHDR;
0x00019f1e movs r0, r0 |
0x00019f20 adr r7, 0x3e0 | r7 = 0x3e0;
0x00019f22 movs r0, r0 |
0x00019f24 adr r7, 0x150 | r7 = 0x150;
0x00019f26 movs r0, r0 |
0x00019f28 adr r6, 0x2b8 | r6 = 0x2b8;
0x00019f2a movs r0, r0 |
0x00019f2c adr r7, 0x390 | r7 = 0x390;
0x00019f2e movs r0, r0 |
0x00019f30 adr r7, 0x130 | r7 = 0x130;
0x00019f32 movs r0, r0 |
0x00019f34 ldr r2, [r2, 0x38] | r2 = *((r2 + 0x38));
0x00019f36 movs r0, r0 |
0x00019f38 adr r6, 0x148 | r6 = 0x148;
0x00019f3a movs r0, r0 |
0x00019f3c adr r7, 0x220 | r7 = 0x220;
0x00019f3e movs r0, r0 |
0x00019f40 ldr r4, [r0, r4] | r4 = *((r0 + r4));
0x00019f42 movs r0, r0 |
0x00019f44 adr r6, 0xf8 | r6 = 0xf8;
0x00019f46 movs r0, r0 |
0x00019f48 adr r7, 0x1d0 | r7 = 0x1d0;
0x00019f4a movs r0, r0 |
0x00019f4c ldr r0, [r6, r3] | r0 = *((r6 + r3));
0x00019f4e movs r0, r0 |
0x00019f50 adr r6, 0x80 | r6 = 0x80;
0x00019f52 movs r0, r0 |
0x00019f54 adr r7, 0xe0 | r7 = 0xe0;
0x00019f56 movs r0, r0 |
0x00019f58 adr r7, 0x178 | r7 = 0x178;
0x00019f5a movs r0, r0 |
0x00019f5c adr r5, 0x3a0 | r5 = 0x3a0;
0x00019f5e movs r0, r0 |
0x00019f60 adr r5, 0x378 | r5 = 0x378;
0x00019f62 movs r0, r0 |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/systemctl @ 0x1ab10 */
| #include <stdint.h>
|
; (fcn) fcn.0001ab10 () | void fcn_0001ab10 (int16_t arg_88h, int16_t arg_308h, uint32_t arg1) {
| int16_t var_0h_3;
| int16_t var_14h_2;
| int16_t var_0h;
| r0 = arg1;
| if (? >= ?) {
0x0001ab10 addlt fp, r6, r0, ror r5 |
| }
0x0001ab14 ldr r5, [pc, 0x94] |
0x0001ab16 add r5, pc | r5 = 0x356c6;
0x0001ab18 cmp r0, 0 |
| if (var_0h_3 == ) {
0x0001ab1a beq 0x1ab94 | goto label_2;
| }
0x0001ab1c mov r4, r0 | r4 = r0;
0x0001ab1e blx 0x5934 | r0 = fcn_00005934 ();
0x0001ab22 cmp r0, 3 |
| if (r0 <= 3) {
0x0001ab24 bgt 0x1ab2a |
0x0001ab26 add sp, 0x18 |
0x0001ab28 pop {r4, r5, r6, pc} |
| }
0x0001ab2a blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 != 0) {
0x0001ab2e cbnz r0, 0x1ab74 | goto label_3;
| }
0x0001ab30 ldr r6, [pc, 0x7c] |
0x0001ab32 add r6, pc | r6 = 0x356e6;
0x0001ab34 blx 0x5e88 | r0 = strcpy (r0, r1)
| if (r0 != 0) {
0x0001ab38 cbnz r0, 0x1ab80 | goto label_4;
| }
| do {
0x0001ab3a ldr r3, [pc, 0x78] |
0x0001ab3c ldr r0, [pc, 0x78] |
0x0001ab3e ldr r3, [r5, r3] | r3 = *((r5 + r3));
0x0001ab40 add r0, pc | r0 = 0x356fc;
0x0001ab42 ldr r3, [r3] | r3 = *(0x1abb6);
| if (r3 == 0) {
0x0001ab44 cbz r3, 0x1ab8e | goto label_5;
| }
| label_0:
0x0001ab46 ldr r3, [pc, 0x74] |
0x0001ab48 add r3, pc | r3 = 0x3570a;
| label_1:
0x0001ab4a strd r0, r4, [sp, 0xc] | __asm ("strd r0, r4, [sp, 0xc]");
0x0001ab4e movs r0, 4 | r0 = 4;
0x0001ab50 ldr r2, [pc, 0x6c] |
0x0001ab52 ldr r1, [pc, 0x70] |
0x0001ab54 ldr r4, [pc, 0x70] |
0x0001ab56 add r2, pc | r2 = 0x3571a;
0x0001ab58 str r3, [sp, 0x14] | var_14h_2 = r3;
0x0001ab5a add r1, pc | r1 = 0x35724;
0x0001ab5c mov.w r3, 0x17c | r3 = 0x17c;
0x0001ab60 add r4, pc | r4 = 0x3572c;
0x0001ab62 strd r1, r6, [sp, 4] | __asm ("strd r1, r6, [sp, 4]");
0x0001ab66 adds r2, 7 | r2 += 7;
0x0001ab68 movs r1, 0 | r1 = 0;
0x0001ab6a lsls r0, r0, 0xc | r0 <<= 0xc;
0x0001ab6c blx 0x61a4 | fcn_000061a4 ();
0x0001ab70 add sp, 0x18 |
0x0001ab72 pop {r4, r5, r6, pc} |
| label_3:
0x0001ab74 ldr r6, [pc, 0x54] |
0x0001ab76 add r6, pc | r6 = 0x35746;
0x0001ab78 blx 0x5e88 | r0 = strcpy (r0, r1)
0x0001ab7c cmp r0, 0 |
0x0001ab7e beq 0x1ab3a |
| } while (r0 == 0);
| label_4:
0x0001ab80 ldr r3, [pc, 0x30] |
0x0001ab82 ldr r0, [pc, 0x4c] |
0x0001ab84 ldr r3, [r5, r3] | r3 = *((r5 + r3));
0x0001ab86 add r0, pc | r0 = 0x3575c;
0x0001ab88 ldr r3, [r3] | r3 = *(0x1abb4);
0x0001ab8a cmp r3, 0 |
| if (r3 != 0) {
0x0001ab8c bne 0x1ab46 | goto label_0;
| }
| label_5:
0x0001ab8e ldr r3, [pc, 0x44] |
0x0001ab90 add r3, pc | r3 = 0x3576a;
0x0001ab92 b 0x1ab4a | goto label_1;
| label_2:
0x0001ab94 ldr r1, [pc, 0x40] |
0x0001ab96 mov.w r2, 0x17a | r2 = 0x17a;
0x0001ab9a ldr r3, [pc, 0x40] |
0x0001ab9c ldr r0, [pc, 0x40] |
0x0001ab9e add r1, pc | r1 = 0x3577a;
0x0001aba0 add r3, pc | r3 = 0x35782;
0x0001aba2 adds r1, 7 | r1 += 7;
0x0001aba4 add r0, pc | r0 = 0x35788;
0x0001aba6 blx 0x5e40 | unit_file_get_default ();
0x0001abaa nop |
0x0001abac cdp2 p0, 5, c0, c6, c1, 0 | __asm ("cdp2 p0, 5, c0, c6, c1, 0");
0x0001abb0 ldrsh r6, [r0, r6] | r6 = *((r0 + r6));
0x0001abb2 movs r0, r0 |
0x0001abb4 lsls r0, r6, 0x18 | r0 = r6 << 0x18;
0x0001abb6 movs r0, r0 |
0x0001abb8 ldrsh r0, [r7, r5] | r0 = *((r7 + r5));
0x0001abba movs r0, r0 |
0x0001abbc ldr r4, [pc, 0x110] | r4 = *(0x1acd0);
0x0001abbe movs r0, r0 |
0x0001abc0 ldr r5, [sp, 0x28] | r5 = var_0h;
0x0001abc2 movs r0, r0 |
0x0001abc4 ldr r7, [sp, 0x88] | r7 = *(arg_88h);
0x0001abc6 movs r0, r0 |
0x0001abc8 adr r4, 0x2c0 | r4 = 0x2c0;
0x0001abca movs r0, r0 |
0x0001abcc ldr r4, [pc, 0x28] | r4 = *(0x1abf8);
0x0001abce movs r0, r0 |
0x0001abd0 subs r4, 0xa2 | r4 -= 0xa2;
0x0001abd2 movs r0, r0 |
0x0001abd4 ldrsh r0, [r5, r4] | r0 = *((r5 + r4));
0x0001abd6 movs r0, r0 |
0x0001abd8 ldr r4, [sp, 0x308] | r4 = *(arg_308h);
0x0001abda movs r0, r0 |
0x0001abdc adr r2, 0x3e0 | r2 = 0x3e0;
0x0001abde movs r0, r0 |
0x0001abe0 strb r4, [r1, 0xd] | *((r1 + 0xd)) = r4;
0x0001abe2 movs r0, r0 |
| }
[*] Function strcpy used 58 times systemctl