/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x140002b60 FUN_140002b60 * Pseudocode, not original source. */ ulonglong * FUN_140002b60(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_140002c70((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_1400019c0(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; }