/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14003e820 FUN_14003e820 * Pseudocode, not original source. */ void FUN_14003e820(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_14003d690(param_1); lVar3 = lVar3 + (longlong)iVar6 * 0x18; lVar4 = FUN_14003d690(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_14003e6b0(param_1,*(int *)(param_1 + 0x18) - iVar6,param_3,param_4); return; } /* WARNING: Subroutine does not return */ FUN_14002f590(); }