/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400beed0 FUN_1400beed0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ ulonglong FUN_1400beed0(char *param_1,uint param_2,undefined4 *param_3) { ulonglong uVar1; byte *_Memory; byte bVar2; int iVar3; uint uVar4; uint uVar5; byte *pbVar6; byte *pbVar7; undefined1 auStackY_2a8 [32]; undefined8 local_1a0; undefined4 *local_198; longlong *local_190; undefined4 *local_188; undefined4 *local_180; undefined4 *local_178; undefined4 local_168 [2]; undefined4 *local_160; undefined8 local_158; undefined4 local_130; byte *local_128; undefined8 local_120; undefined4 local_f8 [2]; undefined1 *local_f0; undefined8 local_e8; undefined4 local_c0; undefined8 local_b8; undefined8 local_b0; undefined1 local_88 [64]; ulonglong local_48; local_48 = DAT_1401555a0 ^ (ulonglong)auStackY_2a8; if (((param_1 == (char *)0x0) || (param_3 == (undefined4 *)0x0)) || (DAT_1401632a0 == 0)) { uVar1 = 0x10; } else { local_180 = param_3 + 8; local_188 = param_3 + 0xc; local_198 = param_3 + 0xe; local_190 = (longlong *)(param_3 + 4); local_178 = param_3 + 0x10; uVar1 = FUN_1400cb9c0((undefined8 *)(param_3 + 2)); if ((int)uVar1 == 0) { _Memory = calloc(1,0x8000); if (_Memory == (byte *)0x0) { uVar4 = 0xd; } else { local_f0 = local_88; local_b8 = 0; local_b0 = 0; local_160 = local_f8; local_f8[0] = 7; local_e8 = 0x10; local_c0 = 6; local_168[0] = 0xd; local_158 = 2; local_130 = 4; local_120 = 0x8000; local_128 = _Memory; uVar1 = FUN_1400cbbe0(param_1,param_2,(longlong)local_168,2,1); if ((int)uVar1 == 0) { uVar5 = 0; iVar3 = 0; bVar2 = 0; uVar4 = 0; pbVar6 = _Memory; pbVar7 = _Memory; if ((uint)local_120 != 0) { do { iVar3 = iVar3 + 1; bVar2 = bVar2 * '\x02' | *pbVar6; if (iVar3 == 8) { *pbVar7 = bVar2; pbVar7 = pbVar7 + 1; bVar2 = 0; uVar4 = uVar4 + 1; iVar3 = 0; } uVar5 = uVar5 + 1; pbVar6 = pbVar6 + 1; } while (uVar5 < (uint)local_120); } uVar1 = FUN_1400cbaa0((char *)_Memory,uVar4,2,1,*(undefined8 *)(param_3 + 6)); uVar4 = (uint)uVar1; if (uVar4 == 0) { free(_Memory); *param_3 = 0; return 0; } free(_Memory); } else { free(_Memory); uVar1 = FUN_1400cbaa0(param_1,param_2,2,1,*(undefined8 *)(param_3 + 6)); uVar4 = (uint)uVar1; if (uVar4 == 0) { iVar3 = (*DAT_140163300)(*(undefined8 *)(param_3 + 6),0); if (iVar3 == 0) { uVar4 = (*DAT_1401632b0)(&local_1a0); if (uVar4 == 0) { uVar1 = FUN_1400cbaa0(param_1,param_2,2,1,local_1a0); uVar4 = (uint)uVar1; if (uVar4 == 0) { (*DAT_1401632c0)(local_1a0); *param_3 = 1; return 0; } (*DAT_1401632c0)(); } } else { iVar3 = (*DAT_140163300)(*(undefined8 *)(param_3 + 6),1); if (iVar3 == 0) { uVar4 = 0x12; } else { uVar1 = FUN_1400cbaa0(param_1,param_2,2,1,*(undefined8 *)(param_3 + 6)); uVar4 = (uint)uVar1; if (uVar4 == 0) { *param_3 = 0; return uVar1; } } } } } } FUN_1400cba50(*local_190); uVar1 = (ulonglong)uVar4; } } return uVar1; }