/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x140016fa0 FUN_140016fa0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ ulonglong FUN_140016fa0(longlong param_1,longlong param_2) { uint uVar1; int iVar2; longlong lVar3; ulonglong uVar4; undefined8 uVar5; undefined8 extraout_RAX; undefined8 extraout_RAX_00; undefined8 extraout_RAX_01; longlong lVar6; undefined **ppuVar7; void **ppvVar8; undefined1 auStack_1e8 [32]; int local_1c8; int local_1c0; longlong *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; longlong local_130; undefined *local_128; undefined1 local_118; undefined1 local_117; longlong local_110; undefined4 local_108; undefined8 local_100; undefined8 local_f8; undefined8 local_f0; longlong local_e8; undefined *local_e0; byte local_d0; undefined1 auStack_cf [7]; longlong local_c8; undefined4 local_c0; undefined8 local_b8; undefined8 local_b0; void *local_a8 [2]; undefined8 local_98; ulonglong local_90; undefined2 local_80; undefined6 uStack_7e; undefined8 local_70; ulonglong local_68; undefined1 local_58; undefined7 uStack_57; undefined8 local_48; ulonglong local_40; ulonglong local_30; local_f0 = 0xfffffffffffffffe; local_30 = DAT_14016f5a0 ^ (ulonglong)auStack_1e8; ppuVar7 = (undefined **)&DAT_1401303d0; lVar6 = 0x28; do { lVar3 = lVar6 / 2; if (ppuVar7[lVar3] < (undefined *)0xb) { ppuVar7 = ppuVar7 + lVar3 + 1; lVar3 = lVar6 + (-1 - lVar3); } lVar6 = lVar3; } while (0 < lVar3); if (ppuVar7 == &MBISingleton::vftable_meta_ptr) { ppuVar7 = (undefined **)&UNK_140130508; } local_e0 = *ppuVar7; local_e8 = 0; local_d0 = 0; local_c8 = 0; local_c0 = 0x3f800000; local_b8 = 0; local_b0 = 0; uVar4 = FUN_14000e610((char *)(param_2 + 8),&local_e8); local_150 = local_c8; if ((char)uVar4 == '\0') { if (local_e8 != 0) { uVar4 = FUN_140010570(&local_e8); } uVar4 = uVar4 & 0xffffffffffffff00; } else { local_1b8 = &local_170; local_168 = FUN_140037260((longlong)&local_e8,local_c8); local_170 = 0; local_158 = 0; local_157 = auStack_cf[local_d0]; local_148 = local_c0; local_140 = 0; local_138 = 0; if (local_150 != 0) { FUN_14001a640(&local_e8,&local_170); FUN_140011050(&local_170); } FUN_14000f2a0((void **)&local_80,&local_170,"Account"); lVar6 = local_c8; local_1b8 = &local_1b0; local_1a8 = FUN_140037260((longlong)&local_e8,local_c8); local_1b0 = 0; local_198 = 0; local_197 = auStack_cf[local_d0]; local_190 = lVar6; local_188 = local_c0; local_180 = 0; local_178 = 0; if (lVar6 != 0) { FUN_14001a640(&local_e8,&local_1b0); FUN_140011050(&local_1b0); } FUN_14000f2a0(local_a8,&local_1b0,"charid"); lVar6 = local_c8; local_1b8 = &local_170; local_168 = FUN_140037260((longlong)&local_e8,local_c8); local_170 = 0; local_158 = 0; local_157 = auStack_cf[local_d0]; local_150 = lVar6; local_148 = local_c0; local_140 = 0; local_138 = 0; if (lVar6 != 0) { FUN_14001a640(&local_e8,&local_170); FUN_140011050(&local_170); } FUN_14000f130((longlong *)&local_58,&local_170); lVar6 = local_c8; local_1b8 = &local_1b0; local_1a8 = FUN_140037260((longlong)&local_e8,local_c8); local_1b0 = 0; local_198 = 0; local_197 = auStack_cf[local_d0]; local_190 = lVar6; local_188 = local_c0; local_180 = 0; local_178 = 0; if (lVar6 != 0) { FUN_14001a640(&local_e8,&local_1b0); FUN_140011050(&local_1b0); } uVar1 = FUN_14000efc0(&local_1b0,"server"); lVar6 = local_c8; local_1b8 = &local_130; local_128 = FUN_140037260((longlong)&local_e8,local_c8); local_130 = 0; local_118 = 0; local_117 = auStack_cf[local_d0]; local_110 = lVar6; local_108 = local_c0; local_100 = 0; local_f8 = 0; if (lVar6 != 0) { FUN_14001a640(&local_e8,&local_130); FUN_140011050(&local_130); } iVar2 = FUN_14000efc0(&local_130,"itemid"); lVar6 = local_c8; local_1b8 = &local_1b0; local_1a8 = FUN_140037260((longlong)&local_e8,local_c8); local_1b0 = 0; local_198 = 0; local_197 = auStack_cf[local_d0]; local_190 = lVar6; local_188 = local_c0; local_180 = 0; local_178 = 0; if (lVar6 != 0) { FUN_14001a640(&local_e8,&local_1b0); FUN_140011050(&local_1b0); } local_1c0 = FUN_14000efc0(&local_1b0,"count"); ppvVar8 = local_a8; if (7 < local_90) { ppvVar8 = (void **)CONCAT62(local_a8[0]._2_6_,local_a8[0]._0_2_); } local_1c8 = iVar2; uVar5 = FUN_140014bf0(*(longlong *)(param_1 + 0x98),(ulonglong)*(uint *)(param_2 + 0x208), (ulonglong)uVar1,(short *)ppvVar8); if (0xf < local_40) { operator_delete((void *)CONCAT71(uStack_57,local_58)); uVar5 = extraout_RAX; } local_40 = 0xf; local_48 = 0; local_58 = 0; if (7 < local_90) { operator_delete((void *)CONCAT62(local_a8[0]._2_6_,local_a8[0]._0_2_)); uVar5 = extraout_RAX_00; } local_90 = 7; local_98 = 0; local_a8[0]._0_2_ = 0; if (7 < local_68) { operator_delete((void *)CONCAT62(uStack_7e,local_80)); uVar5 = extraout_RAX_01; } local_68 = 7; local_70 = 0; local_80 = 0; if (local_e8 != 0) { uVar5 = FUN_140010570(&local_e8); } uVar4 = CONCAT71((int7)((ulonglong)uVar5 >> 8),1); } return uVar4; }