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