/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x140001990 FUN_140001990 * Pseudocode, not original source. */ /* WARNING: Function: __chkstk replaced with injection: alloca_probe */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ DWORD FUN_140001990(undefined8 param_1) { ulonglong _Size; longlong lVar1; int iVar2; int iVar3; DWORD DVar4; ulonglong uVar5; undefined4 *puVar6; undefined4 *puVar7; undefined1 *puVar8; undefined1 *puVar9; undefined1 auStackY_48 [32]; ulonglong local_18 [2]; puVar8 = auStackY_48; puVar9 = auStackY_48; local_18[0] = DAT_1403463c0 ^ (ulonglong)local_18; iVar2 = lstrlenA("ADODB.Command"); iVar3 = MultiByteToWideChar(0,0,"ADODB.Command",iVar2 + 1,(LPWSTR)0x0,0); if (iVar3 == 0) { LAB_140001a8e: *(undefined8 *)(puVar9 + -8) = 0x140001a94; DVar4 = GetLastError(); if (0 < (int)DVar4) { DVar4 = DVar4 & 0xffff | 0x80070000; } } else { _Size = (longlong)iVar3 * 2 + 0x10; if (_Size < 0x401) { uVar5 = (longlong)iVar3 * 2 + 0x1f; if (uVar5 <= _Size) { uVar5 = 0xffffffffffffff0; } lVar1 = -(uVar5 & 0xfffffffffffffff0); puVar9 = auStackY_48 + lVar1; puVar8 = auStackY_48 + lVar1; puVar6 = (undefined4 *)((longlong)local_18 + lVar1); if (puVar6 != (undefined4 *)0x0) { *puVar6 = 0xcccc; LAB_140001a49: puVar7 = puVar6 + 4; puVar9 = puVar8; goto LAB_140001a4d; } } else { puVar6 = malloc(_Size); puVar7 = (undefined4 *)0x0; puVar9 = auStackY_48; if (puVar6 != (undefined4 *)0x0) { *puVar6 = 0xdddd; goto LAB_140001a49; } LAB_140001a4d: if (puVar7 != (undefined4 *)0x0) { *(int *)(puVar9 + 0x28) = iVar3; *(undefined4 **)(puVar9 + 0x20) = puVar7; *(undefined8 *)(puVar9 + -8) = 0x140001a77; iVar2 = MultiByteToWideChar(0,0,"ADODB.Command",iVar2 + 1,*(LPWSTR *)(puVar9 + 0x20), *(int *)(puVar9 + 0x28)); if (iVar2 != 0) { *(undefined8 *)(puVar9 + -8) = 0x140001aad; DVar4 = FUN_140001af0(param_1,puVar7); if (puVar7[-4] == 0xdddd) { *(undefined8 *)(puVar9 + -8) = 0x140001ac2; free(puVar7 + -4); } goto LAB_140001ac4; } if (puVar7[-4] == 0xdddd) { *(undefined8 *)(puVar9 + -8) = 0x140001a8e; free(puVar7 + -4); } goto LAB_140001a8e; } } DVar4 = 0x8007000e; } LAB_140001ac4: *(undefined8 *)(puVar9 + -8) = 0x140001ad0; return DVar4; }