GetFileContents
__int64 __fastcall GetFileContents(__int64 *a1, __int64 a2, __int64 a3)
{
__int64 v3;
__int64 *v4;
signed int v5;
const char *v6;
signed int v7;
__int64 v8;
int (__fastcall *v9)(__int64 *, _QWORD, signed __int64, __int64 *);
signed int v10;
__int64 v11;
void (__fastcall *v12)(_QWORD);
int v13;
void (__fastcall ***v14)(_QWORD);
void (__fastcall *v15)(_QWORD);
void (__fastcall ***v17)(_QWORD);
void (__fastcall *v18)(_QWORD);
__int64 *v19;
const char *v20;
int v21;
const char *v22;
int v23;
void (__fastcall ***v24)(_QWORD);
__int64 v25;
__int64 v26;
__int64 v27;
v23 = -2147023537;
v3 = a3;
v4 = a1;
if ( !a1 )
{
v5 = 36;
v6 = "Not-null check failed: pIsolation";
LABEL_3:
Windows::ErrorHandling::COM::CBaseFrame<Windows::ErrorHandling::COM::CSimpleHResultCarryingFrame>::SetInvalidParameter_NullPointer(&v23);
LABEL_11:
v21 = v5;
v19 = (__int64 *)"base\\cbs\\util\\cbsverifytrust.cpp";
v22 = v6;
v20 = "GetFileContents";
Windows::ErrorHandling::COM::CBaseFrame<Windows::ErrorHandling::COM::CSimpleHResultCarryingFrame>::ReportErrorOrigination(
&v23,
(Windows::ErrorHandling::COM *)&v19);
return (unsigned int)v23;
}
if ( !a2 )
{
v5 = 37;
v6 = "Not-null check failed: pszFileName";
goto LABEL_3;
}
v25 = 0i64;
v26 = 0i64;
v27 = 0i64;
v7 = RtlInitLUnicodeStringFromNullTerminatedString(a2, (__int64)&v19);
if ( v7 < 0 )
{
v5 = 45;
v6 = "RtlInitLUnicodeStringFromNullTerminatedString( pszFileName, &lusWin32Path)";
LABEL_10:
v23 = ConvertNtStatusToHResult(v7);
Windows::AutoPODBase<_LUNICODE_STRING,Windows::Auto<_LUNICODE_STRING>>::Close((__int64)&v25);
goto LABEL_11;
}
v7 = RtlConvertWin32FilePathToNtFilePath((__int64)&v19, &v25);
if ( v7 < 0 )
{
v5 = 50;
v6 = "RtlConvertWin32FilePathToNtFilePath( &lusWin32Path, lusNtPath.GetMutablePointer())";
goto LABEL_10;
}
v8 = *v4;
v24 = 0i64;
v9 = *(int (__fastcall **)(__int64 *, _QWORD, signed __int64, __int64 *))(v8 + 24);
_guard_check_icall_fptr(*(_QWORD *)(v8 + 24));
v20 = 0i64;
v19 = (__int64 *)&v24;
v10 = v9(v4, 0i64, 1245321i64, &v25);
if ( v10 < 0
|| (v11 = (__int64)v24,
v12 = (*v24)[6],
_guard_check_icall_fptr((*v24)[6]),
v10 = ((int (__fastcall *)(__int64, _QWORD, __int64, _QWORD))v12)(v11, 0i64, v3, 0i64),
v10 < 0) )
{
v13 = ConvertNtStatusToHResult(v10);
v14 = v24;
v23 = v13;
if ( v24 )
{
v24 = 0i64;
v15 = **v14;
_guard_check_icall_fptr(**v14);
v15(v14);
}
Windows::AutoPODBase<_LUNICODE_STRING,Windows::Auto<_LUNICODE_STRING>>::Close((__int64)&v25);
Windows::ErrorHandling::COM::CBaseFrame<Windows::ErrorHandling::COM::CSimpleHResultCarryingFrame>::ReportErrorPropagation(&v23);
return (unsigned int)v23;
}
v17 = v24;
if ( v24 )
{
v24 = 0i64;
v18 = **v17;
_guard_check_icall_fptr(**v17);
v18(v17);
}
Windows::AutoPODBase<_LUNICODE_STRING,Windows::Auto<_LUNICODE_STRING>>::Close((__int64)&v25);
return 0i64;
}