/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400e74b8 FUN_1400e74b8 * Pseudocode, not original source. */ undefined8 FUN_1400e74b8(longlong param_1,byte *param_2,uint param_3) { int *piVar1; ulonglong _Size; uint uVar2; undefined8 uVar3; _Size = (ulonglong)param_3; if ((param_1 == 0) || (piVar1 = *(int **)(param_1 + 0x28), piVar1 == (int *)0x0)) { return 0xfffffffe; } if (piVar1[2] == 0) { if (*piVar1 != 10) goto LAB_1400e7532; } else if (*piVar1 != 10) { return 0xfffffffe; } uVar2 = FUN_1400ea49c(0,(byte *)0x0,0); uVar2 = FUN_1400ea49c(uVar2,param_2,param_3); if (uVar2 != piVar1[6]) { return 0xfffffffd; } LAB_1400e7532: uVar3 = FUN_1400e5dd8(param_1,*(int *)(param_1 + 0x18)); if ((int)uVar3 == 0) { if ((uint)piVar1[0xb] < param_3) { memcpy(*(void **)(piVar1 + 0xe),param_2 + (_Size - (uint)piVar1[0xb]), (ulonglong)(uint)piVar1[0xb]); piVar1[0xc] = piVar1[0xb]; } else { memcpy((void *)((longlong)*(void **)(piVar1 + 0xe) + ((uint)piVar1[0xb] - _Size)),param_2, _Size); piVar1[0xc] = param_3; } piVar1[3] = 1; uVar3 = 0; } else { *piVar1 = 0x1c; uVar3 = 0xfffffffc; } return uVar3; }