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

59 lines
1.8 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140006c70 FUN_140006c70
* Pseudocode, not original source. */
void FUN_140006c70(longlong param_1,undefined8 *param_2,undefined8 param_3,undefined8 param_4)
{
int *piVar1;
uint *puVar2;
longlong *plVar3;
int *piVar4;
uint *puVar5;
wchar_t *pwVar6;
ulonglong uVar7;
undefined *puVar8;
uint uVar9;
undefined *local_res8;
puVar2 = operator_new(0x30);
if (puVar2 != (uint *)0x0) {
*puVar2 = 0;
puVar2[8] = 7;
puVar2[9] = 0;
puVar2[6] = 0;
puVar2[7] = 0;
*(undefined2 *)(puVar2 + 2) = 0;
}
*puVar2 = *(uint *)(param_2 + 6);
FUN_14006b350((int *)(param_1 + 0x110));
plVar3 = (longlong *)(**(code **)*param_2)(param_2,&local_res8);
puVar8 = (undefined *)*plVar3;
if ((undefined *)*plVar3 == (undefined *)0x0) {
puVar8 = PTR_DAT_1401ac010;
}
uVar7 = (ulonglong)*puVar2;
pwVar6 = L"Join Server : HostID:[%d][%s]";
FUN_14000a810(L"Join Server : HostID:[%d][%s]",uVar7,puVar8,param_4);
if (((local_res8 != (undefined *)0x0) && (local_res8 != PTR_DAT_1401ac010)) &&
(local_res8 + -8 != (undefined *)0x0)) {
piVar4 = (int *)FUN_14006cb70(pwVar6,uVar7,puVar8,param_4);
FUN_14006b350(piVar4);
piVar1 = (int *)(local_res8 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14006cc60(local_res8 + -8);
}
FUN_14006b3e0((longlong)piVar4);
}
puVar5 = FUN_140008260((char *)(param_1 + 0xb0),puVar2);
*(uint **)puVar5 = puVar2;
FUN_14006b3e0(param_1 + 0x110);
uVar9 = (uint)*(undefined8 *)(param_1 + 0xd0);
*(uint *)(param_1 + 0x10c) = uVar9;
if (*(uint *)(param_1 + 0x108) < uVar9) {
*(uint *)(param_1 + 0x108) = uVar9;
}
return;
}