/* 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; }