AslpFileGetHeaderAttributesPE
__int64 __fastcall AslpFileGetHeaderAttributesPE(__int64 a1, __int64 a2){
int v4;
unsigned int v5;
int NtHeaderAttributes;
int v7;
int v8;
int v9;
int v10;
int v11;
int v12;
int v13;
int v14;
int v15;
int v16;
int v17;
int v19;
__int16 v20[2];
unsigned int v21;
unsigned int v22;
unsigned int v23;
int v24[4];
unsigned __int16 v25;
unsigned __int16 v26;
v25 = 0;
v26 = 0;
v20[0] = 0;
v21 = 0;
v22 = 0;
v23 = 0;
v24[0] = 0;
v4 = AslFileMappingEnsure(a2);
v5 = v4;
if( v4 >= 0 )
{
if( *(_DWORD *)(a2 + 64) == 6 )
{
*(_DWORD *)(a1 + 664) |= 2u;
*(_DWORD *)(a1 + 696) |= 2u;
NtHeaderAttributes = AslpFileGetNtHeaderAttributes(&v21, &v22, &v23, v24, &v25, &v26, v20, a2);
v7 = *(_DWORD *)(a1 + 600);
v8 = *(_DWORD *)(a1 + 632);
v9 = *(_DWORD *)(a1 + 728);
v10 = *(_DWORD *)(a1 + 56);
v11 = *(_DWORD *)(a1 + 952);
if( NtHeaderAttributes < 0 )
{
v13 = v7 | 2;
v14 = v8 | 2;
v15 = v9 | 2;
v16 = v10 | 2;
v17 = v11 | 2;
v12 = 2;
}
else
{
*(_QWORD *)(a1 + 592) = v21;
*(_QWORD *)(a1 + 624) = v22;
v12 = 1;
*(_QWORD *)(a1 + 720) = v23;
v13 = v7 | 1;
v14 = v8 | 1;
*(_QWORD *)(a1 + 48) = (unsigned int)v24[0];
v15 = v9 | 1;
v16 = v10 | 1;
*(_QWORD *)(a1 + 944) = v25;
v17 = v11 | 1;
*(_QWORD *)(a1 + 976) = v26;
*(_QWORD *)(a1 + 1008) = (unsigned __int16)v20[0];
*(_DWORD *)(a1 + 576) = 2;
*(_QWORD *)(a1 + 584) = 4i64;
*(_DWORD *)(a1 + 608) = 2;
*(_QWORD *)(a1 + 616) = 4i64;
*(_DWORD *)(a1 + 704) = 2;
*(_QWORD *)(a1 + 712) = 4i64;
*(_DWORD *)(a1 + 32) = 2;
*(_QWORD *)(a1 + 40) = 4i64;
*(_DWORD *)(a1 + 928) = 1;
*(_QWORD *)(a1 + 936) = 2i64;
*(_DWORD *)(a1 + 960) = 1;
*(_QWORD *)(a1 + 968) = 2i64;
*(_DWORD *)(a1 + 992) = 1;
*(_QWORD *)(a1 + 1000) = 2i64;
}
*(_DWORD *)(a1 + 984) |= v12;
*(_DWORD *)(a1 + 1016) |= v12;
*(_DWORD *)(a1 + 600) = v13;
*(_DWORD *)(a1 + 952) = v17;
*(_DWORD *)(a1 + 56) = v16;
*(_DWORD *)(a1 + 728) = v15;
*(_DWORD *)(a1 + 632) = v14;
}
else
{
*(_DWORD *)(a1 + 600) |= 2u;
*(_DWORD *)(a1 + 632) |= 2u;
*(_DWORD *)(a1 + 728) |= 2u;
*(_DWORD *)(a1 + 56) |= 2u;
*(_DWORD *)(a1 + 1016) |= 2u;
*(_DWORD *)(a1 + 952) |= 2u;
*(_DWORD *)(a1 + 984) |= 2u;
}
return 0;
}
else
{
v19 = v4;
AslLogCallPrintf(1ui64, "AslpFileGetHeaderAttributesPE", 0x9AAui64, "AslFileMappingEnsure failed [%x]", v19);
}
return v5;
}Referenced by:
AslFileAllocAndGetAttributes