655 lines
24 KiB
C
655 lines
24 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1401cd3f0 FUN_1401cd3f0
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined8 FUN_1401cd3f0(longlong *param_1,int *param_2,undefined8 param_3)
|
|
|
|
{
|
|
int *piVar1;
|
|
int iVar2;
|
|
char cVar3;
|
|
undefined4 uVar4;
|
|
DWORD DVar5;
|
|
DWORD DVar6;
|
|
longlong *plVar7;
|
|
undefined **ppuVar8;
|
|
undefined8 uVar9;
|
|
undefined *puVar10;
|
|
int iVar11;
|
|
undefined *puVar12;
|
|
undefined *local_res10;
|
|
undefined8 local_res18;
|
|
int local_res20 [2];
|
|
undefined *local_168;
|
|
undefined8 local_160;
|
|
undefined *local_158;
|
|
int local_150;
|
|
undefined8 local_148;
|
|
int local_140;
|
|
undefined **local_138;
|
|
undefined1 local_130;
|
|
undefined *local_128;
|
|
undefined *local_120;
|
|
undefined *local_118;
|
|
undefined *local_110;
|
|
undefined *local_108;
|
|
undefined *local_100;
|
|
undefined *local_f8;
|
|
undefined *local_f0;
|
|
undefined *local_e8;
|
|
undefined *local_e0;
|
|
undefined *local_d8;
|
|
undefined *local_d0;
|
|
undefined *local_c8;
|
|
undefined *local_c0;
|
|
undefined *local_b8 [2];
|
|
undefined1 local_a8 [4];
|
|
int local_a4;
|
|
undefined8 local_70;
|
|
undefined8 local_48;
|
|
|
|
local_48 = 0xfffffffffffffffe;
|
|
iVar2 = param_2[10];
|
|
local_res18 = param_3;
|
|
if (iVar2 == 0) {
|
|
FUN_1401b1b20(param_1,0);
|
|
}
|
|
iVar11 = *param_2;
|
|
cVar3 = FUN_14016bd20(param_2,local_res20);
|
|
if (cVar3 != '\0') {
|
|
local_70 = param_3;
|
|
if (local_res20[0] == 0xfde9) {
|
|
FUN_14016ec40(local_a8);
|
|
local_a4 = param_2[10];
|
|
local_a8[0] = (undefined1)param_2[0x10];
|
|
(**(code **)(*(longlong *)param_1[2] + 0x48))
|
|
((longlong *)param_1[2],param_2,PTR_DAT_1403458e8);
|
|
DVar5 = 0;
|
|
if (*(char *)((longlong)param_1 + 0x19) == '\0') {
|
|
if ((char)param_1[3] == '\0') {
|
|
(**(code **)(*(longlong *)param_1[2] + 0x70))
|
|
((longlong *)param_1[2],iVar2,0xfde9,PTR_DAT_1403458e8,&DAT_1402a4aa0);
|
|
}
|
|
}
|
|
else if ((char)param_1[3] == '\0') {
|
|
FUN_14016d8c0();
|
|
puVar10 = PTR_DAT_1403440a0;
|
|
local_res10 = PTR_DAT_1403440a0;
|
|
plVar7 = (longlong *)FUN_1400449b0(&local_res10,&local_c8,0xfffffffe);
|
|
if (puVar10 == (undefined *)0x0) {
|
|
puVar10 = PTR_DAT_1403440a0;
|
|
}
|
|
local_res10 = puVar10;
|
|
if ((undefined *)*plVar7 != puVar10) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
if (((puVar10 != (undefined *)0x0) && (puVar10 != PTR_DAT_1403440a0)) &&
|
|
(puVar10 + -8 != (undefined *)0x0)) {
|
|
ppuVar8 = (undefined **)FUN_14016d8c0();
|
|
local_138 = ppuVar8;
|
|
FUN_14016db50(ppuVar8);
|
|
local_130 = 1;
|
|
piVar1 = (int *)(puVar10 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(puVar10 + -8);
|
|
}
|
|
FUN_14016dbe0(ppuVar8);
|
|
}
|
|
puVar10 = (undefined *)*plVar7;
|
|
if (((puVar10 != PTR_DAT_1403440a0) && (puVar10 != (undefined *)0x0)) &&
|
|
(puVar10 != (undefined *)0x8)) {
|
|
*(int *)(puVar10 + -4) = *(int *)(puVar10 + -4) + 1;
|
|
}
|
|
local_res10 = puVar10;
|
|
FUN_14016dbe0(uVar9);
|
|
}
|
|
if (((local_c8 != (undefined *)0x0) && (local_c8 != PTR_DAT_1403440a0)) &&
|
|
(local_c8 + -8 != (undefined *)0x0)) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(local_c8 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(local_c8 + -8);
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
}
|
|
local_138 = &local_120;
|
|
local_c8 = PTR_DAT_1403440a0;
|
|
FUN_14016d8c0();
|
|
local_120 = PTR_DAT_1403440a0;
|
|
if (PTR_DAT_1403440a0 == (undefined *)0x0) {
|
|
local_120 = (undefined *)0x0;
|
|
}
|
|
if (puVar10 != PTR_DAT_1403440a0) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
FUN_14004eb70(&local_120);
|
|
if (((puVar10 != PTR_DAT_1403440a0) && (puVar10 != (undefined *)0x0)) &&
|
|
(puVar10 != (undefined *)0x8)) {
|
|
*(int *)(puVar10 + -4) = *(int *)(puVar10 + -4) + 1;
|
|
}
|
|
local_120 = puVar10;
|
|
FUN_14016dbe0(uVar9);
|
|
}
|
|
puVar12 = PTR_DAT_1403458e8;
|
|
FUN_14016d8c0();
|
|
local_f0 = PTR_DAT_1403440a0;
|
|
uVar4 = FUN_14016d740(puVar12);
|
|
uVar9 = FUN_14004e940(&local_f0,uVar4);
|
|
FUN_14016d770(uVar9,puVar12,uVar4);
|
|
FUN_14004e560(&local_f0);
|
|
(**(code **)(*param_1 + 0x28))(param_1,0xfde9,&local_f0,&local_120);
|
|
puVar12 = puVar10;
|
|
if (puVar10 == (undefined *)0x0) {
|
|
puVar12 = PTR_DAT_1403440a0;
|
|
}
|
|
(**(code **)(*(longlong *)param_1[2] + 0x70))
|
|
((longlong *)param_1[2],iVar2,0xfde9,PTR_DAT_1403458e8,puVar12);
|
|
param_3 = local_res18;
|
|
if (((puVar10 != (undefined *)0x0) && (puVar10 != PTR_DAT_1403440a0)) &&
|
|
(puVar10 + -8 != (undefined *)0x0)) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(puVar10 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(puVar10 + -8);
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
param_3 = local_res18;
|
|
}
|
|
}
|
|
if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) {
|
|
local_160 = CONCAT44(local_160._4_4_,0xfde9);
|
|
local_158 = PTR_DAT_1403458e8;
|
|
local_150 = iVar2;
|
|
local_148 = param_3;
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_160);
|
|
DVar5 = GetTickCount();
|
|
}
|
|
cVar3 = (**(code **)(*param_1 + 0x38))(param_1,iVar2,local_a8);
|
|
if (cVar3 == '\0') {
|
|
(**(code **)(*(longlong *)param_1[2] + 0x40))((longlong *)param_1[2],PTR_DAT_1403458e8);
|
|
}
|
|
if ((char)param_1[3] != '\0') {
|
|
return 1;
|
|
}
|
|
if (*(char *)((longlong)param_1 + 0x1a) == '\0') {
|
|
return 1;
|
|
}
|
|
local_160 = CONCAT44(local_160._4_4_,0xfde9);
|
|
local_158 = PTR_DAT_1403458e8;
|
|
}
|
|
else if (local_res20[0] == 0xfdea) {
|
|
FUN_14016ec40(local_a8);
|
|
local_a4 = param_2[10];
|
|
local_a8[0] = (undefined1)param_2[0x10];
|
|
cVar3 = FUN_14016b370(param_2,&local_168,4);
|
|
uVar4 = local_res10._0_4_;
|
|
if (cVar3 != '\0') {
|
|
uVar4 = local_168._0_4_;
|
|
}
|
|
local_res10 = (undefined *)CONCAT44(local_res10._4_4_,uVar4);
|
|
(**(code **)(*(longlong *)param_1[2] + 0x48))
|
|
((longlong *)param_1[2],param_2,PTR_DAT_1403458f0);
|
|
DVar5 = 0;
|
|
if (*(char *)((longlong)param_1 + 0x19) == '\0') {
|
|
if ((char)param_1[3] == '\0') {
|
|
(**(code **)(*(longlong *)param_1[2] + 0x70))
|
|
((longlong *)param_1[2],iVar2,0xfdea,PTR_DAT_1403458f0,&DAT_1402a4aa0);
|
|
}
|
|
}
|
|
else if ((char)param_1[3] == '\0') {
|
|
FUN_14016d8c0();
|
|
local_168 = PTR_DAT_1403440a0;
|
|
FUN_14016e850(&local_168,&local_res10);
|
|
FUN_14004ea20(&local_168,&DAT_1402a2ee8);
|
|
iVar11 = 0;
|
|
if ((local_168 != (undefined *)0x0) && (local_168 != PTR_DAT_1403440a0)) {
|
|
iVar11 = *(int *)(local_168 + -8);
|
|
}
|
|
plVar7 = (longlong *)FUN_1400449b0(&local_168,&local_d0,iVar11 + -2);
|
|
if (local_168 == (undefined *)0x0) {
|
|
local_168 = PTR_DAT_1403440a0;
|
|
}
|
|
if ((undefined *)*plVar7 != local_168) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
puVar10 = local_168;
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
if (((local_168 != (undefined *)0x0) && (local_168 != PTR_DAT_1403440a0)) &&
|
|
(puVar12 = local_168 + -8, puVar12 != (undefined *)0x0)) {
|
|
ppuVar8 = (undefined **)FUN_14016d8c0();
|
|
local_138 = ppuVar8;
|
|
FUN_14016db50(ppuVar8);
|
|
local_130 = 1;
|
|
piVar1 = (int *)(puVar10 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(puVar12);
|
|
}
|
|
FUN_14016dbe0(ppuVar8);
|
|
}
|
|
local_168 = (undefined *)*plVar7;
|
|
if (((local_168 != PTR_DAT_1403440a0) && (local_168 != (undefined *)0x0)) &&
|
|
(local_168 != (undefined *)0x8)) {
|
|
*(int *)(local_168 + -4) = *(int *)(local_168 + -4) + 1;
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
}
|
|
if (((local_d0 != (undefined *)0x0) && (local_d0 != PTR_DAT_1403440a0)) &&
|
|
(local_d0 + -8 != (undefined *)0x0)) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(local_d0 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(local_d0 + -8);
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
}
|
|
local_138 = &local_118;
|
|
local_d0 = PTR_DAT_1403440a0;
|
|
FUN_14016d8c0();
|
|
local_118 = PTR_DAT_1403440a0;
|
|
if (PTR_DAT_1403440a0 == (undefined *)0x0) {
|
|
local_118 = (undefined *)0x0;
|
|
}
|
|
if (local_168 != PTR_DAT_1403440a0) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
FUN_14004eb70(&local_118);
|
|
local_118 = local_168;
|
|
if (((local_168 != PTR_DAT_1403440a0) && (local_168 != (undefined *)0x0)) &&
|
|
(local_168 != (undefined *)0x8)) {
|
|
*(int *)(local_168 + -4) = *(int *)(local_168 + -4) + 1;
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
}
|
|
puVar10 = PTR_DAT_1403458f0;
|
|
FUN_14016d8c0();
|
|
local_e8 = PTR_DAT_1403440a0;
|
|
uVar4 = FUN_14016d740(puVar10);
|
|
uVar9 = FUN_14004e940(&local_e8,uVar4);
|
|
FUN_14016d770(uVar9,puVar10,uVar4);
|
|
FUN_14004e560(&local_e8);
|
|
(**(code **)(*param_1 + 0x28))(param_1,0xfdea,&local_e8,&local_118);
|
|
puVar10 = local_168;
|
|
if (local_168 == (undefined *)0x0) {
|
|
puVar10 = PTR_DAT_1403440a0;
|
|
}
|
|
(**(code **)(*(longlong *)param_1[2] + 0x70))
|
|
((longlong *)param_1[2],iVar2,0xfdea,PTR_DAT_1403458f0,puVar10);
|
|
puVar10 = local_168;
|
|
param_3 = local_res18;
|
|
if (((local_168 != (undefined *)0x0) && (local_168 != PTR_DAT_1403440a0)) &&
|
|
(puVar12 = local_168 + -8, puVar12 != (undefined *)0x0)) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(puVar10 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(puVar12);
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
param_3 = local_res18;
|
|
}
|
|
}
|
|
if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) {
|
|
local_160 = CONCAT44(local_160._4_4_,0xfdea);
|
|
local_158 = PTR_DAT_1403458f0;
|
|
local_150 = iVar2;
|
|
local_148 = param_3;
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_160);
|
|
DVar5 = GetTickCount();
|
|
}
|
|
cVar3 = (**(code **)(*param_1 + 0x40))(param_1,iVar2,local_a8,&local_res10);
|
|
if (cVar3 == '\0') {
|
|
(**(code **)(*(longlong *)param_1[2] + 0x40))((longlong *)param_1[2],PTR_DAT_1403458f0);
|
|
}
|
|
if ((char)param_1[3] != '\0') {
|
|
return 1;
|
|
}
|
|
if (*(char *)((longlong)param_1 + 0x1a) == '\0') {
|
|
return 1;
|
|
}
|
|
local_160 = CONCAT44(local_160._4_4_,0xfdea);
|
|
local_158 = PTR_DAT_1403458f0;
|
|
}
|
|
else if (local_res20[0] == 0xfdeb) {
|
|
FUN_14016ec40(local_a8);
|
|
local_a4 = param_2[10];
|
|
local_a8[0] = (undefined1)param_2[0x10];
|
|
cVar3 = FUN_14016b370(param_2,&local_110,8);
|
|
if (cVar3 != '\0') {
|
|
local_128 = local_110;
|
|
}
|
|
cVar3 = FUN_14016b370(param_2,&local_168,4);
|
|
if (cVar3 != '\0') {
|
|
local_res10 = (undefined *)CONCAT44(local_res10._4_4_,local_168._0_4_);
|
|
}
|
|
(**(code **)(*(longlong *)param_1[2] + 0x48))
|
|
((longlong *)param_1[2],param_2,PTR_DAT_1403458f8);
|
|
DVar5 = 0;
|
|
if (*(char *)((longlong)param_1 + 0x19) == '\0') {
|
|
if ((char)param_1[3] == '\0') {
|
|
(**(code **)(*(longlong *)param_1[2] + 0x70))
|
|
((longlong *)param_1[2],iVar2,0xfdeb,PTR_DAT_1403458f8,&DAT_1402a4aa0);
|
|
}
|
|
}
|
|
else if ((char)param_1[3] == '\0') {
|
|
FUN_14016d8c0();
|
|
local_168 = PTR_DAT_1403440a0;
|
|
FUN_14016e980(&local_168,&local_128);
|
|
FUN_14004ea20(&local_168,&DAT_1402a2ee8);
|
|
FUN_14016e910(&local_168,&local_res10);
|
|
FUN_14004ea20(&local_168,&DAT_1402a2ee8);
|
|
iVar11 = 0;
|
|
if ((local_168 != (undefined *)0x0) && (local_168 != PTR_DAT_1403440a0)) {
|
|
iVar11 = *(int *)(local_168 + -8);
|
|
}
|
|
plVar7 = (longlong *)FUN_1400449b0(&local_168,&local_c0,iVar11 + -2);
|
|
if (local_168 == (undefined *)0x0) {
|
|
local_168 = PTR_DAT_1403440a0;
|
|
}
|
|
if ((undefined *)*plVar7 != local_168) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
puVar10 = local_168;
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
if (((local_168 != (undefined *)0x0) && (local_168 != PTR_DAT_1403440a0)) &&
|
|
(puVar12 = local_168 + -8, puVar12 != (undefined *)0x0)) {
|
|
ppuVar8 = (undefined **)FUN_14016d8c0();
|
|
local_138 = ppuVar8;
|
|
FUN_14016db50(ppuVar8);
|
|
local_130 = 1;
|
|
piVar1 = (int *)(puVar10 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(puVar12);
|
|
}
|
|
FUN_14016dbe0(ppuVar8);
|
|
}
|
|
local_168 = (undefined *)*plVar7;
|
|
if (((local_168 != PTR_DAT_1403440a0) && (local_168 != (undefined *)0x0)) &&
|
|
(local_168 != (undefined *)0x8)) {
|
|
*(int *)(local_168 + -4) = *(int *)(local_168 + -4) + 1;
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
}
|
|
if (((local_c0 != (undefined *)0x0) && (local_c0 != PTR_DAT_1403440a0)) &&
|
|
(local_c0 + -8 != (undefined *)0x0)) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(local_c0 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(local_c0 + -8);
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
}
|
|
local_138 = &local_108;
|
|
local_c0 = PTR_DAT_1403440a0;
|
|
FUN_14016d8c0();
|
|
local_108 = PTR_DAT_1403440a0;
|
|
if (PTR_DAT_1403440a0 == (undefined *)0x0) {
|
|
local_108 = (undefined *)0x0;
|
|
}
|
|
if (local_168 != PTR_DAT_1403440a0) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
FUN_14004eb70(&local_108);
|
|
local_108 = local_168;
|
|
if (((local_168 != PTR_DAT_1403440a0) && (local_168 != (undefined *)0x0)) &&
|
|
(local_168 != (undefined *)0x8)) {
|
|
*(int *)(local_168 + -4) = *(int *)(local_168 + -4) + 1;
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
}
|
|
puVar10 = PTR_DAT_1403458f8;
|
|
FUN_14016d8c0();
|
|
local_f8 = PTR_DAT_1403440a0;
|
|
uVar4 = FUN_14016d740(puVar10);
|
|
uVar9 = FUN_14004e940(&local_f8,uVar4);
|
|
FUN_14016d770(uVar9,puVar10,uVar4);
|
|
FUN_14004e560(&local_f8);
|
|
(**(code **)(*param_1 + 0x28))(param_1,0xfdeb,&local_f8,&local_108);
|
|
puVar10 = local_168;
|
|
if (local_168 == (undefined *)0x0) {
|
|
puVar10 = PTR_DAT_1403440a0;
|
|
}
|
|
(**(code **)(*(longlong *)param_1[2] + 0x70))
|
|
((longlong *)param_1[2],iVar2,0xfdeb,PTR_DAT_1403458f8,puVar10);
|
|
puVar10 = local_168;
|
|
param_3 = local_res18;
|
|
if (((local_168 != (undefined *)0x0) && (local_168 != PTR_DAT_1403440a0)) &&
|
|
(puVar12 = local_168 + -8, puVar12 != (undefined *)0x0)) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(puVar10 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(puVar12);
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
param_3 = local_res18;
|
|
}
|
|
}
|
|
if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) {
|
|
local_160 = CONCAT44(local_160._4_4_,0xfdeb);
|
|
local_158 = PTR_DAT_1403458f8;
|
|
local_150 = iVar2;
|
|
local_148 = param_3;
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_160);
|
|
DVar5 = GetTickCount();
|
|
}
|
|
cVar3 = (**(code **)(*param_1 + 0x48))(param_1,iVar2,local_a8,&local_128,&local_res10);
|
|
if (cVar3 == '\0') {
|
|
(**(code **)(*(longlong *)param_1[2] + 0x40))((longlong *)param_1[2],PTR_DAT_1403458f8);
|
|
}
|
|
if ((char)param_1[3] != '\0') {
|
|
return 1;
|
|
}
|
|
if (*(char *)((longlong)param_1 + 0x1a) == '\0') {
|
|
return 1;
|
|
}
|
|
local_160 = CONCAT44(local_160._4_4_,0xfdeb);
|
|
local_158 = PTR_DAT_1403458f8;
|
|
}
|
|
else {
|
|
if (local_res20[0] != 0xfdec) goto LAB_1401ce570;
|
|
FUN_14016ec40(local_a8);
|
|
local_a4 = param_2[10];
|
|
local_a8[0] = (undefined1)param_2[0x10];
|
|
cVar3 = FUN_14016b370(param_2,&local_168,8);
|
|
if (cVar3 != '\0') {
|
|
local_128 = local_168;
|
|
}
|
|
cVar3 = FUN_14016b370(param_2,&local_168,8);
|
|
if (cVar3 != '\0') {
|
|
local_110 = local_168;
|
|
}
|
|
cVar3 = FUN_14016b370(param_2,&local_168,8);
|
|
if (cVar3 != '\0') {
|
|
local_b8[0] = local_168;
|
|
}
|
|
cVar3 = FUN_14016b370(param_2,&local_168,4);
|
|
if (cVar3 != '\0') {
|
|
local_res10 = (undefined *)CONCAT44(local_res10._4_4_,local_168._0_4_);
|
|
}
|
|
(**(code **)(*(longlong *)param_1[2] + 0x48))
|
|
((longlong *)param_1[2],param_2,PTR_DAT_140345900);
|
|
DVar5 = 0;
|
|
if (*(char *)((longlong)param_1 + 0x19) == '\0') {
|
|
if ((char)param_1[3] == '\0') {
|
|
(**(code **)(*(longlong *)param_1[2] + 0x70))
|
|
((longlong *)param_1[2],iVar2,0xfdec,PTR_DAT_140345900,&DAT_1402a4aa0);
|
|
}
|
|
}
|
|
else if ((char)param_1[3] == '\0') {
|
|
FUN_14016d8c0();
|
|
local_168 = PTR_DAT_1403440a0;
|
|
FUN_14016e980(&local_168,&local_128);
|
|
FUN_14004ea20(&local_168,&DAT_1402a2ee8);
|
|
FUN_14016e980(&local_168,&local_110);
|
|
FUN_14004ea20(&local_168,&DAT_1402a2ee8);
|
|
FUN_14016e980(&local_168,local_b8);
|
|
FUN_14004ea20(&local_168,&DAT_1402a2ee8);
|
|
FUN_14016e910(&local_168,&local_res10);
|
|
FUN_14004ea20(&local_168,&DAT_1402a2ee8);
|
|
iVar11 = 0;
|
|
if ((local_168 != (undefined *)0x0) && (local_168 != PTR_DAT_1403440a0)) {
|
|
iVar11 = *(int *)(local_168 + -8);
|
|
}
|
|
plVar7 = (longlong *)FUN_1400449b0(&local_168,&local_d8,iVar11 + -2);
|
|
if (local_168 == (undefined *)0x0) {
|
|
local_168 = PTR_DAT_1403440a0;
|
|
}
|
|
if ((undefined *)*plVar7 != local_168) {
|
|
ppuVar8 = (undefined **)FUN_14016d8c0();
|
|
local_138 = ppuVar8;
|
|
FUN_14016db50(ppuVar8);
|
|
puVar10 = local_168;
|
|
local_130 = 1;
|
|
if (((local_168 != (undefined *)0x0) && (local_168 != PTR_DAT_1403440a0)) &&
|
|
(puVar12 = local_168 + -8, puVar12 != (undefined *)0x0)) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(puVar10 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(puVar12);
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
}
|
|
local_168 = (undefined *)*plVar7;
|
|
if (((local_168 != PTR_DAT_1403440a0) && (local_168 != (undefined *)0x0)) &&
|
|
(local_168 != (undefined *)0x8)) {
|
|
*(int *)(local_168 + -4) = *(int *)(local_168 + -4) + 1;
|
|
}
|
|
FUN_14016dbe0(ppuVar8);
|
|
}
|
|
if (((local_d8 != (undefined *)0x0) && (local_d8 != PTR_DAT_1403440a0)) &&
|
|
(local_d8 + -8 != (undefined *)0x0)) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(local_d8 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(local_d8 + -8);
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
}
|
|
local_138 = &local_100;
|
|
local_d8 = PTR_DAT_1403440a0;
|
|
FUN_14016d8c0();
|
|
local_100 = PTR_DAT_1403440a0;
|
|
if (PTR_DAT_1403440a0 == (undefined *)0x0) {
|
|
local_100 = (undefined *)0x0;
|
|
}
|
|
if (local_168 != PTR_DAT_1403440a0) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
FUN_14004eb70(&local_100);
|
|
local_100 = local_168;
|
|
if (((local_168 != PTR_DAT_1403440a0) && (local_168 != (undefined *)0x0)) &&
|
|
(local_168 != (undefined *)0x8)) {
|
|
*(int *)(local_168 + -4) = *(int *)(local_168 + -4) + 1;
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
}
|
|
puVar10 = PTR_DAT_140345900;
|
|
FUN_14016d8c0();
|
|
local_e0 = PTR_DAT_1403440a0;
|
|
uVar4 = FUN_14016d740(puVar10);
|
|
uVar9 = FUN_14004e940(&local_e0,uVar4);
|
|
FUN_14016d770(uVar9,puVar10,uVar4);
|
|
FUN_14004e560(&local_e0);
|
|
(**(code **)(*param_1 + 0x28))(param_1,0xfdec,&local_e0,&local_100);
|
|
puVar10 = local_168;
|
|
if (local_168 == (undefined *)0x0) {
|
|
puVar10 = PTR_DAT_1403440a0;
|
|
}
|
|
(**(code **)(*(longlong *)param_1[2] + 0x70))
|
|
((longlong *)param_1[2],iVar2,0xfdec,PTR_DAT_140345900,puVar10);
|
|
puVar10 = local_168;
|
|
param_3 = local_res18;
|
|
if (((local_168 != (undefined *)0x0) && (local_168 != PTR_DAT_1403440a0)) &&
|
|
(puVar12 = local_168 + -8, puVar12 != (undefined *)0x0)) {
|
|
uVar9 = FUN_14016d8c0();
|
|
local_160 = uVar9;
|
|
FUN_14016db50(uVar9);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(puVar10 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(puVar12);
|
|
}
|
|
FUN_14016dbe0(uVar9);
|
|
param_3 = local_res18;
|
|
}
|
|
}
|
|
if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) {
|
|
local_160 = CONCAT44(local_160._4_4_,0xfdec);
|
|
local_158 = PTR_DAT_140345900;
|
|
local_150 = iVar2;
|
|
local_148 = param_3;
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_160);
|
|
DVar5 = GetTickCount();
|
|
}
|
|
cVar3 = (**(code **)(*param_1 + 0x50))
|
|
(param_1,iVar2,local_a8,&local_128,&local_110,local_b8,&local_res10);
|
|
if (cVar3 == '\0') {
|
|
(**(code **)(*(longlong *)param_1[2] + 0x40))((longlong *)param_1[2],PTR_DAT_140345900);
|
|
}
|
|
if ((char)param_1[3] != '\0') {
|
|
return 1;
|
|
}
|
|
if (*(char *)((longlong)param_1 + 0x1a) == '\0') {
|
|
return 1;
|
|
}
|
|
local_160 = CONCAT44(local_160._4_4_,0xfdec);
|
|
local_158 = PTR_DAT_140345900;
|
|
}
|
|
local_150 = iVar2;
|
|
local_148 = param_3;
|
|
DVar6 = GetTickCount();
|
|
local_140 = DVar6 - DVar5;
|
|
(**(code **)(*param_1 + 0x18))(param_1,&local_160);
|
|
return 1;
|
|
}
|
|
LAB_1401ce570:
|
|
FUN_14016b040(param_2,(int)((iVar11 >> 0x1f & 7U) + iVar11) >> 3);
|
|
return 0;
|
|
}
|
|
|