/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400e39f0 FUN_1400e39f0 * Pseudocode, not original source. */ undefined8 FUN_1400e39f0(uint *param_1,undefined8 *param_2,undefined4 *param_3) { undefined8 uVar1; ulonglong uVar2; ulonglong uVar3; ulonglong uVar4; longlong lVar5; uint local_28 [2]; uint local_20; longlong local_18; uVar1 = FUN_1400dfd80(local_28,*param_1); if ((int)uVar1 == 0) { local_28[0] = *param_1; local_20 = param_1[2]; uVar2 = 0; lVar5 = (longlong)(int)(local_28[0] - 1); if (-1 < (int)(local_28[0] - 1)) { do { uVar2 = (ulonglong)*(uint *)(*(longlong *)(param_1 + 4) + lVar5 * 4) | uVar2 << 0x1c; if (uVar2 < 3) { uVar3 = 0; } else { uVar3 = uVar2 * 0x5555555 >> 0x1c; uVar2 = uVar2 + uVar3 * -3; if (2 < uVar2) { uVar4 = uVar2 / 3; uVar2 = uVar2 % 3; uVar3 = uVar3 + uVar4; } } lVar5 = lVar5 + -1; *(int *)(local_18 + 4 + lVar5 * 4) = (int)uVar3; } while (-1 < lVar5); } if (param_3 != (undefined4 *)0x0) { *param_3 = (int)uVar2; } if (param_2 != (undefined8 *)0x0) { FUN_1400ddc00((int *)local_28); FUN_1400dfc40((undefined8 *)local_28,param_2); } FUN_1400d5c00((int *)local_28); uVar1 = 0; } return uVar1; }