add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
765
decomp/AgentManager_Release_x64/full/functions/0x1400cc7b0.c
Normal file
765
decomp/AgentManager_Release_x64/full/functions/0x1400cc7b0.c
Normal file
|
|
@ -0,0 +1,765 @@
|
|||
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
||||
* Ghidra 12.1.2 decompiler output for 0x1400cc7b0 FUN_1400cc7b0
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
/* WARNING: Type propagation algorithm not settling */
|
||||
|
||||
void FUN_1400cc7b0(uint *******param_1,longlong param_2,undefined8 param_3,uint ******param_4)
|
||||
|
||||
{
|
||||
uint ***********pppppppppppuVar1;
|
||||
char cVar2;
|
||||
uint ***********pppppppppppuVar3;
|
||||
char *pcVar4;
|
||||
uint uVar5;
|
||||
uint uVar6;
|
||||
uint uVar7;
|
||||
uint uVar8;
|
||||
int iVar9;
|
||||
undefined8 uVar10;
|
||||
int *piVar11;
|
||||
undefined8 *puVar12;
|
||||
void *_Src;
|
||||
undefined8 *puVar13;
|
||||
uint ************ppppppppppppuVar14;
|
||||
int *piVar15;
|
||||
uint *puVar16;
|
||||
uint *************pppppppppppppuVar17;
|
||||
longlong *plVar18;
|
||||
uint *************pppppppppppppuVar19;
|
||||
uint ***********pppppppppppuVar20;
|
||||
char **ppcVar21;
|
||||
uint *************pppppppppppppuVar22;
|
||||
uint *************pppppppppppppuVar23;
|
||||
uint *************pppppppppppppuVar24;
|
||||
uint *************pppppppppppppuVar25;
|
||||
undefined8 uVar26;
|
||||
LPCWSTR pWVar27;
|
||||
uint *************pppppppppppppuVar28;
|
||||
uint *************pppppppppppppuVar29;
|
||||
longlong lVar30;
|
||||
size_t _Size;
|
||||
uint uVar31;
|
||||
uint uVar32;
|
||||
ulonglong uVar33;
|
||||
double dVar34;
|
||||
undefined1 auStack_218 [32];
|
||||
uint ***********local_1f8;
|
||||
uint *************local_1f0;
|
||||
uint *************local_1e8;
|
||||
uint *************local_1e0;
|
||||
uint *************local_1d8;
|
||||
undefined8 local_1d0;
|
||||
undefined **local_1c8;
|
||||
undefined4 local_1c0;
|
||||
undefined2 local_1bc;
|
||||
int local_1b8;
|
||||
longlong local_1b0;
|
||||
longlong local_1a8;
|
||||
longlong *local_1a0;
|
||||
int *local_198;
|
||||
undefined1 local_190;
|
||||
int *local_188;
|
||||
undefined1 local_180;
|
||||
uint ***********local_178;
|
||||
uint *************local_170;
|
||||
uint ***********local_168;
|
||||
uint *************local_160;
|
||||
int *local_158;
|
||||
undefined1 local_150;
|
||||
int *local_148;
|
||||
undefined1 local_140;
|
||||
int *local_138;
|
||||
undefined1 local_130;
|
||||
int *local_128;
|
||||
undefined1 local_120;
|
||||
undefined8 local_118;
|
||||
uint ************local_110;
|
||||
uint *************local_108;
|
||||
int *local_100;
|
||||
undefined1 local_f8;
|
||||
char *local_e8;
|
||||
char local_e0 [136];
|
||||
ulonglong local_58;
|
||||
|
||||
local_118 = 0xfffffffffffffffe;
|
||||
local_58 = DAT_14016f5a0 ^ (ulonglong)auStack_218;
|
||||
plVar18 = (longlong *)(param_2 + 0x10);
|
||||
pppppppppppppuVar24 = (uint *************)0x0;
|
||||
uVar31 = 0;
|
||||
local_1d8 = (uint *************)param_1;
|
||||
local_1b0 = param_2;
|
||||
local_1a0 = plVar18;
|
||||
do {
|
||||
local_1c8 = Proud::AddrPort::vftable;
|
||||
uVar32 = 0;
|
||||
local_1b8 = 0;
|
||||
local_1d0 = 0;
|
||||
local_1c0 = DAT_14016f3d0;
|
||||
local_1bc = DAT_14016f3d4;
|
||||
pppppppppppppuVar28 = pppppppppppppuVar24;
|
||||
if ((undefined8 *)*plVar18 != (undefined8 *)0x0) {
|
||||
pppppppppppppuVar28 = *(uint **************)*plVar18;
|
||||
}
|
||||
puVar12 = &local_1d0;
|
||||
uVar26 = 0;
|
||||
uVar10 = FUN_140043710((longlong)pppppppppppppuVar28,0,(undefined4 *)puVar12);
|
||||
if ((char)uVar10 == '\0') {
|
||||
return;
|
||||
}
|
||||
*(undefined1 *)(param_2 + 0xc0) = 0;
|
||||
if ((local_1d0._4_4_ != 0) || (local_1b8 == 0)) {
|
||||
*(undefined4 *)(param_2 + 0x18) = 3;
|
||||
local_1a8 = 0;
|
||||
FUN_140040510(plVar18,&local_1a8);
|
||||
return;
|
||||
}
|
||||
FUN_14003e7c0(pppppppppppppuVar28,uVar26,puVar12,param_4);
|
||||
local_1f8 = (uint ***********)PTR_DAT_14016f008;
|
||||
local_110 = &local_1f8;
|
||||
uVar8 = local_1b8 + 2U;
|
||||
if ((int)(local_1b8 + 2U) < 1) {
|
||||
uVar8 = uVar32;
|
||||
}
|
||||
uVar5 = 1;
|
||||
if (1 < (int)uVar8) {
|
||||
uVar5 = uVar8;
|
||||
}
|
||||
pppppppppppppuVar28 = (uint *************)local_1f8;
|
||||
if (0 < (int)uVar5) {
|
||||
if ((int)uVar5 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
if (uVar5 == 0) {
|
||||
pppppppppppppuVar28 = (uint *************)local_1f8;
|
||||
}
|
||||
else {
|
||||
puVar16 = (uint *)FUN_14003e840((longlong)(int)uVar5 + 9);
|
||||
if (puVar16 != (uint *)0x0) {
|
||||
*puVar16 = 0;
|
||||
puVar16[1] = 1;
|
||||
}
|
||||
*puVar16 = uVar5;
|
||||
uVar8 = uVar32;
|
||||
if ((local_1f8 != (uint ***********)0x0) &&
|
||||
(local_1f8 != (uint ***********)PTR_DAT_14016f008)) {
|
||||
uVar8 = *(uint *)(local_1f8 + -1);
|
||||
}
|
||||
pppppppppppuVar20 = (uint ***********)PTR_DAT_14016f008;
|
||||
if ((int)uVar5 < (int)uVar8) {
|
||||
LAB_1400cc927:
|
||||
if (local_1f8 != (uint ***********)0x0) {
|
||||
pppppppppppuVar20 = local_1f8;
|
||||
}
|
||||
}
|
||||
else {
|
||||
uVar5 = uVar32;
|
||||
if (local_1f8 != (uint ***********)0x0) {
|
||||
if (local_1f8 != (uint ***********)PTR_DAT_14016f008) {
|
||||
uVar5 = *(uint *)(local_1f8 + -1);
|
||||
}
|
||||
goto LAB_1400cc927;
|
||||
}
|
||||
}
|
||||
pppppppppppppuVar28 = (uint *************)(puVar16 + 2);
|
||||
uVar33 = (ulonglong)uVar5;
|
||||
pppppppppppppuVar29 = pppppppppppppuVar28;
|
||||
param_4 = (uint ******)pppppppppppuVar20;
|
||||
FUN_14003e710(pppppppppppppuVar28,pppppppppppuVar20,uVar5);
|
||||
pppppppppppuVar3 = local_1f8;
|
||||
if (((local_1f8 != (uint ***********)0x0) &&
|
||||
(local_1f8 != (uint ***********)PTR_DAT_14016f008)) &&
|
||||
(pppppppppppuVar1 = local_1f8 + -1, pppppppppppuVar1 != (uint ***********)0x0)) {
|
||||
piVar11 = (int *)FUN_14003e7c0(pppppppppppppuVar29,pppppppppppuVar20,uVar33,param_4);
|
||||
local_138 = piVar11;
|
||||
FUN_14003d040(piVar11);
|
||||
local_130 = 1;
|
||||
piVar15 = (int *)((longlong)pppppppppppuVar3 + -4);
|
||||
*piVar15 = *piVar15 + -1;
|
||||
if (*piVar15 == 0) {
|
||||
FUN_14003e8b0(pppppppppppuVar1);
|
||||
}
|
||||
FUN_14003d0d0((longlong)piVar11);
|
||||
local_130 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
local_1f8 = (uint ***********)pppppppppppppuVar28;
|
||||
pppppppppppuVar20 = (uint ***********)PTR_DAT_14016f008;
|
||||
if (((local_1f8 == (uint ***********)0x0) ||
|
||||
(pppppppppppuVar20 = local_1f8, local_1f8 == (uint ***********)PTR_DAT_14016f008)) ||
|
||||
(local_1f8 + -1 == (uint ***********)0x0)) {
|
||||
local_1f8 = pppppppppppuVar20;
|
||||
puVar12 = (undefined8 *)FUN_14003e840(9);
|
||||
*puVar12 = 0;
|
||||
*(undefined1 *)(puVar12 + 1) = 0;
|
||||
if (puVar12 != (undefined8 *)0x0) {
|
||||
*(undefined4 *)puVar12 = 0;
|
||||
*(undefined4 *)((longlong)puVar12 + 4) = 1;
|
||||
}
|
||||
*(undefined1 *)(puVar12 + 1) = 0;
|
||||
pppppppppppppuVar28 = (uint *************)(puVar12 + 1);
|
||||
}
|
||||
else {
|
||||
pppppppppppppuVar28 = (uint *************)local_1f8;
|
||||
if (1 < (int)*(uint *)((longlong)local_1f8 + -4)) {
|
||||
uVar8 = *(uint *)(local_1f8 + -1);
|
||||
if ((int)uVar8 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
puVar16 = (uint *)FUN_14003e840((longlong)(int)uVar8 + 9);
|
||||
if (puVar16 != (uint *)0x0) {
|
||||
*puVar16 = 0;
|
||||
puVar16[1] = 1;
|
||||
}
|
||||
uVar8 = uVar31;
|
||||
if ((local_1f8 != (uint ***********)0x0) &&
|
||||
(local_1f8 != (uint ***********)PTR_DAT_14016f008)) {
|
||||
uVar8 = *(uint *)(local_1f8 + -1);
|
||||
}
|
||||
*puVar16 = uVar8;
|
||||
pppppppppppuVar20 = (uint ***********)PTR_DAT_14016f008;
|
||||
pppppppppppppuVar29 = pppppppppppppuVar24;
|
||||
if ((local_1f8 != (uint ***********)0x0) &&
|
||||
(pppppppppppuVar20 = local_1f8, pppppppppppppuVar29 = (uint *************)0x0,
|
||||
local_1f8 != (uint ***********)PTR_DAT_14016f008)) {
|
||||
pppppppppppppuVar29 = (uint *************)(ulonglong)*(uint *)(local_1f8 + -1);
|
||||
}
|
||||
pppppppppppppuVar28 = (uint *************)(puVar16 + 2);
|
||||
pppppppppppppuVar19 = pppppppppppppuVar28;
|
||||
FUN_14003e710(pppppppppppppuVar28,pppppppppppuVar20,(int)pppppppppppppuVar29);
|
||||
pppppppppppuVar3 = local_1f8;
|
||||
if (((local_1f8 != (uint ***********)0x0) &&
|
||||
(local_1f8 != (uint ***********)PTR_DAT_14016f008)) &&
|
||||
(pppppppppppppuVar25 = (uint *************)(local_1f8 + -1),
|
||||
pppppppppppppuVar25 != (uint *************)0x0)) {
|
||||
piVar15 = (int *)FUN_14003e7c0(pppppppppppppuVar19,pppppppppppuVar20,pppppppppppppuVar29,
|
||||
param_4);
|
||||
local_198 = piVar15;
|
||||
FUN_14003d040(piVar15);
|
||||
local_190 = 1;
|
||||
puVar16 = (uint *)((longlong)pppppppppppuVar3 + -4);
|
||||
*puVar16 = *puVar16 - 1;
|
||||
if (*puVar16 == 0) {
|
||||
FUN_14003e8b0(pppppppppppppuVar25);
|
||||
}
|
||||
FUN_14003d0d0((longlong)piVar15);
|
||||
local_190 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
local_1f8 = (uint ***********)pppppppppppppuVar28;
|
||||
pppppppppppuVar20 = local_1f8;
|
||||
if (local_1f8 == (uint ***********)0x0) {
|
||||
pppppppppppuVar20 = (uint ***********)PTR_DAT_14016f008;
|
||||
}
|
||||
pppppppppppppuVar28 = pppppppppppppuVar24;
|
||||
if ((undefined8 *)*plVar18 != (undefined8 *)0x0) {
|
||||
pppppppppppppuVar28 = *(uint **************)*plVar18;
|
||||
}
|
||||
_Size = (size_t)local_1b8;
|
||||
local_108 = (uint *************)pppppppppppuVar20;
|
||||
_Src = (void *)FUN_140043cd0((longlong)pppppppppppppuVar28);
|
||||
memcpy(pppppppppppuVar20,_Src,_Size);
|
||||
*(undefined1 *)((longlong)local_1b8 + (longlong)pppppppppppuVar20) = 0;
|
||||
pppppppppppuVar20 = local_1f8;
|
||||
if (local_1f8 == (uint ***********)0x0) {
|
||||
pppppppppppuVar20 = (uint ***********)PTR_DAT_14016f008;
|
||||
}
|
||||
uVar5 = FUN_14003e6e0((char *)pppppppppppuVar20);
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
uVar8 = uVar31;
|
||||
if (0 < (int)uVar5) {
|
||||
uVar8 = uVar5;
|
||||
}
|
||||
pppppppppppppuVar29 = pppppppppppppuVar24;
|
||||
if ((local_1f8 != (uint ***********)0x0) &&
|
||||
(pppppppppppppuVar29 = (uint *************)0x0,
|
||||
local_1f8 != (uint ***********)PTR_DAT_14016f008)) {
|
||||
pppppppppppppuVar29 = (uint *************)(ulonglong)*(uint *)(local_1f8 + -1);
|
||||
}
|
||||
if (((int)uVar8 < (int)pppppppppppppuVar29) ||
|
||||
(uVar8 = uVar31, local_1f8 == (uint ***********)0x0)) {
|
||||
LAB_1400ccb4a:
|
||||
if (((local_1f8 != (uint ***********)PTR_DAT_14016f008) &&
|
||||
(local_1f8 != (uint ***********)0x0)) &&
|
||||
(pppppppppppppuVar29 = (uint *************)(local_1f8 + -1),
|
||||
pppppppppppppuVar29 != (uint *************)0x0)) {
|
||||
*(uint *)pppppppppppppuVar29 = uVar8;
|
||||
*(undefined1 *)((longlong)(int)uVar8 + 8 + (longlong)pppppppppppppuVar29) = 0;
|
||||
}
|
||||
}
|
||||
else if (local_1f8 != (uint ***********)PTR_DAT_14016f008) {
|
||||
uVar8 = *(uint *)(local_1f8 + -1);
|
||||
goto LAB_1400ccb4a;
|
||||
}
|
||||
puVar12 = (undefined8 *)0x2540;
|
||||
puVar13 = operator_new(0x2540);
|
||||
ppppppppppppuVar14 = (uint ************)pppppppppppppuVar24;
|
||||
local_1e8 = (uint *************)puVar13;
|
||||
if (puVar13 != (undefined8 *)0x0) {
|
||||
ppppppppppppuVar14 =
|
||||
(uint ************)FUN_1400ca5f0(puVar13,pppppppppppppuVar29,pppppppppppppuVar28,param_4)
|
||||
;
|
||||
puVar12 = puVar13;
|
||||
}
|
||||
if (ppppppppppppuVar14 == (uint ************)0x0) {
|
||||
local_1e8 = (uint *************)0x0;
|
||||
}
|
||||
else {
|
||||
puVar12 = (undefined8 *)0x10;
|
||||
local_1e8 = (uint *************)FUN_14003e840(0x10);
|
||||
local_1e8[1] = (uint ************)0x1;
|
||||
*local_1e8 = ppppppppppppuVar14;
|
||||
}
|
||||
pppppppppppppuVar19 = local_1e8;
|
||||
FUN_14003e7c0(puVar12,pppppppppppppuVar29,pppppppppppppuVar28,param_4);
|
||||
local_1e0 = (uint *************)PTR_DAT_14016f008;
|
||||
if (PTR_DAT_14016f008 == (undefined *)0x0) {
|
||||
local_1e0 = pppppppppppppuVar24;
|
||||
}
|
||||
if (local_1f8 != (uint ***********)PTR_DAT_14016f008) {
|
||||
piVar15 = (int *)FUN_14003e7c0(puVar12,pppppppppppppuVar29,pppppppppppppuVar28,param_4);
|
||||
local_148 = piVar15;
|
||||
FUN_14003d040(piVar15);
|
||||
local_140 = 1;
|
||||
FUN_140006e80((longlong *)&local_1e0);
|
||||
local_1e0 = (uint *************)local_1f8;
|
||||
if (((local_1f8 != (uint ***********)PTR_DAT_14016f008) &&
|
||||
(local_1f8 != (uint ***********)0x0)) && (local_1f8 != (uint ***********)0x8)) {
|
||||
*(uint *)((longlong)local_1f8 + -4) = *(uint *)((longlong)local_1f8 + -4) + 1;
|
||||
}
|
||||
FUN_14003d0d0((longlong)piVar15);
|
||||
local_140 = 0;
|
||||
}
|
||||
ppppppppppppuVar14 = (uint ************)pppppppppppppuVar24;
|
||||
if (pppppppppppppuVar19 != (uint *************)0x0) {
|
||||
ppppppppppppuVar14 = *pppppppppppppuVar19;
|
||||
}
|
||||
pppppppppppppuVar29 = (uint *************)&local_1e0;
|
||||
uVar10 = FUN_1400ca130((undefined *)ppppppppppppuVar14,(longlong *)pppppppppppppuVar29,
|
||||
pppppppppppppuVar28,(ulonglong)param_4);
|
||||
if (((char)uVar10 != '\0') && (param_1[0xe] < (uint ************)0x14)) {
|
||||
ppppppppppppuVar14 = (uint ************)pppppppppppppuVar24;
|
||||
if (pppppppppppppuVar19 != (uint *************)0x0) {
|
||||
ppppppppppppuVar14 = *pppppppppppppuVar19;
|
||||
}
|
||||
local_e8 = local_e0;
|
||||
pWVar27 = (LPCWSTR)((longlong)ppppppppppppuVar14 + 0x52);
|
||||
uVar10 = 3;
|
||||
ppcVar21 = &local_e8;
|
||||
FUN_14003d280((longlong *)ppcVar21,pWVar27,3);
|
||||
pcVar4 = local_e8;
|
||||
FUN_14003e7c0(ppcVar21,pWVar27,uVar10,param_4);
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
local_1f0 = (uint *************)PTR_DAT_14016f008;
|
||||
uVar5 = FUN_14003e6e0(pcVar4);
|
||||
uVar8 = uVar31;
|
||||
if ((pppppppppppppuVar28 != (uint *************)0x0) &&
|
||||
(pppppppppppppuVar28 != (uint *************)PTR_DAT_14016f008)) {
|
||||
uVar8 = *(uint *)((longlong)pppppppppppppuVar28 + -8);
|
||||
}
|
||||
uVar6 = uVar5;
|
||||
if ((((int)uVar5 <= (int)uVar8) &&
|
||||
(uVar6 = uVar32, pppppppppppppuVar28 != (uint *************)0x0)) &&
|
||||
(pppppppppppppuVar28 != (uint *************)PTR_DAT_14016f008)) {
|
||||
uVar6 = *(uint *)((longlong)pppppppppppppuVar28 + -8);
|
||||
}
|
||||
uVar8 = 1;
|
||||
if (1 < (int)uVar6) {
|
||||
uVar8 = uVar6;
|
||||
}
|
||||
uVar7 = 0;
|
||||
uVar6 = uVar7;
|
||||
if ((pppppppppppppuVar28 != (uint *************)0x0) &&
|
||||
(pppppppppppppuVar28 != (uint *************)PTR_DAT_14016f008)) {
|
||||
uVar6 = *(uint *)((longlong)pppppppppppppuVar28 + -8);
|
||||
}
|
||||
if ((int)uVar6 < (int)uVar8) {
|
||||
if (pppppppppppppuVar28 == (uint *************)0x0) {
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
}
|
||||
local_1f0 = pppppppppppppuVar28;
|
||||
if ((int)uVar8 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
if (uVar8 == 0) {
|
||||
FUN_140006e80((longlong *)&local_1f0);
|
||||
pppppppppppppuVar28 = local_1f0;
|
||||
}
|
||||
else {
|
||||
uVar6 = uVar7;
|
||||
if ((pppppppppppppuVar28 != (uint *************)0x0) &&
|
||||
(pppppppppppppuVar28 != (uint *************)PTR_DAT_14016f008)) {
|
||||
uVar6 = *(uint *)(pppppppppppppuVar28 + -1);
|
||||
}
|
||||
if (uVar8 != uVar6) {
|
||||
puVar16 = (uint *)FUN_14003e840((longlong)(int)uVar8 + 9);
|
||||
if (puVar16 != (uint *)0x0) {
|
||||
*puVar16 = 0;
|
||||
puVar16[1] = 1;
|
||||
}
|
||||
*puVar16 = uVar8;
|
||||
uVar6 = uVar7;
|
||||
if ((pppppppppppppuVar28 != (uint *************)0x0) &&
|
||||
(pppppppppppppuVar28 != (uint *************)PTR_DAT_14016f008)) {
|
||||
uVar6 = *(uint *)(pppppppppppppuVar28 + -1);
|
||||
}
|
||||
pppppppppppppuVar29 = (uint *************)PTR_DAT_14016f008;
|
||||
if ((int)uVar8 < (int)uVar6) {
|
||||
LAB_1400ccd72:
|
||||
if (pppppppppppppuVar28 != (uint *************)0x0) {
|
||||
pppppppppppppuVar29 = pppppppppppppuVar28;
|
||||
}
|
||||
}
|
||||
else {
|
||||
uVar8 = uVar32;
|
||||
if (pppppppppppppuVar28 != (uint *************)0x0) {
|
||||
if (pppppppppppppuVar28 != (uint *************)PTR_DAT_14016f008) {
|
||||
uVar8 = *(uint *)(pppppppppppppuVar28 + -1);
|
||||
}
|
||||
goto LAB_1400ccd72;
|
||||
}
|
||||
}
|
||||
pppppppppppppuVar28 = (uint *************)(puVar16 + 2);
|
||||
FUN_14003e710(pppppppppppppuVar28,pppppppppppppuVar29,uVar8);
|
||||
FUN_140006e80((longlong *)&local_1f0);
|
||||
local_1f0 = pppppppppppppuVar28;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (((pppppppppppppuVar28 == (uint *************)0x0) ||
|
||||
(pppppppppppppuVar28 == (uint *************)PTR_DAT_14016f008)) ||
|
||||
(pppppppppppppuVar29 = pppppppppppppuVar28 + -1,
|
||||
pppppppppppppuVar29 == (uint *************)0x0)) {
|
||||
puVar12 = (undefined8 *)FUN_14003e840(9);
|
||||
*puVar12 = 0;
|
||||
*(undefined1 *)(puVar12 + 1) = 0;
|
||||
if (puVar12 != (undefined8 *)0x0) {
|
||||
*(undefined4 *)puVar12 = 0;
|
||||
*(undefined4 *)((longlong)puVar12 + 4) = 1;
|
||||
}
|
||||
pppppppppppppuVar25 = (uint *************)(puVar12 + 1);
|
||||
*(undefined1 *)pppppppppppppuVar25 = 0;
|
||||
pppppppppppppuVar23 = pppppppppppppuVar25;
|
||||
}
|
||||
else {
|
||||
pppppppppppppuVar25 = pppppppppppppuVar28;
|
||||
pppppppppppppuVar23 = local_1f0;
|
||||
if (1 < (int)*(uint *)((longlong)pppppppppppppuVar28 + -4)) {
|
||||
if ((int)*(uint *)pppppppppppppuVar29 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
puVar16 = (uint *)FUN_14003e840((longlong)(int)*(uint *)pppppppppppppuVar29 + 9);
|
||||
if (puVar16 != (uint *)0x0) {
|
||||
*puVar16 = 0;
|
||||
puVar16[1] = 1;
|
||||
}
|
||||
uVar32 = uVar7;
|
||||
if (pppppppppppppuVar28 != (uint *************)PTR_DAT_14016f008) {
|
||||
uVar32 = *(uint *)pppppppppppppuVar29;
|
||||
}
|
||||
*puVar16 = uVar32;
|
||||
pppppppppppppuVar17 = pppppppppppppuVar24;
|
||||
if (pppppppppppppuVar28 != (uint *************)PTR_DAT_14016f008) {
|
||||
pppppppppppppuVar17 = (uint *************)(ulonglong)*(uint *)pppppppppppppuVar29;
|
||||
}
|
||||
pppppppppppppuVar25 = (uint *************)(puVar16 + 2);
|
||||
pppppppppppppuVar22 = pppppppppppppuVar25;
|
||||
FUN_14003e710(pppppppppppppuVar25,pppppppppppppuVar28,(int)pppppppppppppuVar17);
|
||||
param_1 = (uint *******)local_1d8;
|
||||
pppppppppppppuVar23 = pppppppppppppuVar25;
|
||||
if ((pppppppppppppuVar28 != (uint *************)PTR_DAT_14016f008) &&
|
||||
(pppppppppppppuVar29 != (uint *************)0x0)) {
|
||||
piVar15 = (int *)FUN_14003e7c0(pppppppppppppuVar22,PTR_DAT_14016f008,pppppppppppppuVar17
|
||||
,param_4);
|
||||
local_158 = piVar15;
|
||||
FUN_14003d040(piVar15);
|
||||
local_150 = 1;
|
||||
puVar16 = (uint *)((longlong)pppppppppppppuVar28 + -4);
|
||||
*puVar16 = *puVar16 - 1;
|
||||
if (*puVar16 == 0) {
|
||||
FUN_14003e8b0(pppppppppppppuVar29);
|
||||
}
|
||||
FUN_14003d0d0((longlong)piVar15);
|
||||
local_150 = 0;
|
||||
param_1 = (uint *******)local_1d8;
|
||||
}
|
||||
}
|
||||
}
|
||||
local_1f0 = pppppppppppppuVar23;
|
||||
pppppppppppppuVar28 = pppppppppppppuVar25;
|
||||
if (pppppppppppppuVar25 == (uint *************)0x0) {
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
}
|
||||
FUN_14003e710(pppppppppppppuVar28,pcVar4,uVar5);
|
||||
pppppppppppppuVar28 = pppppppppppppuVar25;
|
||||
if (pppppppppppppuVar25 == (uint *************)0x0) {
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
}
|
||||
uVar8 = FUN_14003e6e0((char *)pppppppppppppuVar28);
|
||||
uVar32 = uVar31;
|
||||
if (0 < (int)uVar8) {
|
||||
uVar32 = uVar8;
|
||||
}
|
||||
uVar8 = uVar7;
|
||||
if ((pppppppppppppuVar25 != (uint *************)0x0) &&
|
||||
(pppppppppppppuVar25 != (uint *************)PTR_DAT_14016f008)) {
|
||||
uVar8 = *(uint *)(pppppppppppppuVar25 + -1);
|
||||
}
|
||||
if (((int)uVar32 < (int)uVar8) ||
|
||||
(uVar32 = uVar7, pppppppppppppuVar25 == (uint *************)0x0)) {
|
||||
LAB_1400ccefd:
|
||||
if (((pppppppppppppuVar25 != (uint *************)PTR_DAT_14016f008) &&
|
||||
(pppppppppppppuVar25 != (uint *************)0x0)) &&
|
||||
(pppppppppppppuVar28 = pppppppppppppuVar25 + -1,
|
||||
pppppppppppppuVar28 != (uint *************)0x0)) {
|
||||
*(uint *)pppppppppppppuVar28 = uVar32;
|
||||
*(undefined1 *)((longlong)(int)uVar32 + 8 + (longlong)pppppppppppppuVar28) = 0;
|
||||
}
|
||||
}
|
||||
else if (pppppppppppppuVar25 != (uint *************)PTR_DAT_14016f008) {
|
||||
uVar32 = *(uint *)(pppppppppppppuVar25 + -1);
|
||||
goto LAB_1400ccefd;
|
||||
}
|
||||
if (local_e8 != local_e0) {
|
||||
free(local_e8);
|
||||
}
|
||||
pppppppppppppuVar23 = (uint *************)(param_1 + 10);
|
||||
pppppppppppppuVar28 = pppppppppppppuVar25;
|
||||
if (pppppppppppppuVar25 == (uint *************)0x0) {
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
}
|
||||
local_170 = pppppppppppppuVar23;
|
||||
if (pppppppppppppuVar28 == (uint *************)0x0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_1400050d0(0x80004005);
|
||||
}
|
||||
pppppppppppppuVar28 = pppppppppppppuVar25;
|
||||
if (pppppppppppppuVar25 == (uint *************)0x0) {
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
}
|
||||
cVar2 = *(char *)pppppppppppppuVar28;
|
||||
pppppppppppppuVar17 = pppppppppppppuVar24;
|
||||
while (cVar2 != '\0') {
|
||||
pppppppppppppuVar17 =
|
||||
(uint *************)(ulonglong)(uint)((int)pppppppppppppuVar17 * 0x21 + (int)cVar2);
|
||||
pppppppppppppuVar28 = (uint *************)((longlong)pppppppppppppuVar28 + 1);
|
||||
cVar2 = *(char *)pppppppppppppuVar28;
|
||||
}
|
||||
uVar32 = *(uint *)(param_1 + 0xf);
|
||||
if ((uint ************)param_1[0xb] != (uint ************)0x0) {
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
for (pppppppppppuVar20 =
|
||||
(uint ***********)param_1[0xb][(ulonglong)pppppppppppppuVar17 % (ulonglong)uVar32]
|
||||
; (PTR_DAT_14016f008 = (undefined *)pppppppppppppuVar28,
|
||||
pppppppppppuVar20 != (uint ***********)0x0 &&
|
||||
((uint)((ulonglong)pppppppppppppuVar17 % (ulonglong)uVar32) ==
|
||||
*(uint *)(pppppppppppuVar20 + 4) % *(uint *)(param_1 + 0xf)));
|
||||
pppppppppppuVar20 = (uint ***********)pppppppppppuVar20[2]) {
|
||||
pppppppppppppuVar29 = pppppppppppppuVar25;
|
||||
if (pppppppppppppuVar25 == (uint *************)0x0) {
|
||||
pppppppppppppuVar29 = pppppppppppppuVar28;
|
||||
}
|
||||
pppppppppppppuVar22 = (uint *************)*pppppppppppuVar20;
|
||||
if ((uint *************)*pppppppppppuVar20 == (uint *************)0x0) {
|
||||
pppppppppppppuVar22 = pppppppppppppuVar28;
|
||||
}
|
||||
iVar9 = FUN_14003e740((byte *)pppppppppppppuVar22,(longlong)pppppppppppppuVar29);
|
||||
if (iVar9 == 0) {
|
||||
local_178 = pppppppppppuVar20;
|
||||
if (pppppppppppuVar20 != (uint ***********)0x0) goto LAB_1400cd132;
|
||||
goto LAB_1400ccffb;
|
||||
}
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
}
|
||||
}
|
||||
local_178 = (uint ***********)0x0;
|
||||
LAB_1400ccffb:
|
||||
pppppppppppppuVar28 = pppppppppppppuVar25;
|
||||
if (pppppppppppppuVar25 == (uint *************)0x0) {
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
}
|
||||
local_160 = pppppppppppppuVar23;
|
||||
if (pppppppppppppuVar28 == (uint *************)0x0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_1400050d0(0x80004005);
|
||||
}
|
||||
pppppppppppppuVar28 = pppppppppppppuVar25;
|
||||
if (pppppppppppppuVar25 == (uint *************)0x0) {
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
}
|
||||
cVar2 = *(char *)pppppppppppppuVar28;
|
||||
pppppppppppppuVar17 = pppppppppppppuVar24;
|
||||
while (cVar2 != '\0') {
|
||||
pppppppppppppuVar17 =
|
||||
(uint *************)(ulonglong)(uint)((int)pppppppppppppuVar17 * 0x21 + (int)cVar2);
|
||||
pppppppppppppuVar28 = (uint *************)((longlong)pppppppppppppuVar28 + 1);
|
||||
cVar2 = *(char *)pppppppppppppuVar28;
|
||||
}
|
||||
uVar32 = *(uint *)(param_1 + 0xf);
|
||||
pppppppppppppuVar29 = (uint *************)PTR_DAT_14016f008;
|
||||
if ((uint ************)param_1[0xb] != (uint ************)0x0) {
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
for (pppppppppppuVar20 =
|
||||
(uint ***********)param_1[0xb][(ulonglong)pppppppppppppuVar17 % (ulonglong)uVar32]
|
||||
; (PTR_DAT_14016f008 = (undefined *)pppppppppppppuVar28,
|
||||
pppppppppppuVar20 != (uint ***********)0x0 &&
|
||||
(pppppppppppppuVar29 = pppppppppppppuVar28,
|
||||
(uint)((ulonglong)pppppppppppppuVar17 % (ulonglong)uVar32) ==
|
||||
*(uint *)(pppppppppppuVar20 + 4) % *(uint *)(param_1 + 0xf)));
|
||||
pppppppppppuVar20 = (uint ***********)pppppppppppuVar20[2]) {
|
||||
pppppppppppppuVar29 = pppppppppppppuVar25;
|
||||
if (pppppppppppppuVar25 == (uint *************)0x0) {
|
||||
pppppppppppppuVar29 = pppppppppppppuVar28;
|
||||
}
|
||||
pppppppppppppuVar22 = (uint *************)*pppppppppppuVar20;
|
||||
if ((uint *************)*pppppppppppuVar20 == (uint *************)0x0) {
|
||||
pppppppppppppuVar22 = pppppppppppppuVar28;
|
||||
}
|
||||
iVar9 = FUN_14003e740((byte *)pppppppppppppuVar22,(longlong)pppppppppppppuVar29);
|
||||
if (iVar9 == 0) {
|
||||
local_168 = pppppppppppuVar20;
|
||||
if (pppppppppppuVar20 != (uint ***********)0x0) goto LAB_1400cd132;
|
||||
goto LAB_1400cd0b4;
|
||||
}
|
||||
pppppppppppppuVar29 = pppppppppppppuVar28;
|
||||
pppppppppppppuVar28 = (uint *************)PTR_DAT_14016f008;
|
||||
}
|
||||
}
|
||||
pppppppppppppuVar28 = pppppppppppppuVar29;
|
||||
local_168 = (uint ***********)0x0;
|
||||
LAB_1400cd0b4:
|
||||
pppppppppppppuVar29 = (uint *************)&local_1f0;
|
||||
plVar18 = FUN_1400cc350((char *)pppppppppppppuVar23,(longlong *)pppppppppppppuVar29);
|
||||
pppppppppppppuVar22 = pppppppppppppuVar23;
|
||||
if (pppppppppppppuVar19 != (uint *************)*plVar18) {
|
||||
if (pppppppppppppuVar19 != (uint *************)0x0) {
|
||||
pppppppppppppuVar19[1] = (uint ************)((longlong)pppppppppppppuVar19[1] + 1);
|
||||
pppppppppppppuVar25 = local_1f0;
|
||||
pppppppppppppuVar19 = local_1e8;
|
||||
}
|
||||
pppppppppppppuVar22 = (uint *************)0x0;
|
||||
pppppppppppppuVar23 = pppppppppppppuVar24;
|
||||
if (*plVar18 != 0) {
|
||||
*(longlong *)(*plVar18 + 8) = *(longlong *)(*plVar18 + 8) + -1;
|
||||
pppppppppppppuVar22 = *(uint **************)(*plVar18 + 8);
|
||||
pppppppppppppuVar25 = local_1f0;
|
||||
pppppppppppppuVar19 = local_1e8;
|
||||
if (pppppppppppppuVar22 == (uint *************)0x0) {
|
||||
pppppppppppppuVar23 = (uint *************)*plVar18;
|
||||
}
|
||||
}
|
||||
*plVar18 = (longlong)pppppppppppppuVar19;
|
||||
if (pppppppppppppuVar23 != (uint *************)0x0) {
|
||||
if (*pppppppppppppuVar23 != (uint ************)0x0) {
|
||||
pppppppppppppuVar29 = (uint *************)0x1;
|
||||
(*(code *)***pppppppppppppuVar23)();
|
||||
}
|
||||
FUN_14003e8b0(pppppppppppppuVar23);
|
||||
pppppppppppppuVar22 = pppppppppppppuVar23;
|
||||
}
|
||||
}
|
||||
LAB_1400cd132:
|
||||
if (((pppppppppppppuVar25 != (uint *************)0x0) &&
|
||||
(pppppppppppppuVar25 != (uint *************)PTR_DAT_14016f008)) &&
|
||||
(pppppppppppppuVar25 + -1 != (uint *************)0x0)) {
|
||||
piVar15 = (int *)FUN_14003e7c0(pppppppppppppuVar22,pppppppppppppuVar29,pppppppppppppuVar28,
|
||||
param_4);
|
||||
local_188 = piVar15;
|
||||
FUN_14003d040(piVar15);
|
||||
local_180 = 1;
|
||||
puVar16 = (uint *)((longlong)pppppppppppppuVar25 + -4);
|
||||
*puVar16 = *puVar16 - 1;
|
||||
if (*puVar16 == 0) {
|
||||
FUN_14003e8b0(pppppppppppppuVar25 + -1);
|
||||
}
|
||||
FUN_14003d0d0((longlong)piVar15);
|
||||
local_180 = 0;
|
||||
}
|
||||
local_1f0 = (uint *************)PTR_DAT_14016f008;
|
||||
param_1 = (uint *******)local_1d8;
|
||||
plVar18 = local_1a0;
|
||||
}
|
||||
dVar34 = (double)FUN_1400bf740((longlong)param_1[1]);
|
||||
param_2 = local_1b0;
|
||||
if (3.0 < dVar34 - *(double *)(local_1b0 + 200)) {
|
||||
if ((undefined8 *)*plVar18 != (undefined8 *)0x0) {
|
||||
pppppppppppppuVar24 = *(uint **************)*plVar18;
|
||||
}
|
||||
FUN_140043a50((longlong *)pppppppppppppuVar24,pppppppppppppuVar29,pppppppppppppuVar28,param_4)
|
||||
;
|
||||
pppppppppppppuVar25 = local_1e8;
|
||||
*(undefined4 *)(param_2 + 0x18) = 3;
|
||||
if (pppppppppppppuVar19 != (uint *************)0x0) {
|
||||
pppppppppppppuVar19 = pppppppppppppuVar19 + 1;
|
||||
*pppppppppppppuVar19 = (uint ************)((longlong)*pppppppppppppuVar19 + -1);
|
||||
if (*pppppppppppppuVar19 == (uint ************)0x0) {
|
||||
if (*local_1e8 != (uint ************)0x0) {
|
||||
pppppppppppppuVar29 = (uint *************)0x1;
|
||||
(*(code *)***local_1e8)();
|
||||
}
|
||||
FUN_14003e8b0(pppppppppppppuVar25);
|
||||
pppppppppppppuVar24 = pppppppppppppuVar25;
|
||||
}
|
||||
}
|
||||
pppppppppppuVar20 = local_1f8;
|
||||
if (((local_1f8 != (uint ***********)0x0) &&
|
||||
(local_1f8 != (uint ***********)PTR_DAT_14016f008)) &&
|
||||
(pppppppppppppuVar19 = (uint *************)(local_1f8 + -1),
|
||||
pppppppppppppuVar19 != (uint *************)0x0)) {
|
||||
piVar15 = (int *)FUN_14003e7c0(pppppppppppppuVar24,pppppppppppppuVar29,pppppppppppppuVar28,
|
||||
param_4);
|
||||
local_100 = piVar15;
|
||||
FUN_14003d040(piVar15);
|
||||
local_f8 = 1;
|
||||
puVar16 = (uint *)((longlong)pppppppppppuVar20 + -4);
|
||||
*puVar16 = *puVar16 - 1;
|
||||
if (*puVar16 == 0) {
|
||||
FUN_14003e8b0(pppppppppppppuVar19);
|
||||
}
|
||||
FUN_14003d0d0((longlong)piVar15);
|
||||
}
|
||||
return;
|
||||
}
|
||||
pppppppppppppuVar25 = (uint *************)param_1;
|
||||
lVar30 = local_1b0;
|
||||
FUN_1400cb280(param_1,local_1b0,(SIZE_T)pppppppppppppuVar28,param_4);
|
||||
pppppppppppppuVar29 = local_1e8;
|
||||
if (pppppppppppppuVar19 != (uint *************)0x0) {
|
||||
pppppppppppppuVar19 = pppppppppppppuVar19 + 1;
|
||||
*pppppppppppppuVar19 = (uint ************)((longlong)*pppppppppppppuVar19 + -1);
|
||||
if (*pppppppppppppuVar19 == (uint ************)0x0) {
|
||||
if (*local_1e8 != (uint ************)0x0) {
|
||||
lVar30 = 1;
|
||||
(*(code *)***local_1e8)();
|
||||
}
|
||||
FUN_14003e8b0(pppppppppppppuVar29);
|
||||
pppppppppppppuVar25 = pppppppppppppuVar29;
|
||||
}
|
||||
}
|
||||
pppppppppppuVar20 = local_1f8;
|
||||
if (((local_1f8 != (uint ***********)0x0) && (local_1f8 != (uint ***********)PTR_DAT_14016f008))
|
||||
&& (pppppppppppppuVar29 = (uint *************)(local_1f8 + -1),
|
||||
pppppppppppppuVar29 != (uint *************)0x0)) {
|
||||
piVar15 = (int *)FUN_14003e7c0(pppppppppppppuVar25,lVar30,pppppppppppppuVar28,param_4);
|
||||
local_128 = piVar15;
|
||||
FUN_14003d040(piVar15);
|
||||
local_120 = 1;
|
||||
puVar16 = (uint *)((longlong)pppppppppppuVar20 + -4);
|
||||
*puVar16 = *puVar16 - 1;
|
||||
if (*puVar16 == 0) {
|
||||
FUN_14003e8b0(pppppppppppppuVar29);
|
||||
}
|
||||
FUN_14003d0d0((longlong)piVar15);
|
||||
local_120 = 0;
|
||||
}
|
||||
local_1f8 = (uint ***********)PTR_DAT_14016f008;
|
||||
} while( true );
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue