Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* WARNING: Type propagation algorithm not settling */
- /* WARNING: Could not reconcile some variable overlaps */
- /* WARNING: Restarted to delay deadcode elimination for space: stack */
- undefined8 FUN_006ca728(long param_1,char *param_2,int param_3,undefined4 param_4,int param_5)
- {
- bool bVar1;
- undefined4 *puVar2;
- uint uVar3;
- undefined8 *__ptr;
- long *plVar4;
- long **pplVar5;
- long *plVar6;
- uint uVar7;
- uint uVar8;
- byte bVar9;
- uint uVar10;
- long lVar11;
- long *plVar12;
- char cVar13;
- int iVar14;
- int iVar15;
- size_t sVar16;
- undefined **ppuVar17;
- undefined **ppuVar18;
- void *pvVar19;
- uint *__ptr_00;
- long *plVar20;
- long *plVar21;
- long lVar22;
- ulong *puVar23;
- char *pcVar24;
- undefined8 *puVar25;
- undefined **ppuVar26;
- long *plVar27;
- long *plVar28;
- long *plVar29;
- long **pplVar30;
- undefined **ppuVar31;
- undefined **ppuVar32;
- undefined **ppuVar33;
- long *plVar34;
- long **pplVar35;
- uint *puVar36;
- ulong uVar37;
- long lVar38;
- ulong uVar39;
- char *unaff_x20;
- ulong uVar40;
- undefined *puVar41;
- void *pvVar42;
- undefined **ppuVar43;
- long *__dest;
- undefined8 uVar44;
- ulong uVar45;
- ulong uVar46;
- float fVar47;
- ulong uVar48;
- ulong uVar49;
- undefined8 uVar50;
- undefined8 uVar51;
- undefined8 uVar52;
- long *local_420;
- long *plStack1048;
- long *local_410;
- undefined local_408 [8];
- long *local_400;
- long *local_3f8;
- long *plStack1008;
- long *plStack1000;
- long *plStack992;
- long *plStack984;
- long *plStack976;
- long *plStack968;
- undefined8 local_3c0;
- long *plStack952;
- long *local_3b0;
- undefined4 local_3a8;
- undefined4 local_3a4;
- undefined4 local_3a0;
- undefined4 uStack924;
- long *local_398;
- undefined4 local_390;
- undefined8 local_38c;
- undefined4 local_384;
- undefined4 local_380;
- undefined4 local_37c;
- undefined auStack888 [4];
- char local_374 [258];
- undefined2 uStack626;
- char acStack624 [260];
- char acStack364 [260];
- long local_68;
- lVar11 = cRead_8(tpidr_el0);
- local_68 = *(long *)(lVar11 + 0x28);
- *(undefined4 *)(param_1 + 0x88) = param_4;
- if (param_5 == 0) {
- sVar16 = strlen(param_2);
- FUN_001b6d10(param_1 + 0x1d8,param_2,sVar16);
- LAB_006ca838:
- ppuVar17 = (undefined **)operator.new(0x90);
- *ppuVar17 = (undefined *)&PTR_FUN_009d8820;
- ppuVar17[1] = (undefined *)0x0;
- ppuVar17[0xe] = (undefined *)0x0;
- ppuVar17[0xf] = (undefined *)0x0;
- ppuVar17[0xc] = (undefined *)0x0;
- ppuVar17[0xd] = (undefined *)0x0;
- ppuVar17[0xb] = (undefined *)0x0;
- ppuVar43 = ppuVar17 + 10;
- *ppuVar43 = (undefined *)0x0;
- ppuVar17[3] = (undefined *)0x0;
- ppuVar17[4] = (undefined *)0x0;
- ppuVar17[2] = (undefined *)0x0;
- ppuVar17[5] = (undefined *)0x0;
- ppuVar17[6] = (undefined *)0xffffffffffffffff;
- ppuVar17[7] = (undefined *)0x0;
- ppuVar17[8] = (undefined *)0x0;
- *(undefined4 *)(ppuVar17 + 9) = 0;
- ppuVar31 = ppuVar17 + 0x10;
- *ppuVar31 = (undefined *)0x0;
- ppuVar17[0x11] = (undefined *)0x0;
- if ((*(byte *)(param_1 + 0x1d8) & 1) == 0) {
- lVar38 = param_1 + 0x1d9;
- }
- else {
- lVar38 = *(long *)(param_1 + 0x1e8);
- }
- pcVar24 = "rb";
- if (param_3 != 0) {
- pcVar24 = "wb";
- }
- iVar14 = FUN_0023f6d0(ppuVar17,lVar38,pcVar24);
- if (iVar14 == 0) {
- puVar41 = *ppuVar17;
- LAB_006ca908:
- (**(code **)(puVar41 + 8))(ppuVar17);
- if (*(long *)(lVar11 + 0x28) == local_68) {
- return 0;
- }
- goto LAB_006ca924;
- }
- getcwd((char *)(param_1 + 0x8c),0x104);
- FUN_006c7e70(param_1);
- ppuVar32 = *(undefined ***)(param_1 + 0x78);
- if (ppuVar32 == *(undefined ***)(param_1 + 0x80)) {
- pvVar42 = *(void **)(param_1 + 0x70);
- ppuVar32 = (undefined **)((long)ppuVar32 - (long)pvVar42);
- uVar40 = ((long)ppuVar32 >> 3) + 1;
- if (uVar40 >> 0x3d != 0) {
- LAB_006cb910:
- /* WARNING: Subroutine does not return */
- abort();
- }
- ppuVar18 = (undefined **)((long)*(undefined ***)(param_1 + 0x80) - (long)pvVar42);
- if ((ulong)((long)ppuVar18 >> 3) < 0xfffffffffffffff) {
- uVar37 = (long)ppuVar18 >> 2;
- if (uVar40 <= uVar37) {
- uVar40 = uVar37;
- }
- if (uVar40 != 0) {
- if (uVar40 >> 0x3d != 0) goto LAB_006cb910;
- goto LAB_006ca98c;
- }
- pvVar19 = (void *)0x0;
- }
- else {
- uVar40 = 0x1fffffffffffffff;
- LAB_006ca98c:
- pvVar19 = operator.new(uVar40 << 3);
- }
- ppuVar18 = (undefined **)((long)pvVar19 + ((long)ppuVar32 >> 3) * 8);
- *ppuVar18 = (undefined *)ppuVar17;
- if (0 < (long)ppuVar32) {
- memcpy(pvVar19,pvVar42,(size_t)ppuVar32);
- }
- *(void **)(param_1 + 0x70) = pvVar19;
- *(undefined ***)(param_1 + 0x78) = ppuVar18 + 1;
- *(void **)(param_1 + 0x80) = (void *)((long)pvVar19 + uVar40 * 8);
- if (pvVar42 != (void *)0x0) {
- _ZdlPv(pvVar42);
- }
- }
- else {
- *ppuVar32 = (undefined *)ppuVar17;
- *(long *)(param_1 + 0x78) = *(long *)(param_1 + 0x78) + 8;
- }
- ppuVar32 = ppuVar17 + 3;
- __ptr = (undefined8 *)(param_1 + 0x38);
- if (*ppuVar32 == (undefined *)0x0) {
- sVar16 = fread(__ptr,0x1c,1,(FILE *)ppuVar17[2]);
- if (sVar16 != 0) goto LAB_006caa34;
- LAB_006cae7c:
- if ((*(byte *)ppuVar43 & 1) == 0) {
- puVar41 = (undefined *)((long)ppuVar17 + 0x51);
- }
- else {
- puVar41 = ppuVar17[0xc];
- }
- lVar38 = *DAT_00a09f28;
- pcVar24 = "%s Header Wrong!!\n";
- }
- else {
- puVar25 = (undefined8 *)ppuVar17[4];
- uVar44 = *(undefined8 *)((long)puVar25 + 0xc);
- *(undefined8 *)(param_1 + 0x4c) = *(undefined8 *)((long)puVar25 + 0x14);
- *(undefined8 *)(param_1 + 0x44) = uVar44;
- uVar44 = *puVar25;
- *(undefined8 *)(param_1 + 0x40) = puVar25[1];
- *__ptr = uVar44;
- ppuVar17[4] = (undefined *)((long)puVar25 + 0x1c);
- LAB_006caa34:
- if (*(int *)__ptr == 0x1e2393f) {
- if ((param_5 != 0) && (1 < *(int *)(param_1 + 0x4c))) {
- uVar40 = 1;
- do {
- while( true ) {
- snprintf(acStack364,0x104,"%s%02d%s",local_374 + 0x104,uVar40,unaff_x20);
- ppuVar18 = (undefined **)operator.new(0x90);
- ppuVar18[4] = (undefined *)0x0;
- ppuVar18[5] = (undefined *)0x0;
- ppuVar18[2] = (undefined *)0x0;
- ppuVar18[3] = (undefined *)0x0;
- *ppuVar18 = (undefined *)&PTR_FUN_009d8820;
- ppuVar18[1] = (undefined *)0x0;
- ppuVar18[0xe] = (undefined *)0x0;
- ppuVar18[0xf] = (undefined *)0x0;
- ppuVar18[0xc] = (undefined *)0x0;
- ppuVar18[0xd] = (undefined *)0x0;
- ppuVar18[10] = (undefined *)0x0;
- ppuVar18[0xb] = (undefined *)0x0;
- ppuVar18[7] = (undefined *)0x0;
- ppuVar18[8] = (undefined *)0x0;
- ppuVar18[6] = (undefined *)0xffffffffffffffff;
- *(undefined4 *)(ppuVar18 + 9) = 0;
- ppuVar18[0x10] = (undefined *)0x0;
- ppuVar18[0x11] = (undefined *)0x0;
- iVar14 = FUN_0023f6d0(ppuVar18,acStack364,pcVar24);
- if (iVar14 == 0) {
- FUN_006c7e70(param_1);
- puVar41 = *ppuVar18;
- ppuVar17 = ppuVar18;
- goto LAB_006ca908;
- }
- ppuVar33 = *(undefined ***)(param_1 + 0x78);
- if (ppuVar33 == *(undefined ***)(param_1 + 0x80)) break;
- *ppuVar33 = (undefined *)ppuVar18;
- *(long *)(param_1 + 0x78) = *(long *)(param_1 + 0x78) + 8;
- uVar3 = (int)uVar40 + 1;
- uVar40 = (ulong)uVar3;
- if (*(int *)(param_1 + 0x4c) <= (int)uVar3) goto LAB_006cabf0;
- }
- pvVar42 = *(void **)(param_1 + 0x70);
- ppuVar33 = (undefined **)((long)ppuVar33 - (long)pvVar42);
- uVar37 = ((long)ppuVar33 >> 3) + 1;
- if (uVar37 >> 0x3d != 0) goto LAB_006cb910;
- ppuVar26 = (undefined **)((long)*(undefined ***)(param_1 + 0x80) - (long)pvVar42);
- if ((ulong)((long)ppuVar26 >> 3) < 0xfffffffffffffff) {
- uVar39 = (long)ppuVar26 >> 2;
- if (uVar37 <= uVar39) {
- uVar37 = uVar39;
- }
- if (uVar37 != 0) {
- if (uVar37 >> 0x3d == 0) goto LAB_006cab5c;
- goto LAB_006cb910;
- }
- pvVar19 = (void *)0x0;
- }
- else {
- uVar37 = 0x1fffffffffffffff;
- LAB_006cab5c:
- pvVar19 = operator.new(uVar37 << 3);
- }
- ppuVar26 = (undefined **)((long)pvVar19 + ((long)ppuVar33 >> 3) * 8);
- *ppuVar26 = (undefined *)ppuVar18;
- if (0 < (long)ppuVar33) {
- memcpy(pvVar19,pvVar42,(size_t)ppuVar33);
- }
- *(void **)(param_1 + 0x70) = pvVar19;
- *(undefined ***)(param_1 + 0x78) = ppuVar26 + 1;
- *(void **)(param_1 + 0x80) = (void *)((long)pvVar19 + uVar37 * 8);
- if (pvVar42 != (void *)0x0) {
- _ZdlPv(pvVar42);
- }
- uVar3 = (int)uVar40 + 1;
- uVar40 = (ulong)uVar3;
- } while ((int)uVar3 < *(int *)(param_1 + 0x4c));
- }
- LAB_006cabf0:
- if (*ppuVar32 == (undefined *)0x0) {
- if ((FILE *)ppuVar17[2] != (FILE *)0x0) {
- iVar14 = fseek((FILE *)ppuVar17[2],(long)*(int *)(param_1 + 0x40),0);
- if (iVar14 == 0) goto LAB_006cac08;
- if ((FILE *)ppuVar17[2] != (FILE *)0x0) {
- fclose((FILE *)ppuVar17[2]);
- ppuVar17[2] = (undefined *)0x0;
- }
- if (ppuVar17[0x11] != (undefined *)0x0) {
- AAssetDir_close();
- ppuVar17[0x11] = (undefined *)0x0;
- }
- if (*ppuVar31 != (undefined *)0x0) {
- AAsset_close();
- *ppuVar31 = (undefined *)0x0;
- }
- *ppuVar32 = (undefined *)0x0;
- ppuVar17[4] = (undefined *)0x0;
- ppuVar17[5] = (undefined *)0x0;
- }
- if ((*(byte *)ppuVar43 & 1) == 0) {
- puVar41 = (undefined *)((long)ppuVar17 + 0x51);
- }
- else {
- puVar41 = ppuVar17[0xc];
- }
- lVar38 = *DAT_00a09f28;
- pcVar24 = "%s Seek Failed!!\n";
- }
- else {
- ppuVar17[4] = *ppuVar32 + *(int *)(param_1 + 0x40);
- LAB_006cac08:
- uVar3 = *(uint *)(param_1 + 0x48) ^ 0x771;
- uVar40 = SEXT48((int)uVar3);
- *(uint *)(param_1 + 0x48) = uVar3;
- __ptr_00 = (uint *)_Znam(uVar40);
- if (*ppuVar32 == (undefined *)0x0) {
- sVar16 = fread(__ptr_00,uVar40,1,(FILE *)ppuVar17[2]);
- if (sVar16 == 0) goto LAB_006cae7c;
- uVar40 = SEXT48(*(int *)(param_1 + 0x48));
- }
- else {
- puVar41 = ppuVar17[4];
- memcpy(__ptr_00,puVar41,uVar40);
- ppuVar17[4] = puVar41 + uVar40;
- }
- iVar14 = *(int *)(param_1 + 0x44);
- iVar15 = FUN_001b747c(__ptr_00,uVar40);
- if (iVar14 == iVar15) {
- uVar3 = *(uint *)(param_1 + 0x48);
- uVar8 = uVar3 + 3;
- if (-1 < (int)uVar3) {
- uVar8 = uVar3;
- }
- iVar14 = uVar3 - (uVar8 & 0xfffffffc);
- puVar36 = __ptr_00;
- if (3 < (int)uVar3) {
- uVar8 = (int)uVar8 >> 2;
- uVar10 = uVar8 - 1;
- uVar40 = (ulong)uVar10;
- if ((uVar40 + 1 < 8) || ((uVar3 & 0xff) + (uVar10 & 0xff) >> 8 != 0)) {
- LAB_006cada0:
- lVar38 = 0;
- uVar37 = (ulong)uVar3;
- LAB_006cadac:
- iVar15 = uVar8 - (int)lVar38;
- do {
- uVar39 = uVar37 & 0xff;
- iVar15 = iVar15 + -1;
- uVar37 = (ulong)((int)uVar37 + 1);
- *puVar36 = (&DAT_009fd314)[uVar39] ^ *puVar36;
- puVar36 = puVar36 + 1;
- } while (iVar15 != 0);
- }
- else {
- lVar38 = 0;
- uVar37 = (ulong)uVar3;
- if (0xff < uVar10) goto LAB_006cadac;
- if ((__ptr_00 < &DAT_009fd318 + uVar40 + (uVar3 & 0xff)) &&
- (&DAT_009fd314 + (uVar3 & 0xff) < __ptr_00 + uVar40 + 1)) goto LAB_006cada0;
- uVar7 = uVar8 & 7;
- lVar38 = (uVar40 + 1) - (ulong)uVar7;
- lVar22 = 0;
- puVar23 = (ulong *)(__ptr_00 + 4);
- puVar36 = __ptr_00 + lVar38;
- uVar37 = (ulong)(uVar3 + (int)lVar38);
- do {
- uVar39 = (ulong)(byte)((char)uVar3 + (char)lVar22);
- uVar46 = puVar23[-1];
- uVar45 = puVar23[-2];
- uVar49 = puVar23[1];
- uVar48 = *puVar23;
- uVar50 = *(undefined8 *)(&DAT_009fd31c + uVar39);
- uVar44 = *(undefined8 *)(&DAT_009fd314 + uVar39);
- uVar52 = *(undefined8 *)(&DAT_009fd32c + uVar39);
- uVar51 = *(undefined8 *)(&DAT_009fd324 + uVar39);
- lVar22 = lVar22 + 8;
- puVar23[-1] = CONCAT17((byte)((ulong)uVar50 >> 0x38) ^
- (byte)((uVar46 & 0xffffff0000000000) >> 0x38),
- CONCAT16((byte)((ulong)uVar50 >> 0x30) ^
- (byte)((uVar46 & 0xffffff0000000000) >> 0x30),
- CONCAT15((byte)((ulong)uVar50 >> 0x28) ^
- (byte)(uVar46 >> 0x28),
- CONCAT14((byte)((ulong)uVar50 >> 0x20) ^
- (byte)(uVar46 >> 0x20),
- CONCAT13((byte)((ulong)uVar50 >>
- 0x18) ^
- (byte)(uVar46 >> 0x18),
- CONCAT12((byte)((ulong)
- uVar50 >> 0x10) ^ (byte)(uVar46 >> 0x10),
- CONCAT11((byte)((ulong)uVar50 >> 8) ^
- (byte)(uVar46 >> 8),
- (byte)uVar50 ^ (byte)uVar46)))))));
- puVar23[-2] = CONCAT17((byte)((ulong)uVar44 >> 0x38) ^
- (byte)((uVar45 & 0xffffff0000000000) >> 0x38),
- CONCAT16((byte)((ulong)uVar44 >> 0x30) ^
- (byte)((uVar45 & 0xffffff0000000000) >> 0x30),
- CONCAT15((byte)((ulong)uVar44 >> 0x28) ^
- (byte)(uVar45 >> 0x28),
- CONCAT14((byte)((ulong)uVar44 >> 0x20) ^
- (byte)(uVar45 >> 0x20),
- CONCAT13((byte)((ulong)uVar44 >>
- 0x18) ^
- (byte)(uVar45 >> 0x18),
- CONCAT12((byte)((ulong)
- uVar44 >> 0x10) ^ (byte)(uVar45 >> 0x10),
- CONCAT11((byte)((ulong)uVar44 >> 8) ^
- (byte)(uVar45 >> 8),
- (byte)uVar44 ^ (byte)uVar45)))))));
- puVar23[1] = CONCAT17((byte)((ulong)uVar52 >> 0x38) ^
- (byte)((uVar49 & 0xffffff0000000000) >> 0x38),
- CONCAT16((byte)((ulong)uVar52 >> 0x30) ^
- (byte)((uVar49 & 0xffffff0000000000) >> 0x30),
- CONCAT15((byte)((ulong)uVar52 >> 0x28) ^
- (byte)(uVar49 >> 0x28),
- CONCAT14((byte)((ulong)uVar52 >> 0x20) ^
- (byte)(uVar49 >> 0x20),
- CONCAT13((byte)((ulong)uVar52 >>
- 0x18) ^
- (byte)(uVar49 >> 0x18),
- CONCAT12((byte)((ulong)
- uVar52 >> 0x10) ^ (byte)(uVar49 >> 0x10),
- CONCAT11((byte)((ulong)uVar52 >> 8) ^
- (byte)(uVar49 >> 8),
- (byte)uVar52 ^ (byte)uVar49)))))));
- *puVar23 = CONCAT17((byte)((ulong)uVar51 >> 0x38) ^
- (byte)((uVar48 & 0xffffff0000000000) >> 0x38),
- CONCAT16((byte)((ulong)uVar51 >> 0x30) ^
- (byte)((uVar48 & 0xffffff0000000000) >> 0x30),
- CONCAT15((byte)((ulong)uVar51 >> 0x28) ^
- (byte)(uVar48 >> 0x28),
- CONCAT14((byte)((ulong)uVar51 >> 0x20) ^
- (byte)(uVar48 >> 0x20),
- CONCAT13((byte)((ulong)uVar51 >>
- 0x18) ^
- (byte)(uVar48 >> 0x18),
- CONCAT12((byte)((ulong)
- uVar51 >> 0x10) ^ (byte)(uVar48 >> 0x10),
- CONCAT11((byte)((ulong)uVar51 >> 8) ^
- (byte)(uVar48 >> 8),
- (byte)uVar51 ^ (byte)uVar48)))))));
- puVar23 = puVar23 + 4;
- } while ((uVar40 + 1) - (ulong)uVar7 != lVar22);
- if (uVar7 != 0) goto LAB_006cadac;
- }
- puVar36 = __ptr_00 + uVar40 + 1;
- uVar3 = uVar3 + uVar10 + 1;
- }
- if (0 < iVar14) {
- do {
- uVar40 = (ulong)uVar3;
- iVar14 = iVar14 + -1;
- uVar3 = uVar3 + 1;
- *(byte *)puVar36 = *(byte *)puVar36 ^ (byte)(&DAT_009fd314)[uVar40 & 0xff];
- puVar36 = (uint *)((long)puVar36 + 1);
- } while (iVar14 != 0);
- }
- if (0 < *(int *)(param_1 + 0x3c)) {
- plVar4 = (long *)(param_1 + 0x10);
- pplVar5 = (long **)(param_1 + 0x20);
- __dest = (long *)((ulong)&local_3c0 | 1);
- plVar34 = (long *)((ulong)&local_420 | 1);
- iVar14 = 0;
- puVar36 = __ptr_00;
- LAB_006caf70:
- local_3c0 = (long *)0x0;
- plStack952 = (long *)0x0;
- local_3b0 = (long *)0x0;
- uVar40 = 0;
- do {
- uVar37 = uVar40 + 1;
- local_374[uVar40] = *(char *)((long)puVar36 + uVar40);
- if (0x103 < uVar37) break;
- pcVar24 = (char *)((long)puVar36 + uVar40);
- uVar40 = uVar37;
- } while (*pcVar24 != '\0');
- plVar20 = (long *)strlen(local_374);
- if (plVar20 < &DAT_00000017) {
- if (plVar20 != (long *)0x0) {
- memcpy(__dest,local_374,(size_t)plVar20);
- }
- plVar28 = (long *)0x0;
- *(undefined *)((long)register0x00000008 + -0x3bf + (long)plVar20) = 0;
- local_3c0 = (long *)((ulong)local_3c0 & 0xffffffffffffff00 |
- (ulong)(byte)((int)plVar20 << 1));
- }
- else {
- if ((undefined *)0xffffffffffffffd8 < (undefined *)((long)plVar20 + -0x16))
- goto LAB_006cb910;
- plVar28 = plVar20;
- if (plVar20 < (long *)0x2d) {
- plVar28 = (long *)&DAT_0000002c;
- }
- uVar40 = 0x17;
- if (&DAT_00000016 < plVar28) {
- uVar40 = (ulong)(plVar28 + 2) & 0xfffffffffffffff0;
- }
- plVar21 = (long *)operator.new(uVar40);
- memcpy(plVar21,local_374,(size_t)plVar20);
- plVar28 = (long *)(uVar40 | 1);
- *(undefined *)((long)plVar21 + (long)plVar20) = 0;
- local_3c0 = plVar28;
- plStack952 = plVar20;
- local_3b0 = plVar21;
- }
- puVar2 = (undefined4 *)((long)puVar36 + (uVar37 & 0xffffffff));
- local_3a8 = *puVar2;
- local_3a4 = puVar2[1];
- local_3a0 = puVar2[2];
- local_390 = puVar2[3];
- local_38c = *(undefined8 *)(puVar2 + 4);
- local_384 = puVar2[6];
- local_380 = puVar2[7];
- local_37c = puVar2[8];
- local_398 = (long *)0x0;
- plVar20 = __dest;
- if (((ulong)plVar28 & 1) != 0) {
- plVar20 = local_3b0;
- }
- iVar15 = strcmp((char *)plVar20,"dkempty");
- plVar21 = local_3b0;
- plVar28 = plStack952;
- if (iVar15 == 0) {
- pplVar35 = *(long ***)(param_1 + 0x60);
- if (pplVar35 == *(long ***)(param_1 + 0x68)) {
- FUN_006cf370(param_1 + 0x58,&local_3c0);
- if (((ulong)local_3c0 & 1) != 0) goto LAB_006cb754;
- goto LAB_006cb788;
- }
- pplVar35[1] = (long *)0x0;
- pplVar35[2] = (long *)0x0;
- *pplVar35 = (long *)0x0;
- if (((ulong)local_3c0 & 1) == 0) {
- pplVar35[2] = local_3b0;
- pplVar35[1] = plStack952;
- *pplVar35 = local_3c0;
- }
- else {
- if (&DAT_ffffffffffffffef < plStack952) goto LAB_006cb910;
- if (&DAT_00000016 < plStack952) {
- plVar20 = plStack952 + 2;
- plVar27 = (long *)operator.new((ulong)plVar20 & 0xfffffffffffffff0);
- pplVar35[1] = plVar28;
- pplVar35[2] = plVar27;
- *pplVar35 = (long *)((ulong)plVar20 & 0xfffffffffffffff0 | 1);
- LAB_006cb5c8:
- memcpy(plVar27,plVar21,(size_t)plVar28);
- }
- else {
- plVar27 = (long *)((long)pplVar35 + 1);
- *(char *)pplVar35 = (char)((int)plStack952 << 1);
- if (plStack952 != (long *)0x0) goto LAB_006cb5c8;
- }
- *(undefined *)((long)plVar27 + (long)plVar28) = 0;
- }
- pplVar35[8] = (long *)CONCAT44(local_37c,local_380);
- pplVar35[7] = (long *)CONCAT44(local_384,local_38c._4_4_);
- pplVar35[6] = (long *)CONCAT84(local_38c,local_390);
- pplVar35[5] = local_398;
- pplVar35[4] = (long *)CONCAT44(uStack924,local_3a0);
- pplVar35[3] = (long *)CONCAT44(local_3a4,local_3a8);
- *(long *)(param_1 + 0x60) = *(long *)(param_1 + 0x60) + 0x48;
- goto joined_r0x006cb610;
- }
- sVar16 = strlen((char *)plVar20);
- memset(local_374,0,0x104);
- if (0 < (int)sVar16) {
- uVar40 = 0;
- do {
- cVar13 = *(char *)((long)plVar20 + uVar40);
- if (-1 < cVar13) {
- uVar3 = (int)cVar13 & 0xff;
- iVar15 = isupper(uVar3);
- if (iVar15 != 0) {
- iVar15 = _tolower(uVar3);
- cVar13 = (char)iVar15;
- }
- }
- local_374[uVar40] = cVar13;
- uVar40 = uVar40 + 1;
- } while ((uVar40 < 0x104) && ((long)uVar40 < (long)(int)sVar16));
- }
- local_420 = (long *)0x0;
- plStack1048 = (long *)0x0;
- local_410 = (long *)0x0;
- plVar20 = (long *)strlen(local_374);
- if (plVar20 < &DAT_fffffffffffffff0) {
- if (&DAT_00000016 < plVar20) {
- plVar28 = (long *)operator.new((ulong)(plVar20 + 2) & 0xfffffffffffffff0);
- local_420 = (long *)((ulong)(plVar20 + 2) & 0xfffffffffffffff0 | 1);
- plStack1048 = plVar20;
- local_410 = plVar28;
- LAB_006cb18c:
- memcpy(plVar28,local_374,(size_t)plVar20);
- }
- else {
- local_420 = (long *)((ulong)local_420 & 0xffffffffffffff00 |
- (ulong)(byte)((int)plVar20 << 1));
- plVar28 = plVar34;
- if (plVar20 != (long *)0x0) goto LAB_006cb18c;
- }
- plVar27 = local_3b0;
- plVar21 = plStack952;
- *(undefined *)((long)plVar28 + (long)plVar20) = 0;
- local_400 = (long *)0x0;
- local_3f8 = (long *)0x0;
- local_408 = (long *)0x0;
- if (((ulong)local_3c0 & 1) == 0) {
- local_3f8 = local_3b0;
- local_400 = plStack952;
- local_408 = local_3c0;
- plVar21 = plVar20;
- }
- else {
- if (&DAT_ffffffffffffffef < plStack952) goto LAB_006cb910;
- if (&DAT_00000016 < plStack952) {
- plVar20 = plStack952 + 2;
- plVar28 = (long *)operator.new((ulong)plVar20 & 0xfffffffffffffff0);
- local_408 = (long *)((ulong)plVar20 & 0xfffffffffffffff0 | 1);
- local_400 = plVar21;
- local_3f8 = plVar28;
- LAB_006cb214:
- memcpy(plVar28,plVar27,(size_t)plVar21);
- }
- else {
- local_408 = (long *)(ulong)(byte)((int)plStack952 << 1);
- plVar28 = (long *)(local_408 + 1);
- if (plStack952 != (long *)0x0) goto LAB_006cb214;
- }
- *(undefined *)((long)plVar28 + (long)plVar21) = 0;
- }
- plStack984 = (long *)CONCAT84(local_38c,local_390);
- plStack968 = (long *)CONCAT44(local_37c,local_380);
- plStack976 = (long *)CONCAT44(local_384,local_38c._4_4_);
- plStack1000 = (long *)CONCAT44(uStack924,local_3a0);
- plStack1008 = (long *)CONCAT44(local_3a4,local_3a8);
- plStack992 = local_398;
- plVar20 = plVar34;
- plVar28 = (long *)((ulong)local_420 >> 1 & 0x7f);
- if (((ulong)local_420 & 1) != 0) {
- plVar20 = local_410;
- plVar28 = plStack1048;
- }
- plVar20 = (long *)FUN_004eeb9c(auStack888,plVar20,plVar28);
- plVar28 = *(long **)(param_1 + 0x18);
- if (plVar28 != (long *)0x0) {
- uVar40 = (long)plVar28 - 1;
- if ((uVar40 & (ulong)plVar28) == 0) {
- plVar21 = (long *)(uVar40 & (ulong)plVar20);
- pplVar35 = *(long ***)(*plVar4 + (long)plVar21 * 8);
- }
- else {
- plVar21 = plVar20;
- if (plVar28 <= plVar20) {
- uVar37 = 0;
- if (plVar28 != (long *)0x0) {
- uVar37 = (ulong)plVar20 / (ulong)plVar28;
- }
- plVar21 = (long *)((long)plVar20 - uVar37 * (long)plVar28);
- }
- pplVar35 = *(long ***)(*plVar4 + (long)plVar21 * 8);
- }
- if ((pplVar35 != (long **)0x0) &&
- (pplVar35 = (long **)*pplVar35, pplVar35 != (long **)0x0)) {
- plVar27 = plVar34;
- plVar12 = (long *)((ulong)local_420 >> 1 & 0x7f);
- if (((ulong)local_420 & 1) != 0) {
- plVar27 = local_410;
- plVar12 = plStack1048;
- }
- if ((uVar40 & (ulong)plVar28) == 0) {
- if (plVar12 == (long *)0x0) {
- do {
- if ((pplVar35[1] != plVar20) &&
- ((long *)((ulong)pplVar35[1] & uVar40) != plVar21)) break;
- plVar27 = (long *)(ulong)(*(byte *)(pplVar35 + 2) >> 1);
- if ((*(byte *)(pplVar35 + 2) & 1) != 0) {
- plVar27 = pplVar35[3];
- }
- if (plVar27 == (long *)0x0) goto joined_r0x006caf68;
- pplVar35 = (long **)*pplVar35;
- } while (pplVar35 != (long **)0x0);
- }
- else {
- do {
- if ((pplVar35[1] != plVar20) &&
- ((long *)((ulong)pplVar35[1] & uVar40) != plVar21)) break;
- bVar9 = *(byte *)(pplVar35 + 2);
- plVar29 = (long *)(ulong)(bVar9 >> 1);
- if ((bVar9 & 1) != 0) {
- plVar29 = pplVar35[3];
- }
- if (plVar29 == plVar12) {
- if ((bVar9 & 1) == 0) {
- pcVar24 = (char *)((long)pplVar35 + 0x11);
- lVar38 = -(long)(long *)(ulong)(bVar9 >> 1);
- plVar29 = plVar27;
- while (*pcVar24 == *(char *)plVar29) {
- pcVar24 = pcVar24 + 1;
- lVar38 = lVar38 + 1;
- plVar29 = (long *)((long)plVar29 + 1);
- if (lVar38 == 0) goto joined_r0x006caf68;
- }
- }
- else {
- iVar15 = memcmp(pplVar35[4],plVar27,(size_t)plVar12);
- if (iVar15 == 0) goto joined_r0x006caf68;
- }
- }
- pplVar35 = (long **)*pplVar35;
- } while (pplVar35 != (long **)0x0);
- }
- }
- else {
- if (plVar12 == (long *)0x0) {
- do {
- plVar27 = pplVar35[1];
- if (plVar27 != plVar20) {
- if (plVar28 <= plVar27) {
- uVar40 = 0;
- if (plVar28 != (long *)0x0) {
- uVar40 = (ulong)plVar27 / (ulong)plVar28;
- }
- plVar27 = (long *)((long)plVar27 - uVar40 * (long)plVar28);
- }
- if (plVar27 != plVar21) break;
- }
- uVar40 = (ulong)(*(byte *)(pplVar35 + 2) >> 1);
- if ((*(byte *)(pplVar35 + 2) & 1) != 0) {
- uVar40 = (ulong)pplVar35[3];
- }
- if (uVar40 == 0) goto joined_r0x006caf68;
- pplVar35 = (long **)*pplVar35;
- } while (pplVar35 != (long **)0x0);
- }
- else {
- do {
- plVar29 = pplVar35[1];
- if (plVar29 != plVar20) {
- if (plVar28 <= plVar29) {
- uVar40 = 0;
- if (plVar28 != (long *)0x0) {
- uVar40 = (ulong)plVar29 / (ulong)plVar28;
- }
- plVar29 = (long *)((long)plVar29 - uVar40 * (long)plVar28);
- }
- if (plVar29 != plVar21) break;
- }
- bVar9 = *(byte *)(pplVar35 + 2);
- plVar29 = (long *)(ulong)(bVar9 >> 1);
- if ((bVar9 & 1) != 0) {
- plVar29 = pplVar35[3];
- }
- if (plVar29 == plVar12) {
- if ((bVar9 & 1) == 0) {
- pcVar24 = (char *)((long)pplVar35 + 0x11);
- lVar38 = -(long)(long *)(ulong)(bVar9 >> 1);
- plVar29 = plVar27;
- while (*pcVar24 == *(char *)plVar29) {
- pcVar24 = pcVar24 + 1;
- lVar38 = lVar38 + 1;
- plVar29 = (long *)((long)plVar29 + 1);
- if (lVar38 == 0) goto joined_r0x006caf68;
- }
- }
- else {
- iVar15 = memcmp(pplVar35[4],plVar27,(size_t)plVar12);
- if (iVar15 == 0) goto joined_r0x006caf68;
- }
- }
- pplVar35 = (long **)*pplVar35;
- } while (pplVar35 != (long **)0x0);
- }
- }
- }
- }
- pplVar35 = (long **)operator.new(0x70);
- plVar12 = local_410;
- plVar27 = plStack1048;
- pplVar35[2] = (long *)0x0;
- pplVar35[3] = (long *)0x0;
- pplVar35[4] = (long *)0x0;
- if (((ulong)local_420 & 1) == 0) {
- pplVar35[4] = local_410;
- pplVar35[3] = plStack1048;
- pplVar35[2] = local_420;
- }
- else {
- if (&DAT_ffffffffffffffef < plStack1048) goto LAB_006cb910;
- if (&DAT_00000016 < plStack1048) {
- plVar6 = plStack1048 + 2;
- plVar29 = (long *)operator.new((ulong)plVar6 & 0xfffffffffffffff0);
- pplVar35[3] = plVar27;
- pplVar35[4] = plVar29;
- pplVar35[2] = (long *)((ulong)plVar6 & 0xfffffffffffffff0 | 1);
- LAB_006cb43c:
- memcpy(plVar29,plVar12,(size_t)plVar27);
- }
- else {
- plVar29 = (long *)((long)pplVar35 + 0x11);
- *(char *)(pplVar35 + 2) = (char)((int)plStack1048 << 1);
- if (plStack1048 != (long *)0x0) goto LAB_006cb43c;
- }
- *(undefined *)((long)plVar29 + (long)plVar27) = 0;
- }
- pplVar35[7] = local_3f8;
- pplVar35[6] = local_400;
- pplVar35[5] = local_408;
- pplVar35[0xb] = plStack984;
- pplVar35[10] = plStack992;
- pplVar35[0xd] = plStack968;
- pplVar35[0xc] = plStack976;
- pplVar35[9] = plStack1000;
- pplVar35[8] = plStack1008;
- *pplVar35 = (long *)0x0;
- pplVar35[1] = plVar20;
- fVar47 = (float)(unkuint9)(*(long *)(param_1 + 0x28) + 1);
- if ((plVar28 == (long *)0x0) ||
- (*(float *)(param_1 + 0x30) * (float)ZEXT89(plVar28) < fVar47)) {
- if (plVar28 < (long *)0x3) {
- uVar40 = 1;
- }
- else {
- uVar40 = (ulong)(((long)plVar28 - 1U & (ulong)plVar28) != 0);
- }
- uVar40 = uVar40 | (long)plVar28 << 1;
- uVar37 = (ulong)(fVar47 / *(float *)(param_1 + 0x30));
- if (uVar37 <= uVar40) {
- uVar37 = uVar40;
- }
- FUN_006cefd4(plVar4,uVar37);
- plVar28 = *(long **)(param_1 + 0x18);
- if (((long)plVar28 - 1U & (ulong)plVar28) != 0) {
- plVar21 = plVar20;
- if (plVar28 <= plVar20) {
- uVar40 = 0;
- if (plVar28 != (long *)0x0) {
- uVar40 = (ulong)plVar20 / (ulong)plVar28;
- }
- plVar21 = (long *)((long)plVar20 - uVar40 * (long)plVar28);
- }
- goto LAB_006cb508;
- }
- plVar21 = (long *)((long)plVar28 - 1U & (ulong)plVar20);
- lVar38 = *plVar4;
- pplVar30 = *(long ***)(lVar38 + (long)plVar21 * 8);
- if (pplVar30 != (long **)0x0) goto LAB_006cb518;
- LAB_006cb568:
- *pplVar35 = *pplVar5;
- *pplVar5 = (long *)pplVar35;
- *(long ***)(lVar38 + (long)plVar21 * 8) = pplVar5;
- if (*pplVar35 != (long *)0x0) {
- plVar20 = *(long **)((long)*pplVar35 + 8);
- if (((long)plVar28 - 1U & (ulong)plVar28) == 0) {
- plVar20 = (long *)((ulong)plVar20 & (long)plVar28 - 1U);
- }
- else {
- if (plVar28 <= plVar20) {
- uVar40 = 0;
- if (plVar28 != (long *)0x0) {
- uVar40 = (ulong)plVar20 / (ulong)plVar28;
- }
- plVar20 = (long *)((long)plVar20 - uVar40 * (long)plVar28);
- }
- }
- pplVar30 = (long **)(*plVar4 + (long)plVar20 * 8);
- goto LAB_006cb6e4;
- }
- }
- else {
- LAB_006cb508:
- lVar38 = *plVar4;
- pplVar30 = *(long ***)(lVar38 + (long)plVar21 * 8);
- if (pplVar30 == (long **)0x0) goto LAB_006cb568;
- LAB_006cb518:
- *pplVar35 = *pplVar30;
- LAB_006cb6e4:
- *pplVar30 = (long *)pplVar35;
- }
- bVar1 = false;
- *(long *)(param_1 + 0x28) = *(long *)(param_1 + 0x28) + 1;
- goto joined_r0x006caf68;
- }
- goto LAB_006cb910;
- }
- LAB_006cb798:
- _ZdaPv(__ptr_00);
- if ((*(int *)(param_1 + 0x88) == 0) &&
- (lVar38 = *(long *)(param_1 + 0x70), *(long *)(param_1 + 0x78) != lVar38)) {
- uVar40 = 0;
- uVar37 = 1;
- do {
- lVar38 = *(long *)(lVar38 + uVar40 * 8);
- if (*(FILE **)(lVar38 + 0x10) != (FILE *)0x0) {
- fclose(*(FILE **)(lVar38 + 0x10));
- *(undefined8 *)(lVar38 + 0x10) = 0;
- }
- if (*(long *)(lVar38 + 0x88) != 0) {
- AAssetDir_close();
- *(undefined8 *)(lVar38 + 0x88) = 0;
- }
- if (*(long *)(lVar38 + 0x80) != 0) {
- AAsset_close();
- *(undefined8 *)(lVar38 + 0x80) = 0;
- }
- *(undefined8 *)(lVar38 + 0x20) = 0;
- *(undefined8 *)(lVar38 + 0x28) = 0;
- *(undefined8 *)(lVar38 + 0x18) = 0;
- lVar38 = *(long *)(param_1 + 0x70);
- bVar1 = uVar37 < (ulong)(*(long *)(param_1 + 0x78) - lVar38 >> 3);
- uVar40 = uVar37;
- uVar37 = (ulong)((int)uVar37 + 1);
- } while (bVar1);
- }
- if (*(long *)(lVar11 + 0x28) == local_68) {
- return 1;
- }
- goto LAB_006ca924;
- }
- if ((*(byte *)ppuVar43 & 1) == 0) {
- puVar41 = (undefined *)((long)ppuVar17 + 0x51);
- }
- else {
- puVar41 = ppuVar17[0xc];
- }
- lVar38 = *DAT_00a09f28;
- pcVar24 = "%s File Modified!!\n";
- }
- }
- else {
- if ((*(byte *)ppuVar43 & 1) == 0) {
- puVar41 = (undefined *)((long)ppuVar17 + 0x51);
- }
- else {
- puVar41 = ppuVar17[0xc];
- }
- lVar38 = *DAT_00a09f28;
- pcVar24 = "%s File Version Wrong!!\n";
- }
- }
- (**(code **)(lVar38 + 200))(DAT_00a09f28,0,pcVar24,puVar41);
- FUN_006c7e70(param_1);
- }
- else {
- unaff_x20 = strrchr(param_2,0x2e);
- if (unaff_x20 == (char *)0x0) {
- snprintf(local_374 + 0x104,0x104,"%s",param_2);
- }
- else {
- memset(local_374 + 0x104,0,0x104);
- strncpy(local_374 + 0x104,param_2,(size_t)(unaff_x20 + -(long)param_2));
- }
- sVar16 = strlen(local_374 + 0x104);
- if (3 < sVar16) {
- *(undefined2 *)(local_374 + sVar16 + 0x102) = 0;
- snprintf(acStack364,0x104,"%s%02d%s",local_374 + 0x104,0,unaff_x20);
- sVar16 = strlen(acStack364);
- FUN_001b6d10(param_1 + 0x1d8,acStack364,sVar16);
- goto LAB_006ca838;
- }
- }
- if (*(long *)(lVar11 + 0x28) == local_68) {
- return 0;
- }
- LAB_006ca924:
- /* WARNING: Subroutine does not return */
- __stack_chk_fail();
- joined_r0x006caf68:
- bVar1 = true;
- joined_r0x006caf68:
- if (((ulong)local_408 & 1) != 0) {
- _ZdlPv(local_3f8);
- }
- if (((ulong)local_420 & 1) != 0) {
- _ZdlPv(local_410);
- }
- if (bVar1) {
- plVar20 = __dest;
- if (((ulong)local_3c0 & 1) != 0) {
- plVar20 = local_3b0;
- }
- (**(code **)(*DAT_00a09f28 + 200))(DAT_00a09f28,0,"%s File Duplicated!\n",plVar20);
- }
- joined_r0x006cb610:
- if (((ulong)local_3c0 & 1) == 0) {
- LAB_006cb788:
- puVar36 = puVar2 + 9;
- iVar14 = iVar14 + 1;
- if (*(int *)(param_1 + 0x3c) <= iVar14) goto LAB_006cb798;
- goto LAB_006caf70;
- }
- LAB_006cb754:
- puVar36 = puVar2 + 9;
- _ZdlPv(local_3b0);
- iVar14 = iVar14 + 1;
- if (*(int *)(param_1 + 0x3c) <= iVar14) goto LAB_006cb798;
- goto LAB_006caf70;
- }
Advertisement
Add Comment
Please, Sign In to add comment