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)
{
structWindows::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)
{
structWindows::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)
{
structWindows::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)
{
structWindows::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)
{
structWindows::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;
}