/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14020d0f0 FUN_14020d0f0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ undefined4 FUN_14020d0f0(longlong param_1,uint *param_2,uint *param_3) { byte bVar1; int iVar2; int iVar3; undefined1 *puVar4; uint uVar5; uint uVar6; undefined1 auStack_88 [32]; undefined1 local_68 [4]; undefined1 local_64; undefined1 local_63; undefined1 local_62; undefined1 local_61; undefined1 local_60; undefined1 local_5f; char local_5e; undefined1 local_5d; char local_5c; undefined1 local_5b; undefined1 local_5a; undefined1 local_59; undefined1 local_58; ulonglong local_48; local_48 = DAT_1403463c0 ^ (ulonglong)auStack_88; if (((param_1 == 0) || (param_2 == (uint *)0x0)) || (param_3 == (uint *)0x0)) { return 0x10; } if (*param_2 < 2) { return 7; } bVar1 = *(byte *)(param_1 + 1); if (0x1f < bVar1) { return 7; } if (*param_2 < bVar1 + 2) { return 7; } uVar5 = 0; uVar6 = uVar5; if (bVar1 != 0) { puVar4 = local_68; uVar6 = 0; do { iVar2 = FUN_14020d900(puVar4[(param_1 - (longlong)local_68) + 2]); if (iVar2 == -1) { return 7; } *puVar4 = (char)iVar2; uVar6 = uVar6 + 1; puVar4 = puVar4 + 1; } while (uVar6 < *(byte *)(param_1 + 1)); } *param_2 = uVar6 + 2; iVar2 = FUN_14020d060(local_68[0]); iVar2 = iVar2 * 5; iVar3 = FUN_14020d060(local_68[1]); uVar6 = iVar3 + iVar2 * 2; *param_3 = uVar6; if (uVar6 < 100) { iVar2 = FUN_14020d060(local_68[2]); iVar2 = iVar2 * 5; iVar3 = FUN_14020d060(local_68[3]); uVar6 = iVar3 + iVar2 * 2; param_3[1] = uVar6; if (0xc < uVar6) { return 7; } iVar2 = FUN_14020d060(local_64); iVar2 = iVar2 * 5; iVar3 = FUN_14020d060(local_63); uVar6 = iVar3 + iVar2 * 2; param_3[2] = uVar6; if (0x1f < uVar6) { return 7; } iVar2 = FUN_14020d060(local_62); iVar2 = iVar2 * 5; iVar3 = FUN_14020d060(local_61); uVar6 = iVar3 + iVar2 * 2; param_3[3] = uVar6; if (0x17 < uVar6) { return 7; } iVar2 = FUN_14020d060(local_60); iVar2 = iVar2 * 5; iVar3 = FUN_14020d060(local_5f); uVar6 = iVar3 + iVar2 * 2; param_3[4] = uVar6; if (0x3b < uVar6) { return 7; } param_3[7] = 0; param_3[8] = 0; param_3[5] = 0; param_3[6] = 0; if (local_5e == 'Z') { return 0; } if (local_5e == '+') { uVar6 = 0; } else { if (local_5e != '-') { iVar2 = FUN_14020d060(); iVar2 = iVar2 * 5; iVar3 = FUN_14020d060(local_5d); uVar6 = iVar3 + iVar2 * 2; param_3[5] = uVar6; if (0x3b < uVar6) { return 7; } if (local_5c == 'Z') { return 0; } if (local_5c != '+') { if (local_5c != '-') { return 7; } uVar5 = 1; } param_3[6] = uVar5; iVar2 = FUN_14020d060(local_5b); iVar2 = iVar2 * 5; iVar3 = FUN_14020d060(local_5a); uVar6 = iVar3 + iVar2 * 2; param_3[7] = uVar6; if (0x17 < uVar6) { return 7; } iVar2 = FUN_14020d060(local_59); goto LAB_14020d318; } uVar6 = 1; } param_3[6] = uVar6; iVar2 = FUN_14020d060(local_5d); iVar2 = iVar2 * 5; iVar3 = FUN_14020d060(local_5c); uVar6 = iVar3 + iVar2 * 2; param_3[7] = uVar6; if (uVar6 < 0x18) { iVar2 = FUN_14020d060(local_5b); local_58 = local_5a; LAB_14020d318: iVar2 = iVar2 * 5; iVar3 = FUN_14020d060(local_58); uVar6 = iVar3 + iVar2 * 2; param_3[8] = uVar6; if (0x3b < uVar6) { return 7; } return 0; } } return 7; }