/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14007afc0 FUN_14007afc0 * Pseudocode, not original source. */ void FUN_14007afc0(longlong param_1,int param_2,undefined8 param_3,longlong param_4) { undefined8 *puVar1; int iVar2; longlong lVar3; longlong lVar4; longlong lVar5; int iVar6; longlong lVar7; iVar6 = (int)param_3; if ((-1 < param_2) && (-1 < iVar6)) { iVar2 = *(int *)(param_1 + 0x18) - param_2; if (iVar2 <= iVar6) { iVar6 = iVar2; } if (0 < iVar2 - iVar6) { lVar7 = (longlong)(iVar2 - iVar6); lVar5 = (longlong)param_2 * 0x18; do { lVar3 = FUN_14007a110(param_1); lVar3 = lVar3 + (longlong)iVar6 * 0x18; lVar4 = FUN_14007a110(param_1); *(undefined8 *)(lVar4 + lVar5) = *(undefined8 *)(lVar3 + lVar5); puVar1 = (undefined8 *)(lVar3 + 8 + lVar5); lVar5 = lVar5 + 0x18; lVar7 = lVar7 + -1; *(undefined8 *)(lVar4 + -0x10 + lVar5) = *puVar1; *(undefined8 *)(lVar4 + -8 + lVar5) = *(undefined8 *)(lVar3 + -8 + lVar5); } while (lVar7 != 0); } FUN_14007b490(param_1,*(int *)(param_1 + 0x18) - iVar6,param_3,param_4); return; } /* WARNING: Subroutine does not return */ FUN_14006be00(); }