54 lines
1.5 KiB
C
54 lines
1.5 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x140001200 FUN_140001200
|
|
* Pseudocode, not original source. */
|
|
|
|
longlong FUN_140001200(longlong param_1)
|
|
|
|
{
|
|
longlong *lpBuffer;
|
|
longlong lVar1;
|
|
int iVar2;
|
|
char *_DstBuf;
|
|
longlong lVar3;
|
|
char *_Format;
|
|
|
|
lpBuffer = (longlong *)(param_1 + 0x18);
|
|
if (*(longlong *)(param_1 + 0x18) == 0) {
|
|
FormatMessageA(0x1300,(LPCVOID)0x0,*(DWORD *)(param_1 + 8),0x400,(LPSTR)lpBuffer,0,
|
|
(va_list *)0x0);
|
|
if ((LPCSTR)*lpBuffer == (LPCSTR)0x0) {
|
|
_DstBuf = LocalAlloc(0,0x20);
|
|
*lpBuffer = (longlong)_DstBuf;
|
|
if (_DstBuf == (char *)0x0) {
|
|
return 0;
|
|
}
|
|
if ((*(int *)(param_1 + 8) + 0x7ffbfe00U < 0xfe00) && ((short)*(int *)(param_1 + 8) != 0x200))
|
|
{
|
|
_Format = "IDispatch error #%d";
|
|
}
|
|
else {
|
|
_Format = "Unknown error 0x%0lX";
|
|
}
|
|
sprintf_s(_DstBuf,0x20,_Format);
|
|
}
|
|
else {
|
|
iVar2 = lstrlenA((LPCSTR)*lpBuffer);
|
|
if (1 < iVar2) {
|
|
lVar3 = (longlong)iVar2;
|
|
lVar1 = *lpBuffer;
|
|
if (*(char *)(lVar3 + -1 + lVar1) != '\n') {
|
|
return lVar1;
|
|
}
|
|
*(undefined1 *)(lVar3 + -1 + lVar1) = 0;
|
|
lVar1 = *lpBuffer;
|
|
if (*(char *)(lVar3 + -2 + lVar1) != '\r') {
|
|
return lVar1;
|
|
}
|
|
*(undefined1 *)(lVar3 + -2 + lVar1) = 0;
|
|
return *lpBuffer;
|
|
}
|
|
}
|
|
}
|
|
return *lpBuffer;
|
|
}
|
|
|