GetFileContents

GetFileContents

__int64 __fastcall GetFileContents(__int64 *a1, __int64 a2, __int64 a3)
{
  __int64 v3; // rsi@1
  __int64 *v4; // rdi@1
  signed int v5; // ebx@2
  const char *v6; // rdi@2
  signed int v7; // eax@6
  __int64 v8; // rax@12
  int (__fastcall *v9)(__int64 *, _QWORD, signed __int64, __int64 *); // rbx@12
  signed int v10; // eax@12
  __int64 v11; // rbx@13
  void (__fastcall *v12)(_QWORD); // rdi@13
  int v13; // eax@14
  void (__fastcall ***v14)(_QWORD); // rdi@14
  void (__fastcall *v15)(_QWORD); // rbx@15
  void (__fastcall ***v17)(_QWORD); // rdi@18
  void (__fastcall *v18)(_QWORD); // rbx@19
  __int64 *v19; // [sp+30h] [bp-9h]@6
  const char *v20; // [sp+38h] [bp-1h]@11
  int v21; // [sp+40h] [bp+7h]@11
  const char *v22; // [sp+48h] [bp+Fh]@11
  int v23; // [sp+50h] [bp+17h]@1
  void (__fastcall ***v24)(_QWORD); // [sp+58h] [bp+1Fh]@12
  __int64 v25; // [sp+60h] [bp+27h]@6
  __int64 v26; // [sp+68h] [bp+2Fh]@6
  __int64 v27; // [sp+70h] [bp+37h]@6

  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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值