PopCopyWakeSource
VOID __fastcall PopCopyWakeSource(INT64 a1, INT64 a2, INT64 a3){
int v3;
__int64 v4;
__int64 v5;
__int64 v6;
unsigned int v7;
int v8;
int v9;
UINT8 *v10;
UINT64 v11;
UINT8 *v12;
v3 = PopWakeSourceSize(a3);
*(_DWORD *)(v4 + 4) = v3;
v7 = *(_DWORD *)(v6 + 16);
if( !v7 )
{
*(_DWORD *)v4 = 0;
v12 = (UINT8 *)(v4 + 10);
*(_WORD *)(v4 + 8) = *(_WORD *)(v5 + 24);
v11 = *(unsigned __int16 *)(v5 + 24);
v10 = *(UINT8 **)(v5 + 32);
LABEL_17:
memmove(v12, v10, v11);
return;
}
if( v7 == 1 )
{
*(_DWORD *)v4 = 1;
if( *(_DWORD *)(v5 + 24) != 1 )
{
if( *(_DWORD *)(v5 + 24) != 2 )
return;
goto LABEL_14;
}
LABEL_15:
*(_DWORD *)(v4 + 8) = 0;
return;
}
if( v7 <= 3 )
{
*(_DWORD *)v4 = (v7 != 2) + 2;
v10 = *(UINT8 **)(v5 + 24);
if( !v10 )
{
*(_QWORD *)(v4 + 8) = 0i64;
return;
}
v11 = *(_QWORD *)v10;
v12 = (UINT8 *)(v4 + 8);
goto LABEL_17;
}
if( v7 != 4 )
return;
*(_DWORD *)v4 = 4;
v8 = *(_DWORD *)(v5 + 24);
if( !v8 )
goto LABEL_15;
v9 = v8 - 1;
if( !v9 )
{
LABEL_14:
*(_DWORD *)(v4 + 8) = 1;
return;
}
if( v9 == 1 )
*(_DWORD *)(v4 + 8) = 2;
}Referenced by:
PopGetWakeSource