Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __cdecl BGIInit()
- {
- struct tagMOD *v0; // edx@1
- struct tagMOD *v1; // edx@2
- int v2; // ecx@3
- char v3; // al@6
- BottomUpInformation *v4; // esi@6
- unsigned int v5; // edi@6
- int v6; // ebx@8
- int v7; // ecx@9
- unsigned __int32 v8; // eax@12
- unsigned __int32 v9; // eax@13
- const char *v10; // ecx@13
- unsigned __int32 v11; // eax@15
- unsigned __int32 v12; // eax@15
- unsigned __int32 v13; // eax@15
- struct tagSYMBOL *v14; // eax@15
- int v15; // esi@15
- int v16; // edi@15
- if ( CompileTargetsClr() )
- {
- BGIEnabled = 0;
- v1 = ModListHead;
- if ( ModListHead )
- {
- v2 = *(_DWORD *)(__readfsdword(0x2Cu) + 4 * (_DWORD)_tls_index);
- do
- {
- *(_DWORD *)(v2 + 3224) = *((_DWORD *)v1 + 1);
- *((_DWORD *)v1 + 232) &= 0xFFFFE1FF;
- v1 = *(struct tagMOD **)v1;
- }
- while ( v1 );
- }
- }
- else
- {
- v3 = BGICompat;
- v4 = _tls_index;
- v5 = __readfsdword(0x2Cu);
- if ( BGICompat )
- {
- v0 = ModListHead;
- if ( ModListHead )
- {
- v6 = *(_DWORD *)(v5 + 4 * (_DWORD)_tls_index);
- do
- {
- *(_DWORD *)(v6 + 3224) = *((_DWORD *)v0 + 1);
- v7 = *((_DWORD *)v0 + 232);
- if ( !(v7 & 0x1E00) )
- {
- *((_DWORD *)v0 + 232) = v7 & 0xFFFFE1FF | ((v3 & 0xF | 0x40) << 9);
- v3 = BGICompat;
- }
- v0 = *(struct tagMOD **)v0;
- }
- while ( v0 );
- }
- }
- dword_512FA9DC = 8;
- dword_512FA9E0 = 4;
- dword_512FA990 = 0;
- dword_512FA994 = 0;
- dword_512FA998 = 0;
- dword_512FA99C = 4;
- dword_512FA9A0 = 0;
- dword_512FA9A4 = 0;
- dword_512FA9A8 = 0;
- dword_512FA9AC = 4;
- StringHashInit((struct _tag_StringHashTable *)&dword_512FA9E4, (unsigned __int32)v0);
- v8 = newkey();
- dword_512FA9B0 = (int)newseg(".gids$x", "CONST", v8, 4, 1);
- *(_BYTE *)(dword_512FA9B0 + 75) = 0;
- *(_DWORD *)(dword_512FA9B0 + 67) = dword_512FA9DC;
- if ( GuardFidsReloc )
- {
- v9 = newkey();
- v10 = ".gfids$x";
- }
- else
- {
- v9 = newkey();
- v10 = ".gfids$y";
- }
- BGIFuncSeg = newseg(v10, "CONST", v9, 4, 1);
- *((_BYTE *)BGIFuncSeg + 75) = 0;
- *(_DWORD *)((char *)BGIFuncSeg + 67) = dword_512FA9E0;
- v11 = newkey();
- BGIAddrTakenIatSeg = newseg(".giats$y", "CONST", v11, 4, 1);
- *((_BYTE *)BGIAddrTakenIatSeg + 75) = 0;
- *(_DWORD *)((char *)BGIAddrTakenIatSeg + 67) = dword_512FA9E0;
- v12 = newkey();
- BGISetJmpSeg = newseg(".gljmp$y", "CONST", v12, 4, 1);
- *((_BYTE *)BGISetJmpSeg + 75) = 0;
- *(_DWORD *)((char *)BGISetJmpSeg + 67) = 4;
- v13 = newkey();
- v14 = newseg(".gpad$x", "CONST", v13, 4, 1);
- v15 = *(_DWORD *)(v5 + 4 * (_DWORD)v4);
- dword_512FA9C0 = (int)v14;
- *((_BYTE *)v14 + 75) = 0;
- *(_DWORD *)(dword_512FA9C0 + 67) = 4;
- v16 = *(_DWORD *)(v15 + 3220);
- if ( !v16 )
- *(_DWORD *)(v15 + 3220) = ModListHead;
- CreateBitmapReferences();
- *(_DWORD *)(v15 + 3220) = v16;
- dword_512FA9EC = 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement