SepLogTokenSidManagement
void __fastcall SepLogTokenSidManagement(int a1, __int64 a2, __int64 a3, __int64 a4, __int64 a5){
unsigned int v7;
__int64 v8;
__int64 v9;
__int64 v10;
_DWORD *v11;
__int64 v12;
int v13;
__int64 v14;
char *v15;
char *v16;
int v17;
char *v18;
int v19;
__int64 v20;
int v21;
unsigned int v22;
PVOID SidValuesDump;
__int64 v24;
__int64 v25;
unsigned int v26;
int v27;
__int64 v28;
unsigned int v29;
void *v30;
PVOID v31;
unsigned int v32;
__int64 v33;
unsigned int a2a;
int v35;
int v36;
int v37;
int v38;
unsigned int v39;
int v40;
int v41;
__int64 v42;
__int64 v43;
__int64 v44;
__int64 v45;
EVENT_DATA_DESCRIPTOR UserData;
char *v47;
int v48;
int v49;
char *v50;
int v51;
int v52;
char *v53;
int v54;
int v55;
__int64 *v56;
__int64 v57;
__int64 *v58;
__int64 v59;
int *v60;
__int64 v61;
int *v62;
__int64 v63;
int *v64;
__int64 v65;
__int64 *v66;
__int64 v67;
int *v68;
__int64 v69;
PVOID v70;
int v71;
int v72;
v7 = a1;
a2a = 0;
v38 = 0;
v39 = 0;
if( EtwKernelProvRegHandle && SepTokenSidManagementLoggingEnabled )
{
if( a4 )
{
v42 = RtlConvertLuidToUlonglong(a4 + 16, a2, a5);
v43 = RtlConvertLuidToUlonglong(v8 + 24, v9, v10);
v35 = v11[48];
v36 = v11[49];
v37 = v11[50];
}
else
{
v42 = 0i64;
v43 = 0i64;
v35 = 0;
v36 = 0;
v37 = 0;
}
UserData.Ptr = (unsigned __int64)SepGetSidManagementActionName(v7, &a2a);
v13 = 2;
UserData.Size = a2a;
UserData.Reserved = 0;
v14 = *(_QWORD *)(*((_QWORD *)KeGetCurrentThread() + 23) + 1472i64);
v15 = byte_140CF9D90;
if( v14 && *(_WORD *)v14 )
{
v16 = *(char **)(v14 + 8);
v17 = *(unsigned __int16 *)(v14 + 2);
}
else
{
v16 = byte_140CF9D90;
v17 = 2;
}
v47 = v16;
v48 = v17;
v49 = 0;
if( v12 && *(_WORD *)(v12 + 56) )
{
v18 = *(char **)(v12 + 64);
v19 = *(unsigned __int16 *)(v12 + 58);
}
else
{
v18 = byte_140CF9D90;
v19 = 2;
}
v50 = v18;
v51 = v19;
v52 = 0;
if( v12 && *(_WORD *)(v12 + 72) )
{
v15 = *(char **)(v12 + 80);
v13 = *(unsigned __int16 *)(v12 + 74);
}
v53 = v15;
v56 = &v42;
v58 = &v43;
v60 = &v35;
v62 = &v36;
v64 = &v37;
v54 = v13;
v55 = 0;
v57 = 8i64;
v59 = 8i64;
v61 = 4i64;
v63 = 4i64;
v65 = 4i64;
if( a2 )
v20 = *(_QWORD *)(a2 + 8);
else
v20 = 0i64;
v44 = v20;
v66 = &v44;
v67 = 8i64;
if( a2 )
v21 = *(_DWORD *)(a2 + 16);
else
v21 = 0;
v40 = v21;
v68 = &v40;
v22 = 11;
v69 = 4i64;
SidValuesDump = 0i64;
if( a2 && v21 )
{
SidValuesDump = SepGetSidValuesDump((_DWORD *)a2, &v38);
v71 = v38;
v22 = 12;
v70 = SidValuesDump;
v72 = 0;
}
if( a3 )
v24 = *(_QWORD *)(a3 + 8);
else
v24 = 0i64;
v45 = v24;
v25 = v22;
v26 = v22 + 1;
v25 *= 2i64;
*(&UserData.Ptr + v25) = (unsigned __int64)&v45;
*((_QWORD *)&UserData.Size + v25) = 8i64;
if( !a3 || a2 == a3 )
v27 = 0;
else
v27 = *(_DWORD *)(a3 + 16);
v28 = 2i64 * v26;
v41 = v27;
v29 = v26 + 1;
v30 = 0i64;
*(&UserData.Ptr + v28) = (unsigned __int64)&v41;
*((_QWORD *)&UserData.Size + v28) = 4i64;
if( a3 && v27 )
{
v31 = SepGetSidValuesDump((_DWORD *)a3, &v39);
v32 = v39;
v30 = v31;
v33 = 2i64 * v29++;
*(&UserData.Ptr + v33) = (unsigned __int64)v31;
*(&UserData.Size + 2 * v33) = v32;
*(&UserData.Reserved + 2 * v33) = 0;
}
EtwWrite(EtwKernelProvRegHandle, (EVENT_DESCRIPTOR *)&TokenSidManagementLog, 0i64, v29, &UserData);
if( SidValuesDump )
ExFreePoolWithTag(SidValuesDump, 0);
if( v30 )
ExFreePoolWithTag(v30, 0);
}
}Referenced by:
SepDereferenceSidValuesBlock
SepSetTokenUserAndGroups