/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401e4a40 FUN_1401e4a40 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ ulonglong FUN_1401e4a40(longlong param_1,undefined4 param_2,undefined4 *param_3) { int iVar1; ulonglong uVar2; byte *_Memory; byte bVar3; undefined8 *puVar4; uint uVar5; int iVar6; byte *pbVar7; byte *pbVar8; undefined1 auStack_2a8 [32]; undefined8 *local_288; undefined8 *local_280; undefined8 *local_278; undefined8 *local_270; undefined8 local_268; undefined8 local_260; undefined8 local_258; undefined4 local_250; undefined4 local_248; undefined8 local_240; undefined4 local_238; undefined4 local_230; undefined8 local_228; undefined4 local_220; undefined4 local_218; undefined8 local_210; undefined4 local_208; undefined4 local_200; undefined8 local_1f8; undefined4 local_1f0; undefined4 local_1e8; undefined8 local_1e0; undefined4 local_1d8; undefined4 local_1d0; undefined8 local_1c8; undefined8 local_1c0; undefined8 local_1b8; undefined8 local_1b0; undefined8 *local_1a8; undefined8 local_1a0; undefined8 *local_198; undefined8 *local_190; undefined8 *local_188; undefined8 *local_180; undefined8 *local_178; undefined4 local_168 [2]; undefined4 *local_160; undefined8 local_158; undefined4 local_130; byte *local_128; undefined8 local_120; undefined4 local_f8 [2]; undefined1 *local_f0; undefined8 local_e8; undefined4 local_c0; undefined8 local_b8; undefined8 local_b0; undefined1 local_88 [64]; ulonglong local_48; local_48 = DAT_1403463c0 ^ (ulonglong)auStack_2a8; if (((param_1 == 0) || (param_3 == (undefined4 *)0x0)) || (DAT_14039d260 == 0)) { uVar2 = 0x10; } else { local_278 = (undefined8 *)(param_3 + 8); local_280 = (undefined8 *)(param_3 + 0xc); local_270 = (undefined8 *)(param_3 + 10); local_288 = (undefined8 *)(param_3 + 0xe); local_190 = (undefined8 *)(param_3 + 4); local_178 = (undefined8 *)(param_3 + 0x10); local_268 = 0; local_1a8 = local_270; local_198 = local_288; local_188 = local_280; local_180 = local_278; uVar2 = FUN_140205a40(param_3 + 2,local_190,param_3 + 6); if ((int)uVar2 == 0) { _Memory = calloc(1,0x8000); if (_Memory == (byte *)0x0) { uVar5 = 0xd; puVar4 = local_1a8; } else { local_f0 = local_88; local_b8 = 0; local_b0 = 0; local_160 = local_f8; local_f8[0] = 7; local_e8 = 0x10; local_c0 = 6; local_168[0] = 0xd; local_158 = 2; local_130 = 4; local_120 = 0x8000; local_288 = (undefined8 *)CONCAT44(local_288._4_4_,1); local_128 = _Memory; iVar1 = FUN_140205c60(param_1,param_2,local_168); if (iVar1 == 0) { uVar5 = 0; iVar1 = 0; bVar3 = 0; iVar6 = 0; pbVar7 = _Memory; pbVar8 = _Memory; if ((uint)local_120 != 0) { do { iVar1 = iVar1 + 1; bVar3 = bVar3 * '\x02' | *pbVar7; if (iVar1 == 8) { *pbVar8 = bVar3; pbVar8 = pbVar8 + 1; bVar3 = 0; iVar6 = iVar6 + 1; iVar1 = 0; } uVar5 = uVar5 + 1; pbVar7 = pbVar7 + 1; } while (uVar5 < (uint)local_120); } local_270 = *(undefined8 **)(param_3 + 2); local_258 = 0; local_260 = 0; local_268 = 0; local_288 = *(undefined8 **)(param_3 + 6); local_278 = (undefined8 *)CONCAT44(local_278._4_4_,1); local_280 = (undefined8 *)CONCAT44(local_280._4_4_,2); uVar5 = FUN_140205b20(_Memory,iVar6,2); if (uVar5 == 0) { free(_Memory); *param_3 = 0; return 0; } free(_Memory); puVar4 = local_1a8; } else { free(_Memory); local_288 = *(undefined8 **)(param_3 + 6); local_270 = (undefined8 *)0x0; local_278 = (undefined8 *)0x0; local_280 = (undefined8 *)0x0; uVar5 = FUN_140205b20(param_1,param_2,2,1); puVar4 = local_1a8; if (uVar5 == 0) { iVar1 = (*DAT_14039d2c0)(*(undefined8 *)(param_3 + 6),0); if (iVar1 == 0) { uVar5 = (*DAT_14039d270)(&local_1a0); puVar4 = local_1a8; if (uVar5 == 0) { local_1c8 = *(undefined8 *)(param_3 + 0xc); local_1b0 = 0; local_1b8 = 0; local_1c0 = 0; local_1e0 = *(undefined8 *)(param_3 + 0x10); local_1d0 = 1; local_1d8 = 2; local_1f8 = *(undefined8 *)(param_3 + 0xe); local_1e8 = 1; local_1f0 = 2; local_210 = *(undefined8 *)(param_3 + 10); local_200 = 1; local_208 = 2; local_228 = *(undefined8 *)(param_3 + 8); local_218 = 1; local_220 = 2; local_240 = *(undefined8 *)(param_3 + 4); local_230 = 1; local_238 = 2; local_258 = *(undefined8 *)(param_3 + 2); local_248 = 1; local_250 = 2; local_270 = *(undefined8 **)(param_3 + 6); local_260 = CONCAT44(local_260._4_4_,1); local_268 = CONCAT44(local_268._4_4_,2); local_278 = (undefined8 *)CONCAT44(local_278._4_4_,1); local_280 = (undefined8 *)CONCAT44(local_280._4_4_,2); local_288 = (undefined8 *)local_1a0; uVar5 = FUN_140205b20(param_1,param_2,2,1); if (uVar5 == 0) { (*DAT_14039d280)(local_1a0); *param_3 = 1; return 0; } (*DAT_14039d280)(); puVar4 = (undefined8 *)(param_3 + 10); } } else { iVar1 = (*DAT_14039d2c0)(*(undefined8 *)(param_3 + 6),1); if (iVar1 == 0) { uVar5 = 0x12; puVar4 = local_1a8; } else { local_270 = *(undefined8 **)(param_3 + 2); local_258 = 0; local_260 = 0; local_268 = 0; local_288 = *(undefined8 **)(param_3 + 6); local_278 = (undefined8 *)CONCAT44(local_278._4_4_,1); local_280 = (undefined8 *)CONCAT44(local_280._4_4_,2); uVar2 = FUN_140205b20(param_1,param_2,2); uVar5 = (uint)uVar2; puVar4 = local_1a8; if (uVar5 == 0) { *param_3 = 0; return uVar2; } } } } } } local_270 = (undefined8 *)*puVar4; local_268 = 0; local_278 = (undefined8 *)*local_180; local_280 = (undefined8 *)*local_188; local_288 = (undefined8 *)*local_198; FUN_140205ad0(*local_190,*(undefined8 *)(param_3 + 2),*(undefined8 *)(param_3 + 6),*local_178) ; uVar2 = (ulonglong)uVar5; } } return uVar2; }