/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400e5740 FUN_1400e5740 * Pseudocode, not original source. */ undefined8 FUN_1400e5740(int *param_1,int *param_2,int *param_3,int param_4) { int iVar1; int iVar2; undefined8 uVar3; ulonglong uVar4; uint uVar5; longlong lVar6; int iVar7; uint *puVar8; uint *puVar9; uint uVar10; ulonglong uVar11; ulonglong uVar12; uint *puVar13; int local_48 [4]; longlong local_38; iVar2 = *param_2; iVar1 = *param_1; uVar5 = iVar2 + 1 + iVar1; if ((int)uVar5 < 0x200) { if (iVar1 < iVar2) { iVar2 = iVar1; } if (iVar2 < 0x100) { uVar3 = FUN_1400e58a0(param_1,param_2,param_3,param_4); return uVar3; } } uVar3 = FUN_1400dfd80(local_48,uVar5); if ((int)uVar3 == 0) { iVar2 = *param_1; iVar1 = *param_2; local_48[0] = iVar1 + 1 + iVar2; lVar6 = 0; uVar11 = (longlong)param_4; if (0 < iVar2) { do { iVar7 = (int)uVar11; uVar11 = 0; uVar10 = 0; uVar5 = *(uint *)(*(longlong *)(param_1 + 4) + lVar6 * 4); puVar9 = (uint *)(local_38 + (longlong)param_4 * 4); puVar13 = (uint *)(*(longlong *)(param_2 + 4) + (longlong)iVar7 * 4); if (iVar7 < iVar1) { uVar12 = (ulonglong)(uint)(iVar1 - iVar7); puVar8 = puVar9; do { uVar10 = *puVar13; puVar9 = puVar8 + 1; puVar13 = puVar13 + 1; uVar4 = (ulonglong)uVar10 * (ulonglong)uVar5 + (ulonglong)*puVar8 + (uVar11 & 0xffffffff); uVar11 = uVar4 >> 0x1c; uVar10 = (uint)uVar11; uVar12 = uVar12 - 1; *puVar8 = (uint)uVar4 & 0xfffffff; puVar8 = puVar9; } while (uVar12 != 0); } lVar6 = lVar6 + 1; *puVar9 = uVar10; uVar11 = (ulonglong)(iVar7 - 1); } while (lVar6 < iVar2); } FUN_1400ddc00(local_48); FUN_1400dfc40((undefined8 *)local_48,(undefined8 *)param_3); FUN_1400d5c00(local_48); uVar3 = 0; } return uVar3; }