/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x140001c50 FUN_140001c50 * Pseudocode, not original source. */ longlong * FUN_140001c50(longlong *param_1,undefined8 *param_2) { ulonglong uVar1; code *pcVar2; char cVar3; longlong *plVar4; ulonglong uVar5; uVar5 = 0xffffffffffffffff; if (param_2[2] != 0xffffffffffffffff) { uVar5 = param_2[2]; } if (uVar5 < -param_1[2] - 1U) { if (uVar5 != 0) { uVar1 = param_1[2] + uVar5; cVar3 = FUN_1400018a0(param_1,uVar1); if (cVar3 != '\0') { if (7 < (ulonglong)param_2[3]) { param_2 = (undefined8 *)*param_2; } plVar4 = param_1; if (7 < (ulonglong)param_1[3]) { plVar4 = (longlong *)*param_1; } memcpy((void *)((longlong)plVar4 + param_1[2] * 2),param_2,uVar5 * 2); param_1[2] = uVar1; plVar4 = param_1; if (7 < (ulonglong)param_1[3]) { plVar4 = (longlong *)*param_1; } *(undefined2 *)((longlong)plVar4 + uVar1 * 2) = 0; } } return param_1; } std::_Xlength_error("string too long"); pcVar2 = (code *)swi(3); plVar4 = (longlong *)(*pcVar2)(); return plVar4; }