/* 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; }