server-re/decomp/AgentManager_Release_x64/full/functions/0x1400054f0.c
2026-10-15 09:58:24 -04:00

258 lines
7.9 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400054f0 FUN_1400054f0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_1400054f0(longlong param_1,double param_2,undefined8 param_3,ulonglong param_4)
{
int iVar1;
int *piVar2;
int *piVar3;
longlong lVar4;
undefined8 **ppuVar5;
int **ppiVar6;
_SYSTEMTIME *p_Var7;
undefined8 uVar8;
undefined8 uVar9;
ulonglong uVar10;
undefined8 uVar11;
undefined8 uVar12;
int *piVar13;
int *piVar14;
int iVar15;
int *piVar16;
uint uVar17;
int *piVar18;
int iVar19;
uint uVar20;
uint uVar21;
undefined1 auStackY_138 [32];
undefined8 *local_f0;
undefined8 local_e8;
int *local_e0;
undefined8 local_d8;
undefined8 *local_d0;
undefined8 local_c8;
int *local_c0;
undefined8 local_b8;
int *local_b0;
int *local_a8;
undefined8 local_a0;
undefined8 *local_90;
undefined8 local_88;
undefined8 *local_80;
undefined8 local_78;
undefined8 *local_70;
undefined8 local_68;
undefined8 local_60;
_SYSTEMTIME local_58;
ulonglong local_48;
local_60 = 0xfffffffffffffffe;
local_48 = DAT_14016f5a0 ^ (ulonglong)auStackY_138;
if (20.0 <= param_2 - *(double *)(param_1 + 0x88)) {
local_b0 = (int *)0x0;
local_a8 = (int *)0x0;
local_a0 = 0;
FUN_140039a40(DAT_14017cf20,(longlong *)&local_b0);
piVar14 = local_b0;
if (local_b0 != local_a8) {
do {
piVar18 = (int *)0x0;
iVar1 = *piVar14;
uVar20 = 0;
if (*(longlong *)(DAT_14017cf20 + 0x58) == 0) {
local_70 = (undefined8 *)0x0;
local_68 = 0;
ppuVar5 = &local_70;
}
else {
local_f0 = *(undefined8 **)(DAT_14017cf20 + 0x68);
if (local_f0 == (undefined8 *)0x0) {
local_e8 = 0;
}
else {
local_e8 = *local_f0;
}
ppuVar5 = &local_f0;
}
piVar13 = (int *)*ppuVar5;
piVar3 = (int *)ppuVar5[1];
piVar16 = piVar18;
uVar21 = uVar20;
while (piVar3 != (int *)0x0) {
piVar2 = *(int **)(piVar3 + 4);
if (((piVar2 != (int *)0x0) && (*piVar2 == iVar1)) && ((char)piVar2[3] == '\b')) {
piVar16 = (int *)(ulonglong)(uint)((int)piVar16 + piVar2[0x2e]);
}
uVar21 = (uint)piVar16;
piVar3 = *(int **)piVar3;
while (piVar3 == (int *)0x0) {
piVar13 = piVar13 + 2;
piVar3 = *(int **)piVar13;
}
if (piVar13 == piVar3) {
piVar3 = piVar18;
}
}
if (*(longlong *)(DAT_14017cf20 + 0x58) == 0) {
local_80 = (undefined8 *)0x0;
local_78 = 0;
ppuVar5 = &local_80;
}
else {
local_90 = *(undefined8 **)(DAT_14017cf20 + 0x68);
if (local_90 == (undefined8 *)0x0) {
local_88 = 0;
}
else {
local_88 = *local_90;
}
ppuVar5 = &local_90;
}
piVar13 = (int *)*ppuVar5;
piVar3 = (int *)ppuVar5[1];
piVar16 = piVar18;
while (piVar3 != (int *)0x0) {
piVar2 = *(int **)(piVar3 + 4);
if (((piVar2 != (int *)0x0) && (*piVar2 == iVar1)) && ((char)piVar2[3] == '\x01')) {
piVar16 = (int *)(ulonglong)(uint)((int)piVar16 + piVar2[0x2e]);
}
uVar20 = (uint)piVar16;
piVar3 = *(int **)piVar3;
while (piVar3 == (int *)0x0) {
piVar13 = piVar13 + 2;
piVar3 = *(int **)piVar13;
}
if (piVar13 == piVar3) {
piVar3 = piVar18;
}
}
if (*(longlong *)(DAT_14017cf20 + 0x58) == 0) {
local_e0 = (int *)0x0;
local_d8 = 0;
ppiVar6 = &local_e0;
}
else {
local_c0 = *(int **)(DAT_14017cf20 + 0x68);
if (local_c0 == (int *)0x0) {
local_b8 = 0;
}
else {
local_b8 = *(undefined8 *)local_c0;
}
ppiVar6 = &local_c0;
}
piVar13 = *ppiVar6;
piVar3 = ppiVar6[1];
piVar16 = piVar18;
while (iVar19 = (int)piVar16, piVar3 != (int *)0x0) {
piVar2 = *(int **)(piVar3 + 4);
if (((piVar2 != (int *)0x0) && (*piVar2 == iVar1)) && ((char)piVar2[3] == '\x02')) {
piVar16 = (int *)(ulonglong)(uint)(iVar19 + piVar2[0x2e]);
}
piVar3 = *(int **)piVar3;
while (piVar3 == (int *)0x0) {
piVar13 = piVar13 + 2;
piVar3 = *(int **)piVar13;
}
if (piVar13 == piVar3) {
piVar3 = piVar18;
}
}
iVar15 = 0;
if (*(longlong *)(DAT_14017cf20 + 0x58) == 0) {
local_58.wYear = 0;
local_58.wMonth = 0;
local_58.wDayOfWeek = 0;
local_58.wDay = 0;
local_58.wHour = 0;
local_58.wMinute = 0;
local_58.wSecond = 0;
local_58.wMilliseconds = 0;
p_Var7 = &local_58;
}
else {
local_d0 = *(undefined8 **)(DAT_14017cf20 + 0x68);
if (local_d0 == (undefined8 *)0x0) {
local_c8._0_2_ = 0;
local_c8._2_2_ = 0;
local_c8._4_2_ = 0;
local_c8._6_2_ = 0;
}
else {
local_c8 = *local_d0;
}
p_Var7 = (_SYSTEMTIME *)&local_d0;
}
piVar13 = *(int **)p_Var7;
piVar3 = *(int **)&p_Var7->wHour;
piVar16 = piVar18;
while (piVar3 != (int *)0x0) {
piVar2 = *(int **)(piVar3 + 4);
if (((piVar2 != (int *)0x0) && (*piVar2 == iVar1)) && ((char)piVar2[3] == '\x03')) {
piVar16 = (int *)(ulonglong)(uint)((int)piVar16 + piVar2[0x2e]);
}
iVar15 = (int)piVar16;
piVar3 = *(int **)piVar3;
while (piVar3 == (int *)0x0) {
piVar13 = piVar13 + 2;
piVar3 = *(int **)piVar13;
}
if (piVar13 == piVar3) {
piVar3 = piVar18;
}
}
uVar17 = iVar15 + iVar19 + uVar20 + uVar21;
if (*(char *)(DAT_14017cf28 + 0x180) != '\0') {
FUN_14000d4a0(param_1,iVar1,(ulonglong)uVar17,param_4);
if (*(longlong *)(param_1 + 0x70) != 0) {
param_4 = (ulonglong)uVar20;
FUN_14000b1c0(*(longlong *)(param_1 + 0x70),iVar1,uVar21,param_4,iVar19,iVar15,uVar17);
}
}
piVar14 = piVar14 + 1;
} while (piVar14 != local_a8);
}
*(double *)(param_1 + 0x88) = param_2;
if (local_b0 != (int *)0x0) {
operator_delete(local_b0);
}
}
if (5.0 <= param_2 - *(double *)(param_1 + 0x90)) {
*(double *)(param_1 + 0x90) = param_2;
FUN_140039230(DAT_14017cf20);
}
if (*(char *)(DAT_14017cf28 + 0x180) != '\0') {
GetLocalTime(&local_58);
lVar4 = DAT_14017cf48;
if (*(uint *)(param_1 + 0x98) != (uint)local_58.wHour) {
if (*(uint *)(param_1 + 0x98) != 0xffffffff) {
piVar14 = (int *)(DAT_14017cf48 + 0x48);
local_e0 = piVar14;
FUN_14003d040(piVar14);
local_d8 = CONCAT71(local_d8._1_7_,1);
uVar8 = FUN_14000bf50(lVar4,0);
uVar9 = FUN_14000bf50(lVar4,1);
uVar10 = FUN_14000bf50(lVar4,2);
uVar11 = FUN_14000bf50(lVar4,3);
uVar12 = FUN_14000bf50(lVar4,4);
local_f0 = (undefined8 *)FUN_14000bf50(lVar4,5);
FUN_14003d0d0((longlong)piVar14);
lVar4 = DAT_14017cf48;
FUN_14003d040((int *)(DAT_14017cf48 + 0x48));
FUN_14003b460((undefined8 *)(lVar4 + 8));
FUN_14003d0d0(lVar4 + 0x48);
if (*(longlong *)(param_1 + 0x70) != 0) {
FUN_14000b980(*(longlong *)(param_1 + 0x70),(int)uVar8,(int)uVar9,uVar10 & 0xffffffff,
(int)uVar12,(int)local_f0,(int)uVar11);
}
}
*(uint *)(param_1 + 0x98) = (uint)local_58.wHour;
}
}
return;
}