154 lines
5.7 KiB
C
154 lines
5.7 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x1400cf5d0 FUN_1400cf5d0
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __chkstk replaced with injection: alloca_probe */
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
void FUN_1400cf5d0(SIZE_T *param_1,undefined *param_2,ulonglong *param_3,longlong param_4)
|
|
|
|
{
|
|
longlong *plVar1;
|
|
int *piVar2;
|
|
SIZE_T SVar3;
|
|
uint uVar4;
|
|
int iVar5;
|
|
longlong lVar6;
|
|
longlong *plVar7;
|
|
int *piVar8;
|
|
short sVar9;
|
|
ulonglong uVar10;
|
|
undefined8 uVar11;
|
|
undefined1 *puVar12;
|
|
SIZE_T SVar13;
|
|
wchar_t *pwVar14;
|
|
bool bVar15;
|
|
undefined1 auStack_19b8 [32];
|
|
longlong *local_1998;
|
|
undefined1 local_1990;
|
|
int local_1988 [2];
|
|
longlong local_1980;
|
|
longlong local_1978;
|
|
int local_196c;
|
|
int *local_1960;
|
|
undefined1 local_1958;
|
|
undefined8 local_1950;
|
|
undefined1 local_1948 [3200];
|
|
undefined1 *local_cc8;
|
|
undefined4 local_cc0;
|
|
undefined4 local_cbc;
|
|
undefined1 local_cb8 [3216];
|
|
ulonglong local_28;
|
|
undefined8 uStack_20;
|
|
|
|
uStack_20 = 0x1400cf5e6;
|
|
local_1950 = 0xfffffffffffffffe;
|
|
local_28 = DAT_14016f5a0 ^ (ulonglong)auStack_19b8;
|
|
SVar3 = param_1[2];
|
|
if ((SVar3 != 0) && (*(int *)(SVar3 + 8) == 0)) {
|
|
bVar15 = *param_3 < *(ulonglong *)(SVar3 + 0x1c);
|
|
if ((*param_3 == *(ulonglong *)(SVar3 + 0x1c)) &&
|
|
(bVar15 = param_3[1] < *(ulonglong *)(SVar3 + 0x24),
|
|
param_3[1] == *(ulonglong *)(SVar3 + 0x24))) {
|
|
iVar5 = 0;
|
|
}
|
|
else {
|
|
iVar5 = (1 - (uint)bVar15) - (uint)(bVar15 != 0);
|
|
}
|
|
if ((iVar5 == 0) && (*(int *)(SVar3 + 0x18) < 1)) {
|
|
SVar13 = *param_1;
|
|
plVar7 = *(longlong **)(*(longlong *)(SVar13 + 0x670) + 0x1570);
|
|
sVar9 = DAT_14016f3d4;
|
|
uVar4 = DAT_14016f3d0;
|
|
if ((plVar7 != (longlong *)0x0) && (*plVar7 != 0)) {
|
|
lVar6 = 0;
|
|
if (plVar7 != (longlong *)0x0) {
|
|
lVar6 = *plVar7;
|
|
}
|
|
sVar9 = *(short *)(lVar6 + 0xd4);
|
|
uVar4 = *(uint *)(lVar6 + 0xd0);
|
|
}
|
|
uVar10 = (ulonglong)uVar4;
|
|
if ((((uVar4 == *(uint *)(param_2 + 0x38)) && (sVar9 == *(short *)(param_2 + 0x3c))) &&
|
|
(*(longlong **)(SVar13 + 0x18) != (longlong *)0x0)) &&
|
|
(**(longlong **)(SVar13 + 0x18) != 0)) {
|
|
FUN_140074fb0(local_1988);
|
|
FUN_140074a40((longlong)local_1988,uVar10,SVar13,param_2);
|
|
FUN_140075110(local_1988,0x800,SVar13,param_2);
|
|
uVar11 = 0;
|
|
FUN_140075110(local_1988,0,SVar13,param_2);
|
|
FUN_140029d80((longlong)local_1988,CONCAT71((int7)((ulonglong)uVar11 >> 8),0x12),SVar13,
|
|
param_2);
|
|
if ((*(longlong **)(*param_1 + 0x18) == (longlong *)0x0) ||
|
|
(lVar6 = **(longlong **)(*param_1 + 0x18), lVar6 == 0)) {
|
|
lVar6 = 0;
|
|
}
|
|
else {
|
|
lVar6 = lVar6 + -0x40;
|
|
}
|
|
FUN_140075bb0((longlong)local_1988,lVar6 + 0x128,SVar13,param_2);
|
|
FUN_140075bb0((longlong)local_1988,param_4,SVar13,param_2);
|
|
FUN_140029e60((longlong)local_1988,(ulonglong)*(uint *)(*param_1 + 0x56c),SVar13,param_2);
|
|
local_cbc = 200;
|
|
local_cc0 = 0;
|
|
local_cc8 = local_1948;
|
|
FUN_14004ec50((longlong)local_cb8,(longlong)local_1988,SVar13);
|
|
puVar12 = local_cb8;
|
|
FUN_14004dc30((longlong)local_1948,(longlong)puVar12,SVar13,param_2);
|
|
FUN_14004db20((longlong)local_cb8,puVar12,SVar13,param_2);
|
|
if ((*(longlong **)(*param_1 + 0x18) == (longlong *)0x0) ||
|
|
(lVar6 = **(longlong **)(*param_1 + 0x18), lVar6 == 0)) {
|
|
lVar6 = 0;
|
|
}
|
|
else {
|
|
lVar6 = lVar6 + -0x40;
|
|
}
|
|
*(undefined4 *)(lVar6 + 0x140) = *(undefined4 *)(param_4 + 8);
|
|
*(undefined2 *)(lVar6 + 0x144) = *(undefined2 *)(param_4 + 0xc);
|
|
local_1998 = (longlong *)0x0;
|
|
local_1990 = 1;
|
|
lVar6 = FUN_14009c0f0(*(longlong *)(*param_1 + 0x670));
|
|
pwVar14 = (wchar_t *)&local_1998;
|
|
puVar12 = local_1948;
|
|
FUN_1400ceb20(lVar6,(longlong)puVar12,(SIZE_T *)pwVar14,param_2);
|
|
if ((*(char *)(*(longlong *)(*param_1 + 0x670) + 0x1790) != '\0') ||
|
|
(*(int *)(*(longlong *)(*param_1 + 0x670) + 0x6c8) != 0)) {
|
|
plVar7 = FUN_1400420f0(param_4,(longlong *)&local_1998,pwVar14,param_2);
|
|
param_2 = (undefined *)*plVar7;
|
|
if (param_2 == (undefined *)0x0) {
|
|
param_2 = PTR_DAT_14016f010;
|
|
}
|
|
pwVar14 = L"Message_PeerUdp_ServerHolepunchAck. AddrOfHereAtServer=%s";
|
|
puVar12 = (undefined1 *)0x1;
|
|
lVar6 = *(longlong *)(*param_1 + 0x670);
|
|
FUN_1400a9f70(lVar6,1,L"Message_PeerUdp_ServerHolepunchAck. AddrOfHereAtServer=%s",param_2
|
|
);
|
|
plVar7 = local_1998;
|
|
if (((local_1998 != (longlong *)0x0) && (local_1998 != (longlong *)PTR_DAT_14016f010)) &&
|
|
(plVar1 = local_1998 + -1, plVar1 != (longlong *)0x0)) {
|
|
piVar8 = (int *)FUN_14003e7c0(lVar6,puVar12,pwVar14,param_2);
|
|
local_1960 = piVar8;
|
|
FUN_14003d040(piVar8);
|
|
local_1958 = 1;
|
|
piVar2 = (int *)((longlong)plVar7 + -4);
|
|
*piVar2 = *piVar2 + -1;
|
|
if (*piVar2 == 0) {
|
|
FUN_14003e8b0(plVar1);
|
|
}
|
|
FUN_14003d0d0((longlong)piVar8);
|
|
}
|
|
}
|
|
*(int *)(SVar3 + 0x18) = *(int *)(SVar3 + 0x18) + 1;
|
|
FUN_14004db20((longlong)local_1948,puVar12,pwVar14,param_2);
|
|
local_1998 = &local_1980;
|
|
FUN_14008a320(&local_1980);
|
|
if ((local_1978 != 0) && (local_196c < 0)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14003dec0();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|