server-re/decomp/MessageServer_Release_x64/full/functions/0x1400e1680.c

97 lines
4.1 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400e1680 FUN_1400e1680
* Pseudocode, not original source. */
void FUN_1400e1680(longlong param_1,longlong *param_2,wchar_t *param_3,longlong **param_4)
{
longlong *plVar1;
int *piVar2;
longlong *plVar3;
int *piVar4;
int *piVar5;
longlong *plVar6;
longlong lVar7;
double dVar8;
undefined8 uVar9;
longlong *local_res8;
piVar4 = (int *)(**(code **)(**(longlong **)(param_1 + 0x108) + 0x58))();
FUN_14006b350(piVar4);
lVar7 = *(longlong *)(param_1 + 0x108);
if (0.0 < *(double *)(lVar7 + 0x1648)) {
dVar8 = (double)(**(code **)(*(longlong *)(lVar7 + 0x70) + 0x1c0))();
if (10.0 < dVar8 - *(double *)(lVar7 + 0x1648)) {
if ((*(char *)(lVar7 + 0x1790) != '\0') || (*(int *)(lVar7 + 0x6c8) != 0)) {
param_3 =
L"**WARNING** CNetClient.FrameMove is not called in ten seconds. Is this your intention?";
param_2 = (longlong *)0x0;
FUN_1400af0e0(lVar7,0,
L"**WARNING** CNetClient.FrameMove is not called in ten seconds. Is this your intention?"
,param_4);
}
*(undefined8 *)(*(longlong *)(param_1 + 0x108) + 0x1648) = 0xbff0000000000000;
}
}
lVar7 = *(longlong *)(param_1 + 0x108);
plVar6 = (longlong *)(lVar7 + 0x70);
dVar8 = (double)(**(code **)(*plVar6 + 0x1c0))();
dVar8 = dVar8 - *(double *)(*(longlong *)(param_1 + 0x108) + 0x18c0);
if (((*(double *)(lVar7 + 0x6a8) <= dVar8 && dVar8 != *(double *)(lVar7 + 0x6a8)) &&
(*(longlong **)(lVar7 + 0x5d0) != (longlong *)0x0)) && (**(longlong **)(lVar7 + 0x5d0) != 0))
{
if ((*(char *)(lVar7 + 0x1790) != '\0') || (*(int *)(lVar7 + 0x6c8) != 0)) {
plVar6 = *(longlong **)(param_1 + 0x108);
param_4 = (longlong **)plVar6[0xd5];
param_3 = (wchar_t *)&DAT_140149160;
param_2 = (longlong *)0x0;
FUN_1400af0e0((longlong)plVar6,0,
L"default timeouttime:%lf,Client %d: 오랫동안 TCP 수신이 없어서 연결해제 모드로 전환합니다."
,param_4);
}
FUN_14006cb70(plVar6,param_2,param_3,param_4);
local_res8 = (longlong *)PTR_DAT_1401ac010;
param_4 = &local_res8;
param_2 = (longlong *)0xc;
param_3 = (wchar_t *)0x7;
plVar6 = *(longlong **)(param_1 + 0x108);
FUN_1400b9fd0(plVar6,0xc,(undefined *)0x7,param_4);
plVar3 = local_res8;
if (((local_res8 != (longlong *)0x0) && (local_res8 != (longlong *)PTR_DAT_1401ac010)) &&
(plVar1 = local_res8 + -1, plVar1 != (longlong *)0x0)) {
piVar5 = (int *)FUN_14006cb70(plVar6,param_2,param_3,param_4);
FUN_14006b350(piVar5);
piVar2 = (int *)((longlong)plVar3 + -4);
*piVar2 = *piVar2 + -1;
if (*piVar2 == 0) {
FUN_14006cc60(plVar1);
}
FUN_14006b3e0((longlong)piVar5);
}
local_res8 = (longlong *)PTR_DAT_1401ac010;
plVar6 = *(longlong **)(*(longlong *)(param_1 + 0x108) + 0x5d0);
lVar7 = 0;
if (plVar6 != (longlong *)0x0) {
lVar7 = *plVar6;
}
if (*(int *)(lVar7 + 0x100) < 4) {
*(undefined4 *)(lVar7 + 0x40) = 0;
*(undefined4 *)(lVar7 + 0x100) = 4;
uVar9 = (**(code **)(*(longlong *)(*(longlong *)(lVar7 + 0x108) + 0x70) + 0x1c0))();
*(undefined8 *)(lVar7 + 0x80) = uVar9;
*(undefined1 *)(lVar7 + 0xc0) = 0;
}
}
FUN_1400e0ab0(param_1,param_2,(undefined **)param_3,(double *)param_4);
FUN_1400b0d60(*(longlong **)(param_1 + 0x108),param_2,(SIZE_T)param_3,param_4);
FUN_1400ab4b0(*(longlong *)(param_1 + 0x108),param_2,(SIZE_T)param_3,param_4);
FUN_1400ab7a0(*(longlong *)(param_1 + 0x108),param_2,(SIZE_T)param_3,param_4);
FUN_1400aba00(*(longlong *)(param_1 + 0x108),param_2,(undefined8 *)param_3,param_4);
FUN_1400bc200(*(longlong **)(param_1 + 0x108),param_2,(SIZE_T)param_3,(undefined *)param_4);
FUN_1400a3680(*(longlong *)(param_1 + 0x108));
FUN_1400a37e0(*(longlong **)(param_1 + 0x108));
FUN_1400b1710(*(longlong **)(param_1 + 0x108),param_2,param_3,param_4);
FUN_14006b3e0((longlong)piVar4);
return;
}