add agent manager release decomp
This commit is contained in:
parent
31ff800b2a
commit
fac6117145
7019 changed files with 254032 additions and 5 deletions
120
decomp/AgentManager_Release_x64/full/functions/0x14005ea40.c
Normal file
120
decomp/AgentManager_Release_x64/full/functions/0x14005ea40.c
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
||||
* Ghidra 12.1.2 decompiler output for 0x14005ea40 FUN_14005ea40
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
undefined8
|
||||
FUN_14005ea40(longlong param_1,uint param_2,undefined8 param_3,uint *param_4,int *param_5)
|
||||
|
||||
{
|
||||
int *piVar1;
|
||||
uint uVar2;
|
||||
undefined4 uVar3;
|
||||
undefined2 uVar4;
|
||||
short *psVar5;
|
||||
int *piVar6;
|
||||
int *piVar7;
|
||||
undefined8 uVar8;
|
||||
uint *puVar9;
|
||||
longlong *plVar10;
|
||||
longlong lVar11;
|
||||
longlong lVar12;
|
||||
ulonglong uVar13;
|
||||
undefined *puVar14;
|
||||
short *psVar15;
|
||||
longlong *local_res8;
|
||||
uint local_res10 [2];
|
||||
short *local_res20;
|
||||
|
||||
local_res10[0] = param_2;
|
||||
piVar6 = (int *)(**(code **)(**(longlong **)(param_1 + 0x20) + 0x58))();
|
||||
FUN_14003d040(piVar6);
|
||||
if (DAT_14017614f != '\0') {
|
||||
(**(code **)(**(longlong **)(param_1 + 0x20) + 200))();
|
||||
}
|
||||
uVar2 = *param_4;
|
||||
lVar11 = *(longlong *)(param_1 + 0x20);
|
||||
uVar13 = (ulonglong)uVar2 % (ulonglong)*(uint *)(lVar11 + 0xca0);
|
||||
if ((*(longlong *)(lVar11 + 0xc80) != 0) &&
|
||||
(puVar9 = *(uint **)(*(longlong *)(lVar11 + 0xc80) + uVar13 * 8), puVar9 != (uint *)0x0)) {
|
||||
while ((uint)uVar13 == puVar9[8] % *(uint *)(lVar11 + 0xca0)) {
|
||||
if (*puVar9 == uVar2) {
|
||||
if ((*(longlong *)(puVar9 + 2) != 0) &&
|
||||
(*(longlong *)(*(longlong *)(puVar9 + 2) + 0x228) == 0)) {
|
||||
FUN_14005d550(lVar11 + 0x2d8,(longlong *)&local_res8,local_res10[0],uVar2);
|
||||
if ((local_res8 != (longlong *)0x0) &&
|
||||
((lVar11 = *local_res8, lVar11 != 0 && (*(char *)(lVar11 + 8) == '\0')))) {
|
||||
lVar12 = 0;
|
||||
if (*param_5 != 0x1d) {
|
||||
*(undefined8 *)(lVar11 + 0x198) = 0;
|
||||
}
|
||||
uVar4 = DAT_14016f3d4;
|
||||
uVar3 = DAT_14016f3d0;
|
||||
if (local_res8 != (longlong *)0x0) {
|
||||
lVar12 = *local_res8;
|
||||
}
|
||||
if (*(char *)(lVar12 + 8) != '\x01') {
|
||||
*(undefined4 *)(lVar12 + 0x10) = 0;
|
||||
*(undefined4 *)(lVar12 + 0x20) = uVar3;
|
||||
*(undefined2 *)(lVar12 + 0x24) = uVar4;
|
||||
*(undefined4 *)(lVar12 + 0x30) = uVar3;
|
||||
*(undefined2 *)(lVar12 + 0x34) = uVar4;
|
||||
*(undefined1 *)(lVar12 + 0x38) = 0;
|
||||
uVar4 = DAT_14016f3d4;
|
||||
uVar3 = DAT_14016f3d0;
|
||||
*(undefined4 *)(lVar12 + 0x40) = 0;
|
||||
*(undefined4 *)(lVar12 + 0x50) = uVar3;
|
||||
*(undefined2 *)(lVar12 + 0x54) = uVar4;
|
||||
*(undefined4 *)(lVar12 + 0x60) = uVar3;
|
||||
*(undefined2 *)(lVar12 + 100) = uVar4;
|
||||
*(undefined1 *)(lVar12 + 0x68) = 0;
|
||||
*(undefined1 *)(lVar12 + 8) = 1;
|
||||
}
|
||||
plVar10 = (longlong *)(*(longlong *)(param_1 + 0x20) + 0x4a8);
|
||||
puVar9 = local_res10;
|
||||
puVar14 = &DAT_140177f90;
|
||||
uVar13 = (ulonglong)*param_4;
|
||||
(**(code **)(*plVar10 + 0x70))();
|
||||
if (*(longlong *)(*(longlong *)(param_1 + 0x20) + 0x17f0) != 0) {
|
||||
FUN_14003e7c0(plVar10,uVar13,puVar14,puVar9);
|
||||
local_res20 = (short *)PTR_DAT_14016f010;
|
||||
uVar13 = (ulonglong)*param_4;
|
||||
FUN_140029b80((longlong *)&local_res20,
|
||||
L"Client %d-Client %d간 P2P UDP 홀펀칭 중도 해제",
|
||||
(ulonglong)local_res10[0],uVar13);
|
||||
psVar5 = local_res20;
|
||||
psVar15 = local_res20;
|
||||
if (local_res20 == (short *)0x0) {
|
||||
psVar15 = (short *)PTR_DAT_14016f010;
|
||||
}
|
||||
uVar8 = 1;
|
||||
lVar11 = *(longlong *)(*(longlong *)(param_1 + 0x20) + 0x17f0);
|
||||
FUN_1400843d0(lVar11,1,psVar15,uVar13);
|
||||
if (((psVar5 != (short *)0x0) && (psVar5 != (short *)PTR_DAT_14016f010)) &&
|
||||
(psVar5 + -4 != (short *)0x0)) {
|
||||
piVar7 = (int *)FUN_14003e7c0(lVar11,uVar8,psVar15,uVar13);
|
||||
FUN_14003d040(piVar7);
|
||||
piVar1 = (int *)(psVar5 + -2);
|
||||
*piVar1 = *piVar1 + -1;
|
||||
if (*piVar1 == 0) {
|
||||
FUN_14003e8b0(psVar5 + -4);
|
||||
}
|
||||
FUN_14003d0d0((longlong)piVar7);
|
||||
}
|
||||
local_res20 = (short *)PTR_DAT_14016f010;
|
||||
}
|
||||
}
|
||||
if ((local_res8 != (longlong *)0x0) &&
|
||||
(local_res8[1] = local_res8[1] + -1, local_res8[1] == 0)) {
|
||||
FUN_14004e450(local_res8);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
puVar9 = *(uint **)(puVar9 + 4);
|
||||
if (puVar9 == (uint *)0x0) break;
|
||||
}
|
||||
}
|
||||
uVar8 = FUN_14003d0d0((longlong)piVar6);
|
||||
return CONCAT71((int7)((ulonglong)uVar8 >> 8),1);
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue