add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
205
decomp/AgentManager_Release_x64/full/functions/0x14007b9f0.c
Normal file
205
decomp/AgentManager_Release_x64/full/functions/0x14007b9f0.c
Normal file
|
|
@ -0,0 +1,205 @@
|
|||
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
||||
* Ghidra 12.1.2 decompiler output for 0x14007b9f0 FUN_14007b9f0
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
void FUN_14007b9f0(longlong param_1,uint *param_2,longlong param_3,TypeDescriptor *param_4)
|
||||
|
||||
{
|
||||
undefined **ppuVar1;
|
||||
undefined **ppuVar2;
|
||||
int iVar3;
|
||||
undefined8 uVar4;
|
||||
ulonglong uVar5;
|
||||
int *piVar6;
|
||||
int *piVar7;
|
||||
longlong lVar8;
|
||||
longlong *plVar9;
|
||||
longlong *plVar10;
|
||||
int **ppiVar11;
|
||||
SIZE_T SVar12;
|
||||
undefined ***pppuVar13;
|
||||
int *piVar14;
|
||||
undefined *puVar15;
|
||||
bool bVar16;
|
||||
undefined1 auStack_da8 [32];
|
||||
undefined *local_d88;
|
||||
undefined **local_d78;
|
||||
undefined4 local_d70;
|
||||
undefined2 local_d6c;
|
||||
undefined **local_d68;
|
||||
undefined4 local_d60;
|
||||
undefined2 local_d5c;
|
||||
int **local_d58;
|
||||
undefined1 local_d50;
|
||||
undefined *local_d48;
|
||||
int *local_d40;
|
||||
undefined1 local_d38;
|
||||
int local_d30 [2];
|
||||
undefined *local_d28;
|
||||
longlong local_d20;
|
||||
int local_d14;
|
||||
undefined8 local_d08;
|
||||
int *local_d00;
|
||||
undefined1 local_cf8;
|
||||
undefined **local_ce8;
|
||||
undefined8 uStack_ce0;
|
||||
undefined1 local_cd8 [3216];
|
||||
ulonglong local_48;
|
||||
|
||||
local_d08 = 0xfffffffffffffffe;
|
||||
local_48 = DAT_14016f5a0 ^ (ulonglong)auStack_da8;
|
||||
FUN_140079c10();
|
||||
local_d68 = Proud::AddrPort::vftable;
|
||||
local_d60 = 0;
|
||||
local_d5c = 0;
|
||||
local_d78 = Proud::AddrPort::vftable;
|
||||
local_d70 = 0;
|
||||
local_d6c = 0;
|
||||
local_ce8 = (undefined **)0x0;
|
||||
uStack_ce0 = 0;
|
||||
SVar12 = 0x10;
|
||||
uVar4 = FUN_140074ee0(param_2,&local_ce8,0x10);
|
||||
if ((char)uVar4 == '\0') {
|
||||
return;
|
||||
}
|
||||
uVar5 = FUN_140075910(param_2,(longlong)&local_d68);
|
||||
if ((char)uVar5 != '\0') {
|
||||
uVar5 = FUN_140075910(param_2,(longlong)&local_d78);
|
||||
if ((char)uVar5 == '\0') {
|
||||
return;
|
||||
}
|
||||
piVar6 = (int *)(**(code **)(**(longlong **)(param_1 + 0x148) + 0x58))();
|
||||
local_d00 = piVar6;
|
||||
FUN_14003d040(piVar6);
|
||||
local_cf8 = 1;
|
||||
if (DAT_14017614f != '\0') {
|
||||
SVar12 = **(SIZE_T **)(param_1 + 0x148);
|
||||
(**(code **)(SVar12 + 200))
|
||||
(*(SIZE_T **)(param_1 + 0x148),
|
||||
L"Proud::CNetThreads_S::NetWorkerThread_ProcessMessage_NotifyHolepunchSuccess");
|
||||
}
|
||||
bVar16 = *(undefined ***)(param_3 + 0x728) < local_ce8;
|
||||
if ((*(undefined ***)(param_3 + 0x728) == local_ce8) &&
|
||||
(bVar16 = *(ulonglong *)(param_3 + 0x730) < uStack_ce0,
|
||||
*(ulonglong *)(param_3 + 0x730) == uStack_ce0)) {
|
||||
iVar3 = 0;
|
||||
}
|
||||
else {
|
||||
iVar3 = (1 - (uint)bVar16) - (uint)(bVar16 != 0);
|
||||
}
|
||||
if ((iVar3 == 0) && (*(char *)(param_3 + 0x700) == '\0')) {
|
||||
*(undefined1 *)(param_3 + 0x700) = 1;
|
||||
uVar4 = (**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x118) + 8))();
|
||||
*(undefined8 *)(param_3 + 0x198) = uVar4;
|
||||
uVar4 = (**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x118) + 8))();
|
||||
*(undefined8 *)(param_3 + 0x1b8) = uVar4;
|
||||
local_ce8 = Proud::AddrPort::vftable;
|
||||
uStack_ce0._0_6_ = CONCAT24(local_d6c,local_d70);
|
||||
FUN_140092c10(param_3 + 0x700,(longlong)&local_ce8);
|
||||
*(undefined4 *)(param_3 + 0x720) = local_d60;
|
||||
*(undefined2 *)(param_3 + 0x724) = local_d5c;
|
||||
lVar8 = param_3;
|
||||
FUN_14005a220(*(longlong *)(param_1 + 0x148),param_3,SVar12,param_4);
|
||||
FUN_140074fb0(local_d30);
|
||||
FUN_140074a40((longlong)local_d30,lVar8,SVar12,param_4);
|
||||
FUN_140075110(local_d30,0x800,SVar12,param_4);
|
||||
uVar4 = 0;
|
||||
FUN_140075110(local_d30,0,SVar12,param_4);
|
||||
FUN_140029d80((longlong)local_d30,CONCAT71((int7)((ulonglong)uVar4 >> 8),0xf),SVar12,param_4);
|
||||
local_ce8 = *(undefined ***)(param_3 + 0x728);
|
||||
uStack_ce0 = *(undefined8 *)(param_3 + 0x730);
|
||||
FUN_140051cf0((longlong)local_d30,&local_ce8,SVar12,param_4);
|
||||
piVar7 = (int *)(**(code **)(*(longlong *)(param_3 + 0x108) + 0x10))();
|
||||
local_d40 = piVar7;
|
||||
FUN_14003d040(piVar7);
|
||||
local_d38 = 1;
|
||||
lVar8 = FUN_14004ec50((longlong)local_cd8,(longlong)local_d30,SVar12);
|
||||
local_ce8 = (undefined **)0x0;
|
||||
uStack_ce0 = CONCAT71(uStack_ce0._1_7_,1);
|
||||
pppuVar13 = &local_ce8;
|
||||
FUN_140091090(*(char **)(param_3 + 0x748),lVar8,(SIZE_T *)pppuVar13,param_4);
|
||||
FUN_14004db20((longlong)local_cd8,lVar8,pppuVar13,param_4);
|
||||
FUN_14003d0d0((longlong)piVar7);
|
||||
if (*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x17f0) != 0) {
|
||||
FUN_14003e7c0(piVar7,lVar8,pppuVar13,param_4);
|
||||
local_d40 = (int *)PTR_DAT_14016f010;
|
||||
plVar9 = FUN_1400420f0((longlong)&local_d78,(longlong *)&local_ce8,pppuVar13,param_4);
|
||||
plVar10 = FUN_1400420f0((longlong)&local_d68,(longlong *)&local_d48,pppuVar13,param_4);
|
||||
local_d88 = (undefined *)*plVar9;
|
||||
if ((undefined *)*plVar9 == (undefined *)0x0) {
|
||||
local_d88 = PTR_DAT_14016f010;
|
||||
}
|
||||
puVar15 = (undefined *)*plVar10;
|
||||
if ((undefined *)*plVar10 == (undefined *)0x0) {
|
||||
puVar15 = PTR_DAT_14016f010;
|
||||
}
|
||||
uVar5 = (ulonglong)*(uint *)(param_3 + 0x6f8);
|
||||
ppiVar11 = &local_d40;
|
||||
FUN_140029b80((longlong *)ppiVar11,
|
||||
L"Client %d가 서버와의 UDP 홀펀칭 성공: Client local Addr=%s,Client addr at server=%s"
|
||||
,uVar5,puVar15);
|
||||
if (((local_d48 != (undefined *)0x0) && (local_d48 != PTR_DAT_14016f010)) &&
|
||||
(local_d48 + -8 != (undefined *)0x0)) {
|
||||
ppiVar11 = (int **)FUN_14003e7c0(ppiVar11,PTR_DAT_14016f010,uVar5,puVar15);
|
||||
local_d58 = ppiVar11;
|
||||
FUN_14003d040((int *)ppiVar11);
|
||||
local_d50 = 1;
|
||||
piVar7 = (int *)(local_d48 + -4);
|
||||
*piVar7 = *piVar7 + -1;
|
||||
if (*piVar7 == 0) {
|
||||
FUN_14003e8b0(local_d48 + -8);
|
||||
}
|
||||
FUN_14003d0d0((longlong)ppiVar11);
|
||||
}
|
||||
ppuVar2 = local_ce8;
|
||||
local_d48 = PTR_DAT_14016f010;
|
||||
if (((local_ce8 != (undefined **)0x0) && (local_ce8 != (undefined **)PTR_DAT_14016f010)) &&
|
||||
(ppuVar1 = local_ce8 + -1, ppuVar1 != (undefined **)0x0)) {
|
||||
ppiVar11 = (int **)FUN_14003e7c0(ppiVar11,PTR_DAT_14016f010,uVar5,puVar15);
|
||||
local_d58 = ppiVar11;
|
||||
FUN_14003d040((int *)ppiVar11);
|
||||
local_d50 = 1;
|
||||
piVar7 = (int *)((longlong)ppuVar2 + -4);
|
||||
*piVar7 = *piVar7 + -1;
|
||||
if (*piVar7 == 0) {
|
||||
FUN_14003e8b0(ppuVar1);
|
||||
}
|
||||
FUN_14003d0d0((longlong)ppiVar11);
|
||||
}
|
||||
piVar7 = local_d40;
|
||||
piVar14 = local_d40;
|
||||
if (local_d40 == (int *)0x0) {
|
||||
piVar14 = (int *)PTR_DAT_14016f010;
|
||||
}
|
||||
uVar4 = 1;
|
||||
lVar8 = *(longlong *)(*(longlong *)(param_1 + 0x148) + 0x17f0);
|
||||
FUN_1400843d0(lVar8,1,(short *)piVar14,puVar15);
|
||||
if (((piVar7 != (int *)0x0) && (piVar7 != (int *)PTR_DAT_14016f010)) &&
|
||||
(piVar7 + -2 != (int *)0x0)) {
|
||||
ppiVar11 = (int **)FUN_14003e7c0(lVar8,uVar4,piVar14,puVar15);
|
||||
local_d58 = ppiVar11;
|
||||
FUN_14003d040((int *)ppiVar11);
|
||||
local_d50 = 1;
|
||||
piVar14 = piVar7 + -1;
|
||||
*piVar14 = *piVar14 + -1;
|
||||
if (*piVar14 == 0) {
|
||||
FUN_14003e8b0(piVar7 + -2);
|
||||
}
|
||||
FUN_14003d0d0((longlong)ppiVar11);
|
||||
}
|
||||
}
|
||||
local_ce8 = &local_d28;
|
||||
FUN_14008a320((longlong *)&local_d28);
|
||||
if ((local_d20 != 0) && (local_d14 < 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14003dec0();
|
||||
}
|
||||
}
|
||||
FUN_14003d0d0((longlong)piVar6);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue