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

52 lines
1.3 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400ebe10 FUN_1400ebe10
* Pseudocode, not original source. */
void FUN_1400ebe10(undefined8 param_1,longlong param_2)
{
uint uVar1;
longlong lVar2;
undefined8 *puVar3;
int iVar4;
longlong local_res10 [3];
undefined **local_20;
undefined4 local_18;
undefined2 local_14;
*(undefined1 *)(param_2 + 0x80) = 1;
local_20 = Proud::AddrPort::vftable;
local_18 = DAT_1401b7760;
local_14 = DAT_1401b7764;
if (DAT_1401b7750 == (undefined8 *)0x0) {
iVar4 = 0;
puVar3 = (undefined8 *)PTR_DAT_1401ac008;
}
else {
puVar3 = DAT_1401b7750;
if (DAT_1401b7750 == (undefined8 *)PTR_DAT_1401ac008) {
iVar4 = 0;
}
else {
iVar4 = *(int *)(DAT_1401b7750 + -1);
}
}
if (*(longlong **)(param_2 + 0x10) == (longlong *)0x0) {
lVar2 = 0;
}
else {
lVar2 = **(longlong **)(param_2 + 0x10);
}
uVar1 = FUN_140073e00(lVar2,puVar3,(undefined **)(ulonglong)(iVar4 + 1),(longlong)&local_20);
if ((uVar1 == 0) || (uVar1 == 0x3e5)) {
*(undefined4 *)(param_2 + 0x18) = 1;
}
else {
*(undefined1 *)(param_2 + 0x80) = 0;
local_res10[0] = 0;
FUN_14006e8a0((longlong *)(param_2 + 0x10),local_res10);
*(undefined4 *)(param_2 + 0x18) = 3;
}
return;
}