/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400ea570 FUN_1400ea570 * Pseudocode, not original source. */ void FUN_1400ea570(longlong param_1,longlong param_2,longlong param_3,undefined8 param_4) { longlong *plVar1; longlong *plVar2; longlong *plVar3; int iVar4; longlong *plVar5; plVar1 = (longlong *)(param_1 + 0x10); plVar3 = plVar1; FUN_14006b350((int *)plVar1); plVar5 = (longlong *)0x0; plVar2 = plVar5; while( true ) { iVar4 = (int)plVar2; if (iVar4 == *(int *)(param_1 + 0x118)) { plVar3 = plVar5; if (*(longlong *)(param_1 + 0x70) != 0) { plVar3 = *(longlong **)(param_1 + 0x60); } for (; plVar3 != (longlong *)0x0; plVar3 = (longlong *)plVar3[2]) { plVar2 = plVar5; if ((longlong *)plVar3[1] != (longlong *)0x0) { plVar2 = *(longlong **)plVar3[1]; } if ((int)plVar2[0x492] < 4) { plVar2[0x492] = 4; } } FUN_14006b3e0((longlong)plVar1); return; } if ((iVar4 < 0) || (*(int *)(param_1 + 0x118) <= iVar4)) break; param_2 = (longlong)iVar4; param_3 = *(longlong *)(param_1 + 0x110); plVar3 = *(longlong **)(param_3 + param_2 * 8); plVar2 = plVar5; if (plVar3 != (longlong *)0x0) { plVar2 = (longlong *)*plVar3; } plVar3 = (longlong *)plVar2[2]; if ((plVar3 != (longlong *)0x0) && (*plVar3 != 0)) { plVar3 = *(longlong **)(param_3 + param_2 * 8); plVar2 = plVar5; if (plVar3 != (longlong *)0x0) { plVar2 = (longlong *)*plVar3; } plVar3 = plVar5; if ((undefined8 *)plVar2[2] != (undefined8 *)0x0) { plVar3 = *(longlong **)plVar2[2]; } FUN_140071fc0(plVar3,param_2,param_3,param_4); } if (*(int *)(param_1 + 0x118) <= iVar4) { /* WARNING: Subroutine does not return */ FUN_14006be30(plVar3,param_2,param_3,param_4); } plVar2 = (longlong *)(ulonglong)(iVar4 + 1); } /* WARNING: Subroutine does not return */ FUN_14006be30(plVar3,param_2,param_3,param_4); }