decompiled agent_release

This commit is contained in:
Benjamin Palko 2026-10-14 16:45:19 -04:00
parent baac905ef2
commit 11a3488883
6439 changed files with 229565 additions and 1 deletions

View file

@ -0,0 +1,208 @@
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x14008b450 FUN_14008b450
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_14008b450(int *param_1,uint *param_2,longlong *param_3,undefined8 param_4)
{
ulonglong uVar1;
undefined8 uVar2;
int *piVar3;
byte *pbVar4;
longlong lVar5;
undefined ***pppuVar6;
int iVar7;
SIZE_T SVar8;
undefined ***pppuVar9;
uint *puVar10;
longlong **pplVar11;
longlong *plVar12;
undefined8 uVar13;
byte *pbVar14;
undefined1 auStack_e68 [32];
int *local_e48;
undefined1 local_e40;
longlong *local_e38;
undefined1 local_e30;
undefined **local_e28;
undefined8 local_e20;
byte *local_e18;
undefined8 local_e10;
undefined8 local_e08;
undefined **local_e00;
undefined8 local_df8;
byte *local_df0;
undefined8 local_de8;
undefined8 local_de0;
undefined **local_dd8;
undefined8 local_dd0;
byte *local_dc8;
undefined8 local_dc0;
undefined8 local_db8;
int *local_db0;
undefined1 local_da8;
undefined **local_da0;
undefined8 local_d98;
byte *local_d90;
undefined8 local_d88;
undefined8 local_d80;
int local_d78 [2];
longlong local_d70;
longlong local_d68;
undefined4 local_d60;
int local_d5c;
undefined8 local_d20;
exception local_d18 [80];
undefined1 local_cc8 [3216];
ulonglong local_38;
local_d20 = 0xfffffffffffffffe;
local_38 = DAT_1401555a0 ^ (ulonglong)auStack_e68;
plVar12 = param_3;
local_e38 = param_3;
local_db0 = param_1;
FUN_140093300();
pbVar14 = (byte *)0x0;
local_df8 = 0;
local_df0 = (byte *)0x0;
local_de8 = 0;
local_de0 = 0;
local_e00 = Proud::ByteArray::vftable;
uVar1 = FUN_140080ca0(param_2,&local_e48,plVar12,param_4);
piVar3 = local_e48;
if ((((char)uVar1 != '\0') && (iVar7 = (int)local_e48, -1 < iVar7)) && (iVar7 <= DAT_140155140)) {
FUN_14001bc70((longlong)&local_e00,iVar7,(SIZE_T)plVar12);
pbVar4 = local_df0;
if ((int)local_de8 == 0) {
pbVar4 = pbVar14;
}
SVar8 = (ulonglong)piVar3 & 0xffffffff;
uVar2 = FUN_140080600(param_2,(undefined8 *)pbVar4,SVar8);
if ((char)uVar2 != '\0') {
local_dd0 = 0;
local_dc8 = (byte *)0x0;
local_dc0 = 0;
local_db8 = 0;
local_dd8 = Proud::ByteArray::vftable;
uVar1 = FUN_140080ca0(param_2,&local_e48,SVar8,param_4);
piVar3 = local_e48;
if ((((char)uVar1 != '\0') && (iVar7 = (int)local_e48, -1 < iVar7)) &&
(iVar7 <= DAT_140155140)) {
FUN_14001bc70((longlong)&local_dd8,iVar7,SVar8);
pbVar4 = local_dc8;
if ((int)local_dc0 == 0) {
pbVar4 = pbVar14;
}
uVar2 = FUN_140080600(param_2,(undefined8 *)pbVar4,(ulonglong)piVar3 & 0xffffffff);
if ((char)uVar2 != '\0') {
local_d98 = 0;
local_d90 = (byte *)0x0;
local_d88 = 0;
local_d80 = 0;
local_da0 = Proud::ByteArray::vftable;
plVar12 = (longlong *)(*(longlong *)(param_1 + 0x52) + 0xc48);
pppuVar9 = &local_e00;
pppuVar6 = &local_da0;
FUN_1400a1330((ulonglong *)&local_e48,(longlong)pppuVar6,(SIZE_T)pppuVar9,plVar12);
if ((local_e48 == (int *)0x0) || (*(longlong *)(local_e48 + 0xe) == 0)) {
FUN_14002b570((longlong *)&local_e48,pppuVar6,pppuVar9,plVar12);
piVar3 = (int *)(**(code **)(**(longlong **)(param_1 + 0x52) + 0x58))();
local_e48 = piVar3;
FUN_14002e6e0(piVar3);
local_e40 = 1;
if (DAT_14015bfcf != '\0') {
(**(code **)(**(longlong **)(param_1 + 0x52) + 200))
(*(longlong **)(param_1 + 0x52),
L"Proud::CNetThreads_S::NetworkerThread_ProcessMessage_NotifyCSEncryptedSessionKey"
);
}
pbVar4 = pbVar14;
if (*(longlong *)(*(longlong *)(param_1 + 0x52) + 0x1708) != 0) {
pbVar4 = *(byte **)(*(longlong *)(param_1 + 0x52) + 0x16f8);
}
for (; pbVar4 != (byte *)0x0; pbVar4 = *(byte **)(pbVar4 + 0x18)) {
if (param_3 == *(longlong **)(pbVar4 + 0x10)) {
pbVar4 = local_d90;
if ((int)local_d88 == 0) {
pbVar4 = pbVar14;
}
uVar13 = 0x10;
FUN_140090ac0(param_3 + 0x51,pbVar4,
(ulonglong)(*(uint *)(*(longlong *)(param_1 + 0x52) + 0x244) >> 3),
0x10);
local_e20 = 0;
local_e18 = (byte *)0x0;
local_e10 = 0;
local_e08 = 0;
local_e28 = Proud::ByteArray::vftable;
puVar10 = (uint *)(param_3 + 0x51);
uVar2 = FUN_140092530((longlong)&local_dd8,(longlong)&local_e28,puVar10,uVar13);
if ((char)uVar2 == '\0') {
FUN_14002f1e0(local_d18,L"Decrypt Fast EncryptKey Error",puVar10,uVar13);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_d18,(ThrowInfo *)&DAT_140151b88);
}
pbVar4 = local_e18;
if ((int)local_e10 == 0) {
pbVar4 = pbVar14;
}
SVar8 = (SIZE_T)(*(uint *)(*(longlong *)(param_1 + 0x52) + 0x248) >> 3);
FUN_1400a0660((ulonglong)(param_3 + 0xcb),(longlong)pbVar4,SVar8,uVar13);
FUN_14003b870(&local_e28);
*(undefined1 *)(param_3 + 0xd1) = 1;
FUN_14002e770((longlong)piVar3);
local_e40 = 0;
FUN_1400806d0(local_d78);
FUN_1400801a0((longlong)local_d78,pbVar4,SVar8,uVar13);
FUN_140080830(local_d78,0x800,SVar8,uVar13);
uVar2 = 0;
FUN_140080830(local_d78,0,SVar8,uVar13);
FUN_14001ba80((longlong)local_d78,CONCAT71((int7)((ulonglong)uVar2 >> 8),6),SVar8,
uVar13);
piVar3 = (int *)(**(code **)(param_3[0x21] + 0x10))();
local_db0 = piVar3;
FUN_14002e6e0(piVar3);
local_da8 = 1;
lVar5 = FUN_140041760((longlong)local_cc8,(longlong)local_d78,SVar8);
local_e38 = (longlong *)0x0;
local_e30 = 1;
pplVar11 = &local_e38;
FUN_14009c2b0((char *)param_3[0xe9],lVar5,(SIZE_T *)pplVar11,uVar13);
FUN_140040950((longlong)local_cc8,lVar5,pplVar11,uVar13);
FUN_14002e770((longlong)piVar3);
local_e38 = &local_d70;
FUN_140095270(&local_d70);
if (local_d68 != 0) {
if (local_d5c < 0) {
/* WARNING: Subroutine does not return */
FUN_14002f590();
}
local_d60 = 0;
}
FUN_14003b870(&local_da0);
FUN_14003b870(&local_dd8);
goto LAB_14008b923;
}
}
FUN_14002e770((longlong)piVar3);
FUN_14003b870(&local_da0);
FUN_14003b870(&local_dd8);
}
else {
FUN_14002b570((longlong *)&local_e48,pppuVar6,pppuVar9,plVar12);
FUN_14003b870(&local_da0);
FUN_14003b870(&local_dd8);
}
goto LAB_14008b923;
}
}
FUN_14003b870(&local_dd8);
}
}
LAB_14008b923:
FUN_14003b870(&local_e00);
return;
}