672 lines
28 KiB
C
672 lines
28 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x14006b370 FUN_14006b370
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Type propagation algorithm not settling */
|
|
|
|
undefined8 FUN_14006b370(longlong *param_1,uint *param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
int *piVar1;
|
|
uint uVar2;
|
|
uint uVar3;
|
|
int iVar4;
|
|
DWORD DVar5;
|
|
DWORD DVar6;
|
|
undefined8 uVar7;
|
|
undefined8 uVar8;
|
|
longlong *plVar9;
|
|
int *******pppppppiVar10;
|
|
int *******pppppppiVar11;
|
|
undefined *puVar12;
|
|
int *******pppppppiVar13;
|
|
int *******pppppppiVar14;
|
|
undefined *puVar15;
|
|
ulonglong uVar16;
|
|
undefined4 uVar17;
|
|
undefined **ppuVar18;
|
|
int ******ppppppiVar19;
|
|
int ******local_res10;
|
|
undefined8 local_res18;
|
|
uint local_res20 [2];
|
|
int *******local_168;
|
|
int *******local_160;
|
|
undefined *local_158;
|
|
uint local_150;
|
|
undefined8 local_148;
|
|
int local_140;
|
|
int *******local_138;
|
|
undefined1 local_130;
|
|
int *******local_128;
|
|
int ******local_120;
|
|
int *******local_118;
|
|
int *******local_110;
|
|
int *******local_108;
|
|
int *******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;
|
|
int *******local_b8 [2];
|
|
undefined1 local_a8 [4];
|
|
uint local_a4;
|
|
undefined8 local_70;
|
|
undefined8 local_48;
|
|
|
|
local_48 = 0xfffffffffffffffe;
|
|
uVar2 = param_2[10];
|
|
uVar8 = param_3;
|
|
local_res18 = param_3;
|
|
if (uVar2 == 0) {
|
|
FUN_140093300();
|
|
}
|
|
uVar3 = *param_2;
|
|
uVar7 = FUN_140080fb0(param_2,local_res20,uVar8,param_4);
|
|
if ((char)uVar7 == '\0') {
|
|
LAB_14006c4f0:
|
|
uVar16 = FUN_1400802d0((int *)param_2,
|
|
(ulonglong)(uint)((int)(((int)uVar3 >> 0x1f & 7U) + uVar3) >> 3),uVar8,
|
|
param_4);
|
|
return uVar16 & 0xffffffffffffff00;
|
|
}
|
|
local_70 = param_3;
|
|
if (local_res20[0] == 0xfde9) {
|
|
FUN_14003b570(local_a8);
|
|
local_a4 = param_2[10];
|
|
local_a8[0] = (undefined1)param_2[0x10];
|
|
plVar9 = (longlong *)param_1[2];
|
|
puVar12 = PTR_DAT_140156108;
|
|
(**(code **)(*plVar9 + 0x48))();
|
|
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],uVar2,0xfde9,PTR_DAT_140156108,&DAT_14011e014);
|
|
}
|
|
}
|
|
else if ((char)param_1[3] == '\0') {
|
|
FUN_140030200(plVar9,param_2,puVar12,param_4);
|
|
ppppppiVar19 = (int ******)PTR_DAT_140155010;
|
|
local_res10 = (int ******)PTR_DAT_140155010;
|
|
uVar8 = 0xfffffffe;
|
|
ppuVar18 = &local_c8;
|
|
plVar9 = FUN_14001ac70((longlong *)&local_res10,(longlong *)ppuVar18,0xfffffffe);
|
|
if (ppppppiVar19 == (int ******)0x0) {
|
|
ppppppiVar19 = (int ******)PTR_DAT_140155010;
|
|
}
|
|
local_res10 = ppppppiVar19;
|
|
if ((int ******)*plVar9 != ppppppiVar19) {
|
|
pppppppiVar14 = (int *******)FUN_140030200(PTR_DAT_140155010,ppuVar18,uVar8,param_4);
|
|
pppppppiVar10 = pppppppiVar14;
|
|
local_160 = pppppppiVar14;
|
|
FUN_14002e6e0((int *)pppppppiVar14);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
if (((ppppppiVar19 != (int ******)0x0) && (ppppppiVar19 != (int ******)PTR_DAT_140155010))
|
|
&& (ppppppiVar19 + -1 != (int ******)0x0)) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(pppppppiVar10,ppuVar18,uVar8,param_4);
|
|
local_138 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
local_130 = 1;
|
|
piVar1 = (int *)((longlong)ppppppiVar19 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_1400302f0(ppppppiVar19 + -1);
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
}
|
|
ppppppiVar19 = (int ******)*plVar9;
|
|
if (((ppppppiVar19 != (int ******)PTR_DAT_140155010) && (ppppppiVar19 != (int ******)0x0))
|
|
&& (ppppppiVar19 != (int ******)0x8)) {
|
|
*(int *)((longlong)ppppppiVar19 + -4) = *(int *)((longlong)ppppppiVar19 + -4) + 1;
|
|
}
|
|
local_res10 = ppppppiVar19;
|
|
FUN_14002e770((longlong)pppppppiVar14);
|
|
}
|
|
if (((local_c8 != (undefined *)0x0) && (local_c8 != PTR_DAT_140155010)) &&
|
|
(local_c8 + -8 != (undefined *)0x0)) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(PTR_DAT_140155010,ppuVar18,uVar8,param_4);
|
|
local_160 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(local_c8 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_1400302f0(local_c8 + -8);
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
}
|
|
local_138 = &local_120;
|
|
pppppppiVar10 = (int *******)PTR_DAT_140155010;
|
|
local_c8 = PTR_DAT_140155010;
|
|
FUN_140030200(PTR_DAT_140155010,ppuVar18,uVar8,param_4);
|
|
local_120 = (int ******)PTR_DAT_140155010;
|
|
if (PTR_DAT_140155010 == (undefined *)0x0) {
|
|
local_120 = (int ******)0x0;
|
|
}
|
|
if (ppppppiVar19 != (int ******)PTR_DAT_140155010) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(pppppppiVar10,ppuVar18,uVar8,param_4);
|
|
local_160 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
FUN_140003240((longlong *)&local_120,ppuVar18,uVar8,param_4);
|
|
if (((ppppppiVar19 != (int ******)PTR_DAT_140155010) && (ppppppiVar19 != (int ******)0x0))
|
|
&& (ppppppiVar19 != (int ******)0x8)) {
|
|
*(int *)((longlong)ppppppiVar19 + -4) = *(int *)((longlong)ppppppiVar19 + -4) + 1;
|
|
}
|
|
local_120 = ppppppiVar19;
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
}
|
|
puVar12 = PTR_DAT_140156108;
|
|
FUN_140030200(pppppppiVar10,ppuVar18,uVar8,param_4);
|
|
local_f0 = PTR_DAT_140155010;
|
|
iVar4 = FUN_140030080((short *)puVar12);
|
|
puVar15 = FUN_140002f90((longlong *)&local_f0,iVar4);
|
|
FUN_1400300b0(puVar15,puVar12,iVar4);
|
|
FUN_140003070((longlong *)&local_f0);
|
|
(**(code **)(*param_1 + 0x28))(param_1,0xfde9,&local_f0,&local_120);
|
|
plVar9 = (longlong *)param_1[2];
|
|
uVar8 = 0xfde9;
|
|
uVar16 = (ulonglong)uVar2;
|
|
puVar12 = PTR_DAT_140156108;
|
|
(**(code **)(*plVar9 + 0x70))();
|
|
param_3 = local_res18;
|
|
if (((ppppppiVar19 != (int ******)0x0) && (ppppppiVar19 != (int ******)PTR_DAT_140155010)) &&
|
|
(ppppppiVar19 + -1 != (int ******)0x0)) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(plVar9,uVar16,uVar8,puVar12);
|
|
local_160 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)((longlong)ppppppiVar19 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_1400302f0(ppppppiVar19 + -1);
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
param_3 = local_res18;
|
|
}
|
|
}
|
|
if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) {
|
|
local_160 = (int *******)CONCAT44(local_160._4_4_,0xfde9);
|
|
local_158 = PTR_DAT_140156108;
|
|
local_150 = uVar2;
|
|
local_148 = param_3;
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_160);
|
|
DVar5 = GetTickCount();
|
|
}
|
|
uVar8 = (**(code **)(*param_1 + 0x38))(param_1,uVar2,local_a8);
|
|
if ((char)uVar8 == '\0') {
|
|
uVar8 = (**(code **)(*(longlong *)param_1[2] + 0x40))
|
|
((longlong *)param_1[2],PTR_DAT_140156108);
|
|
}
|
|
if (((char)param_1[3] != '\0') || (*(char *)((longlong)param_1 + 0x1a) == '\0'))
|
|
goto LAB_14006c4ec;
|
|
local_160 = (int *******)CONCAT44(local_160._4_4_,0xfde9);
|
|
local_158 = PTR_DAT_140156108;
|
|
}
|
|
else if (local_res20[0] == 0xfdea) {
|
|
FUN_14003b570(local_a8);
|
|
local_a4 = param_2[10];
|
|
local_a8[0] = (undefined1)param_2[0x10];
|
|
uVar8 = FUN_140080600(param_2,&local_168,4);
|
|
uVar17 = local_res10._0_4_;
|
|
if ((char)uVar8 != '\0') {
|
|
uVar17 = local_168._0_4_;
|
|
}
|
|
local_res10 = (int ******)CONCAT44(local_res10._4_4_,uVar17);
|
|
plVar9 = (longlong *)param_1[2];
|
|
puVar12 = PTR_DAT_140156110;
|
|
(**(code **)(*plVar9 + 0x48))();
|
|
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],uVar2,0xfdea,PTR_DAT_140156110,&DAT_14011e014);
|
|
}
|
|
}
|
|
else if ((char)param_1[3] == '\0') {
|
|
FUN_140030200(plVar9,param_2,puVar12,param_4);
|
|
local_168 = (int *******)PTR_DAT_140155010;
|
|
FUN_14009d8a0((longlong *)&local_168);
|
|
FUN_14001b850((longlong *)&local_168,(short *)&DAT_14011eebc);
|
|
iVar4 = 0;
|
|
if ((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_140155010)) {
|
|
iVar4 = *(int *)(local_168 + -1);
|
|
}
|
|
uVar16 = (ulonglong)(iVar4 - 2U);
|
|
plVar9 = FUN_14001ac70((longlong *)&local_168,(longlong *)&local_d0,iVar4 - 2U);
|
|
pppppppiVar10 = local_168;
|
|
if (local_168 == (int *******)0x0) {
|
|
pppppppiVar10 = (int *******)PTR_DAT_140155010;
|
|
}
|
|
local_168 = pppppppiVar10;
|
|
if ((int *******)*plVar9 != pppppppiVar10) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(pppppppiVar10,PTR_DAT_140155010,uVar16,param_4);
|
|
local_160 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
pppppppiVar14 = local_168;
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
if (((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_140155010)) &&
|
|
(pppppppiVar13 = local_168 + -1, pppppppiVar13 != (int *******)0x0)) {
|
|
pppppppiVar11 = (int *******)FUN_140030200(local_168,PTR_DAT_140155010,uVar16,param_4);
|
|
local_138 = pppppppiVar11;
|
|
FUN_14002e6e0((int *)pppppppiVar11);
|
|
local_130 = 1;
|
|
piVar1 = (int *)((longlong)pppppppiVar14 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_1400302f0(pppppppiVar13);
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar11);
|
|
}
|
|
local_168 = (int *******)*plVar9;
|
|
if (((local_168 != (int *******)PTR_DAT_140155010) && (local_168 != (int *******)0x0)) &&
|
|
(local_168 != (int *******)0x8)) {
|
|
*(int *)((longlong)local_168 + -4) = *(int *)((longlong)local_168 + -4) + 1;
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
}
|
|
if (((local_d0 != (undefined *)0x0) && (local_d0 != PTR_DAT_140155010)) &&
|
|
(local_d0 + -8 != (undefined *)0x0)) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(pppppppiVar10,PTR_DAT_140155010,uVar16,param_4);
|
|
local_160 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(local_d0 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_1400302f0(local_d0 + -8);
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
}
|
|
local_138 = (int *******)&local_118;
|
|
puVar12 = PTR_DAT_140155010;
|
|
local_d0 = PTR_DAT_140155010;
|
|
FUN_140030200(pppppppiVar10,PTR_DAT_140155010,uVar16,param_4);
|
|
local_118 = (int *******)PTR_DAT_140155010;
|
|
if (PTR_DAT_140155010 == (undefined *)0x0) {
|
|
local_118 = (int *******)0x0;
|
|
}
|
|
if (local_168 != (int *******)PTR_DAT_140155010) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(pppppppiVar10,puVar12,uVar16,param_4);
|
|
local_160 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
FUN_140003240((longlong *)&local_118,puVar12,uVar16,param_4);
|
|
local_118 = local_168;
|
|
if (((local_168 != (int *******)PTR_DAT_140155010) && (local_168 != (int *******)0x0)) &&
|
|
(local_168 != (int *******)0x8)) {
|
|
*(int *)((longlong)local_168 + -4) = *(int *)((longlong)local_168 + -4) + 1;
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
}
|
|
puVar15 = PTR_DAT_140156110;
|
|
FUN_140030200(pppppppiVar10,puVar12,uVar16,param_4);
|
|
local_e8 = PTR_DAT_140155010;
|
|
iVar4 = FUN_140030080((short *)puVar15);
|
|
puVar12 = FUN_140002f90((longlong *)&local_e8,iVar4);
|
|
FUN_1400300b0(puVar12,puVar15,iVar4);
|
|
FUN_140003070((longlong *)&local_e8);
|
|
(**(code **)(*param_1 + 0x28))(param_1,0xfdea,&local_e8,&local_118);
|
|
plVar9 = (longlong *)param_1[2];
|
|
uVar8 = 0xfdea;
|
|
uVar16 = (ulonglong)uVar2;
|
|
puVar12 = PTR_DAT_140156110;
|
|
(**(code **)(*plVar9 + 0x70))();
|
|
pppppppiVar10 = local_168;
|
|
param_3 = local_res18;
|
|
if (((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_140155010)) &&
|
|
(pppppppiVar14 = local_168 + -1, pppppppiVar14 != (int *******)0x0)) {
|
|
pppppppiVar13 = (int *******)FUN_140030200(plVar9,uVar16,uVar8,puVar12);
|
|
local_160 = pppppppiVar13;
|
|
FUN_14002e6e0((int *)pppppppiVar13);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)((longlong)pppppppiVar10 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_1400302f0(pppppppiVar14);
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar13);
|
|
param_3 = local_res18;
|
|
}
|
|
}
|
|
if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) {
|
|
local_160 = (int *******)CONCAT44(local_160._4_4_,0xfdea);
|
|
local_158 = PTR_DAT_140156110;
|
|
local_150 = uVar2;
|
|
local_148 = param_3;
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_160);
|
|
DVar5 = GetTickCount();
|
|
}
|
|
uVar8 = (**(code **)(*param_1 + 0x40))(param_1,uVar2,local_a8,&local_res10);
|
|
if ((char)uVar8 == '\0') {
|
|
uVar8 = (**(code **)(*(longlong *)param_1[2] + 0x40))
|
|
((longlong *)param_1[2],PTR_DAT_140156110);
|
|
}
|
|
if (((char)param_1[3] != '\0') || (*(char *)((longlong)param_1 + 0x1a) == '\0'))
|
|
goto LAB_14006c4ec;
|
|
local_160 = (int *******)CONCAT44(local_160._4_4_,0xfdea);
|
|
local_158 = PTR_DAT_140156110;
|
|
}
|
|
else if (local_res20[0] == 0xfdeb) {
|
|
FUN_14003b570(local_a8);
|
|
local_a4 = param_2[10];
|
|
local_a8[0] = (undefined1)param_2[0x10];
|
|
uVar8 = FUN_140080600(param_2,&local_110,8);
|
|
if ((char)uVar8 != '\0') {
|
|
local_128 = local_110;
|
|
}
|
|
uVar8 = FUN_140080600(param_2,&local_168,4);
|
|
if ((char)uVar8 != '\0') {
|
|
local_res10 = (int ******)CONCAT44(local_res10._4_4_,local_168._0_4_);
|
|
}
|
|
plVar9 = (longlong *)param_1[2];
|
|
puVar12 = PTR_DAT_140156118;
|
|
(**(code **)(*plVar9 + 0x48))();
|
|
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],uVar2,0xfdeb,PTR_DAT_140156118,&DAT_14011e014);
|
|
}
|
|
}
|
|
else if ((char)param_1[3] == '\0') {
|
|
FUN_140030200(plVar9,param_2,puVar12,param_4);
|
|
local_168 = (int *******)PTR_DAT_140155010;
|
|
FUN_14009d9d0((longlong *)&local_168);
|
|
FUN_14001b850((longlong *)&local_168,(short *)&DAT_14011eebc);
|
|
FUN_14009d960((longlong *)&local_168);
|
|
FUN_14001b850((longlong *)&local_168,(short *)&DAT_14011eebc);
|
|
iVar4 = 0;
|
|
if ((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_140155010)) {
|
|
iVar4 = *(int *)(local_168 + -1);
|
|
}
|
|
uVar16 = (ulonglong)(iVar4 - 2U);
|
|
plVar9 = FUN_14001ac70((longlong *)&local_168,(longlong *)&local_c0,iVar4 - 2U);
|
|
pppppppiVar10 = local_168;
|
|
if (local_168 == (int *******)0x0) {
|
|
pppppppiVar10 = (int *******)PTR_DAT_140155010;
|
|
}
|
|
local_168 = pppppppiVar10;
|
|
if ((int *******)*plVar9 != pppppppiVar10) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(pppppppiVar10,PTR_DAT_140155010,uVar16,param_4);
|
|
local_160 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
pppppppiVar14 = local_168;
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
if (((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_140155010)) &&
|
|
(pppppppiVar13 = local_168 + -1, pppppppiVar13 != (int *******)0x0)) {
|
|
pppppppiVar11 = (int *******)FUN_140030200(local_168,PTR_DAT_140155010,uVar16,param_4);
|
|
local_138 = pppppppiVar11;
|
|
FUN_14002e6e0((int *)pppppppiVar11);
|
|
local_130 = 1;
|
|
piVar1 = (int *)((longlong)pppppppiVar14 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_1400302f0(pppppppiVar13);
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar11);
|
|
}
|
|
local_168 = (int *******)*plVar9;
|
|
if (((local_168 != (int *******)PTR_DAT_140155010) && (local_168 != (int *******)0x0)) &&
|
|
(local_168 != (int *******)0x8)) {
|
|
*(int *)((longlong)local_168 + -4) = *(int *)((longlong)local_168 + -4) + 1;
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
}
|
|
if (((local_c0 != (undefined *)0x0) && (local_c0 != PTR_DAT_140155010)) &&
|
|
(local_c0 + -8 != (undefined *)0x0)) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(pppppppiVar10,PTR_DAT_140155010,uVar16,param_4);
|
|
local_160 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(local_c0 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_1400302f0(local_c0 + -8);
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
}
|
|
local_138 = (int *******)&local_108;
|
|
puVar12 = PTR_DAT_140155010;
|
|
local_c0 = PTR_DAT_140155010;
|
|
FUN_140030200(pppppppiVar10,PTR_DAT_140155010,uVar16,param_4);
|
|
local_108 = (int *******)PTR_DAT_140155010;
|
|
if (PTR_DAT_140155010 == (undefined *)0x0) {
|
|
local_108 = (int *******)0x0;
|
|
}
|
|
if (local_168 != (int *******)PTR_DAT_140155010) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(pppppppiVar10,puVar12,uVar16,param_4);
|
|
local_160 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
FUN_140003240((longlong *)&local_108,puVar12,uVar16,param_4);
|
|
local_108 = local_168;
|
|
if (((local_168 != (int *******)PTR_DAT_140155010) && (local_168 != (int *******)0x0)) &&
|
|
(local_168 != (int *******)0x8)) {
|
|
*(int *)((longlong)local_168 + -4) = *(int *)((longlong)local_168 + -4) + 1;
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
}
|
|
puVar15 = PTR_DAT_140156118;
|
|
FUN_140030200(pppppppiVar10,puVar12,uVar16,param_4);
|
|
local_f8 = PTR_DAT_140155010;
|
|
iVar4 = FUN_140030080((short *)puVar15);
|
|
puVar12 = FUN_140002f90((longlong *)&local_f8,iVar4);
|
|
FUN_1400300b0(puVar12,puVar15,iVar4);
|
|
FUN_140003070((longlong *)&local_f8);
|
|
(**(code **)(*param_1 + 0x28))(param_1,0xfdeb,&local_f8,&local_108);
|
|
plVar9 = (longlong *)param_1[2];
|
|
uVar8 = 0xfdeb;
|
|
uVar16 = (ulonglong)uVar2;
|
|
puVar12 = PTR_DAT_140156118;
|
|
(**(code **)(*plVar9 + 0x70))();
|
|
pppppppiVar10 = local_168;
|
|
param_3 = local_res18;
|
|
if (((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_140155010)) &&
|
|
(pppppppiVar14 = local_168 + -1, pppppppiVar14 != (int *******)0x0)) {
|
|
pppppppiVar13 = (int *******)FUN_140030200(plVar9,uVar16,uVar8,puVar12);
|
|
local_160 = pppppppiVar13;
|
|
FUN_14002e6e0((int *)pppppppiVar13);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)((longlong)pppppppiVar10 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_1400302f0(pppppppiVar14);
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar13);
|
|
param_3 = local_res18;
|
|
}
|
|
}
|
|
if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) {
|
|
local_160 = (int *******)CONCAT44(local_160._4_4_,0xfdeb);
|
|
local_158 = PTR_DAT_140156118;
|
|
local_150 = uVar2;
|
|
local_148 = param_3;
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_160);
|
|
DVar5 = GetTickCount();
|
|
}
|
|
uVar8 = (**(code **)(*param_1 + 0x48))(param_1,uVar2,local_a8,&local_128,&local_res10);
|
|
if ((char)uVar8 == '\0') {
|
|
uVar8 = (**(code **)(*(longlong *)param_1[2] + 0x40))
|
|
((longlong *)param_1[2],PTR_DAT_140156118);
|
|
}
|
|
if (((char)param_1[3] != '\0') || (*(char *)((longlong)param_1 + 0x1a) == '\0'))
|
|
goto LAB_14006c4ec;
|
|
local_160 = (int *******)CONCAT44(local_160._4_4_,0xfdeb);
|
|
local_158 = PTR_DAT_140156118;
|
|
}
|
|
else {
|
|
if (local_res20[0] != 0xfdec) goto LAB_14006c4f0;
|
|
FUN_14003b570(local_a8);
|
|
local_a4 = param_2[10];
|
|
local_a8[0] = (undefined1)param_2[0x10];
|
|
uVar8 = FUN_140080600(param_2,&local_168,8);
|
|
if ((char)uVar8 != '\0') {
|
|
local_128 = local_168;
|
|
}
|
|
uVar8 = FUN_140080600(param_2,&local_168,8);
|
|
if ((char)uVar8 != '\0') {
|
|
local_110 = local_168;
|
|
}
|
|
uVar8 = FUN_140080600(param_2,&local_168,8);
|
|
if ((char)uVar8 != '\0') {
|
|
local_b8[0] = local_168;
|
|
}
|
|
uVar8 = FUN_140080600(param_2,&local_168,4);
|
|
if ((char)uVar8 != '\0') {
|
|
local_res10 = (int ******)CONCAT44(local_res10._4_4_,local_168._0_4_);
|
|
}
|
|
plVar9 = (longlong *)param_1[2];
|
|
puVar12 = PTR_DAT_140156120;
|
|
(**(code **)(*plVar9 + 0x48))();
|
|
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],uVar2,0xfdec,PTR_DAT_140156120,&DAT_14011e014);
|
|
}
|
|
}
|
|
else if ((char)param_1[3] == '\0') {
|
|
FUN_140030200(plVar9,param_2,puVar12,param_4);
|
|
local_168 = (int *******)PTR_DAT_140155010;
|
|
FUN_14009d9d0((longlong *)&local_168);
|
|
FUN_14001b850((longlong *)&local_168,(short *)&DAT_14011eebc);
|
|
FUN_14009d9d0((longlong *)&local_168);
|
|
FUN_14001b850((longlong *)&local_168,(short *)&DAT_14011eebc);
|
|
FUN_14009d9d0((longlong *)&local_168);
|
|
FUN_14001b850((longlong *)&local_168,(short *)&DAT_14011eebc);
|
|
FUN_14009d960((longlong *)&local_168);
|
|
FUN_14001b850((longlong *)&local_168,(short *)&DAT_14011eebc);
|
|
iVar4 = 0;
|
|
if ((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_140155010)) {
|
|
iVar4 = *(int *)(local_168 + -1);
|
|
}
|
|
uVar16 = (ulonglong)(iVar4 - 2U);
|
|
plVar9 = FUN_14001ac70((longlong *)&local_168,(longlong *)&local_d8,iVar4 - 2U);
|
|
pppppppiVar10 = local_168;
|
|
if (local_168 == (int *******)0x0) {
|
|
pppppppiVar10 = (int *******)PTR_DAT_140155010;
|
|
}
|
|
local_168 = pppppppiVar10;
|
|
if ((int *******)*plVar9 != pppppppiVar10) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(pppppppiVar10,PTR_DAT_140155010,uVar16,param_4);
|
|
local_138 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
pppppppiVar14 = local_168;
|
|
local_130 = 1;
|
|
if (((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_140155010)) &&
|
|
(pppppppiVar13 = local_168 + -1, pppppppiVar13 != (int *******)0x0)) {
|
|
pppppppiVar11 = (int *******)FUN_140030200(local_168,PTR_DAT_140155010,uVar16,param_4);
|
|
local_160 = pppppppiVar11;
|
|
FUN_14002e6e0((int *)pppppppiVar11);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)((longlong)pppppppiVar14 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_1400302f0(pppppppiVar13);
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar11);
|
|
}
|
|
local_168 = (int *******)*plVar9;
|
|
if (((local_168 != (int *******)PTR_DAT_140155010) && (local_168 != (int *******)0x0)) &&
|
|
(local_168 != (int *******)0x8)) {
|
|
*(int *)((longlong)local_168 + -4) = *(int *)((longlong)local_168 + -4) + 1;
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
}
|
|
if (((local_d8 != (undefined *)0x0) && (local_d8 != PTR_DAT_140155010)) &&
|
|
(local_d8 + -8 != (undefined *)0x0)) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(pppppppiVar10,PTR_DAT_140155010,uVar16,param_4);
|
|
local_160 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)(local_d8 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_1400302f0(local_d8 + -8);
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
}
|
|
local_138 = (int *******)&local_100;
|
|
puVar12 = PTR_DAT_140155010;
|
|
local_d8 = PTR_DAT_140155010;
|
|
FUN_140030200(pppppppiVar10,PTR_DAT_140155010,uVar16,param_4);
|
|
local_100 = (int *******)PTR_DAT_140155010;
|
|
if (PTR_DAT_140155010 == (undefined *)0x0) {
|
|
local_100 = (int *******)0x0;
|
|
}
|
|
if (local_168 != (int *******)PTR_DAT_140155010) {
|
|
pppppppiVar10 = (int *******)FUN_140030200(pppppppiVar10,puVar12,uVar16,param_4);
|
|
local_160 = pppppppiVar10;
|
|
FUN_14002e6e0((int *)pppppppiVar10);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
FUN_140003240((longlong *)&local_100,puVar12,uVar16,param_4);
|
|
local_100 = local_168;
|
|
if (((local_168 != (int *******)PTR_DAT_140155010) && (local_168 != (int *******)0x0)) &&
|
|
(local_168 != (int *******)0x8)) {
|
|
*(int *)((longlong)local_168 + -4) = *(int *)((longlong)local_168 + -4) + 1;
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar10);
|
|
}
|
|
puVar15 = PTR_DAT_140156120;
|
|
FUN_140030200(pppppppiVar10,puVar12,uVar16,param_4);
|
|
local_e0 = PTR_DAT_140155010;
|
|
iVar4 = FUN_140030080((short *)puVar15);
|
|
puVar12 = FUN_140002f90((longlong *)&local_e0,iVar4);
|
|
FUN_1400300b0(puVar12,puVar15,iVar4);
|
|
FUN_140003070((longlong *)&local_e0);
|
|
(**(code **)(*param_1 + 0x28))(param_1,0xfdec,&local_e0,&local_100);
|
|
plVar9 = (longlong *)param_1[2];
|
|
uVar8 = 0xfdec;
|
|
uVar16 = (ulonglong)uVar2;
|
|
puVar12 = PTR_DAT_140156120;
|
|
(**(code **)(*plVar9 + 0x70))();
|
|
pppppppiVar10 = local_168;
|
|
param_3 = local_res18;
|
|
if (((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_140155010)) &&
|
|
(pppppppiVar14 = local_168 + -1, pppppppiVar14 != (int *******)0x0)) {
|
|
pppppppiVar13 = (int *******)FUN_140030200(plVar9,uVar16,uVar8,puVar12);
|
|
local_160 = pppppppiVar13;
|
|
FUN_14002e6e0((int *)pppppppiVar13);
|
|
local_158 = (undefined *)CONCAT71(local_158._1_7_,1);
|
|
piVar1 = (int *)((longlong)pppppppiVar10 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_1400302f0(pppppppiVar14);
|
|
}
|
|
FUN_14002e770((longlong)pppppppiVar13);
|
|
param_3 = local_res18;
|
|
}
|
|
}
|
|
if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) {
|
|
local_160 = (int *******)CONCAT44(local_160._4_4_,0xfdec);
|
|
local_158 = PTR_DAT_140156120;
|
|
local_150 = uVar2;
|
|
local_148 = param_3;
|
|
(**(code **)(*param_1 + 0x20))(param_1,&local_160);
|
|
DVar5 = GetTickCount();
|
|
}
|
|
uVar8 = (**(code **)(*param_1 + 0x50))
|
|
(param_1,uVar2,local_a8,&local_128,&local_110,local_b8,&local_res10);
|
|
if ((char)uVar8 == '\0') {
|
|
uVar8 = (**(code **)(*(longlong *)param_1[2] + 0x40))
|
|
((longlong *)param_1[2],PTR_DAT_140156120);
|
|
}
|
|
if (((char)param_1[3] != '\0') || (*(char *)((longlong)param_1 + 0x1a) == '\0'))
|
|
goto LAB_14006c4ec;
|
|
local_160 = (int *******)CONCAT44(local_160._4_4_,0xfdec);
|
|
local_158 = PTR_DAT_140156120;
|
|
}
|
|
local_150 = uVar2;
|
|
local_148 = param_3;
|
|
DVar6 = GetTickCount();
|
|
local_140 = DVar6 - DVar5;
|
|
uVar8 = (**(code **)(*param_1 + 0x18))(param_1,&local_160);
|
|
LAB_14006c4ec:
|
|
return CONCAT71((int7)((ulonglong)uVar8 >> 8),1);
|
|
}
|
|
|