/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14007c560 FUN_14007c560 * Pseudocode, not original source. */ void FUN_14007c560(longlong param_1,int param_2,undefined8 *param_3,int param_4) { longlong lVar1; longlong lVar2; longlong lVar3; int iVar4; lVar2 = (longlong)param_2; if (((-1 < param_4) && (-1 < param_2)) && (param_2 <= *(int *)(param_1 + 0x18))) { iVar4 = *(int *)(param_1 + 0x18); FUN_14007b600(param_1,iVar4 + param_4,(longlong)param_3); iVar4 = iVar4 - param_2; lVar1 = 0; if (0 < iVar4) { lVar3 = lVar1; if (*(int *)(param_1 + 0x18) != 0) { lVar3 = *(longlong *)(param_1 + 0x10); } memmove((void *)(lVar3 + (lVar2 + param_4) * 4),(void *)(lVar3 + lVar2 * 4), (longlong)iVar4 << 2); } if (*(int *)(param_1 + 0x18) != 0) { lVar1 = *(longlong *)(param_1 + 0x10); } FUN_140006500((undefined8 *)(lVar1 + lVar2 * 4),param_3,(longlong)param_4 << 2); return; } /* WARNING: Subroutine does not return */ FUN_14006be00(); }