Что делает этот код ?
v1 = sub_67006140("GetDCPenColor");
v15 = v1;
v2 = a1;
v3 = sub_67006140("GetDCBrushColor");
v16 = v3;
v14 = 0;
v4 = a1 + 8 * *(_DWORD *)a1 + 4;
if ( *(_DWORD *)a1 )
{
v5 = a1 + 4;
while ( 1 )
{
switch ( *(_DWORD *)(v5 + 4) )
{
case 0:
v6 = GetObjectA(*(HANDLE *)v5, 24, (LPVOID)(v4 + 4));
*(_DWORD *)v4 = v6;
if ( !v6 )
{
GetLastError();
GetObjectType(*(HGDIOBJ *)v5);
GetObjectA(*(HANDLE *)v5, 0, 0);
}
v4 += 28;
break;
case 1:
hDC = GetDC(0);
if ( !hDC )
GetLastError();
if ( !GetObjectA(*(HANDLE *)v5, 24, &pv) )
GetLastError();
memset((void *)(v4 +
, 0, 0x2Cu);
*(_DWORD *)(v4 +
= 40;
if ( !GetDIBits(hDC, *(HBITMAP *)v5, 0, cLines, 0, (LPBITMAPINFO)(v4 +
, 0) )
GetLastError();
v7 = *(_WORD *)(v4 + 22);
v8 = v4 + 52;
switch ( v7 )
{
case 8:
v8 = v4 + 1072;
break;
case 4:
v8 = v4 + 112;
break;
case 1:
v8 = v4 + 56;
break;
}
v13 = *(_DWORD *)(v4 + 28);
v9 = (void *)(v8 + 8);
if ( (unsigned int)((char *)v9 + v13 - a1) = *(_DWORD *)v2 )
break;
v1 = v15;
v3 = v16;
}
}