75 lines
2.2 KiB
C
75 lines
2.2 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1401ab180 FUN_1401ab180
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_1401ab180(longlong param_1,int *param_2,undefined8 param_3,longlong param_4,
|
|
undefined1 param_5)
|
|
|
|
{
|
|
int iVar1;
|
|
longlong lVar2;
|
|
int iVar3;
|
|
undefined8 uVar4;
|
|
longlong lVar5;
|
|
undefined1 local_58 [8];
|
|
undefined1 local_50 [8];
|
|
longlong local_48;
|
|
int local_3c;
|
|
int local_30;
|
|
undefined **local_28;
|
|
int local_20;
|
|
undefined2 local_1c;
|
|
undefined1 local_18;
|
|
|
|
FUN_14016b440(local_58);
|
|
local_28 = Proud::AddrPort::vftable;
|
|
local_18 = 0;
|
|
local_30 = 0;
|
|
local_20 = DAT_140344450;
|
|
local_1c = DAT_140344454;
|
|
FUN_14016abe0(local_58);
|
|
if (*(longlong *)(param_2 + 2) == 0) {
|
|
if (*(longlong *)(param_2 + 4) == 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d1e0();
|
|
}
|
|
iVar1 = param_2[6];
|
|
}
|
|
else {
|
|
iVar1 = *(int *)(*(longlong *)(param_2 + 2) + 0x18);
|
|
}
|
|
iVar3 = (int)(*param_2 + (*param_2 >> 0x1f & 7U)) >> 3;
|
|
lVar5 = *(longlong *)(param_2 + 4);
|
|
if (lVar5 == 0) {
|
|
lVar2 = *(longlong *)(param_2 + 2);
|
|
if (lVar2 == 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d1e0();
|
|
}
|
|
if (*(int *)(lVar2 + 0x18) != 0) {
|
|
lVar5 = *(longlong *)(lVar2 + 0x10);
|
|
}
|
|
}
|
|
FUN_14016b9e0(local_58,iVar3 + lVar5,iVar1 - iVar3);
|
|
local_18 = (undefined1)param_2[0x10];
|
|
local_20 = param_2[0xe];
|
|
local_1c = (undefined2)param_2[0xf];
|
|
local_30 = param_2[10];
|
|
FUN_1401b1b20(param_4 + 0xc0);
|
|
uVar4 = (**(code **)(**(longlong **)(param_1 + 0x148) + 0x58))();
|
|
FUN_14016db50(uVar4);
|
|
if (DAT_14034c86f != '\0') {
|
|
(**(code **)(**(longlong **)(param_1 + 0x148) + 200))
|
|
(*(longlong **)(param_1 + 0x148),
|
|
L"Proud::CNetThreads_S::NetWorkerThread_ProcessMessage_UserMessage");
|
|
}
|
|
FUN_1401aae30(param_1,param_4,local_58,2,param_5);
|
|
FUN_14016dbe0(uVar4);
|
|
FUN_14016d0e0(local_50);
|
|
if ((local_48 != 0) && (local_3c < 0)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6b0();
|
|
}
|
|
return;
|
|
}
|
|
|