decomp DBCServer_Release and inspect/document database
This commit is contained in:
parent
4b267cbe05
commit
7834b98bf0
28222 changed files with 843300 additions and 144 deletions
180
decomp/DBCServer_Release_x64/full/functions/0x1401a5df0.c
Normal file
180
decomp/DBCServer_Release_x64/full/functions/0x1401a5df0.c
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x1401a5df0 FUN_1401a5df0
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
void FUN_1401a5df0(longlong param_1,undefined8 param_2,longlong param_3,longlong param_4)
|
||||
|
||||
{
|
||||
undefined **ppuVar1;
|
||||
int *piVar2;
|
||||
undefined **ppuVar3;
|
||||
char cVar4;
|
||||
undefined2 uVar5;
|
||||
longlong lVar6;
|
||||
undefined8 uVar7;
|
||||
longlong *plVar8;
|
||||
undefined8 uVar9;
|
||||
undefined *puVar10;
|
||||
undefined *puVar11;
|
||||
undefined1 auStack_dc8 [32];
|
||||
undefined4 *local_da8;
|
||||
undefined8 *local_da0;
|
||||
undefined4 local_d98 [2];
|
||||
undefined *local_d90;
|
||||
undefined1 local_d88 [8];
|
||||
longlong local_d80;
|
||||
longlong local_d78;
|
||||
undefined4 local_d70;
|
||||
int local_d6c;
|
||||
undefined8 local_d60;
|
||||
undefined8 local_d58;
|
||||
undefined1 local_d50;
|
||||
undefined4 local_d4c;
|
||||
undefined1 local_d48;
|
||||
undefined1 local_d47;
|
||||
undefined8 local_d40;
|
||||
undefined1 local_d38;
|
||||
undefined8 local_d30;
|
||||
undefined1 local_d28 [80];
|
||||
undefined8 local_cd8;
|
||||
undefined8 uStack_cd0;
|
||||
undefined4 local_cc8;
|
||||
undefined4 uStack_cc4;
|
||||
undefined4 uStack_cc0;
|
||||
undefined4 uStack_cbc;
|
||||
undefined4 *local_48;
|
||||
undefined4 local_40;
|
||||
int local_3c;
|
||||
ulonglong local_38;
|
||||
|
||||
local_d30 = 0xfffffffffffffffe;
|
||||
local_38 = DAT_1403463c0 ^ (ulonglong)auStack_dc8;
|
||||
FUN_1401b1b20(param_4 + 0x40);
|
||||
local_cd8 = (undefined **)0x0;
|
||||
uStack_cd0 = 0;
|
||||
cVar4 = FUN_14016b370(param_2,&local_cd8);
|
||||
if ((cVar4 != '\0') && (cVar4 = FUN_14016be00(param_2,local_d98), cVar4 != '\0')) {
|
||||
FUN_14016b440(local_d88);
|
||||
FUN_14016abe0(local_d88);
|
||||
FUN_14016b5a0(local_d88,0x800);
|
||||
FUN_14016b5a0(local_d88,0);
|
||||
FUN_14004eef0(local_d88,0x11);
|
||||
FUN_140153d20(local_d88,&local_cd8);
|
||||
FUN_14016c2f0(local_d88,param_3);
|
||||
FUN_140153c40(local_d88,local_d98[0]);
|
||||
local_3c = 200;
|
||||
local_40 = 0;
|
||||
local_48 = &local_cc8;
|
||||
if (local_d80 == 0) {
|
||||
if (local_d78 == 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d1e0();
|
||||
}
|
||||
}
|
||||
else {
|
||||
local_d70 = *(undefined4 *)(local_d80 + 0x18);
|
||||
}
|
||||
lVar6 = local_d78;
|
||||
if (local_d78 == 0) {
|
||||
if (local_d80 == 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d1e0();
|
||||
}
|
||||
lVar6 = 0;
|
||||
if (*(int *)(local_d80 + 0x18) != 0) {
|
||||
lVar6 = *(longlong *)(local_d80 + 0x10);
|
||||
}
|
||||
}
|
||||
local_40 = 1;
|
||||
local_cd8._0_4_ = (undefined4)lVar6;
|
||||
local_cd8._4_4_ = (undefined4)((ulonglong)lVar6 >> 0x20);
|
||||
local_cc8 = (undefined4)local_cd8;
|
||||
uStack_cc4 = local_cd8._4_4_;
|
||||
uStack_cbc = uStack_cd0._4_4_;
|
||||
local_d60 = CONCAT44(local_d60._4_4_,5);
|
||||
local_d58 = 0;
|
||||
local_d50 = 1;
|
||||
local_d4c = 0xffffffff;
|
||||
local_d48 = 1;
|
||||
local_d47 = DAT_140344dfc;
|
||||
local_cd8 = Proud::AddrPort::vftable;
|
||||
uStack_cd0 = CONCAT26(uStack_cd0._6_2_,*(undefined6 *)(param_3 + 8));
|
||||
uStack_cc0 = local_d70;
|
||||
uVar5 = FUN_1401b5550(1);
|
||||
local_da0 = &local_d60;
|
||||
local_da8 = &local_cc8;
|
||||
FUN_1401baf20(param_4,0,uVar5,&local_cd8);
|
||||
if (local_48 == (undefined4 *)0x0) {
|
||||
FUN_14016d300(local_d28,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0);
|
||||
/* WARNING: Subroutine does not return */
|
||||
_CxxThrowException(local_d28,(ThrowInfo *)&DAT_1403417f8);
|
||||
}
|
||||
if (local_3c < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6b0();
|
||||
}
|
||||
uVar7 = (**(code **)(**(longlong **)(param_1 + 0x148) + 0x58))();
|
||||
local_d40 = uVar7;
|
||||
FUN_14016db50(uVar7);
|
||||
local_d38 = 1;
|
||||
if (DAT_14034c86f != '\0') {
|
||||
(**(code **)(**(longlong **)(param_1 + 0x148) + 200))
|
||||
(*(longlong **)(param_1 + 0x148),
|
||||
L"Proud::CNetThreads_S::NetWorkerThread_ProcessMessage_PeerUdp_ServerHolepunch");
|
||||
}
|
||||
if (*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x17f0) != 0) {
|
||||
FUN_14016d8c0();
|
||||
local_d90 = PTR_DAT_1403440a0;
|
||||
plVar8 = (longlong *)FUN_1401705d0(param_3,&local_cd8);
|
||||
puVar10 = (undefined *)*plVar8;
|
||||
if ((undefined *)*plVar8 == (undefined *)0x0) {
|
||||
puVar10 = PTR_DAT_1403440a0;
|
||||
}
|
||||
FUN_14004c020(&local_d90,L"MessageType_PeerUdp_ServerHolepunch from %s",puVar10);
|
||||
ppuVar3 = local_cd8;
|
||||
if (((local_cd8 != (undefined **)0x0) && (local_cd8 != (undefined **)PTR_DAT_1403440a0)) &&
|
||||
(ppuVar1 = local_cd8 + -1, ppuVar1 != (undefined **)0x0)) {
|
||||
uVar9 = FUN_14016d8c0();
|
||||
local_d60 = uVar9;
|
||||
FUN_14016db50(uVar9);
|
||||
local_d58 = CONCAT71(local_d58._1_7_,1);
|
||||
piVar2 = (int *)((longlong)ppuVar3 + -4);
|
||||
*piVar2 = *piVar2 + -1;
|
||||
if (*piVar2 == 0) {
|
||||
FUN_14016d970(ppuVar1);
|
||||
}
|
||||
FUN_14016dbe0(uVar9);
|
||||
}
|
||||
puVar10 = local_d90;
|
||||
puVar11 = local_d90;
|
||||
if (local_d90 == (undefined *)0x0) {
|
||||
puVar11 = PTR_DAT_1403440a0;
|
||||
}
|
||||
FUN_1401adb30(*(undefined8 *)(*(longlong *)(param_1 + 0x148) + 0x17f0),1,puVar11);
|
||||
if (((puVar10 != (undefined *)0x0) && (puVar10 != PTR_DAT_1403440a0)) &&
|
||||
(puVar10 + -8 != (undefined *)0x0)) {
|
||||
uVar9 = FUN_14016d8c0();
|
||||
local_d60 = uVar9;
|
||||
FUN_14016db50(uVar9);
|
||||
local_d58 = CONCAT71(local_d58._1_7_,1);
|
||||
piVar2 = (int *)(puVar10 + -4);
|
||||
*piVar2 = *piVar2 + -1;
|
||||
if (*piVar2 == 0) {
|
||||
FUN_14016d970(puVar10 + -8);
|
||||
}
|
||||
FUN_14016dbe0(uVar9);
|
||||
}
|
||||
}
|
||||
FUN_14016dbe0(uVar7);
|
||||
local_cd8 = (undefined **)&local_d80;
|
||||
FUN_14016d0e0(&local_d80);
|
||||
if ((local_d78 != 0) && (local_d6c < 0)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6b0();
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue