TransferFile

TransferFile

 

 

//----- (100FDAE4)--------------------------------------------------------
int __thiscallWindows::Rtl::SystemImplementation::CSystemIsolationLayer::TransferFile(Windows::Rtl::SystemImplementation::CSystemIsolationLayer*this, unsigned __int32a2, unsigned __int32 a3, structWindows::Rtl::IRtlDirectory *a4, conststruct _LUNICODE_STRING *a5, structWindows::Rtl::IRtlDirectory *a6, conststruct _LUNICODE_STRING *a7, unsigned__int32 *a8)
{
  struct
Windows::Rtl::IRtlDirectory *v8; // edx@1
  unsigned __int32 v9; // esi@1
  const struct_LUNICODE_STRING *v10; // edi@1
  unsigned __int32 v11; // eax@8
  int result; // eax@32
  unsigned __int32 v13; // eax@54
  signed int v14; // [sp-4h] [bp-38h]@34
 Windows::Rtl::SystemImplementation::CSystemIsolationLayer *v15; // [sp+14h][bp-20h]@1
  unsigned __int32 v16; // [sp+1Ch] [bp-18h]@32
  unsigned __int32 v17; // [sp+20h] [bp-14h]@1
  structWindows::Rtl::IRtlDirectory *v18; // [sp+24h] [bp-10h]@1
  struct _LUNICODE_STRING *v19; // [sp+28h][bp-Ch]@1
  char v20; // [sp+2Fh] [bp-5h]@3

  v8 =a4;
  v18 =a6;
  v19 =a7;
  v9 =0;
  v15 =this;
  v17 =0;
  v10 =a5;
  if (a8 )
    *a8= 0;
  v20 =a2 & 1;
  if (!a3 )
  {
    result =Windows::Rtl::SystemImplementation::CSystemIsolationLayer::MoveFileW(this, a2, a4, a5, v18, v19, &v17);
    goto LABEL_48;
  }
  if
(a3 == 1)
  {
LABEL_47:
    result =Windows::Rtl::SystemImplementation::CSystemIsolationLayer::CopyFileW(this, a2, v8, v10, v18, v19, &v17);
LABEL_48:
    if (result < 0)
      return result;
    v9 =v17;
    goto LABEL_50;
  }
  if
(a3 == 2)
  {
    v13 =0;
    if (a2 & 0x40)
      v13 =32;
    if ((a2 &0x80u) !=0 )
      v13 |=0x10u;
    if (a2 & 2)
      v13 |=8u;
    if (a2 & 0x100)
      v13 |=0x40u;
    if (a2 & 0x400)
      v13 |=0x2000u;
    if (a2 & 0x800)
      v13 |=0x4000u;
    if (a2 & 0x1000)
      v13 |=0x8000u;
    if (a2 & 4)
      v13 |=0x100u;
    if (a2 & 8)
      v13 |=0x200u;
    if (a2 & 0x10)
      v13 |=0x400u;
    if (a2 & 0x20)
      v13 |=0x800u;
    if (v20 )
      v13 |=0x80u;
    if (a2 & 0x200)
      v13 |=0x1000u;
    result =Windows::Rtl::SystemImplementation::CSystemIsolationLayer::CreateHardLinkW(
               this,
               v13,
               a4,
               a5,
               v18,
               v19,
               &v16);
    if (result >= 0)
    {
      if
(v16 == 1)
        goto LABEL_34;
      if (v16 == 7)
      {
        v14 =4;
        goto LABEL_91;
      }
      if
(v16 == 6)
        goto LABEL_36;
      if (v16 == 5)
        goto LABEL_38;
      if (v16 == 8)
        goto LABEL_40;
      if (v16 == 9)
        goto LABEL_42;
      if (v16 == 10)
        goto LABEL_44;
      if (v16 != 11)
      {
LABEL_50:
        if ( a8 )
          *a8= v9;
        return 0;
      }
      goto
LABEL_90;
    }
  }
  else
  {
    if
(a3 != 3)
      __debugbreak();
    v11 =39;
    if ((a2 &0x80u) !=0 )
      v11 =55;
    if (a2 & 2)
      v11 |=8u;
    if (a2 & 0x100)
      v11 |=0x40u;
    if (a2 & 0x400)
      v11 |=0x2000u;
    if (a2 & 0x800)
      v11 |=0x4000u;
    if (a2 & 0x1000)
      v11 |=0x8000u;
    if (a2 & 4)
      v11 |=0x100u;
    if (a2 & 8)
      v11 |=0x200u;
    if (a2 & 0x10)
      v11 |=0x400u;
    if (a2 & 0x20)
      v11 |=0x800u;
    if (a2 & 0x200)
      v11 |=0x1000u;
    if (v20 )
      v11 |=0x80u;
    v10 =a5;
    result =Windows::Rtl::SystemImplementation::CSystemIsolationLayer::CreateHardLinkW(
               this,
               v11,
               a4,
               a5,
               v18,
               v19,
               &v16);
    if (result >= 0)
    {
      if
(v16 == 1)
      {
LABEL_34:
        v14 =3;
LABEL_91:
        v9 =v14;
        goto LABEL_50;
      }
      if
(v16 == 6)
      {
LABEL_36:
        v14 =5;
        goto LABEL_91;
      }
      if
(v16 == 5)
      {
LABEL_38:
        v14 =6;
        goto LABEL_91;
      }
      if
(v16 == 8)
      {
LABEL_40:
        v14 =7;
        goto LABEL_91;
      }
      if
(v16 == 9)
      {
LABEL_42:
        v14 =8;
        goto LABEL_91;
      }
      if
(v16 == 10)
      {
LABEL_44:
        v14 =9;
        goto LABEL_91;
      }
      if
(v16 != 11)
      {
        this =
v15;
        v8 =a4;
        goto LABEL_47;
      }
LABEL_90:
      v14 =10;
      goto LABEL_91;
    }
  }
  return
result;
}

 

//----- (100FDD90)--------------------------------------------------------
int __fastcallWindows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerPublicTearoff::TransferFile(Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerPublicTearoff*this, structWindows::WCP::Rtl::_RTL_TRACING_FACILITY *a2,unsigned __int32 a3, unsigned __int32 a4, structWindows::Rtl::IRtlDirectory *a5, conststruct _LUNICODE_STRING *a6, structWindows::Rtl::IRtlDirectory *a7, conststruct _LUNICODE_STRING *a8, unsigned__int32 *a9)
{
  struct
Windows::Rtl::IRtlDirectory *v9; // ebx@1
  unsigned __int32 *v10; // esi@1
 Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerPublicTearoff*v11; //edi@1
  signed int v12; // esi@6
  const char *v13; // edi@6
  int v14; // eax@13
  structWindows::Rtl::IRtlDirectory *v16; // [sp+10h] [bp-F0h]@1
  struct _LUNICODE_STRING *v17; // [sp+14h][bp-ECh]@1
  struct _LUNICODE_STRING *v18; // [sp+18h][bp-E8h]@1
  const char *v19; // [sp+1Ch][bp-E4h]@12
  const char *v20; // [sp+20h][bp-E0h]@12
  int v21; // [sp+24h] [bp-DCh]@12
  const char *v22; // [sp+28h][bp-D8h]@12
  int v23; // [sp+2Ch] [bp-D4h]@1
  char v24; // [sp+30h] [bp-D0h]@2
  int v25; // [sp+34h] [bp-CCh]@1
  int v26; // [sp+48h] [bp-B8h]@1
  char v27; // [sp+54h] [bp-ACh]@1

  v9 =a5;
  v17 =a6;
  v10 =a9;
  v16 =a7;
  v18 =a8;
  v11 =this;
  v23 =-1073741595;
  v26 =0;
  v27 =0;
  v25 =1;
  if (Windows::WCP::Rtl::RtlGetFacilityTracingFlags((Windows::WCP::Rtl*)&Facility_SIL, a2)& 0xE)
    Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::Arm(
      (int)&v24,
      (int)&v23,
      (int)Windows::WCP::Rtl::RtlTraceFormat_PCNTSTATUS,
      (int)v11 - 8,
      (int)"Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerPublicTearoff::TransferFile",
      (structWindows::WCP::Rtl::_RTL_TRACING_FACILITY *)&Facility_SIL,
      "(flags= {flags}, op = {op}, odir = {odir}, oname = {oname}, ndir = {ndir}, nname ={nname})\n",
      (int)"(flags = {flags},op = {op}, odir = {odir}, oname = {oname}, ndir = {ndir}, nname = {nname}, disp= {disp})\n",
      0,
      7u,
      (unsignedint)"flags");
  if (v10 )
    *v10= 0;
  if (a3 & 0xFFFFE000)
  {
    v12 =1188;
    v13 ="Valid flags check failed: Flags";
LABEL_12:
   Windows::ErrorHandling::Rtl::CBaseFrame<Windows::ErrorHandling::Rtl::CVoidRaiseFrame>::SetInvalidParameter_NullPointer(&v23);
    Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::~CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>(
      (int)&v24,
      (int)v13);
    v19 ="base\\wcp\\sil\\silp.h";
    v20 ="Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerPublicTearoff::TransferFile";
    v21 =v12;
    v22 =v13;
   Windows::ErrorHandling::Rtl::CBaseFrame<Windows::ErrorHandling::Rtl::CVoidRaiseFrame>::ReportErrorOrigination(
      &v23,
      (int)&v19);
    return v23;
  }
  if
(a4 != 2&& a4 != 3 && a4 !=1 &&a4 )
  {
    v12 =1194;
    v13 ="Operation ==IRtlSystemIsolationLayer::TransferFile_Operations::HardLink || Operation ==IRtlSystemIsolationLa"
          "yer::TransferFile_Operations::HardLinkWithCopyFallback|| Operation == IRtlSystemIsolationLayer::TransferFile_"
          "Operations::Copy|| Operation == IRtlSystemIsolationLayer::TransferFile_Operations::Move";
    goto LABEL_12;
  }
  v14 =Windows::Rtl::SystemImplementation::CSystemIsolationLayer::TransferFile(
          *((Windows::Rtl::SystemImplementation::CSystemIsolationLayer**)v11- 1),
          a3,
          a4,
          v9,
          v17,
          v16,
          v18,
          v10);
  if (v14 < 0)
  {
    v23 =v14;
    Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::~CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>(
      (int)&v24,
      (int)v11);
    return v23;
  }
  v27 =1;
  v23 =0;
  Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::~CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>(
    (int)&v24,
    (int)v11);
  return 0;
}

