Advertisement
Guest User

Untitled

a guest
Mar 8th, 2017
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.06 KB | None | 0 0
  1. void __cdecl BGIInit()
  2. {
  3.   struct tagMOD *v0; // edx@1
  4.   struct tagMOD *v1; // edx@2
  5.   int v2; // ecx@3
  6.   char v3; // al@6
  7.   BottomUpInformation *v4; // esi@6
  8.   unsigned int v5; // edi@6
  9.   int v6; // ebx@8
  10.   int v7; // ecx@9
  11.   unsigned __int32 v8; // eax@12
  12.   unsigned __int32 v9; // eax@13
  13.   const char *v10; // ecx@13
  14.   unsigned __int32 v11; // eax@15
  15.   unsigned __int32 v12; // eax@15
  16.   unsigned __int32 v13; // eax@15
  17.   struct tagSYMBOL *v14; // eax@15
  18.   int v15; // esi@15
  19.   int v16; // edi@15
  20.  
  21.   if ( CompileTargetsClr() )
  22.   {
  23.     BGIEnabled = 0;
  24.     v1 = ModListHead;
  25.     if ( ModListHead )
  26.     {
  27.       v2 = *(_DWORD *)(__readfsdword(0x2Cu) + 4 * (_DWORD)_tls_index);
  28.       do
  29.       {
  30.         *(_DWORD *)(v2 + 3224) = *((_DWORD *)v1 + 1);
  31.         *((_DWORD *)v1 + 232) &= 0xFFFFE1FF;
  32.         v1 = *(struct tagMOD **)v1;
  33.       }
  34.       while ( v1 );
  35.     }
  36.   }
  37.   else
  38.   {
  39.     v3 = BGICompat;
  40.     v4 = _tls_index;
  41.     v5 = __readfsdword(0x2Cu);
  42.     if ( BGICompat )
  43.     {
  44.       v0 = ModListHead;
  45.       if ( ModListHead )
  46.       {
  47.         v6 = *(_DWORD *)(v5 + 4 * (_DWORD)_tls_index);
  48.         do
  49.         {
  50.           *(_DWORD *)(v6 + 3224) = *((_DWORD *)v0 + 1);
  51.           v7 = *((_DWORD *)v0 + 232);
  52.           if ( !(v7 & 0x1E00) )
  53.           {
  54.             *((_DWORD *)v0 + 232) = v7 & 0xFFFFE1FF | ((v3 & 0xF | 0x40) << 9);
  55.             v3 = BGICompat;
  56.           }
  57.           v0 = *(struct tagMOD **)v0;
  58.         }
  59.         while ( v0 );
  60.       }
  61.     }
  62.     dword_512FA9DC = 8;
  63.     dword_512FA9E0 = 4;
  64.     dword_512FA990 = 0;
  65.     dword_512FA994 = 0;
  66.     dword_512FA998 = 0;
  67.     dword_512FA99C = 4;
  68.     dword_512FA9A0 = 0;
  69.     dword_512FA9A4 = 0;
  70.     dword_512FA9A8 = 0;
  71.     dword_512FA9AC = 4;
  72.     StringHashInit((struct _tag_StringHashTable *)&dword_512FA9E4, (unsigned __int32)v0);
  73.     v8 = newkey();
  74.     dword_512FA9B0 = (int)newseg(".gids$x", "CONST", v8, 4, 1);
  75.     *(_BYTE *)(dword_512FA9B0 + 75) = 0;
  76.     *(_DWORD *)(dword_512FA9B0 + 67) = dword_512FA9DC;
  77.     if ( GuardFidsReloc )
  78.     {
  79.       v9 = newkey();
  80.       v10 = ".gfids$x";
  81.     }
  82.     else
  83.     {
  84.       v9 = newkey();
  85.       v10 = ".gfids$y";
  86.     }
  87.     BGIFuncSeg = newseg(v10, "CONST", v9, 4, 1);
  88.     *((_BYTE *)BGIFuncSeg + 75) = 0;
  89.     *(_DWORD *)((char *)BGIFuncSeg + 67) = dword_512FA9E0;
  90.     v11 = newkey();
  91.     BGIAddrTakenIatSeg = newseg(".giats$y", "CONST", v11, 4, 1);
  92.     *((_BYTE *)BGIAddrTakenIatSeg + 75) = 0;
  93.     *(_DWORD *)((char *)BGIAddrTakenIatSeg + 67) = dword_512FA9E0;
  94.     v12 = newkey();
  95.     BGISetJmpSeg = newseg(".gljmp$y", "CONST", v12, 4, 1);
  96.     *((_BYTE *)BGISetJmpSeg + 75) = 0;
  97.     *(_DWORD *)((char *)BGISetJmpSeg + 67) = 4;
  98.     v13 = newkey();
  99.     v14 = newseg(".gpad$x", "CONST", v13, 4, 1);
  100.     v15 = *(_DWORD *)(v5 + 4 * (_DWORD)v4);
  101.     dword_512FA9C0 = (int)v14;
  102.     *((_BYTE *)v14 + 75) = 0;
  103.     *(_DWORD *)(dword_512FA9C0 + 67) = 4;
  104.     v16 = *(_DWORD *)(v15 + 3220);
  105.     if ( !v16 )
  106.       *(_DWORD *)(v15 + 3220) = ModListHead;
  107.     CreateBitmapReferences();
  108.     *(_DWORD *)(v15 + 3220) = v16;
  109.     dword_512FA9EC = 1;
  110.   }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement