/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400ccd10 FUN_1400ccd10 * Pseudocode, not original source. */ void FUN_1400ccd10(undefined1 *param_1,undefined8 param_2,undefined8 param_3,longlong param_4) { int *piVar1; int *piVar2; undefined8 uVar3; LPVOID pvVar4; ulonglong uVar5; int iVar6; ulonglong uVar7; *param_1 = 1; FUN_140074120((undefined8 *)(param_1 + 8)); piVar1 = (int *)(param_1 + 0x30); piVar2 = piVar1; FUN_14006b350(piVar1); uVar5 = 0; uVar7 = uVar5; if (0 < *(int *)(param_1 + 0x80)) { do { if (((longlong)uVar5 < 0) || (iVar6 = (int)uVar7, *(int *)(param_1 + 0x80) <= iVar6)) { /* WARNING: Subroutine does not return */ FUN_14006be30(piVar2,param_2,param_3,param_4); } uVar3 = *(undefined8 *)(*(longlong *)(param_1 + 0x78) + uVar5 * 8); FUN_140075120(uVar3); if (*(int *)(param_1 + 0x80) <= iVar6) { /* WARNING: Subroutine does not return */ FUN_14006be30(uVar3,param_2,param_3,param_4); } piVar2 = *(int **)(*(longlong *)(param_1 + 0x78) + uVar5 * 8); Ordinal_3(); uVar7 = (ulonglong)(iVar6 + 1U); uVar5 = uVar5 + 1; } while ((int)(iVar6 + 1U) < *(int *)(param_1 + 0x80)); } FUN_1400cc980((longlong)(param_1 + 0x68),0,param_3,param_4); FUN_14006b3e0((longlong)piVar1); *(undefined ***)(param_1 + 0x68) = Proud::CFastArray::vftable; pvVar4 = *(LPVOID *)(param_1 + 0x78); if (pvVar4 != (LPVOID)0x0) { if (*(longlong **)(param_1 + 0x70) == (longlong *)0x0) { FUN_14006cc60(pvVar4); } else { (**(code **)(**(longlong **)(param_1 + 0x70) + 0x18))(); } } FUN_14006b400(piVar1,pvVar4,param_3,param_4); FUN_1400741a0((undefined8 *)(param_1 + 8)); return; }