163 lines
4.5 KiB
C
163 lines
4.5 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1401bd190 FUN_1401bd190
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_1401bd190(int *param_1,undefined8 param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined *puVar2;
|
|
char cVar3;
|
|
DWORD DVar4;
|
|
int iVar5;
|
|
int iVar6;
|
|
int *piVar7;
|
|
undefined8 uVar8;
|
|
LPCWSTR pWVar9;
|
|
LPCWSTR pWVar10;
|
|
int iVar11;
|
|
LPCWSTR local_res8;
|
|
|
|
piVar1 = param_1 + 0xc;
|
|
cVar3 = FUN_14016dbf0(piVar1);
|
|
if (cVar3 == '\0') {
|
|
return;
|
|
}
|
|
FUN_14016db50(piVar1);
|
|
puVar2 = *(undefined **)(param_1 + 2);
|
|
if ((((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_1403440a0)) &&
|
|
(*(int *)(puVar2 + -8) != 0)) ||
|
|
((*param_1 != 3 || (DVar4 = GetTickCount(), DVar4 - param_1[1] < 0x7531)))) goto LAB_1401bd451;
|
|
FUN_14004e6d0(param_1 + 2,param_2);
|
|
*param_1 = 0;
|
|
DVar4 = GetTickCount();
|
|
param_1[1] = DVar4;
|
|
FUN_14016d8c0();
|
|
pWVar10 = (LPCWSTR)PTR_DAT_1403440a0;
|
|
local_res8 = (LPCWSTR)PTR_DAT_1403440a0;
|
|
iVar5 = FUN_14016d740(L"**ErrorReport** ");
|
|
iVar11 = 0;
|
|
if ((pWVar10 != (LPCWSTR)0x0) && (pWVar10 != (LPCWSTR)PTR_DAT_1403440a0)) {
|
|
iVar11 = *(int *)((longlong)pWVar10 + -8);
|
|
}
|
|
iVar6 = iVar5;
|
|
if (iVar5 <= iVar11) {
|
|
iVar6 = 0;
|
|
if ((pWVar10 != (LPCWSTR)0x0) && (iVar6 = 0, pWVar10 != (LPCWSTR)PTR_DAT_1403440a0)) {
|
|
iVar6 = *(int *)((longlong)pWVar10 + -8);
|
|
}
|
|
}
|
|
iVar11 = 1;
|
|
if (1 < iVar6) {
|
|
iVar11 = iVar6;
|
|
}
|
|
iVar6 = 0;
|
|
if ((pWVar10 != (LPCWSTR)0x0) && (pWVar10 != (LPCWSTR)PTR_DAT_1403440a0)) {
|
|
iVar6 = *(int *)((longlong)pWVar10 + -8);
|
|
}
|
|
if (iVar6 < iVar11) {
|
|
if (pWVar10 == (LPCWSTR)0x0) {
|
|
pWVar10 = (LPCWSTR)PTR_DAT_1403440a0;
|
|
}
|
|
local_res8 = pWVar10;
|
|
if (iVar11 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6b0();
|
|
}
|
|
if (iVar11 == 0) {
|
|
FUN_14004eb70(&local_res8);
|
|
}
|
|
else {
|
|
iVar6 = 0;
|
|
if ((pWVar10 != (LPCWSTR)0x0) && (iVar6 = 0, pWVar10 != (LPCWSTR)PTR_DAT_1403440a0)) {
|
|
iVar6 = *(int *)(pWVar10 + -4);
|
|
}
|
|
if (iVar11 != iVar6) {
|
|
piVar7 = (int *)FUN_14016d940((longlong)iVar11 * 2 + 10);
|
|
if (piVar7 != (int *)0x0) {
|
|
*piVar7 = 0;
|
|
piVar7[1] = 1;
|
|
}
|
|
*piVar7 = iVar11;
|
|
iVar6 = 0;
|
|
if ((pWVar10 != (LPCWSTR)0x0) && (iVar6 = 0, pWVar10 != (LPCWSTR)PTR_DAT_1403440a0)) {
|
|
iVar6 = *(int *)(pWVar10 + -4);
|
|
}
|
|
pWVar9 = (LPCWSTR)PTR_DAT_1403440a0;
|
|
if (iVar11 < iVar6) {
|
|
LAB_1401bd321:
|
|
if (pWVar10 != (LPCWSTR)0x0) {
|
|
pWVar9 = pWVar10;
|
|
}
|
|
}
|
|
else {
|
|
iVar11 = 0;
|
|
if (pWVar10 != (LPCWSTR)0x0) {
|
|
if (pWVar10 != (LPCWSTR)PTR_DAT_1403440a0) {
|
|
iVar11 = *(int *)(pWVar10 + -4);
|
|
}
|
|
goto LAB_1401bd321;
|
|
}
|
|
}
|
|
FUN_14016d770(piVar7 + 2,pWVar9,iVar11);
|
|
FUN_14004eb70(&local_res8);
|
|
local_res8 = (LPCWSTR)(piVar7 + 2);
|
|
}
|
|
}
|
|
}
|
|
FUN_14004e850(&local_res8);
|
|
pWVar10 = local_res8;
|
|
pWVar9 = local_res8;
|
|
if (local_res8 == (LPCWSTR)0x0) {
|
|
pWVar9 = (LPCWSTR)PTR_DAT_1403440a0;
|
|
}
|
|
FUN_14016d770(pWVar9,L"**ErrorReport** ",iVar5);
|
|
pWVar9 = pWVar10;
|
|
if (pWVar10 == (LPCWSTR)0x0) {
|
|
pWVar9 = (LPCWSTR)PTR_DAT_1403440a0;
|
|
}
|
|
iVar5 = FUN_14016d740(pWVar9);
|
|
iVar11 = 0;
|
|
if (0 < iVar5) {
|
|
iVar11 = iVar5;
|
|
}
|
|
iVar5 = 0;
|
|
if ((pWVar10 != (LPCWSTR)0x0) && (pWVar10 != (LPCWSTR)PTR_DAT_1403440a0)) {
|
|
iVar5 = *(int *)(pWVar10 + -4);
|
|
}
|
|
if ((iVar11 < iVar5) || (iVar11 = 0, pWVar10 == (LPCWSTR)0x0)) {
|
|
LAB_1401bd3b9:
|
|
if (((pWVar10 != (LPCWSTR)PTR_DAT_1403440a0) && (pWVar10 != (LPCWSTR)0x0)) &&
|
|
(pWVar10 + -4 != (LPCWSTR)0x0)) {
|
|
*(int *)(pWVar10 + -4) = iVar11;
|
|
pWVar10[iVar11] = L'\0';
|
|
}
|
|
}
|
|
else if (pWVar10 != (LPCWSTR)PTR_DAT_1403440a0) {
|
|
iVar11 = *(int *)(pWVar10 + -4);
|
|
goto LAB_1401bd3b9;
|
|
}
|
|
FUN_14004be20(&local_res8,param_2);
|
|
FUN_14004ea20(&local_res8,&DAT_1402b0a94);
|
|
pWVar10 = local_res8;
|
|
pWVar9 = local_res8;
|
|
if (local_res8 == (LPCWSTR)0x0) {
|
|
pWVar9 = (LPCWSTR)PTR_DAT_1403440a0;
|
|
}
|
|
OutputDebugStringW(pWVar9);
|
|
if (((pWVar10 != (LPCWSTR)0x0) && (pWVar10 != (LPCWSTR)PTR_DAT_1403440a0)) &&
|
|
(pWVar10 + -4 != (LPCWSTR)0x0)) {
|
|
uVar8 = FUN_14016d8c0();
|
|
FUN_14016db50(uVar8);
|
|
pWVar9 = pWVar10 + -2;
|
|
*(int *)pWVar9 = *(int *)pWVar9 + -1;
|
|
if (*(int *)pWVar9 == 0) {
|
|
FUN_14016d970(pWVar10 + -4);
|
|
}
|
|
FUN_14016dbe0(uVar8);
|
|
}
|
|
LAB_1401bd451:
|
|
FUN_14016dbe0(piVar1);
|
|
return;
|
|
}
|
|
|