/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x140002bc0 FUN_140002bc0 * Pseudocode, not original source. */ ulonglong * FUN_140002bc0(ulonglong *param_1,ulonglong param_2) { ulonglong uVar1; code *pcVar2; char cVar3; ulonglong *puVar4; uVar1 = param_1[3]; puVar4 = param_1; if (7 < uVar1) { puVar4 = (ulonglong *)*param_1; } if (puVar4 < (ulonglong *)((longlong)L" Sessoion" + 1U)) { puVar4 = param_1; if (7 < uVar1) { puVar4 = (ulonglong *)*param_1; } if (L" Sessoion" < (wchar_t *)((longlong)puVar4 + param_1[2] * 2)) { puVar4 = param_1; if (7 < uVar1) { puVar4 = (ulonglong *)*param_1; } puVar4 = (ulonglong *) FUN_140002cd0((longlong *)param_1,param_1, (longlong)L" Sessoion" - (longlong)puVar4 >> 1,param_2); return puVar4; } } if (param_2 < -param_1[2] - 1) { if (param_2 != 0) { uVar1 = param_1[2] + param_2; cVar3 = FUN_140001870(param_1,uVar1); if (cVar3 != '\0') { puVar4 = param_1; if (7 < param_1[3]) { puVar4 = (ulonglong *)*param_1; } memcpy((void *)((longlong)puVar4 + param_1[2] * 2),L" Sessoion",param_2 * 2); param_1[2] = uVar1; puVar4 = param_1; if (7 < param_1[3]) { puVar4 = (ulonglong *)*param_1; } *(undefined2 *)((longlong)puVar4 + uVar1 * 2) = 0; } } return param_1; } std::_Xlength_error("string too long"); pcVar2 = (code *)swi(3); puVar4 = (ulonglong *)(*pcVar2)(); return puVar4; }