//----- (100FDFA0)--------------------------------------------------------
int __fastcallWindows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerWithPOQTearoff::TransferFile(Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerWithPOQTearoff*this, structWindows::WCP::Rtl::_RTL_TRACING_FACILITY *a2,unsigned __int32 a3, unsigned __int32 a4, structWindows::Rtl::IRtlDirectory *a5, conststruct _LUNICODE_STRING *a6, structWindows::Rtl::IRtlDirectory *a7, conststruct _LUNICODE_STRING *a8, unsigned__int32 *a9)
{
  struct
Windows::Rtl::IRtlDirectory *v9; // ebx@1
  unsigned __int32 *v10; // esi@1
 Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerWithPOQTearoff*v11; //edi@1
  signed int v12; // esi@6
  const char *v13; // edi@6
  int v14; // eax@13
  structWindows::Rtl::IRtlDirectory *v16; // [sp+10h] [bp-F0h]@1
  struct _LUNICODE_STRING *v17; // [sp+14h][bp-ECh]@1
  struct _LUNICODE_STRING *v18; // [sp+18h][bp-E8h]@1
  const char *v19; // [sp+1Ch][bp-E4h]@12
  const char *v20; // [sp+20h][bp-E0h]@12
  int v21; // [sp+24h] [bp-DCh]@12
  const char *v22; // [sp+28h][bp-D8h]@12
  int v23; // [sp+2Ch] [bp-D4h]@1
  char v24; // [sp+30h] [bp-D0h]@2
  int v25; // [sp+34h] [bp-CCh]@1
  int v26; // [sp+48h] [bp-B8h]@1
  char v27; // [sp+54h] [bp-ACh]@1

  v9 =a5;
  v17 =a6;
  v10 =a9;
  v16 =a7;
  v18 =a8;
  v11 =this;
  v23 =-1073741595;
  v26 =0;
  v27 =0;
  v25 =1;
  if (Windows::WCP::Rtl::RtlGetFacilityTracingFlags((Windows::WCP::Rtl*)&Facility_SIL, a2)& 0xE)
    Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::Arm(
      (int)&v24,
      (int)&v23,
      (int)Windows::WCP::Rtl::RtlTraceFormat_PCNTSTATUS,
      (int)v11 - 8,
      (int)"Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerWithPOQTearoff::TransferFile",
      (structWindows::WCP::Rtl::_RTL_TRACING_FACILITY *)&Facility_SIL,
      "(flags= {flags}, op = {op}, odir = {odir}, oname = {oname}, ndir = {ndir}, nname ={nname})\n",
      (int)"from {_fn}(flags ={flags}, op = {op}, odir = {odir}, oname = {oname}, ndir = {ndir}, nname ={nname}, disp = {disp})\n",
      (int)"from {_fn}(disp ={disp})\n",
      7u,
      (unsignedint)"flags");
  if (v10 )
    *v10= 0;
  if (a3 & 0xFFFFE17E)
  {
    v12 =2862;
    v13 ="Valid flags check failed: Flags";
LABEL_12:
   Windows::ErrorHandling::Rtl::CBaseFrame<Windows::ErrorHandling::Rtl::CVoidRaiseFrame>::SetInvalidParameter_NullPointer(&v23);
    Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::~CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>(
      (int)&v24,
      (int)v13);
    v19 ="base\\wcp\\sil\\silp.h";
    v20 ="Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerWithPOQTearoff::TransferFile";
    v21 =v12;
    v22 =v13;
    Windows::ErrorHandling::Rtl::CBaseFrame<Windows::ErrorHandling::Rtl::CVoidRaiseFrame>::ReportErrorOrigination(
      &v23,
      (int)&v19);
    return v23;
  }
  if
(a4 != 2&& a4 != 3 && a4 !=1 &&a4 )
  {
    v12 =2868;
    v13 ="Operation ==IRtlSystemIsolationLayer::TransferFile_Operations::HardLink || Operation ==IRtlSystemIsolationLa"
          "yer::TransferFile_Operations::HardLinkWithCopyFallback|| Operation == IRtlSystemIsolationLayer::TransferFile_"
          "Operations::Copy|| Operation == IRtlSystemIsolationLayer::TransferFile_Operations::Move";
    goto LABEL_12;
  }
  v14 =Windows::Rtl::SystemImplementation::CSystemIsolationLayer::TransferFile(
          *((Windows::Rtl::SystemImplementation::CSystemIsolationLayer**)v11- 1),
          a3,
          a4,
          v9,
          v17,
          v16,
          v18,
          v10);
  if (v14 < 0)
  {
    v23 =v14;
    Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::~CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>(
      (int)&v24,
      (int)v11);
    return v23;
  }
  v23 =0;
  Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::~CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>(
    (int)&v24,
    (int)v11);
  return 0;
}
//----- (100FDD90)--------------------------------------------------------
int __fastcallWindows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerPublicTearoff::TransferFile(Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerPublicTearoff*this, structWindows::WCP::Rtl::_RTL_TRACING_FACILITY *a2,unsigned __int32 a3, unsigned __int32 a4, structWindows::Rtl::IRtlDirectory *a5, conststruct _LUNICODE_STRING *a6, structWindows::Rtl::IRtlDirectory *a7, conststruct _LUNICODE_STRING *a8, unsigned__int32 *a9)
{
  struct
Windows::Rtl::IRtlDirectory *v9; // ebx@1
  unsigned __int32 *v10; // esi@1
 Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerPublicTearoff*v11; //edi@1
  signed int v12; // esi@6
  const char *v13; // edi@6
  int v14; // eax@13
  structWindows::Rtl::IRtlDirectory *v16; // [sp+10h] [bp-F0h]@1
  struct _LUNICODE_STRING *v17; // [sp+14h][bp-ECh]@1
  struct _LUNICODE_STRING *v18; // [sp+18h][bp-E8h]@1
  const char *v19; // [sp+1Ch][bp-E4h]@12
  const char *v20; // [sp+20h][bp-E0h]@12
  int v21; // [sp+24h] [bp-DCh]@12
  const char *v22; // [sp+28h][bp-D8h]@12
  int v23; // [sp+2Ch] [bp-D4h]@1
  char v24; // [sp+30h] [bp-D0h]@2
  int v25; // [sp+34h] [bp-CCh]@1
  int v26; // [sp+48h] [bp-B8h]@1
  char v27; // [sp+54h] [bp-ACh]@1

  v9 =a5;
  v17 =a6;
  v10 =a9;
  v16 =a7;
  v18 =a8;
  v11 =this;
  v23 =-1073741595;
  v26 =0;
  v27 =0;
  v25 =1;
  if (Windows::WCP::Rtl::RtlGetFacilityTracingFlags((Windows::WCP::Rtl*)&Facility_SIL, a2)& 0xE)
    Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::Arm(
      (int)&v24,
      (int)&v23,
      (int)Windows::WCP::Rtl::RtlTraceFormat_PCNTSTATUS,
      (int)v11 - 8,
      (int)"Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerPublicTearoff::TransferFile",
      (structWindows::WCP::Rtl::_RTL_TRACING_FACILITY *)&Facility_SIL,
      "(flags= {flags}, op = {op}, odir = {odir}, oname = {oname}, ndir = {ndir}, nname ={nname})\n",
      (int)"(flags = {flags},op = {op}, odir = {odir}, oname = {oname}, ndir = {ndir}, nname = {nname}, disp= {disp})\n",
      0,
      7u,
      (unsignedint)"flags");
  if (v10 )
    *v10= 0;
  if (a3 & 0xFFFFE000)
  {
    v12 =1188;
    v13 ="Valid flags check failed: Flags";
LABEL_12:
   Windows::ErrorHandling::Rtl::CBaseFrame<Windows::ErrorHandling::Rtl::CVoidRaiseFrame>::SetInvalidParameter_NullPointer(&v23);
    Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::~CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>(
      (int)&v24,
      (int)v13);
    v19 ="base\\wcp\\sil\\silp.h";
    v20 ="Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerPublicTearoff::TransferFile";
    v21 =v12;
    v22 =v13;
   Windows::ErrorHandling::Rtl::CBaseFrame<Windows::ErrorHandling::Rtl::CVoidRaiseFrame>::ReportErrorOrigination(
      &v23,
      (int)&v19);
    return v23;
  }
  if
(a4 != 2&& a4 != 3 && a4 !=1 &&a4 )
  {
    v12 =1194;
    v13 ="Operation ==IRtlSystemIsolationLayer::TransferFile_Operations::HardLink || Operation ==IRtlSystemIsolationLa"
          "yer::TransferFile_Operations::HardLinkWithCopyFallback|| Operation == IRtlSystemIsolationLayer::TransferFile_"
          "Operations::Copy|| Operation == IRtlSystemIsolationLayer::TransferFile_Operations::Move";
    goto LABEL_12;
  }
  v14 =Windows::Rtl::SystemImplementation::CSystemIsolationLayer::TransferFile(
          *((Windows::Rtl::SystemImplementation::CSystemIsolationLayer**)v11- 1),
          a3,
          a4,
          v9,
          v17,
          v16,
          v18,
          v10);
  if (v14 < 0)
  {
    v23 =v14;
    Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::~CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>(
      (int)&v24,
      (int)v11);
    return v23;
  }
  v27 =1;
  v23 =0;
  Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::~CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>(
    (int)&v24,
    (int)v11);
  return 0;
}

