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

193 lines
5.9 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400ca130 FUN_1400ca130
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
ulonglong FUN_1400ca130(undefined *param_1,longlong *param_2,undefined8 param_3,ulonglong param_4)
{
int *piVar1;
int iVar2;
char *pcVar3;
undefined *puVar4;
longlong *plVar5;
longlong *plVar6;
int *piVar7;
ulonglong uVar8;
undefined8 uVar9;
char *pcVar10;
longlong *plVar11;
wchar_t *pwVar12;
undefined **ppuVar13;
LPCSTR pCVar14;
wchar_t *pwVar15;
LPCSTR pCVar16;
uint uVar17;
uint uVar18;
undefined1 auStack_1a8 [32];
int *local_188;
undefined1 local_180;
LPCSTR local_178;
undefined *local_170;
longlong *local_168;
undefined8 local_160;
longlong *local_158;
undefined1 local_150;
wchar_t *local_148;
wchar_t local_140 [132];
ulonglong local_38;
local_160 = 0xfffffffffffffffe;
local_38 = DAT_14016f5a0 ^ (ulonglong)auStack_1a8;
local_168 = param_2;
FUN_14003e7c0(param_1,param_2,param_3,param_4);
pCVar16 = PTR_DAT_14016f008;
local_178 = PTR_DAT_14016f008;
pcVar3 = (char *)*param_2;
pcVar10 = PTR_DAT_14016f008;
if (((pcVar3 == (char *)0x0) || (pcVar10 = pcVar3, pcVar3 == PTR_DAT_14016f008)) ||
(-1 < *(int *)(pcVar3 + -8))) {
pcVar3 = strstr(pcVar10,"http");
uVar17 = 0xffffffff;
if (pcVar3 != (char *)0x0) {
puVar4 = (undefined *)*param_2;
if ((undefined *)*param_2 == (undefined *)0x0) {
puVar4 = PTR_DAT_14016f008;
}
uVar17 = (int)pcVar3 - (int)puVar4;
}
}
else {
uVar17 = 0xffffffff;
}
pcVar3 = (char *)*param_2;
pcVar10 = PTR_DAT_14016f008;
if ((((pcVar3 == (char *)0x0) || (pcVar10 = pcVar3, pcVar3 == PTR_DAT_14016f008)) ||
(uVar18 = 0xffffffff, -1 < *(int *)(pcVar3 + -8))) &&
(pcVar3 = strstr(pcVar10,".xml"), uVar18 = 0xffffffff, pcVar3 != (char *)0x0)) {
puVar4 = (undefined *)*param_2;
if ((undefined *)*param_2 == (undefined *)0x0) {
puVar4 = PTR_DAT_14016f008;
}
uVar18 = (int)pcVar3 - (int)puVar4;
}
if (((int)uVar17 < (int)uVar18) && (-1 < (int)uVar17)) {
uVar18 = (uVar18 - uVar17) + 4;
param_4 = (ulonglong)uVar18;
uVar8 = (ulonglong)uVar17;
ppuVar13 = &local_170;
plVar6 = param_2;
plVar5 = FUN_1400c9e20(param_2,(longlong *)ppuVar13,uVar17,uVar18);
if (pCVar16 == (undefined *)0x0) {
pCVar16 = PTR_DAT_14016f008;
}
local_178 = pCVar16;
if ((LPCSTR)*plVar5 != pCVar16) {
plVar6 = (longlong *)FUN_14003e7c0(plVar6,ppuVar13,uVar8,param_4);
plVar11 = plVar6;
local_158 = plVar6;
FUN_14003d040((int *)plVar6);
local_150 = 1;
if (((pCVar16 != (LPCSTR)0x0) && (pCVar16 != PTR_DAT_14016f008)) &&
(pCVar16 + -8 != (LPCSTR)0x0)) {
piVar7 = (int *)FUN_14003e7c0(plVar11,ppuVar13,uVar8,param_4);
local_188 = piVar7;
FUN_14003d040(piVar7);
local_180 = 1;
piVar1 = (int *)(pCVar16 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(pCVar16 + -8);
}
FUN_14003d0d0((longlong)piVar7);
}
pCVar16 = (LPCSTR)*plVar5;
if (((pCVar16 != PTR_DAT_14016f008) && (pCVar16 != (LPCSTR)0x0)) && (pCVar16 != (LPCSTR)0x8))
{
*(int *)(pCVar16 + -4) = *(int *)(pCVar16 + -4) + 1;
}
local_178 = pCVar16;
FUN_14003d0d0((longlong)plVar6);
}
if (((local_170 != (undefined *)0x0) && (local_170 != PTR_DAT_14016f008)) &&
(local_170 + -8 != (undefined *)0x0)) {
piVar7 = (int *)FUN_14003e7c0(plVar6,ppuVar13,uVar8,param_4);
local_188 = piVar7;
FUN_14003d040(piVar7);
local_180 = 1;
piVar1 = (int *)(local_170 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(local_170 + -8);
}
FUN_14003d0d0((longlong)piVar7);
}
}
pCVar14 = pCVar16;
if (pCVar16 == (LPCSTR)0x0) {
pCVar14 = PTR_DAT_14016f008;
}
local_148 = local_140;
FUN_140005110((longlong *)&local_148,pCVar14,3);
uVar9 = 0;
pwVar15 = local_148;
iVar2 = FUN_1400c9ff0((wchar_t *)(param_1 + 0x10),local_148,0);
pwVar12 = local_148;
if (local_148 != local_140) {
free(local_148);
}
if (iVar2 == 0) {
if (((pCVar16 != (LPCSTR)0x0) && (pCVar16 != PTR_DAT_14016f008)) &&
(pCVar16 + -8 != (LPCSTR)0x0)) {
piVar7 = (int *)FUN_14003e7c0(pwVar12,pwVar15,uVar9,param_4);
local_188 = piVar7;
FUN_14003d040(piVar7);
local_180 = 1;
piVar1 = (int *)(pCVar16 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(pCVar16 + -8);
}
FUN_14003d0d0((longlong)piVar7);
}
uVar8 = FUN_140006e80(param_2);
uVar8 = uVar8 & 0xffffffffffffff00;
}
else if ((wchar_t *)param_1 == L"TICON") {
if (((pCVar16 != (LPCSTR)0x0) && (pCVar16 != PTR_DAT_14016f008)) &&
(pCVar16 + -8 != (LPCSTR)0x0)) {
piVar7 = (int *)FUN_14003e7c0(&DAT_140131724,pwVar15,uVar9,param_4);
local_188 = piVar7;
FUN_14003d040(piVar7);
local_180 = 1;
piVar1 = (int *)(pCVar16 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(pCVar16 + -8);
}
FUN_14003d0d0((longlong)piVar7);
}
uVar8 = FUN_140006e80(param_2);
uVar8 = uVar8 & 0xffffffffffffff00;
}
else {
if (((pCVar16 != (LPCSTR)0x0) && (pCVar16 != PTR_DAT_14016f008)) &&
(pCVar16 + -8 != (LPCSTR)0x0)) {
piVar7 = (int *)FUN_14003e7c0(&DAT_140131724,pwVar15,uVar9,param_4);
local_188 = piVar7;
FUN_14003d040(piVar7);
local_180 = 1;
piVar1 = (int *)(pCVar16 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14003e8b0(pCVar16 + -8);
}
FUN_14003d0d0((longlong)piVar7);
}
uVar9 = FUN_140006e80(param_2);
uVar8 = CONCAT71((int7)((ulonglong)uVar9 >> 8),1);
}
return uVar8;
}