155 lines
5.6 KiB
C
155 lines
5.6 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1401a71b0 FUN_1401a71b0
|
|
* 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_1401a71b0(longlong param_1,int *param_2,longlong *param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
char cVar2;
|
|
int iVar3;
|
|
undefined4 uVar4;
|
|
undefined8 uVar5;
|
|
longlong lVar6;
|
|
int iVar7;
|
|
undefined1 auStack_1aa8 [32];
|
|
undefined1 *local_1a88;
|
|
undefined1 local_1a80;
|
|
undefined4 local_1a78;
|
|
undefined4 local_1a74;
|
|
undefined1 local_1a70 [8];
|
|
undefined1 local_1a68 [8];
|
|
longlong local_1a60;
|
|
int local_1a54;
|
|
undefined8 local_1a48;
|
|
undefined1 local_1a40;
|
|
undefined8 local_1a38;
|
|
undefined1 local_1a30;
|
|
undefined1 local_1a28 [16];
|
|
undefined8 local_1a18;
|
|
undefined1 local_1a08 [8];
|
|
undefined1 local_1a00 [8];
|
|
longlong local_19f8;
|
|
undefined4 local_19f0;
|
|
int local_19ec;
|
|
undefined1 local_19e0 [136];
|
|
undefined1 local_1958 [3200];
|
|
undefined1 *local_cd8;
|
|
undefined4 local_cd0;
|
|
undefined4 local_ccc;
|
|
undefined1 local_cc8 [3216];
|
|
ulonglong local_38;
|
|
undefined8 uStack_30;
|
|
|
|
uStack_30 = 0x1401a71ca;
|
|
local_1a18 = 0xfffffffffffffffe;
|
|
local_38 = DAT_1403463c0 ^ (ulonglong)auStack_1aa8;
|
|
FUN_1401b1b20(param_3 + 0x18);
|
|
cVar2 = FUN_14016be00(param_2,&local_1a78);
|
|
if (cVar2 != '\0') {
|
|
cVar2 = FUN_14016b370(param_2,&local_1a74,4);
|
|
if (cVar2 != '\0') {
|
|
cVar2 = FUN_14016ba10(param_2,&local_1a88);
|
|
if (cVar2 != '\0') {
|
|
iVar7 = (int)local_1a88;
|
|
if ((iVar7 < 0) || (DAT_140344d70 <= iVar7)) {
|
|
FUN_140193740(*(undefined8 *)(param_1 + 0x148),param_3,
|
|
"Proud::CNetThreads_S::NetWorkerThread_ProcessMessage_LingerDataFrame1",2);
|
|
}
|
|
else {
|
|
iVar1 = *param_2;
|
|
iVar3 = FUN_14016afd0(param_2);
|
|
if (((int)((iVar1 >> 0x1f & 7U) + iVar1) >> 3) + iVar7 != iVar3) {
|
|
FUN_140193740(*(undefined8 *)(param_1 + 0x148),param_3,
|
|
"msg.GetReadOffset() + frameLength == msg.GetLength()",2);
|
|
}
|
|
FUN_14016b440(local_1a70);
|
|
cVar2 = FUN_14016b6a0(param_2,local_1a70,(ulonglong)local_1a88 & 0xffffffff);
|
|
if (cVar2 == '\0') {
|
|
FUN_140193740(*(longlong **)(param_1 + 0x148),param_3,
|
|
"Proud::CNetThreads_S::NetWorkerThread_ProcessMessage_LingerDataFrame1",2)
|
|
;
|
|
local_1a88 = local_1a68;
|
|
FUN_14016d0e0(local_1a68);
|
|
if ((local_1a60 != 0) && (local_1a54 < 0)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6b0();
|
|
}
|
|
}
|
|
else {
|
|
uVar5 = (**(code **)(**(longlong **)(param_1 + 0x148) + 0x58))();
|
|
local_1a48 = uVar5;
|
|
FUN_14016db50(uVar5);
|
|
local_1a40 = 1;
|
|
if (DAT_14034c86f != '\0') {
|
|
(**(code **)(**(longlong **)(param_1 + 0x148) + 200))
|
|
(*(longlong **)(param_1 + 0x148),
|
|
L"Proud::CNetThreads_S::NetWorkerThread_ProcessMessage_LingerDataFrame1");
|
|
}
|
|
uVar4 = (**(code **)(*param_3 + 0x10))(param_3);
|
|
lVar6 = FUN_1401763d0(*(undefined8 *)(param_1 + 0x148),local_1a78);
|
|
if (lVar6 == 0) {
|
|
FUN_14016dbe0(uVar5);
|
|
local_1a88 = local_1a68;
|
|
FUN_14016d0e0(local_1a68);
|
|
if ((local_1a60 != 0) && (local_1a54 < 0)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6b0();
|
|
}
|
|
}
|
|
else {
|
|
FUN_14016dbe0(uVar5);
|
|
local_1a40 = 0;
|
|
FUN_14016b440(local_1a08);
|
|
FUN_14016b0c0(local_1a08,local_19e0,0x80);
|
|
FUN_14004eef0(local_1a08,0x19);
|
|
FUN_140153c40(local_1a08,uVar4);
|
|
FUN_140153c40(local_1a08,local_1a74);
|
|
FUN_14016aaa0(local_1a28,local_1a08);
|
|
FUN_14016cac0(local_1a08,(longlong)iVar7);
|
|
local_ccc = 200;
|
|
local_cd0 = 0;
|
|
local_cd8 = local_1958;
|
|
FUN_14016e080(local_cc8,local_1a08);
|
|
FUN_14016ded0(local_1958,local_cc8);
|
|
FUN_14016ddc0(local_cc8);
|
|
FUN_14016e080(local_cc8,local_1a70);
|
|
FUN_14016ded0(local_1958,local_cc8);
|
|
FUN_14016ddc0(local_cc8);
|
|
uVar5 = (**(code **)(*(longlong *)(lVar6 + 0x108) + 0x10))();
|
|
local_1a38 = uVar5;
|
|
FUN_14016db50(uVar5);
|
|
local_1a30 = 1;
|
|
local_1a88 = (undefined1 *)0x0;
|
|
local_1a80 = 1;
|
|
FUN_1401ba860(*(undefined8 *)(lVar6 + 0x748),local_1958,&local_1a88);
|
|
FUN_14016dbe0(uVar5);
|
|
FUN_14016ddc0(local_1958);
|
|
FUN_14016aac0(local_1a28);
|
|
local_1a88 = local_1a00;
|
|
FUN_14016d0e0(local_1a00);
|
|
if (local_19f8 != 0) {
|
|
if (local_19ec < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6b0();
|
|
}
|
|
local_19f0 = 0;
|
|
}
|
|
local_1a88 = local_1a68;
|
|
FUN_14016d0e0(local_1a68);
|
|
if ((local_1a60 != 0) && (local_1a54 < 0)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6b0();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|