//----- (100FDFA0)--------------------------------------------------------
int __fastcallWindows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerWithPOQTearoff::TransferFile(Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerWithPOQTearoff*this, structWindows::WCP::Rtl::_RTL_TRACING_FACILITY *a2,unsigned __int32 a3, unsigned __int32 a4, structWindows::Rtl::IRtlDirectory *a5, conststruct _LUNICODE_STRING *a6, structWindows::Rtl::IRtlDirectory *a7, conststruct _LUNICODE_STRING *a8, unsigned__int32 *a9)
{
  struct
Windows::Rtl::IRtlDirectory *v9; // ebx@1
  unsigned __int32 *v10; // esi@1
 Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerWithPOQTearoff*v11; //edi@1
  signed int v12; // esi@6
  const char *v13; // edi@6
  int v14; // eax@13
  structWindows::Rtl::IRtlDirectory *v16; // [sp+10h] [bp-F0h]@1
  struct _LUNICODE_STRING *v17; // [sp+14h][bp-ECh]@1
  struct _LUNICODE_STRING *v18; // [sp+18h][bp-E8h]@1
  const char *v19; // [sp+1Ch][bp-E4h]@12
  const char *v20; // [sp+20h][bp-E0h]@12
  int v21; // [sp+24h] [bp-DCh]@12
  const char *v22; // [sp+28h][bp-D8h]@12
  int v23; // [sp+2Ch] [bp-D4h]@1
  char v24; // [sp+30h] [bp-D0h]@2
  int v25; // [sp+34h] [bp-CCh]@1
  int v26; // [sp+48h] [bp-B8h]@1
  char v27; // [sp+54h] [bp-ACh]@1

  v9 =a5;
  v17 =a6;
  v10 =a9;
  v16 =a7;
  v18 =a8;
  v11 =this;
  v23 =-1073741595;
  v26 =0;
  v27 =0;
  v25 =1;
  if (Windows::WCP::Rtl::RtlGetFacilityTracingFlags((Windows::WCP::Rtl*)&Facility_SIL, a2)& 0xE)
    Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::Arm(
      (int)&v24,
      (int)&v23,
      (int)Windows::WCP::Rtl::RtlTraceFormat_PCNTSTATUS,
      (int)v11 - 8,
      (int)"Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerWithPOQTearoff::TransferFile",
      (structWindows::WCP::Rtl::_RTL_TRACING_FACILITY *)&Facility_SIL,
      "(flags= {flags}, op = {op}, odir = {odir}, oname = {oname}, ndir = {ndir}, nname ={nname})\n",
      (int)"from {_fn}(flags ={flags}, op = {op}, odir = {odir}, oname = {oname}, ndir = {ndir}, nname ={nname}, disp = {disp})\n",
      (int)"from {_fn}(disp ={disp})\n",
      7u,
      (unsignedint)"flags");
  if (v10 )
    *v10= 0;
  if (a3 & 0xFFFFE17E)
  {
    v12 =2862;
    v13 ="Valid flags check failed: Flags";
LABEL_12:
   Windows::ErrorHandling::Rtl::CBaseFrame<Windows::ErrorHandling::Rtl::CVoidRaiseFrame>::SetInvalidParameter_NullPointer(&v23);
    Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::~CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>(
      (int)&v24,
      (int)v13);
    v19 ="base\\wcp\\sil\\silp.h";
    v20 ="Windows::Rtl::SystemImplementation::CSystemIsolationLayer_IRtlSystemIsolationLayerWithPOQTearoff::TransferFile";
    v21 =v12;
    v22 =v13;
   Windows::ErrorHandling::Rtl::CBaseFrame<Windows::ErrorHandling::Rtl::CVoidRaiseFrame>::ReportErrorOrigination(
      &v23,
      (int)&v19);
    return v23;
  }
  if
(a4 != 2&& a4 != 3 && a4 !=1 &&a4 )
  {
    v12 =2868;
    v13 ="Operation ==IRtlSystemIsolationLayer::TransferFile_Operations::HardLink || Operation ==IRtlSystemIsolationLa"
          "yer::TransferFile_Operations::HardLinkWithCopyFallback|| Operation == IRtlSystemIsolationLayer::TransferFile_"
          "Operations::Copy|| Operation == IRtlSystemIsolationLayer::TransferFile_Operations::Move";
    goto LABEL_12;
  }
  v14 =Windows::Rtl::SystemImplementation::CSystemIsolationLayer::TransferFile(
          *((Windows::Rtl::SystemImplementation::CSystemIsolationLayer**)v11- 1),
          a3,
          a4,
          v9,
          v17,
          v16,
          v18,
          v10);
  if (v14 < 0)
  {
    v23 =v14;
    Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::~CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>(
      (int)&v24,
      (int)v11);
    return v23;
  }
  v23 =0;
  Windows::WCP::Rtl::CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>::~CEnterExitTracer<Windows::ErrorHandling::Rtl::CSimpleNtStatusCarryingFrame,7>(
    (int)&v24,
    (int)v11);
  return 0;
}

