53 lines
1.5 KiB
C
53 lines
1.5 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x14003a880 FUN_14003a880
|
|
* Pseudocode, not original source. */
|
|
|
|
LPSTR FUN_14003a880(LPCWSTR param_1)
|
|
|
|
{
|
|
WCHAR WVar1;
|
|
int iVar2;
|
|
uint uVar3;
|
|
LPSTR lpMultiByteStr;
|
|
longlong lVar4;
|
|
LPCWSTR pWVar5;
|
|
|
|
lpMultiByteStr = (LPSTR)0x0;
|
|
if (param_1 != (LPCWSTR)0x0) {
|
|
lVar4 = -1;
|
|
pWVar5 = param_1;
|
|
do {
|
|
if (lVar4 == 0) break;
|
|
lVar4 = lVar4 + -1;
|
|
WVar1 = *pWVar5;
|
|
pWVar5 = pWVar5 + 1;
|
|
} while (WVar1 != L'\0');
|
|
iVar2 = WideCharToMultiByte(0,0,param_1,~(uint)lVar4,(LPSTR)0x0,0,(LPCSTR)0x0,(LPBOOL)0x0);
|
|
if (iVar2 == 0) {
|
|
uVar3 = GetLastError();
|
|
if (0 < (int)uVar3) {
|
|
uVar3 = uVar3 & 0xffff | 0x80070000;
|
|
}
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14003a870((ulonglong)uVar3);
|
|
}
|
|
lpMultiByteStr = operator_new((longlong)iVar2);
|
|
if (lpMultiByteStr == (LPSTR)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14003a870(0x8007000e);
|
|
}
|
|
iVar2 = WideCharToMultiByte(0,0,param_1,~(uint)lVar4,lpMultiByteStr,iVar2,(LPCSTR)0x0,
|
|
(LPBOOL)0x0);
|
|
if (iVar2 == 0) {
|
|
operator_delete(lpMultiByteStr);
|
|
uVar3 = GetLastError();
|
|
if (0 < (int)uVar3) {
|
|
uVar3 = uVar3 & 0xffff | 0x80070000;
|
|
}
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14003a870((ulonglong)uVar3);
|
|
}
|
|
}
|
|
return lpMultiByteStr;
|
|
}
|
|
|