/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14008a380 FUN_14008a380 * Pseudocode, not original source. */ longlong * FUN_14008a380(longlong *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4) { undefined8 *puVar1; longlong lVar2; longlong lVar3; exception local_50 [72]; lVar3 = 0; puVar1 = (undefined8 *) (**(code **)(*param_2 + 8))(param_2,0x30,param_3,param_4,0xfffffffffffffffe); if (puVar1 != (undefined8 *)0x0) { *puVar1 = Proud::CFastArray::vftable; puVar1[1] = 0; puVar1[2] = 0; puVar1[3] = 0; *(undefined4 *)(puVar1 + 4) = 0; *(undefined4 *)((longlong)puVar1 + 0x24) = 1; } FUN_14007ff90(param_1,param_2,(longlong)puVar1,param_4); lVar2 = lVar3; if ((longlong *)*param_1 != (longlong *)0x0) { lVar2 = *(longlong *)*param_1; } *(longlong **)(lVar2 + 0x28) = param_2; if ((longlong *)*param_1 != (longlong *)0x0) { lVar3 = *(longlong *)*param_1; } if (*(int *)(lVar3 + 0x1c) < 1) { *(longlong **)(lVar3 + 8) = param_2; return param_1; } FUN_14006ba50(local_50,(wchar_t *)PTR_u_Collection_object_can_use_fast_h_1401ac1d0,puVar1,param_4) ; /* WARNING: Subroutine does not return */ _CxxThrowException(local_50,(ThrowInfo *)&DAT_1401a93e8); }