//----- (101F7C18)--------------------------------------------------------
int __fastcall `anonymous namespace'::PoqSilCopyFile(int a1, int a2, int a3, int a4)
{
  int
v4; // ST00_4@1
  int result; // eax@1

  v4 =a2;
  LOBYTE(a2) = a1;
  result =((int (__fastcall*)(int,int, int, signed int, int, int, int,_DWORD))`anonymous namespace'::PoqTransferFile)(
             a1,
             a2,
             v4,
             1,
             a3 + 8,
             a3 + 16,
             a4,
             0);
  if (result >= 0)
    result =0;
  return result;
}

 


//----- (101F8F53)--------------------------------------------------------
int __fastcall `anonymous namespace'::PoqSilHardlinkFile(int a1, int a2, int a3, int a4)
{
  int
v4; // ST00_4@1
  int result; // eax@1

  v4 =a2;
  LOBYTE(a2) = a1;
  result =((int (__fastcall*)(int,int, int, signed int, int, int, int))`anonymous namespace'::PoqTransferFile)(
             a1,
             a2,
             v4,
             3,
             a3 + 4,
             a3 + 12,
             a4);
  if (result >= 0)
    result =0;
  return result;
}

//----- (101F8F9E)--------------------------------------------------------
int __fastcall `anonymous namespace'::PoqSilMoveFile(int a1, int a2, int a3, int a4)
{
  int
v4; // ST00_4@1
  int result; // eax@1

  v4 =a2;
  LOBYTE(a2) = a1;
  result =((int (__fastcall*)(int,int, int, _DWORD, int, int, int, _DWORD))`anonymous namespace'::PoqTransferFile)(
             a1,
             a2,
             v4,
             0,
             a3 + 4,
             a3 + 12,
             a4,
             0);
  if (result >= 0)
    result =0;
  return result;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值