/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400a03d0 FUN_1400a03d0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ /* WARNING: Removing unreachable block (ram,0x0001400a04b4) */ void FUN_1400a03d0(longlong param_1,byte *param_2,int param_3) { byte bVar1; undefined1 uVar2; byte bVar3; uint uVar4; longlong lVar5; undefined8 *puVar6; longlong lVar7; undefined8 *puVar8; undefined8 local_98; undefined8 uStack_90; undefined8 local_88; undefined8 uStack_80; undefined8 local_78; undefined8 uStack_70; undefined8 local_68; undefined8 uStack_60; undefined8 local_58; undefined8 uStack_50; undefined8 local_48; undefined8 uStack_40; undefined8 local_38; undefined8 uStack_30; undefined8 local_28; undefined8 uStack_20; ulonglong local_18; local_18 = DAT_1401555a0 ^ (ulonglong)&local_98; puVar6 = (undefined8 *)0x0; lVar7 = (longlong)param_3; puVar8 = puVar6; if (*(int *)(param_1 + 0x18) != 0) { puVar8 = *(undefined8 **)(param_1 + 0x10); } local_98 = *puVar8; uStack_90 = puVar8[1]; local_88 = puVar8[2]; uStack_80 = puVar8[3]; local_78 = puVar8[4]; uStack_70 = puVar8[5]; local_68 = puVar8[6]; uStack_60 = puVar8[7]; local_58 = puVar8[8]; uStack_50 = puVar8[9]; local_48 = puVar8[10]; uStack_40 = puVar8[0xb]; local_38 = puVar8[0xc]; uStack_30 = puVar8[0xd]; local_28 = puVar8[0xe]; uStack_20 = puVar8[0xf]; puVar8 = puVar6; if (0 < param_3) { do { uVar4 = (int)puVar8 + 1U & 0x8000007f; if ((int)uVar4 < 0) { uVar4 = (uVar4 - 1 | 0xffffff80) + 1; } puVar8 = (undefined8 *)(longlong)(int)uVar4; bVar1 = *(byte *)((longlong)&local_98 + (longlong)puVar8); uVar4 = (int)puVar6 + (uint)bVar1 & 0x8000007f; if ((int)uVar4 < 0) { uVar4 = (uVar4 - 1 | 0xffffff80) + 1; } puVar6 = (undefined8 *)(ulonglong)uVar4; uVar2 = *(undefined1 *)((longlong)&local_98 + (longlong)puVar8); lVar5 = (longlong)(int)uVar4; bVar3 = *(byte *)((longlong)&local_98 + lVar5); *(undefined1 *)((longlong)&local_98 + (longlong)puVar8) = *(undefined1 *)((longlong)&local_98 + lVar5); *(undefined1 *)((longlong)&local_98 + lVar5) = uVar2; *param_2 = *param_2 ^ *(byte *)((longlong)&local_98 + (longlong)(int)((uint)bVar3 + (uint)bVar1 & 0x8000007f)); lVar7 = lVar7 + -1; param_2 = param_2 + 1; } while (lVar7 != 0); } return; }