/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x140020c80 FUN_140020c80 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_140020c80(uint param_1,longlong param_2,int *param_3) { int iVar1; byte bVar2; byte *pbVar3; byte local_38 [32]; ulonglong local_18; local_18 = DAT_14016f5a0 ^ (ulonglong)local_38; local_38[8] = 0xc0; local_38[9] = 0; local_38[10] = 0; local_38[0xb] = 0; local_38[0xc] = 0xe0; local_38[0xd] = 0; local_38[0xe] = 0; local_38[0xf] = 0; local_38[0x10] = 0xf0; local_38[0x11] = 0; local_38[0x12] = 0; local_38[0x13] = 0; local_38[0x14] = 0xf8; local_38[0x15] = 0; local_38[0x16] = 0; local_38[0x17] = 0; local_38[0] = 0; local_38[1] = 0; local_38[2] = 0; local_38[3] = 0; local_38[4] = 0; local_38[5] = 0; local_38[6] = 0; local_38[7] = 0; local_38[0x18] = 0xfc; local_38[0x19] = 0; local_38[0x1a] = 0; local_38[0x1b] = 0; if (param_1 < 0x80) { *param_3 = 1; } else if (param_1 < 0x800) { *param_3 = 2; } else if (param_1 < 0x10000) { *param_3 = 3; } else { if (0x1fffff < param_1) { *param_3 = 0; return; } *param_3 = 4; } iVar1 = *param_3; pbVar3 = (byte *)(param_2 + iVar1); if (iVar1 != 1) { if (iVar1 != 2) { if (iVar1 != 3) { if (iVar1 != 4) { return; } pbVar3 = pbVar3 + -1; bVar2 = (byte)param_1; param_1 = param_1 >> 6; *pbVar3 = bVar2 & 0x3f | 0x80; } pbVar3 = pbVar3 + -1; bVar2 = (byte)param_1; param_1 = param_1 >> 6; *pbVar3 = bVar2 & 0x3f | 0x80; } pbVar3 = pbVar3 + -1; bVar2 = (byte)param_1; param_1 = param_1 >> 6; *pbVar3 = bVar2 & 0x3f | 0x80; } pbVar3[-1] = local_38[(longlong)*param_3 * 4] | (byte)param_1; return; }