/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400ee3f0 FUN_1400ee3f0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_1400ee3f0(longlong param_1) { longlong lVar1; char cVar2; longlong lVar3; int iVar4; longlong lVar5; longlong lVar6; longlong lVar7; ulonglong uVar8; char **ppcVar9; char *******_Str2; char *pcVar10; char *pcVar11; char *pcVar12; char *pcVar13; char *pcVar14; char *pcVar15; char *pcVar16; char *pcVar17; bool bVar18; undefined1 auStack_288 [32]; char *local_268; char *local_260; char *local_258; char *local_250; char *local_248; char *local_240; char *local_238; char *local_230; char *local_228; char *local_220; char *local_218; char *local_210; char *local_208; char *local_200; undefined8 local_1f8; ulonglong local_1e8 [5]; ulonglong local_1c0 [5]; ulonglong local_198 [5]; ulonglong local_170 [5]; ulonglong local_148 [5]; ulonglong local_120 [5]; ulonglong local_f8 [5]; ulonglong local_d0 [5]; ulonglong local_a8 [5]; int local_80; undefined1 local_7c; undefined1 local_7b; undefined1 local_7a; undefined1 local_79; undefined1 local_78; undefined1 local_77; undefined1 local_76; undefined4 local_74; undefined4 local_70; char ******local_68 [3]; ulonglong local_50; undefined4 local_40; ulonglong local_38; local_1f8 = 0xfffffffffffffffe; local_38 = DAT_14016f5a0 ^ (ulonglong)auStack_288; lVar1 = param_1 + 0x58; pcVar16 = (char *)0x0; lVar3 = *(longlong *)(param_1 + 0xa0); for (lVar7 = lVar3; lVar6 = lVar3, lVar7 != lVar1; lVar7 = *(longlong *)(lVar7 + 0x48)) { pcVar10 = (char *)(*(longlong *)(lVar7 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 8; pcVar11 = "country"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_268 = (char *)(*(longlong *)(lVar7 + 0x30) + 0x10); goto joined_r0x0001400ee48d; } } local_268 = (char *)0x0; joined_r0x0001400ee48d: do { lVar7 = lVar3; if (lVar6 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar6 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 0xc; pcVar11 = "auth_dll_32"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_260 = (char *)(*(longlong *)(lVar6 + 0x30) + 0x10); goto joined_r0x0001400ee4cd; } lVar6 = *(longlong *)(lVar6 + 0x48); } while( true ); local_260 = (char *)0x0; joined_r0x0001400ee4cd: do { lVar6 = lVar3; if (lVar7 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar7 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 0xc; pcVar11 = "auth_dll_64"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_228 = (char *)(*(longlong *)(lVar7 + 0x30) + 0x10); goto joined_r0x0001400ee50d; } lVar7 = *(longlong *)(lVar7 + 0x48); } while( true ); local_228 = (char *)0x0; joined_r0x0001400ee50d: do { lVar7 = lVar3; if (lVar6 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar6 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 0xc; pcVar11 = "billing_dll"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_248 = (char *)(*(longlong *)(lVar6 + 0x30) + 0x10); goto joined_r0x0001400ee54d; } lVar6 = *(longlong *)(lVar6 + 0x48); } while( true ); local_248 = (char *)0x0; joined_r0x0001400ee54d: do { lVar6 = lVar3; if (lVar7 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar7 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 0xc; pcVar11 = "server_mode"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_218 = (char *)(*(longlong *)(lVar7 + 0x30) + 0x10); goto joined_r0x0001400ee58d; } lVar7 = *(longlong *)(lVar7 + 0x48); } while( true ); local_218 = (char *)0x0; joined_r0x0001400ee58d: do { lVar7 = lVar3; if (lVar6 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar6 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 0x14; pcVar11 = "billing_server_mode"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_238 = (char *)(*(longlong *)(lVar6 + 0x30) + 0x10); goto joined_r0x0001400ee5cd; } lVar6 = *(longlong *)(lVar6 + 0x48); } while( true ); local_238 = (char *)0x0; joined_r0x0001400ee5cd: do { lVar6 = lVar3; if (lVar7 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar7 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 10; pcVar11 = "xtrap_use"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_240 = (char *)(*(longlong *)(lVar7 + 0x30) + 0x10); goto joined_r0x0001400ee60d; } lVar7 = *(longlong *)(lVar7 + 0x48); } while( true ); local_240 = (char *)0x0; joined_r0x0001400ee60d: do { lVar7 = lVar3; if (lVar6 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar6 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 0xd; pcVar11 = "nprotect_use"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_250 = (char *)(*(longlong *)(lVar6 + 0x30) + 0x10); goto joined_r0x0001400ee64d; } lVar6 = *(longlong *)(lVar6 + 0x48); } while( true ); local_250 = (char *)0x0; joined_r0x0001400ee64d: do { lVar6 = lVar3; if (lVar7 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar7 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 0x11; pcVar11 = "nprotect_log_use"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_208 = (char *)(*(longlong *)(lVar7 + 0x30) + 0x10); goto joined_r0x0001400ee68b; } lVar7 = *(longlong *)(lVar7 + 0x48); } while( true ); local_208 = (char *)0x0; joined_r0x0001400ee68b: do { lVar7 = lVar3; if (lVar6 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar6 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 9; pcVar11 = "betazone"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_230 = (char *)(*(longlong *)(lVar6 + 0x30) + 0x10); goto joined_r0x0001400ee6cd; } lVar6 = *(longlong *)(lVar6 + 0x48); } while( true ); local_230 = (char *)0x0; joined_r0x0001400ee6cd: do { lVar6 = lVar3; if (lVar7 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar7 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 0x14; pcVar11 = "channel_limit_count"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_220 = (char *)(*(longlong *)(lVar7 + 0x30) + 0x10); goto joined_r0x0001400ee70d; } lVar7 = *(longlong *)(lVar7 + 0x48); } while( true ); local_220 = (char *)0x0; joined_r0x0001400ee70d: do { lVar7 = lVar3; if (lVar6 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar6 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 0x17; pcVar11 = "world_user_limit_count"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_210 = (char *)(*(longlong *)(lVar6 + 0x30) + 0x10); goto joined_r0x0001400ee74d; } lVar6 = *(longlong *)(lVar6 + 0x48); } while( true ); local_210 = (char *)0x0; joined_r0x0001400ee74d: do { lVar6 = lVar3; if (lVar7 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar7 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 9; pcVar11 = "auth_url"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_200 = (char *)(*(longlong *)(lVar7 + 0x30) + 0x10); goto joined_r0x0001400ee78b; } lVar7 = *(longlong *)(lVar7 + 0x48); } while( true ); local_200 = (char *)0x0; joined_r0x0001400ee78b: do { lVar7 = lVar3; if (lVar6 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar6 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 0xc; pcVar11 = "billing_url"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { local_258 = (char *)(*(longlong *)(lVar6 + 0x30) + 0x10); goto joined_r0x0001400ee7cd; } lVar6 = *(longlong *)(lVar6 + 0x48); } while( true ); local_258 = (char *)0x0; joined_r0x0001400ee7cd: do { lVar6 = lVar3; pcVar10 = pcVar16; if (lVar7 == lVar1) break; pcVar10 = (char *)(*(longlong *)(lVar7 + 0x20) + 0x10); bVar18 = pcVar10 == (char *)0x0; lVar5 = 0xc; pcVar11 = "billing_idc"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar10 == *pcVar11; pcVar10 = pcVar10 + 1; pcVar11 = pcVar11 + 1; } while (bVar18); if (bVar18) { pcVar10 = (char *)(*(longlong *)(lVar7 + 0x30) + 0x10); break; } lVar7 = *(longlong *)(lVar7 + 0x48); } while( true ); joined_r0x0001400ee806: lVar7 = lVar3; pcVar11 = pcVar16; if (lVar6 == lVar1) goto joined_r0x0001400ee846; pcVar11 = (char *)(*(longlong *)(lVar6 + 0x20) + 0x10); bVar18 = pcVar11 == (char *)0x0; lVar5 = 8; pcVar12 = "auth_ip"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar11 == *pcVar12; pcVar11 = pcVar11 + 1; pcVar12 = pcVar12 + 1; } while (bVar18); if (bVar18) { pcVar11 = (char *)(*(longlong *)(lVar6 + 0x30) + 0x10); goto joined_r0x0001400ee846; } lVar6 = *(longlong *)(lVar6 + 0x48); goto joined_r0x0001400ee806; joined_r0x0001400ee846: lVar6 = lVar3; pcVar12 = pcVar16; if (lVar7 == lVar1) goto joined_r0x0001400ee886; pcVar12 = (char *)(*(longlong *)(lVar7 + 0x20) + 0x10); bVar18 = pcVar12 == (char *)0x0; lVar5 = 10; pcVar13 = "auth_port"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar12 == *pcVar13; pcVar12 = pcVar12 + 1; pcVar13 = pcVar13 + 1; } while (bVar18); if (bVar18) { pcVar12 = (char *)(*(longlong *)(lVar7 + 0x30) + 0x10); goto joined_r0x0001400ee886; } lVar7 = *(longlong *)(lVar7 + 0x48); goto joined_r0x0001400ee846; joined_r0x0001400ee886: lVar7 = lVar3; pcVar13 = pcVar16; if (lVar6 == lVar1) goto joined_r0x0001400ee8c6; pcVar13 = (char *)(*(longlong *)(lVar6 + 0x20) + 0x10); bVar18 = pcVar13 == (char *)0x0; lVar5 = 10; pcVar14 = "skip_auth"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar18 = *pcVar13 == *pcVar14; pcVar13 = pcVar13 + 1; pcVar14 = pcVar14 + 1; } while (bVar18); if (bVar18) { pcVar13 = (char *)(*(longlong *)(lVar6 + 0x30) + 0x10); goto joined_r0x0001400ee8c6; } lVar6 = *(longlong *)(lVar6 + 0x48); goto joined_r0x0001400ee886; joined_r0x0001400ee8c6: pcVar14 = pcVar16; if (lVar7 == lVar1) goto joined_r0x0001400ee903; pcVar14 = (char *)(*(longlong *)(lVar7 + 0x20) + 0x10); bVar18 = pcVar14 == (char *)0x0; lVar6 = 10; pcVar15 = "free_cash"; do { if (lVar6 == 0) break; lVar6 = lVar6 + -1; bVar18 = *pcVar14 == *pcVar15; pcVar14 = pcVar14 + 1; pcVar15 = pcVar15 + 1; } while (bVar18); if (bVar18) { pcVar14 = (char *)(*(longlong *)(lVar7 + 0x30) + 0x10); goto joined_r0x0001400ee903; } lVar7 = *(longlong *)(lVar7 + 0x48); goto joined_r0x0001400ee8c6; joined_r0x0001400ee903: if (lVar3 == lVar1) goto LAB_1400ee940; pcVar15 = (char *)(*(longlong *)(lVar3 + 0x20) + 0x10); bVar18 = pcVar15 == (char *)0x0; lVar7 = 0x10; pcVar17 = "skip_abuse_nick"; do { if (lVar7 == 0) break; lVar7 = lVar7 + -1; bVar18 = *pcVar15 == *pcVar17; pcVar15 = pcVar15 + 1; pcVar17 = pcVar17 + 1; } while (bVar18); if (bVar18) { pcVar16 = (char *)(*(longlong *)(lVar3 + 0x30) + 0x10); goto LAB_1400ee940; } lVar3 = *(longlong *)(lVar3 + 0x48); goto joined_r0x0001400ee903; LAB_1400ee940: FUN_14001c680((undefined1 *)local_1e8); pcVar15 = local_268; if (local_268 != (char *)0x0) { uVar8 = 0xffffffffffffffff; pcVar17 = local_268; do { if (uVar8 == 0) break; uVar8 = uVar8 - 1; cVar2 = *pcVar17; pcVar17 = pcVar17 + 1; } while (cVar2 != '\0'); FUN_14000c9e0((ulonglong *)local_68,local_268,~uVar8 - 1); iVar4 = _stricmp(pcVar15,"dev"); if (iVar4 == 0) { local_40 = 1000; } else { iVar4 = _stricmp(pcVar15,"kor_beta"); if (iVar4 == 0) { local_40 = 200; } else { iVar4 = _stricmp(pcVar15,"kor"); if (iVar4 == 0) { local_40 = 100; } else { iVar4 = _stricmp(pcVar15,"usa_beta"); if (iVar4 == 0) { local_40 = 0xc9; } else { iVar4 = _stricmp(pcVar15,"usa"); if (iVar4 == 0) { local_40 = 0x65; } else { iVar4 = _stricmp(pcVar15,"tw_beta"); if (iVar4 == 0) { local_40 = 0xca; } else { iVar4 = _stricmp(pcVar15,"tw"); if (iVar4 == 0) { local_40 = 0x66; } else { iVar4 = _stricmp(pcVar15,"jpn_beta"); if (iVar4 == 0) { local_40 = 0xcb; } else { iVar4 = _stricmp(pcVar15,"jpn"); if (iVar4 == 0) { local_40 = 0x67; } } } } } } } } } } if (local_260 != (char *)0x0) { uVar8 = 0xffffffffffffffff; pcVar15 = local_260; do { if (uVar8 == 0) break; uVar8 = uVar8 - 1; cVar2 = *pcVar15; pcVar15 = pcVar15 + 1; } while (cVar2 != '\0'); FUN_14000c9e0(local_1e8,local_260,~uVar8 - 1); } if (local_228 != (char *)0x0) { uVar8 = 0xffffffffffffffff; pcVar15 = local_228; do { if (uVar8 == 0) break; uVar8 = uVar8 - 1; cVar2 = *pcVar15; pcVar15 = pcVar15 + 1; } while (cVar2 != '\0'); FUN_14000c9e0(local_1c0,local_228,~uVar8 - 1); } if (local_248 != (char *)0x0) { uVar8 = 0xffffffffffffffff; pcVar15 = local_248; do { if (uVar8 == 0) break; uVar8 = uVar8 - 1; cVar2 = *pcVar15; pcVar15 = pcVar15 + 1; } while (cVar2 != '\0'); FUN_14000c9e0(local_198,local_248,~uVar8 - 1); } if (local_218 != (char *)0x0) { uVar8 = 0xffffffffffffffff; pcVar15 = local_218; do { if (uVar8 == 0) break; uVar8 = uVar8 - 1; cVar2 = *pcVar15; pcVar15 = pcVar15 + 1; } while (cVar2 != '\0'); FUN_14000c9e0(local_170,local_218,~uVar8 - 1); } if (local_238 != (char *)0x0) { uVar8 = 0xffffffffffffffff; pcVar15 = local_238; do { if (uVar8 == 0) break; uVar8 = uVar8 - 1; cVar2 = *pcVar15; pcVar15 = pcVar15 + 1; } while (cVar2 != '\0'); FUN_14000c9e0(local_148,local_238,~uVar8 - 1); } if (local_200 != (char *)0x0) { uVar8 = 0xffffffffffffffff; pcVar15 = local_200; do { if (uVar8 == 0) break; uVar8 = uVar8 - 1; cVar2 = *pcVar15; pcVar15 = pcVar15 + 1; } while (cVar2 != '\0'); FUN_14000c9e0(local_120,local_200,~uVar8 - 1); } if (local_258 != (char *)0x0) { uVar8 = 0xffffffffffffffff; pcVar15 = local_258; do { if (uVar8 == 0) break; uVar8 = uVar8 - 1; cVar2 = *pcVar15; pcVar15 = pcVar15 + 1; } while (cVar2 != '\0'); FUN_14000c9e0(local_f8,local_258,~uVar8 - 1); } if (pcVar10 != (char *)0x0) { uVar8 = 0xffffffffffffffff; pcVar15 = pcVar10; do { if (uVar8 == 0) break; uVar8 = uVar8 - 1; cVar2 = *pcVar15; pcVar15 = pcVar15 + 1; } while (cVar2 != '\0'); FUN_14000c9e0(local_d0,pcVar10,~uVar8 - 1); } if (pcVar11 != (char *)0x0) { uVar8 = 0xffffffffffffffff; pcVar10 = pcVar11; do { if (uVar8 == 0) break; uVar8 = uVar8 - 1; cVar2 = *pcVar10; pcVar10 = pcVar10 + 1; } while (cVar2 != '\0'); FUN_14000c9e0(local_a8,pcVar11,~uVar8 - 1); } if (pcVar12 != (char *)0x0) { local_80 = atoi(pcVar12); } if (local_208 != (char *)0x0) { iVar4 = atoi(local_208); local_7c = 0 < iVar4; } if (local_250 != (char *)0x0) { iVar4 = atoi(local_250); local_7b = 0 < iVar4; } if (local_240 != (char *)0x0) { iVar4 = atoi(local_240); local_7a = 0 < iVar4; } if (local_230 != (char *)0x0) { iVar4 = atoi(local_230); local_79 = 0 < iVar4; } if (local_220 != (char *)0x0) { local_260 = (char *)CONCAT44(local_260._4_4_,1); iVar4 = atoi(local_220); local_268 = (char *)CONCAT44(local_268._4_4_,iVar4); ppcVar9 = &local_260; if (0 < iVar4) { ppcVar9 = &local_268; } local_74 = *(undefined4 *)ppcVar9; } if (local_210 != (char *)0x0) { local_268 = (char *)((ulonglong)local_268 & 0xffffffff00000000); iVar4 = atoi(local_210); local_260 = (char *)CONCAT44(local_260._4_4_,iVar4); ppcVar9 = &local_268; if (-1 < iVar4) { ppcVar9 = &local_260; } local_70 = *(undefined4 *)ppcVar9; } if (pcVar13 != (char *)0x0) { iVar4 = atoi(pcVar13); local_78 = 0 < iVar4; } if (pcVar14 != (char *)0x0) { iVar4 = atoi(pcVar14); local_76 = 0 < iVar4; } if (pcVar16 != (char *)0x0) { iVar4 = atoi(pcVar16); local_77 = 0 < iVar4; } _Str2 = local_68; if (0xf < local_50) { _Str2 = (char *******)local_68[0]; } pcVar16 = (char *)&DAT_14017cf70; if (0xf < DAT_14017cf88) { pcVar16 = DAT_14017cf70; } iVar4 = _stricmp(pcVar16,(char *)_Str2); if (iVar4 == 0) { FUN_14001c980(&DAT_14017cf98,(longlong *)local_1e8); FUN_1400edc20(); } FUN_14001cb80(&DAT_14017d148,(longlong *)local_1e8); FUN_14001c7b0(local_1e8); return; }