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

68 lines
2.3 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400d12a0 FUN_1400d12a0
* Pseudocode, not original source. */
undefined8 *
FUN_1400d12a0(undefined8 *param_1,undefined8 param_2,short *param_3,longlong param_4,
longlong *param_5)
{
ulonglong uVar1;
longlong *plVar2;
longlong *plVar3;
int *piVar4;
undefined8 *puVar5;
undefined8 uVar6;
short *psVar7;
undefined4 uVar8;
uVar8 = (undefined4)param_4;
*param_1 = Proud::INetClientEvent::vftable;
*(undefined2 *)(param_1 + 1) = 0;
uVar6 = param_2;
psVar7 = param_3;
FUN_1400c15c0(param_1 + 2);
param_1[2] = VizS2C::Stub::vftable;
puVar5 = param_1 + 6;
FUN_1400f8990(puVar5);
*param_1 = Proud::CVizAgent::vftable;
param_1[2] = Proud::CVizAgent::vftable;
param_1[6] = Proud::CVizAgent::vftable;
param_1[9] = 0;
FUN_14006cb70(puVar5,uVar6,psVar7,param_4);
param_1[10] = PTR_DAT_1401ac010;
FUN_14006cb70(puVar5,uVar6,psVar7,param_4);
param_1[0xc] = PTR_DAT_1401ac010;
puVar5 = param_1 + 0xd;
FUN_1400be340(puVar5);
*puVar5 = VizC2S::Proxy::vftable;
if (*(int *)((longlong)param_1 + 0x7c) != 1) {
FUN_14006c280((wchar_t *)PTR_u_PIDL_compiler_is_incompatible_to_1401ad790);
}
uVar1 = FUN_140079250();
uVar6 = CONCAT71((int7)((ulonglong)psVar7 >> 8),1);
FUN_14006b270((undefined4 *)(param_1 + 0x13),uVar1 & 0xffffffff,uVar6,param_4);
param_1[8] = param_2;
FUN_140008030(param_1 + 10,param_3,uVar6,param_4);
*(undefined4 *)(param_1 + 0xb) = uVar8;
FUN_140003110(param_1 + 0xc,param_5,uVar6,param_4);
plVar2 = operator_new(0x1900);
plVar3 = (longlong *)0x0;
if (plVar2 != (longlong *)0x0) {
plVar3 = FUN_1400b9740(plVar2,param_5,uVar6,param_4);
}
param_1[9] = plVar3;
(**(code **)(plVar3[0xe] + 0x118))(plVar3 + 0xe,param_1);
(**(code **)(*(longlong *)param_1[9] + 8))((longlong *)param_1[9],puVar5);
plVar3 = (longlong *)param_1[9];
puVar5 = param_1 + 2;
(**(code **)(*plVar3 + 0x10))();
param_1[0x12] = 0;
*(undefined4 *)(param_1 + 0x11) = 0;
*(undefined1 *)(param_1 + 0xf) = 1;
*(undefined1 *)(param_1 + 5) = 1;
piVar4 = (int *)FUN_1400cf6e0(plVar3,puVar5,uVar6,param_4);
FUN_1400f8c90(piVar4,(longlong)(param_1 + 6),10,param_4);
return param_1;
}