/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x140017ba0 FUN_140017ba0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ ulonglong FUN_140017ba0(longlong param_1,longlong param_2) { uint uVar1; uint uVar2; int iVar3; longlong lVar4; ulonglong uVar5; void **ppvVar6; undefined8 uVar7; undefined8 extraout_RAX; undefined8 extraout_RAX_00; undefined8 extraout_RAX_01; undefined8 extraout_RAX_02; longlong lVar8; undefined **ppuVar9; undefined1 auStackY_228 [32]; undefined4 in_stack_fffffffffffffdfc; longlong local_1f0; undefined *local_1e8; undefined1 local_1d8; undefined1 local_1d7; longlong local_1d0; undefined4 local_1c8; undefined8 local_1c0; undefined8 local_1b8; longlong local_1b0; undefined *local_1a8; undefined1 local_198; undefined1 local_197; longlong local_190; undefined4 local_188; undefined8 local_180; undefined8 local_178; longlong local_170; undefined *local_168; undefined1 local_158; undefined1 local_157; longlong local_150; undefined4 local_148; undefined8 local_140; undefined8 local_138; undefined8 local_130; longlong local_128; undefined *local_120; byte local_110; undefined1 auStack_10f [7]; longlong local_108; undefined4 local_100; undefined8 local_f8; undefined8 local_f0; void *local_e8 [2]; undefined8 local_d8; ulonglong local_d0; undefined2 local_c0; undefined6 uStack_be; undefined8 local_b0; ulonglong local_a8; undefined1 local_98; undefined7 uStack_97; undefined8 local_88; ulonglong local_80; undefined2 local_70; undefined6 uStack_6e; undefined8 local_60; ulonglong local_58; ulonglong local_48; local_130 = 0xfffffffffffffffe; local_48 = DAT_14016f5a0 ^ (ulonglong)auStackY_228; ppuVar9 = (undefined **)&DAT_1401303d0; lVar8 = 0x28; do { lVar4 = lVar8 / 2; if (ppuVar9[lVar4] < (undefined *)0xb) { ppuVar9 = ppuVar9 + lVar4 + 1; lVar4 = lVar8 + (-1 - lVar4); } lVar8 = lVar4; } while (0 < lVar4); if (ppuVar9 == &MBISingleton::vftable_meta_ptr) { ppuVar9 = (undefined **)&UNK_140130508; } local_120 = *ppuVar9; local_128 = 0; local_110 = 0; local_108 = 0; local_100 = 0x3f800000; local_f8 = 0; local_f0 = 0; uVar5 = FUN_14000e610((char *)(param_2 + 8),&local_128); local_150 = local_108; if ((char)uVar5 == '\0') { if (local_128 != 0) { uVar5 = FUN_140010570(&local_128); } uVar5 = uVar5 & 0xffffffffffffff00; } else { local_168 = FUN_140037260((longlong)&local_128,local_108); local_170 = 0; local_158 = 0; local_157 = auStack_10f[local_110]; local_148 = local_100; local_140 = 0; local_138 = 0; if (local_150 != 0) { FUN_14001a640(&local_128,&local_170); FUN_140011050(&local_170); } FUN_14000f2a0((void **)&local_70,&local_170,"Account"); lVar8 = local_108; local_1e8 = FUN_140037260((longlong)&local_128,local_108); local_1f0 = 0; local_1d8 = 0; local_1d7 = auStack_10f[local_110]; local_1d0 = lVar8; local_1c8 = local_100; local_1c0 = 0; local_1b8 = 0; if (lVar8 != 0) { FUN_14001a640(&local_128,&local_1f0); FUN_140011050(&local_1f0); } FUN_14000f2a0((void **)&local_c0,&local_1f0,"charid"); lVar8 = local_108; local_168 = FUN_140037260((longlong)&local_128,local_108); local_170 = 0; local_158 = 0; local_157 = auStack_10f[local_110]; local_150 = lVar8; local_148 = local_100; local_140 = 0; local_138 = 0; if (lVar8 != 0) { FUN_14001a640(&local_128,&local_170); FUN_140011050(&local_170); } FUN_14000f130((longlong *)&local_98,&local_170); lVar8 = local_108; local_1e8 = FUN_140037260((longlong)&local_128,local_108); local_1f0 = 0; local_1d8 = 0; local_1d7 = auStack_10f[local_110]; local_1d0 = lVar8; local_1c8 = local_100; local_1c0 = 0; local_1b8 = 0; if (lVar8 != 0) { FUN_14001a640(&local_128,&local_1f0); FUN_140011050(&local_1f0); } uVar1 = FUN_14000efc0(&local_1f0,"type"); lVar8 = local_108; local_1a8 = FUN_140037260((longlong)&local_128,local_108); local_1b0 = 0; local_198 = 0; local_197 = auStack_10f[local_110]; local_190 = lVar8; local_188 = local_100; local_180 = 0; local_178 = 0; if (lVar8 != 0) { FUN_14001a640(&local_128,&local_1b0); FUN_140011050(&local_1b0); } uVar2 = FUN_14000efc0(&local_1b0,"server"); lVar8 = local_108; local_1e8 = FUN_140037260((longlong)&local_128,local_108); local_1f0 = 0; local_1d8 = 0; local_1d7 = auStack_10f[local_110]; local_1d0 = lVar8; local_1c8 = local_100; local_1c0 = 0; local_1b8 = 0; if (lVar8 != 0) { FUN_14001a640(&local_128,&local_1f0); FUN_140011050(&local_1f0); } iVar3 = FUN_14000efc0(&local_1f0,"messagetype"); lVar8 = local_108; local_1a8 = FUN_140037260((longlong)&local_128,local_108); local_1b0 = 0; local_198 = 0; local_197 = auStack_10f[local_110]; local_190 = lVar8; local_188 = local_100; local_180 = 0; local_178 = 0; if (lVar8 != 0) { FUN_14001a640(&local_128,&local_1b0); FUN_140011050(&local_1b0); } FUN_14000f2a0(local_e8,&local_1b0,"message"); ppvVar6 = local_e8; if (7 < local_d0) { ppvVar6 = (void **)CONCAT62(local_e8[0]._2_6_,local_e8[0]._0_2_); } uVar7 = FUN_140014f40(*(longlong *)(param_1 + 0x98),(ulonglong)*(uint *)(param_2 + 0x208), (ulonglong)uVar2,(ulonglong)uVar1, CONCAT44(in_stack_fffffffffffffdfc,iVar3),(short *)ppvVar6); if (7 < local_d0) { operator_delete((void *)CONCAT62(local_e8[0]._2_6_,local_e8[0]._0_2_)); uVar7 = extraout_RAX; } local_d0 = 7; local_d8 = 0; local_e8[0]._0_2_ = 0; if (0xf < local_80) { operator_delete((void *)CONCAT71(uStack_97,local_98)); uVar7 = extraout_RAX_00; } local_80 = 0xf; local_88 = 0; local_98 = 0; if (7 < local_a8) { operator_delete((void *)CONCAT62(uStack_be,local_c0)); uVar7 = extraout_RAX_01; } local_a8 = 7; local_b0 = 0; local_c0 = 0; if (7 < local_58) { operator_delete((void *)CONCAT62(uStack_6e,local_70)); uVar7 = extraout_RAX_02; } local_58 = 7; local_60 = 0; local_70 = 0; if (local_128 != 0) { uVar7 = FUN_140010570(&local_128); } uVar5 = CONCAT71((int7)((ulonglong)uVar7 >> 8),1); } return uVar5; }