1026 lines
33 KiB
C
1026 lines
33 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x1400b1560 FUN_1400b1560
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
/* WARNING: Type propagation algorithm not settling */
|
|
|
|
void FUN_1400b1560(undefined8 *param_1,undefined **param_2,undefined **param_3,longlong param_4)
|
|
|
|
{
|
|
ushort uVar1;
|
|
undefined8 *puVar2;
|
|
short *psVar3;
|
|
uint uVar4;
|
|
uint uVar5;
|
|
uint uVar6;
|
|
int iVar7;
|
|
undefined8 uVar8;
|
|
undefined *_Dst;
|
|
uint *puVar9;
|
|
uint *puVar10;
|
|
uint *puVar11;
|
|
longlong *plVar12;
|
|
uint *******pppppppuVar13;
|
|
uint *******pppppppuVar14;
|
|
int *piVar15;
|
|
int *piVar16;
|
|
uint *puVar17;
|
|
longlong lVar18;
|
|
undefined8 *puVar19;
|
|
undefined **ppuVar20;
|
|
ulonglong uVar21;
|
|
undefined8 *puVar22;
|
|
short **ppsVar23;
|
|
uint *******pppppppuVar24;
|
|
longlong lVar25;
|
|
undefined *puVar26;
|
|
uint *puVar27;
|
|
uint ******ppppppuVar28;
|
|
ulonglong uVar29;
|
|
undefined8 **ppuVar30;
|
|
uint uVar31;
|
|
size_t _Size;
|
|
longlong *******ppppppplVar32;
|
|
uint *******pppppppuVar33;
|
|
uint *******pppppppuVar34;
|
|
uint **ppuVar35;
|
|
uint ******ppppppuVar36;
|
|
undefined1 auStack_a38 [32];
|
|
uint local_a18;
|
|
uint *******local_a08;
|
|
uint *local_a00;
|
|
uint *local_9f8;
|
|
uint *local_9f0;
|
|
uint local_9e8 [2];
|
|
undefined8 *local_9e0;
|
|
uint ******local_9d8;
|
|
undefined *local_9d0;
|
|
undefined *local_9c8;
|
|
undefined *local_9c0;
|
|
undefined *local_9b8;
|
|
undefined8 local_9b0;
|
|
undefined **local_9a8;
|
|
undefined4 local_9a0;
|
|
undefined2 local_99c;
|
|
uint local_998;
|
|
uint local_990 [2];
|
|
undefined **local_988;
|
|
undefined4 local_980;
|
|
undefined2 local_97c;
|
|
int local_978;
|
|
uint local_970 [2];
|
|
undefined **local_968;
|
|
undefined4 local_960;
|
|
undefined2 local_95c;
|
|
undefined4 local_958;
|
|
int *local_950;
|
|
undefined1 local_948;
|
|
int *local_940;
|
|
undefined1 local_938;
|
|
int *local_930;
|
|
undefined1 local_928;
|
|
int *local_920;
|
|
undefined1 local_918;
|
|
int *local_910;
|
|
undefined1 local_908;
|
|
int *local_900;
|
|
undefined1 local_8f8;
|
|
int *local_8f0;
|
|
undefined1 local_8e8;
|
|
undefined8 local_8e0;
|
|
int *local_8d8;
|
|
undefined1 local_8d0;
|
|
int *local_8c8;
|
|
undefined1 local_8c0;
|
|
int *local_8b8;
|
|
undefined1 local_8b0;
|
|
int *local_8a8;
|
|
undefined1 local_8a0;
|
|
undefined1 *local_898;
|
|
undefined1 local_890 [136];
|
|
undefined1 *local_808;
|
|
undefined1 local_800 [136];
|
|
short *local_778;
|
|
short local_770 [132];
|
|
undefined4 local_668 [392];
|
|
ulonglong local_48;
|
|
|
|
local_8e0 = 0xfffffffffffffffe;
|
|
local_48 = DAT_1401555a0 ^ (ulonglong)auStack_a38;
|
|
iVar7 = *(int *)(param_2 + 0x492);
|
|
local_9e0 = param_1;
|
|
if (iVar7 == 0) {
|
|
puVar22 = (undefined8 *)0x0;
|
|
if (*(int *)((longlong)param_2 + 0x2494) == 0) {
|
|
local_9d8 = (uint ******)FUN_140030280(0x400);
|
|
puVar19 = puVar22;
|
|
if (local_9d8 != (uint ******)0x0) {
|
|
param_3 = param_2;
|
|
puVar19 = FUN_140035990(local_9d8,0,param_2,param_4);
|
|
}
|
|
if (puVar19 == (undefined8 *)0x0) {
|
|
local_9e0 = (undefined8 *)0x0;
|
|
}
|
|
else {
|
|
local_9e0 = (undefined8 *)FUN_140030280(0x10);
|
|
local_9e0[1] = 1;
|
|
*local_9e0 = puVar19;
|
|
}
|
|
puVar19 = local_9e0;
|
|
ppuVar30 = &local_9e0;
|
|
FUN_140031f40((longlong *)(param_2 + 0x490),(longlong *)ppuVar30);
|
|
puVar2 = local_9e0;
|
|
if (puVar19 != (undefined8 *)0x0) {
|
|
plVar12 = puVar19 + 1;
|
|
*plVar12 = *plVar12 + -1;
|
|
if (*plVar12 == 0) {
|
|
plVar12 = (longlong *)*local_9e0;
|
|
if (plVar12 != (longlong *)0x0) {
|
|
FUN_1400358a0(plVar12,ppuVar30,(longlong *)param_3,param_4);
|
|
FUN_1400302f0(plVar12);
|
|
}
|
|
FUN_1400302f0(puVar2);
|
|
}
|
|
}
|
|
puVar19 = puVar22;
|
|
if ((undefined8 *)param_2[0x490] != (undefined8 *)0x0) {
|
|
puVar19 = *(undefined8 **)param_2[0x490];
|
|
}
|
|
FUN_140037510((longlong)puVar19,ppuVar30,param_3,param_4);
|
|
puVar19 = puVar22;
|
|
if ((undefined8 *)param_2[0x490] != (undefined8 *)0x0) {
|
|
puVar19 = *(undefined8 **)param_2[0x490];
|
|
}
|
|
FUN_140034c70((longlong)puVar19,'\0');
|
|
uVar8 = FUN_1400ae8c0(param_1,(longlong)param_2,param_3,param_4);
|
|
if ((char)uVar8 == '\0') goto LAB_1400b26aa;
|
|
}
|
|
FUN_140034cf0(local_668);
|
|
puVar19 = puVar22;
|
|
if ((undefined8 *)param_2[0x490] != (undefined8 *)0x0) {
|
|
puVar19 = *(undefined8 **)param_2[0x490];
|
|
}
|
|
FUN_140034d10((longlong)local_668,(longlong)puVar19);
|
|
puVar19 = puVar22;
|
|
if ((undefined8 *)param_2[0x490] != (undefined8 *)0x0) {
|
|
puVar19 = *(undefined8 **)param_2[0x490];
|
|
}
|
|
FUN_140034d70((longlong)local_668,(longlong)puVar19);
|
|
FUN_140034dd0((longlong)local_668,0);
|
|
if ((undefined8 *)param_2[0x490] != (undefined8 *)0x0) {
|
|
puVar22 = *(undefined8 **)param_2[0x490];
|
|
}
|
|
puVar17 = local_9e8;
|
|
uVar8 = FUN_140034e30((longlong)local_668,(longlong)puVar22,puVar17);
|
|
if ((char)uVar8 != '\0') {
|
|
if (local_9e8[0] == 0) {
|
|
if (0 < *(int *)(param_2 + 0x492)) {
|
|
return;
|
|
}
|
|
param_2[0x492] = (undefined *)0x1;
|
|
return;
|
|
}
|
|
uVar8 = FUN_1400ae8c0(param_1,(longlong)param_2,puVar17,param_4);
|
|
if ((char)uVar8 != '\0') goto LAB_1400b277c;
|
|
goto LAB_1400b26aa;
|
|
}
|
|
goto LAB_1400b277c;
|
|
}
|
|
if (iVar7 == 1) {
|
|
lVar25 = 0;
|
|
iVar7 = 0;
|
|
if (*(int *)((longlong)param_2 + 0x2494) == 0) {
|
|
lVar18 = lVar25;
|
|
if ((longlong *)param_2[0x490] != (longlong *)0x0) {
|
|
lVar18 = *(longlong *)param_2[0x490];
|
|
}
|
|
FUN_140034c70(lVar18,'\x01');
|
|
local_808 = local_800;
|
|
FUN_14002e8f0((longlong *)&local_808,(LPCWSTR)((longlong)param_2 + 0x52),3);
|
|
local_898 = local_890;
|
|
FUN_14002e8f0((longlong *)&local_898,(LPCWSTR)(param_2 + 0x8b),3);
|
|
local_a18 = (uint)*(ushort *)((longlong)param_2 + 0x245c);
|
|
FUN_140031ea0((longlong *)(param_2 + 0x491),
|
|
"GET %s HTTP/1.1\r\n\r\nHost: %s:%d\r\n\r\nConnection: Keep-Alive\r\n\r\n",
|
|
local_898,local_808);
|
|
if (local_898 != local_890) {
|
|
free(local_898);
|
|
}
|
|
if (local_808 != local_800) {
|
|
free(local_808);
|
|
}
|
|
lVar18 = FUN_1400ad0c0(param_1,(longlong)param_2);
|
|
if ((char)lVar18 == '\0') goto LAB_1400b26aa;
|
|
}
|
|
local_988 = Proud::AddrPort::vftable;
|
|
local_978 = 0;
|
|
local_990[0] = 0;
|
|
local_990[1] = 0;
|
|
local_980 = DAT_1401553d0;
|
|
local_97c = DAT_1401553d4;
|
|
if ((longlong *)param_2[0x490] != (longlong *)0x0) {
|
|
lVar25 = *(longlong *)param_2[0x490];
|
|
}
|
|
uVar8 = FUN_1400353c0(lVar25,0,local_990);
|
|
if ((char)uVar8 != '\0') {
|
|
*(undefined1 *)(param_2 + 0x498) = 0;
|
|
if (local_978 == 0) goto LAB_1400b26aa;
|
|
*(int *)((longlong)param_2 + 0x2504) = *(int *)((longlong)param_2 + 0x2504) + local_978;
|
|
puVar26 = param_2[0x491];
|
|
if (puVar26 != (undefined *)0x0) {
|
|
if (puVar26 == PTR_DAT_140155008) {
|
|
iVar7 = 0;
|
|
}
|
|
else {
|
|
iVar7 = *(int *)(puVar26 + -8);
|
|
}
|
|
}
|
|
if ((iVar7 - *(int *)((longlong)param_2 + 0x2504)) + 1 < 1) {
|
|
if (1 < *(int *)(param_2 + 0x492)) {
|
|
return;
|
|
}
|
|
param_2[0x492] = (undefined *)0x2;
|
|
return;
|
|
}
|
|
FUN_1400ad0c0(param_1,(longlong)param_2);
|
|
}
|
|
goto LAB_1400b277c;
|
|
}
|
|
if (iVar7 == 2) {
|
|
lVar25 = 0;
|
|
if (*(int *)((longlong)param_2 + 0x2494) == 0) {
|
|
*(undefined1 *)(param_2 + 0x4a0) = 1;
|
|
lVar18 = lVar25;
|
|
if ((longlong *)param_2[0x490] != (longlong *)0x0) {
|
|
lVar18 = *(longlong *)param_2[0x490];
|
|
}
|
|
uVar6 = FUN_1400362c0(lVar18,0x8000,param_3,param_4);
|
|
if (uVar6 == 0) goto LAB_1400b2317;
|
|
}
|
|
else {
|
|
LAB_1400b2317:
|
|
local_9a8 = Proud::AddrPort::vftable;
|
|
local_998 = 0;
|
|
local_9b0 = 0;
|
|
local_9a0 = DAT_1401553d0;
|
|
local_99c = DAT_1401553d4;
|
|
lVar18 = lVar25;
|
|
if ((longlong *)param_2[0x490] != (longlong *)0x0) {
|
|
lVar18 = *(longlong *)param_2[0x490];
|
|
}
|
|
uVar8 = FUN_140035150(lVar18,0,(undefined4 *)&local_9b0);
|
|
if ((char)uVar8 == '\0') {
|
|
LAB_1400b277c:
|
|
*(int *)((longlong)param_2 + 0x2494) = *(int *)((longlong)param_2 + 0x2494) + 1;
|
|
return;
|
|
}
|
|
*(undefined1 *)(param_2 + 0x4a0) = 0;
|
|
if (local_998 == 0) {
|
|
LAB_1400b26aa:
|
|
if (2 < *(int *)(param_2 + 0x492)) {
|
|
return;
|
|
}
|
|
param_2[0x492] = (undefined *)0x3;
|
|
return;
|
|
}
|
|
lVar18 = lVar25;
|
|
if ((longlong *)param_2[0x490] != (longlong *)0x0) {
|
|
lVar18 = *(longlong *)param_2[0x490];
|
|
}
|
|
lVar18 = FUN_140035710(lVar18);
|
|
ppuVar20 = (undefined **)(ulonglong)local_998;
|
|
FUN_1400ad140((longlong)(param_2 + 0x4a2),lVar18,ppuVar20,param_4);
|
|
*(uint *)(param_2 + 0x4a1) = *(int *)(param_2 + 0x4a1) + local_998;
|
|
if ((int)(0x8000U - *(int *)(param_2 + 0x4a1)) < 1) goto LAB_1400b26aa;
|
|
*(undefined1 *)(param_2 + 0x4a0) = 1;
|
|
if ((longlong *)param_2[0x490] != (longlong *)0x0) {
|
|
lVar25 = *(longlong *)param_2[0x490];
|
|
}
|
|
uVar6 = FUN_1400362c0(lVar25,(ulonglong)(0x8000U - *(int *)(param_2 + 0x4a1)),ppuVar20,param_4
|
|
);
|
|
if (uVar6 == 0) goto LAB_1400b277c;
|
|
}
|
|
*(undefined1 *)(param_2 + 0x4a0) = 0;
|
|
goto LAB_1400b23ed;
|
|
}
|
|
if (iVar7 != 3) {
|
|
if (iVar7 == 4) {
|
|
if (((*(int *)((longlong)param_2 + 0x2494) == 0) &&
|
|
((undefined8 *)param_2[0x490] != (undefined8 *)0x0)) &&
|
|
(plVar12 = *(longlong **)param_2[0x490], plVar12 != (longlong *)0x0)) {
|
|
FUN_140035490(plVar12,param_2,param_3,param_4);
|
|
}
|
|
local_968 = Proud::AddrPort::vftable;
|
|
lVar25 = 0;
|
|
local_958 = 0;
|
|
local_970[0] = 0;
|
|
local_970[1] = 0;
|
|
local_960 = DAT_1401553d0;
|
|
local_95c = DAT_1401553d4;
|
|
lVar18 = lVar25;
|
|
if ((longlong *)param_2[0x490] != (longlong *)0x0) {
|
|
lVar18 = *(longlong *)param_2[0x490];
|
|
}
|
|
uVar8 = FUN_140035150(lVar18,0,local_970);
|
|
if ((char)uVar8 != '\0') {
|
|
*(undefined1 *)(param_2 + 0x4a0) = 0;
|
|
}
|
|
if ((longlong *)param_2[0x490] != (longlong *)0x0) {
|
|
lVar25 = *(longlong *)param_2[0x490];
|
|
}
|
|
uVar8 = FUN_1400353c0(lVar25,0,local_970);
|
|
if ((char)uVar8 != '\0') {
|
|
*(undefined1 *)(param_2 + 0x498) = 0;
|
|
}
|
|
if ((*(char *)(param_2 + 0x4a0) == '\0') && (*(char *)(param_2 + 0x498) == '\0')) {
|
|
if (4 < *(int *)(param_2 + 0x492)) {
|
|
return;
|
|
}
|
|
param_2[0x492] = (undefined *)0x5;
|
|
return;
|
|
}
|
|
}
|
|
goto LAB_1400b277c;
|
|
}
|
|
uVar6 = 0;
|
|
if (*(int *)(param_2 + 0x4a5) == 0) goto LAB_1400b23ed;
|
|
_Dst = FUN_14002edf0((longlong *)(param_2 + 0x4a7),*(int *)(param_2 + 0x4a5) + 1);
|
|
memset(_Dst,0,(longlong)(*(int *)(param_2 + 0x4a5) + 1));
|
|
puVar26 = (undefined *)0x0;
|
|
if (*(int *)(param_2 + 0x4a5) != 0) {
|
|
puVar26 = param_2[0x4a4];
|
|
}
|
|
_Size = (size_t)*(int *)(param_2 + 0x4a5);
|
|
memcpy(_Dst,puVar26,_Size);
|
|
ppuVar20 = param_2 + 0x4a7;
|
|
FUN_14002eab0((longlong *)ppuVar20);
|
|
FUN_140030200(ppuVar20,puVar26,_Size,param_4);
|
|
ppppppuVar36 = (uint ******)PTR_DAT_140155008;
|
|
local_9d8 = (uint ******)PTR_DAT_140155008;
|
|
ppuVar20 = param_2 + 0x4a7;
|
|
FUN_1400ade70((longlong *)ppuVar20);
|
|
FUN_140030200(ppuVar20,puVar26,_Size,param_4);
|
|
puVar17 = (uint *)PTR_DAT_140155008;
|
|
local_9f0 = (uint *)PTR_DAT_140155008;
|
|
uVar4 = FUN_140030120("MODELDESCRIPTION");
|
|
iVar7 = 0;
|
|
if ((puVar17 != (uint *)0x0) && (iVar7 = 0, puVar17 != (uint *)PTR_DAT_140155008)) {
|
|
iVar7 = *(int *)((longlong)puVar17 + -8);
|
|
}
|
|
uVar5 = uVar4;
|
|
if ((((int)uVar4 <= iVar7) && (uVar5 = 0, puVar17 != (uint *)0x0)) &&
|
|
(puVar17 != (uint *)PTR_DAT_140155008)) {
|
|
uVar5 = *(uint *)((longlong)puVar17 + -8);
|
|
}
|
|
uVar31 = 1;
|
|
if (1 < (int)uVar5) {
|
|
uVar31 = uVar5;
|
|
}
|
|
iVar7 = 0;
|
|
if ((puVar17 != (uint *)0x0) && (iVar7 = 0, puVar17 != (uint *)PTR_DAT_140155008)) {
|
|
iVar7 = *(int *)((longlong)puVar17 + -8);
|
|
}
|
|
if (iVar7 < (int)uVar31) {
|
|
if (puVar17 == (uint *)0x0) {
|
|
puVar17 = (uint *)PTR_DAT_140155008;
|
|
}
|
|
local_9f0 = puVar17;
|
|
if ((int)uVar31 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14002f590();
|
|
}
|
|
if (uVar31 == 0) {
|
|
FUN_14001c020((longlong *)&local_9f0);
|
|
}
|
|
else {
|
|
uVar5 = 0;
|
|
if ((puVar17 != (uint *)0x0) && (puVar17 != (uint *)PTR_DAT_140155008)) {
|
|
uVar5 = puVar17[-2];
|
|
}
|
|
if (uVar31 != uVar5) {
|
|
puVar9 = (uint *)FUN_140030280((longlong)(int)uVar31 + 9);
|
|
if (puVar9 != (uint *)0x0) {
|
|
*puVar9 = 0;
|
|
puVar9[1] = 1;
|
|
}
|
|
*puVar9 = uVar31;
|
|
uVar5 = 0;
|
|
if ((puVar17 != (uint *)0x0) && (puVar17 != (uint *)PTR_DAT_140155008)) {
|
|
uVar5 = puVar17[-2];
|
|
}
|
|
puVar10 = (uint *)PTR_DAT_140155008;
|
|
if ((int)uVar31 < (int)uVar5) {
|
|
LAB_1400b1825:
|
|
if (puVar17 != (uint *)0x0) {
|
|
puVar10 = puVar17;
|
|
}
|
|
}
|
|
else {
|
|
uVar31 = uVar6;
|
|
if (puVar17 != (uint *)0x0) {
|
|
if (puVar17 != (uint *)PTR_DAT_140155008) {
|
|
uVar31 = puVar17[-2];
|
|
}
|
|
goto LAB_1400b1825;
|
|
}
|
|
}
|
|
FUN_140030150(puVar9 + 2,puVar10,uVar31);
|
|
FUN_14001c020((longlong *)&local_9f0);
|
|
local_9f0 = puVar9 + 2;
|
|
}
|
|
}
|
|
}
|
|
FUN_14002eb30((longlong *)&local_9f0);
|
|
puVar17 = local_9f0;
|
|
puVar9 = local_9f0;
|
|
if (local_9f0 == (uint *)0x0) {
|
|
puVar9 = (uint *)PTR_DAT_140155008;
|
|
}
|
|
uVar29 = (ulonglong)uVar4;
|
|
FUN_140030150(puVar9,"MODELDESCRIPTION",uVar4);
|
|
puVar9 = puVar17;
|
|
if (puVar17 == (uint *)0x0) {
|
|
puVar9 = (uint *)PTR_DAT_140155008;
|
|
}
|
|
uVar5 = FUN_140030120((char *)puVar9);
|
|
uVar4 = 0;
|
|
if (0 < (int)uVar5) {
|
|
uVar4 = uVar5;
|
|
}
|
|
uVar21 = (ulonglong)uVar4;
|
|
uVar5 = 0;
|
|
if ((puVar17 != (uint *)0x0) && (uVar5 = 0, puVar17 != (uint *)PTR_DAT_140155008)) {
|
|
uVar5 = puVar17[-2];
|
|
}
|
|
puVar9 = (uint *)PTR_DAT_140155008;
|
|
if (((int)uVar4 < (int)uVar5) || (uVar21 = 0, puVar17 == (uint *)0x0)) {
|
|
LAB_1400b18bd:
|
|
if (((puVar17 != (uint *)PTR_DAT_140155008) && (puVar17 != (uint *)0x0)) &&
|
|
(puVar9 = puVar17 + -2, puVar9 != (uint *)0x0)) {
|
|
*puVar9 = (uint)uVar21;
|
|
*(undefined1 *)((longlong)(int)(uint)uVar21 + 8 + (longlong)puVar9) = 0;
|
|
}
|
|
}
|
|
else if (puVar17 != (uint *)PTR_DAT_140155008) {
|
|
uVar21 = (ulonglong)puVar17[-2];
|
|
goto LAB_1400b18bd;
|
|
}
|
|
FUN_140030200(uVar21,puVar9,uVar29,param_4);
|
|
puVar9 = (uint *)PTR_DAT_140155008;
|
|
local_a00 = (uint *)PTR_DAT_140155008;
|
|
uVar4 = FUN_140030120("FRIENDLYNAME");
|
|
iVar7 = 0;
|
|
if ((puVar9 != (uint *)0x0) && (iVar7 = 0, puVar9 != (uint *)PTR_DAT_140155008)) {
|
|
iVar7 = *(int *)((longlong)puVar9 + -8);
|
|
}
|
|
uVar5 = uVar4;
|
|
if ((((int)uVar4 <= iVar7) && (uVar5 = 0, puVar9 != (uint *)0x0)) &&
|
|
(puVar9 != (uint *)PTR_DAT_140155008)) {
|
|
uVar5 = *(uint *)((longlong)puVar9 + -8);
|
|
}
|
|
uVar31 = 1;
|
|
if (1 < (int)uVar5) {
|
|
uVar31 = uVar5;
|
|
}
|
|
iVar7 = 0;
|
|
if ((puVar9 != (uint *)0x0) && (iVar7 = 0, puVar9 != (uint *)PTR_DAT_140155008)) {
|
|
iVar7 = *(int *)((longlong)puVar9 + -8);
|
|
}
|
|
if (iVar7 < (int)uVar31) {
|
|
if (puVar9 == (uint *)0x0) {
|
|
puVar9 = (uint *)PTR_DAT_140155008;
|
|
}
|
|
local_a00 = puVar9;
|
|
if ((int)uVar31 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14002f590();
|
|
}
|
|
if (uVar31 == 0) {
|
|
FUN_14001c020((longlong *)&local_a00);
|
|
}
|
|
else {
|
|
uVar5 = 0;
|
|
if ((puVar9 != (uint *)0x0) && (puVar9 != (uint *)PTR_DAT_140155008)) {
|
|
uVar5 = puVar9[-2];
|
|
}
|
|
if (uVar31 != uVar5) {
|
|
puVar10 = (uint *)FUN_140030280((longlong)(int)uVar31 + 9);
|
|
if (puVar10 != (uint *)0x0) {
|
|
*puVar10 = 0;
|
|
puVar10[1] = 1;
|
|
}
|
|
*puVar10 = uVar31;
|
|
uVar5 = 0;
|
|
if ((puVar9 != (uint *)0x0) && (puVar9 != (uint *)PTR_DAT_140155008)) {
|
|
uVar5 = puVar9[-2];
|
|
}
|
|
puVar11 = (uint *)PTR_DAT_140155008;
|
|
if ((int)uVar31 < (int)uVar5) {
|
|
LAB_1400b19ca:
|
|
if (puVar9 != (uint *)0x0) {
|
|
puVar11 = puVar9;
|
|
}
|
|
}
|
|
else {
|
|
uVar31 = uVar6;
|
|
if (puVar9 != (uint *)0x0) {
|
|
if (puVar9 != (uint *)PTR_DAT_140155008) {
|
|
uVar31 = puVar9[-2];
|
|
}
|
|
goto LAB_1400b19ca;
|
|
}
|
|
}
|
|
FUN_140030150(puVar10 + 2,puVar11,uVar31);
|
|
FUN_14001c020((longlong *)&local_a00);
|
|
local_a00 = puVar10 + 2;
|
|
}
|
|
}
|
|
}
|
|
FUN_14002eb30((longlong *)&local_a00);
|
|
puVar9 = local_a00;
|
|
puVar10 = local_a00;
|
|
if (local_a00 == (uint *)0x0) {
|
|
puVar10 = (uint *)PTR_DAT_140155008;
|
|
}
|
|
FUN_140030150(puVar10,"FRIENDLYNAME",uVar4);
|
|
puVar10 = puVar9;
|
|
if (puVar9 == (uint *)0x0) {
|
|
puVar10 = (uint *)PTR_DAT_140155008;
|
|
}
|
|
uVar5 = FUN_140030120((char *)puVar10);
|
|
uVar4 = 0;
|
|
if (0 < (int)uVar5) {
|
|
uVar4 = uVar5;
|
|
}
|
|
uVar5 = 0;
|
|
if ((puVar9 != (uint *)0x0) && (uVar5 = 0, puVar9 != (uint *)PTR_DAT_140155008)) {
|
|
uVar5 = puVar9[-2];
|
|
}
|
|
if (((int)uVar4 < (int)uVar5) || (uVar4 = 0, puVar9 == (uint *)0x0)) {
|
|
LAB_1400b1a62:
|
|
if (((puVar9 != (uint *)PTR_DAT_140155008) && (puVar9 != (uint *)0x0)) &&
|
|
(puVar10 = puVar9 + -2, puVar10 != (uint *)0x0)) {
|
|
*puVar10 = uVar4;
|
|
*(undefined1 *)((longlong)(int)uVar4 + 8 + (longlong)puVar10) = 0;
|
|
}
|
|
}
|
|
else if (puVar9 != (uint *)PTR_DAT_140155008) {
|
|
uVar4 = puVar9[-2];
|
|
goto LAB_1400b1a62;
|
|
}
|
|
ppuVar35 = &local_9f0;
|
|
ppppppplVar32 = (longlong *******)(param_2 + 0x4a7);
|
|
ppuVar20 = &local_9d0;
|
|
puVar22 = local_9e0;
|
|
local_a08 = (uint *******)
|
|
FUN_1400aebc0(local_9e0,(longlong *)ppuVar20,ppppppplVar32,(longlong *)ppuVar35);
|
|
FUN_140030200(puVar22,ppuVar20,ppppppplVar32,ppuVar35);
|
|
puVar10 = (uint *)PTR_DAT_140155008;
|
|
local_9f8 = (uint *)PTR_DAT_140155008;
|
|
local_9e8[0] = FUN_140030120("##");
|
|
iVar7 = 0;
|
|
if ((puVar10 != (uint *)0x0) && (iVar7 = 0, puVar10 != (uint *)PTR_DAT_140155008)) {
|
|
iVar7 = *(int *)((longlong)puVar10 + -8);
|
|
}
|
|
uVar4 = local_9e8[0];
|
|
if ((((int)local_9e8[0] <= iVar7) && (uVar4 = 0, puVar10 != (uint *)0x0)) &&
|
|
(puVar10 != (uint *)PTR_DAT_140155008)) {
|
|
uVar4 = *(uint *)((longlong)puVar10 + -8);
|
|
}
|
|
uVar5 = 1;
|
|
if (1 < (int)uVar4) {
|
|
uVar5 = uVar4;
|
|
}
|
|
iVar7 = 0;
|
|
if ((puVar10 != (uint *)0x0) && (iVar7 = 0, puVar10 != (uint *)PTR_DAT_140155008)) {
|
|
iVar7 = *(int *)((longlong)puVar10 + -8);
|
|
}
|
|
if (iVar7 < (int)uVar5) {
|
|
if (puVar10 == (uint *)0x0) {
|
|
puVar10 = (uint *)PTR_DAT_140155008;
|
|
}
|
|
local_9f8 = puVar10;
|
|
if ((int)uVar5 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14002f590();
|
|
}
|
|
if (uVar5 == 0) {
|
|
FUN_14001c020((longlong *)&local_9f8);
|
|
}
|
|
else {
|
|
uVar4 = 0;
|
|
if ((puVar10 != (uint *)0x0) && (puVar10 != (uint *)PTR_DAT_140155008)) {
|
|
uVar4 = puVar10[-2];
|
|
}
|
|
if (uVar5 != uVar4) {
|
|
puVar11 = (uint *)FUN_140030280((longlong)(int)uVar5 + 9);
|
|
if (puVar11 != (uint *)0x0) {
|
|
*puVar11 = 0;
|
|
puVar11[1] = 1;
|
|
}
|
|
*puVar11 = uVar5;
|
|
uVar4 = 0;
|
|
if ((puVar10 != (uint *)0x0) && (puVar10 != (uint *)PTR_DAT_140155008)) {
|
|
uVar4 = puVar10[-2];
|
|
}
|
|
puVar27 = (uint *)PTR_DAT_140155008;
|
|
if ((int)uVar5 < (int)uVar4) {
|
|
LAB_1400b1b99:
|
|
if (puVar10 != (uint *)0x0) {
|
|
puVar27 = puVar10;
|
|
}
|
|
}
|
|
else {
|
|
uVar5 = uVar6;
|
|
if (puVar10 != (uint *)0x0) {
|
|
if (puVar10 != (uint *)PTR_DAT_140155008) {
|
|
uVar5 = puVar10[-2];
|
|
}
|
|
goto LAB_1400b1b99;
|
|
}
|
|
}
|
|
FUN_140030150(puVar11 + 2,puVar27,uVar5);
|
|
FUN_14001c020((longlong *)&local_9f8);
|
|
local_9f8 = puVar11 + 2;
|
|
}
|
|
}
|
|
}
|
|
FUN_14002eb30((longlong *)&local_9f8);
|
|
puVar10 = local_9f8;
|
|
puVar11 = local_9f8;
|
|
if (local_9f8 == (uint *)0x0) {
|
|
puVar11 = (uint *)PTR_DAT_140155008;
|
|
}
|
|
FUN_140030150(puVar11,&DAT_14010c5b0,local_9e8[0]);
|
|
puVar11 = puVar10;
|
|
if (puVar10 == (uint *)0x0) {
|
|
puVar11 = (uint *)PTR_DAT_140155008;
|
|
}
|
|
uVar5 = FUN_140030120((char *)puVar11);
|
|
uVar4 = 0;
|
|
if (0 < (int)uVar5) {
|
|
uVar4 = uVar5;
|
|
}
|
|
uVar5 = 0;
|
|
if ((puVar10 != (uint *)0x0) && (uVar5 = 0, puVar10 != (uint *)PTR_DAT_140155008)) {
|
|
uVar5 = puVar10[-2];
|
|
}
|
|
if (((int)uVar4 < (int)uVar5) || (uVar4 = 0, puVar10 == (uint *)0x0)) {
|
|
LAB_1400b1c33:
|
|
if (((puVar10 != (uint *)PTR_DAT_140155008) && (puVar10 != (uint *)0x0)) &&
|
|
(puVar11 = puVar10 + -2, puVar11 != (uint *)0x0)) {
|
|
*puVar11 = uVar4;
|
|
*(undefined1 *)((longlong)(int)uVar4 + 8 + (longlong)puVar11) = 0;
|
|
}
|
|
}
|
|
else if (puVar10 != (uint *)PTR_DAT_140155008) {
|
|
uVar4 = puVar10[-2];
|
|
goto LAB_1400b1c33;
|
|
}
|
|
ppuVar35 = &local_a00;
|
|
plVar12 = FUN_1400aebc0(local_9e0,(longlong *)&local_9b8,(longlong *******)(param_2 + 0x4a7),
|
|
(longlong *)ppuVar35);
|
|
pppppppuVar13 =
|
|
(uint *******)FUN_140032430((longlong *)&local_9c0,plVar12,(longlong *)&local_9f8,ppuVar35);
|
|
pppppppuVar14 =
|
|
(uint *******)
|
|
FUN_140032430((longlong *)&local_9c8,(longlong *)pppppppuVar13,(longlong *)local_a08,ppuVar35
|
|
);
|
|
if (ppppppuVar36 == (uint ******)0x0) {
|
|
ppppppuVar36 = (uint ******)PTR_DAT_140155008;
|
|
}
|
|
pppppppuVar33 = local_a08;
|
|
local_9d8 = ppppppuVar36;
|
|
if (*pppppppuVar14 != ppppppuVar36) {
|
|
local_a08 = pppppppuVar14;
|
|
piVar15 = (int *)FUN_140030200(PTR_DAT_140155008,pppppppuVar13,pppppppuVar33,ppuVar35);
|
|
piVar16 = piVar15;
|
|
local_920 = piVar15;
|
|
FUN_14002e6e0(piVar15);
|
|
local_918 = 1;
|
|
if (((ppppppuVar36 != (uint ******)0x0) && (ppppppuVar36 != (uint ******)PTR_DAT_140155008)) &&
|
|
(ppppppuVar36 + -1 != (uint ******)0x0)) {
|
|
piVar15 = (int *)FUN_140030200(piVar16,pppppppuVar13,pppppppuVar33,ppuVar35);
|
|
local_8a8 = piVar15;
|
|
FUN_14002e6e0(piVar15);
|
|
local_8a0 = 1;
|
|
piVar16 = (int *)((longlong)ppppppuVar36 + -4);
|
|
*piVar16 = *piVar16 + -1;
|
|
if (*piVar16 == 0) {
|
|
FUN_1400302f0(ppppppuVar36 + -1);
|
|
}
|
|
FUN_14002e770((longlong)piVar15);
|
|
piVar15 = local_920;
|
|
}
|
|
ppppppuVar36 = *local_a08;
|
|
if (((ppppppuVar36 != (uint ******)PTR_DAT_140155008) && (ppppppuVar36 != (uint ******)0x0)) &&
|
|
(ppppppuVar36 != (uint ******)0x8)) {
|
|
*(int *)((longlong)ppppppuVar36 + -4) = *(int *)((longlong)ppppppuVar36 + -4) + 1;
|
|
}
|
|
local_9d8 = ppppppuVar36;
|
|
FUN_14002e770((longlong)piVar15);
|
|
pppppppuVar14 = local_a08;
|
|
}
|
|
local_a08 = pppppppuVar14;
|
|
if (((local_9c8 != (undefined *)0x0) && (local_9c8 != PTR_DAT_140155008)) &&
|
|
(local_9c8 + -8 != (undefined *)0x0)) {
|
|
local_930 = (int *)FUN_140030200(PTR_DAT_140155008,pppppppuVar13,pppppppuVar33,ppuVar35);
|
|
FUN_14002e6e0(local_930);
|
|
local_928 = 1;
|
|
piVar16 = (int *)(local_9c8 + -4);
|
|
*piVar16 = *piVar16 + -1;
|
|
if (*piVar16 == 0) {
|
|
FUN_1400302f0(local_9c8 + -8);
|
|
}
|
|
FUN_14002e770((longlong)local_930);
|
|
}
|
|
local_9c8 = PTR_DAT_140155008;
|
|
if (((local_9c0 != (undefined *)0x0) && (local_9c0 != PTR_DAT_140155008)) &&
|
|
(local_9c0 + -8 != (undefined *)0x0)) {
|
|
local_950 = (int *)FUN_140030200(PTR_DAT_140155008,pppppppuVar13,pppppppuVar33,ppuVar35);
|
|
FUN_14002e6e0(local_950);
|
|
local_948 = 1;
|
|
piVar16 = (int *)(local_9c0 + -4);
|
|
*piVar16 = *piVar16 + -1;
|
|
if (*piVar16 == 0) {
|
|
FUN_1400302f0(local_9c0 + -8);
|
|
}
|
|
FUN_14002e770((longlong)local_950);
|
|
}
|
|
local_9c0 = PTR_DAT_140155008;
|
|
if (((local_9b8 != (undefined *)0x0) && (local_9b8 != PTR_DAT_140155008)) &&
|
|
(local_9b8 + -8 != (undefined *)0x0)) {
|
|
local_940 = (int *)FUN_140030200(PTR_DAT_140155008,pppppppuVar13,pppppppuVar33,ppuVar35);
|
|
FUN_14002e6e0(local_940);
|
|
local_938 = 1;
|
|
piVar16 = (int *)(local_9b8 + -4);
|
|
*piVar16 = *piVar16 + -1;
|
|
if (*piVar16 == 0) {
|
|
FUN_1400302f0(local_9b8 + -8);
|
|
}
|
|
FUN_14002e770((longlong)local_940);
|
|
}
|
|
local_9b8 = PTR_DAT_140155008;
|
|
if (((puVar10 != (uint *)0x0) && (puVar10 != (uint *)PTR_DAT_140155008)) &&
|
|
(puVar10 + -2 != (uint *)0x0)) {
|
|
piVar16 = (int *)FUN_140030200(PTR_DAT_140155008,pppppppuVar13,pppppppuVar33,ppuVar35);
|
|
local_8b8 = piVar16;
|
|
FUN_14002e6e0(piVar16);
|
|
local_8b0 = 1;
|
|
puVar11 = puVar10 + -1;
|
|
*puVar11 = *puVar11 - 1;
|
|
if (*puVar11 == 0) {
|
|
FUN_1400302f0(puVar10 + -2);
|
|
}
|
|
FUN_14002e770((longlong)piVar16);
|
|
}
|
|
if (((local_9d0 != (undefined *)0x0) && (local_9d0 != PTR_DAT_140155008)) &&
|
|
(local_9d0 + -8 != (undefined *)0x0)) {
|
|
piVar15 = (int *)FUN_140030200(PTR_DAT_140155008,pppppppuVar13,pppppppuVar33,ppuVar35);
|
|
local_900 = piVar15;
|
|
FUN_14002e6e0(piVar15);
|
|
local_8f8 = 1;
|
|
piVar16 = (int *)(local_9d0 + -4);
|
|
*piVar16 = *piVar16 + -1;
|
|
if (*piVar16 == 0) {
|
|
FUN_1400302f0(local_9d0 + -8);
|
|
}
|
|
FUN_14002e770((longlong)piVar15);
|
|
}
|
|
local_9d0 = PTR_DAT_140155008;
|
|
if (((puVar9 != (uint *)0x0) && (puVar9 != (uint *)PTR_DAT_140155008)) &&
|
|
(puVar9 + -2 != (uint *)0x0)) {
|
|
piVar16 = (int *)FUN_140030200(PTR_DAT_140155008,pppppppuVar13,pppppppuVar33,ppuVar35);
|
|
local_8f0 = piVar16;
|
|
FUN_14002e6e0(piVar16);
|
|
local_8e8 = 1;
|
|
puVar10 = puVar9 + -1;
|
|
*puVar10 = *puVar10 - 1;
|
|
if (*puVar10 == 0) {
|
|
FUN_1400302f0(puVar9 + -2);
|
|
}
|
|
FUN_14002e770((longlong)piVar16);
|
|
}
|
|
if (((puVar17 != (uint *)0x0) && (puVar17 != (uint *)PTR_DAT_140155008)) &&
|
|
(puVar17 + -2 != (uint *)0x0)) {
|
|
piVar16 = (int *)FUN_140030200(PTR_DAT_140155008,pppppppuVar13,pppppppuVar33,ppuVar35);
|
|
local_8c8 = piVar16;
|
|
FUN_14002e6e0(piVar16);
|
|
local_8c0 = 1;
|
|
puVar9 = puVar17 + -1;
|
|
*puVar9 = *puVar9 - 1;
|
|
if (*puVar9 == 0) {
|
|
FUN_1400302f0(puVar17 + -2);
|
|
}
|
|
FUN_14002e770((longlong)piVar16);
|
|
}
|
|
if (((ppppppuVar36 != (uint ******)0x0) && (ppppppuVar36 != (uint ******)PTR_DAT_140155008)) &&
|
|
(2 < *(int *)(ppppppuVar36 + -1))) {
|
|
local_778 = local_770;
|
|
uVar8 = 3;
|
|
ppsVar23 = &local_778;
|
|
ppppppuVar28 = ppppppuVar36;
|
|
FUN_14002a670((longlong *)ppsVar23,(LPCSTR)ppppppuVar36,3);
|
|
psVar3 = local_778;
|
|
FUN_140030200(ppsVar23,ppppppuVar28,uVar8,ppuVar35);
|
|
pppppppuVar13 = (uint *******)PTR_DAT_140155010;
|
|
local_a08 = (uint *******)PTR_DAT_140155010;
|
|
uVar4 = FUN_140030080(psVar3);
|
|
uVar29 = 0;
|
|
if ((pppppppuVar13 != (uint *******)0x0) && (pppppppuVar13 != (uint *******)PTR_DAT_140155010))
|
|
{
|
|
uVar29 = (ulonglong)*(uint *)((longlong)pppppppuVar13 + -8);
|
|
}
|
|
uVar5 = uVar4;
|
|
if ((((int)uVar4 <= (int)uVar29) && (uVar5 = 0, pppppppuVar13 != (uint *******)0x0)) &&
|
|
(pppppppuVar13 != (uint *******)PTR_DAT_140155010)) {
|
|
uVar5 = *(uint *)((longlong)pppppppuVar13 + -8);
|
|
}
|
|
uVar31 = 1;
|
|
if (1 < (int)uVar5) {
|
|
uVar31 = uVar5;
|
|
}
|
|
iVar7 = 0;
|
|
if ((pppppppuVar13 != (uint *******)0x0) &&
|
|
(iVar7 = 0, pppppppuVar13 != (uint *******)PTR_DAT_140155010)) {
|
|
iVar7 = *(int *)((longlong)pppppppuVar13 + -8);
|
|
}
|
|
if (iVar7 < (int)uVar31) {
|
|
if (pppppppuVar13 == (uint *******)0x0) {
|
|
pppppppuVar13 = (uint *******)PTR_DAT_140155010;
|
|
}
|
|
local_a08 = pppppppuVar13;
|
|
if ((int)uVar31 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14002f590();
|
|
}
|
|
if (uVar31 == 0) {
|
|
FUN_140003240((longlong *)&local_a08,uVar29,uVar8,ppuVar35);
|
|
}
|
|
else {
|
|
uVar5 = 0;
|
|
if ((pppppppuVar13 != (uint *******)0x0) &&
|
|
(pppppppuVar13 != (uint *******)PTR_DAT_140155010)) {
|
|
uVar5 = *(uint *)(pppppppuVar13 + -1);
|
|
}
|
|
if (uVar31 != uVar5) {
|
|
puVar17 = (uint *)FUN_140030280((longlong)(int)uVar31 * 2 + 10);
|
|
if (puVar17 != (uint *)0x0) {
|
|
*puVar17 = 0;
|
|
puVar17[1] = 1;
|
|
}
|
|
*puVar17 = uVar31;
|
|
uVar5 = 0;
|
|
if ((pppppppuVar13 != (uint *******)0x0) &&
|
|
(pppppppuVar13 != (uint *******)PTR_DAT_140155010)) {
|
|
uVar5 = *(uint *)(pppppppuVar13 + -1);
|
|
}
|
|
pppppppuVar14 = (uint *******)PTR_DAT_140155010;
|
|
if ((int)uVar31 < (int)uVar5) {
|
|
LAB_1400b209c:
|
|
if (pppppppuVar13 != (uint *******)0x0) {
|
|
pppppppuVar14 = pppppppuVar13;
|
|
}
|
|
}
|
|
else {
|
|
uVar31 = uVar6;
|
|
if (pppppppuVar13 != (uint *******)0x0) {
|
|
if (pppppppuVar13 != (uint *******)PTR_DAT_140155010) {
|
|
uVar31 = *(uint *)(pppppppuVar13 + -1);
|
|
}
|
|
goto LAB_1400b209c;
|
|
}
|
|
}
|
|
uVar29 = (ulonglong)uVar31;
|
|
FUN_1400300b0(puVar17 + 2,pppppppuVar14,uVar31);
|
|
FUN_140003240((longlong *)&local_a08,pppppppuVar14,uVar29,ppuVar35);
|
|
local_a08 = (uint *******)(puVar17 + 2);
|
|
}
|
|
}
|
|
}
|
|
FUN_140002ea0((longlong *)&local_a08);
|
|
pppppppuVar14 = local_a08;
|
|
pppppppuVar13 = local_a08;
|
|
if (local_a08 == (uint *******)0x0) {
|
|
pppppppuVar13 = (uint *******)PTR_DAT_140155010;
|
|
}
|
|
FUN_1400300b0(pppppppuVar13,psVar3,uVar4);
|
|
pppppppuVar13 = pppppppuVar14;
|
|
if (pppppppuVar14 == (uint *******)0x0) {
|
|
pppppppuVar13 = (uint *******)PTR_DAT_140155010;
|
|
}
|
|
uVar4 = FUN_140030080((short *)pppppppuVar13);
|
|
puVar22 = local_9e0;
|
|
uVar6 = 0;
|
|
if (0 < (int)uVar4) {
|
|
uVar6 = uVar4;
|
|
}
|
|
uVar4 = 0;
|
|
if ((pppppppuVar14 != (uint *******)0x0) &&
|
|
(uVar4 = 0, pppppppuVar14 != (uint *******)PTR_DAT_140155010)) {
|
|
uVar4 = *(uint *)(pppppppuVar14 + -1);
|
|
}
|
|
if (((int)uVar6 < (int)uVar4) || (uVar6 = 0, pppppppuVar14 == (uint *******)0x0)) {
|
|
LAB_1400b2130:
|
|
if (((pppppppuVar14 != (uint *******)PTR_DAT_140155010) &&
|
|
(pppppppuVar14 != (uint *******)0x0)) && (pppppppuVar14 + -1 != (uint *******)0x0)) {
|
|
*(uint *)(pppppppuVar14 + -1) = uVar6;
|
|
*(ushort *)((longlong)pppppppuVar14 + (longlong)(int)uVar6 * 2) = 0;
|
|
}
|
|
}
|
|
else if (pppppppuVar14 != (uint *******)PTR_DAT_140155010) {
|
|
uVar6 = *(uint *)(pppppppuVar14 + -1);
|
|
goto LAB_1400b2130;
|
|
}
|
|
pppppppuVar13 = pppppppuVar14;
|
|
if (pppppppuVar14 == (uint *******)0x0) {
|
|
pppppppuVar13 = (uint *******)PTR_DAT_140155010;
|
|
}
|
|
if (pppppppuVar13 == (uint *******)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14000b450(0x80004005);
|
|
}
|
|
uVar6 = 0;
|
|
pppppppuVar13 = pppppppuVar14;
|
|
if (pppppppuVar14 == (uint *******)0x0) {
|
|
pppppppuVar13 = (uint *******)PTR_DAT_140155010;
|
|
}
|
|
uVar1 = *(ushort *)pppppppuVar13;
|
|
while (uVar1 != 0) {
|
|
uVar6 = uVar6 * 0x21 + (uint)uVar1;
|
|
pppppppuVar13 = (uint *******)((longlong)pppppppuVar13 + 2);
|
|
uVar1 = *(ushort *)pppppppuVar13;
|
|
}
|
|
uVar4 = *(uint *)(local_9e0 + 0x1a);
|
|
pppppppuVar34 = (uint *******)PTR_DAT_140155010;
|
|
if (local_9e0[0x16] != 0) {
|
|
plVar12 = *(longlong **)(local_9e0[0x16] + ((ulonglong)uVar6 % (ulonglong)uVar4) * 8);
|
|
pppppppuVar33 = (uint *******)PTR_DAT_140155010;
|
|
while( true ) {
|
|
PTR_DAT_140155010 = (undefined *)pppppppuVar33;
|
|
if ((plVar12 == (longlong *)0x0) ||
|
|
(pppppppuVar34 = pppppppuVar33,
|
|
(uint)((ulonglong)uVar6 % (ulonglong)uVar4) !=
|
|
*(uint *)(plVar12 + 4) % *(uint *)(puVar22 + 0x1a))) goto LAB_1400b2214;
|
|
pppppppuVar13 = pppppppuVar14;
|
|
if (pppppppuVar14 == (uint *******)0x0) {
|
|
pppppppuVar13 = pppppppuVar33;
|
|
}
|
|
pppppppuVar24 = (uint *******)*plVar12;
|
|
if ((uint *******)*plVar12 == (uint *******)0x0) {
|
|
pppppppuVar24 = pppppppuVar33;
|
|
}
|
|
iVar7 = FUN_1400300c0((ushort *)pppppppuVar24,(longlong)pppppppuVar13);
|
|
pppppppuVar34 = pppppppuVar33;
|
|
if (iVar7 == 0) break;
|
|
plVar12 = (longlong *)plVar12[2];
|
|
pppppppuVar33 = (uint *******)PTR_DAT_140155010;
|
|
}
|
|
if (plVar12 != (longlong *)0x0) goto LAB_1400b2228;
|
|
}
|
|
LAB_1400b2214:
|
|
pppppppuVar13 = (uint *******)&local_a08;
|
|
pppppppuVar24 = (uint *******)(puVar22 + 0x15);
|
|
plVar12 = FUN_1400b0650((char *)pppppppuVar24,(longlong *)pppppppuVar13);
|
|
*(undefined1 *)plVar12 = 0;
|
|
pppppppuVar33 = pppppppuVar34;
|
|
LAB_1400b2228:
|
|
if (((pppppppuVar14 != (uint *******)0x0) && (pppppppuVar14 != (uint *******)PTR_DAT_140155010))
|
|
&& (pppppppuVar14 + -1 != (uint *******)0x0)) {
|
|
piVar16 = (int *)FUN_140030200(pppppppuVar24,pppppppuVar13,pppppppuVar33,ppuVar35);
|
|
local_8d8 = piVar16;
|
|
FUN_14002e6e0(piVar16);
|
|
local_8d0 = 1;
|
|
puVar17 = (uint *)((longlong)pppppppuVar14 + -4);
|
|
*puVar17 = *puVar17 - 1;
|
|
if (*puVar17 == 0) {
|
|
FUN_1400302f0(pppppppuVar14 + -1);
|
|
}
|
|
FUN_14002e770((longlong)piVar16);
|
|
}
|
|
if (local_778 != local_770) {
|
|
free(local_778);
|
|
}
|
|
}
|
|
if (((ppppppuVar36 != (uint ******)0x0) && (ppppppuVar36 != (uint ******)PTR_DAT_140155008)) &&
|
|
(ppppppuVar36 + -1 != (uint ******)0x0)) {
|
|
piVar15 = (int *)FUN_140030200(PTR_DAT_140155008,pppppppuVar13,pppppppuVar33,ppuVar35);
|
|
local_910 = piVar15;
|
|
FUN_14002e6e0(piVar15);
|
|
local_908 = 1;
|
|
piVar16 = (int *)((longlong)ppppppuVar36 + -4);
|
|
*piVar16 = *piVar16 + -1;
|
|
if (*piVar16 == 0) {
|
|
FUN_1400302f0(ppppppuVar36 + -1);
|
|
}
|
|
FUN_14002e770((longlong)piVar15);
|
|
}
|
|
LAB_1400b23ed:
|
|
if (3 < *(int *)(param_2 + 0x492)) {
|
|
return;
|
|
}
|
|
param_2[0x492] = (undefined *)0x4;
|
|
return;
|
|
}
|
|
|