IopSymlinkInitializeSymlinkInfo
VOID __fastcall IopSymlinkInitializeSymlinkInfo(
INT64 a1,
INT16 a2,
const VOID *a3,
UINT16 a4,
INT16 a5,
VOID *Src,
UINT16 a7,
INT16 a8,
INT16 a9,
INT64 a10){
UINT64 v11;
UINT16 v12;
INT64 v14;
unsigned __int64 v15;
v11 = a4;
v12 = 0;
*(_WORD *)(a1 + 4) = a8;
v14 = a1 + 32;
*(_WORD *)a1 = a5;
*(_WORD *)(a1 + 18) = a2 - 32;
*(_WORD *)(a1 + 2) = a9;
*(_QWORD *)(a1 + 8) = a10;
*(_WORD *)(a1 + 6) = 0;
*(_WORD *)(a1 + 16) = 0;
*(_QWORD *)(a1 + 24) = a1 + 32;
if( Src )
{
memmove((UINT8 *)(a1 + 32), (UINT8 *)Src, a7);
v14 = *(_QWORD *)(a1 + 24);
v15 = (unsigned __int64)a7 >> 1;
v12 = a7;
*(_WORD *)(a1 + 16) = a7;
if( *(_WORD *)(v14 + 2 * v15 - 2) != 92 )
{
*(_WORD *)(v14 + 2 * v15) = 92;
*(_WORD *)(a1 + 16) += 2;
v12 = *(_WORD *)(a1 + 16);
v14 = *(_QWORD *)(a1 + 24);
}
}
memmove((UINT8 *)(v14 + v12), (UINT8 *)a3, v11);
*(_WORD *)(a1 + 16) += v11;
}Referenced by:
IopGraftName
IopSymlinkCreateECP
IopSymlinkPropagateToExtensionIfNeeded
IopSymlinkRememberJunction
IopSymlinkUpdateECP