Advertisement
expired6978

ApplyMasksToTarget

Jun 12th, 2014
363
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.53 KB | None | 0 0
  1. char __cdecl ApplyMasksToRenderTarget(int a1, int a2)
  2. {
  3.   int v2; // eax@1
  4.   char *v4; // eax@3
  5.   int v5; // esi@5
  6.   int v6; // edi@5
  7.   int v7; // ebp@5
  8.   void *v8; // ST10_4@5
  9.   signed int v9; // eax@5
  10.   int v10; // ebp@6
  11.   int v11; // edi@7
  12.   int v12; // edx@7
  13.   unsigned int v13; // eax@10
  14.   float v14; // ST28_4@10
  15.   float v15; // ST28_4@10
  16.   float v16; // ST28_4@10
  17.   int v17; // edi@14
  18.   unsigned int v18; // edi@17
  19.   void *v19; // ebp@18
  20.   int v20; // esi@18
  21.   void *v21; // ebp@20
  22.   int v22; // edi@20
  23.   unsigned int v23; // esi@20
  24.   signed int v24; // edi@22
  25.   int v25; // esi@22
  26.   char result; // al@24
  27.   int v27; // [sp+0h] [bp-1A0h]@10
  28.   __int64 v28; // [sp+4h] [bp-19Ch]@10
  29.   int v29; // [sp+Ch] [bp-194h]@10
  30.   int v30; // [sp+24h] [bp-17Ch]@7
  31.   int v31; // [sp+28h] [bp-178h]@2
  32.   unsigned int v32; // [sp+2Ch] [bp-174h]@5
  33.   float v33; // [sp+30h] [bp-170h]@1
  34.   char v34; // [sp+34h] [bp-16Ch]@5
  35.   void *Memory; // [sp+70h] [bp-130h]@5
  36.   void *v36; // [sp+78h] [bp-128h]@5
  37.   int v37; // [sp+7Ch] [bp-124h]@5
  38.   char v38[2]; // [sp+A0h] [bp-100h]@6
  39.   char v39; // [sp+A2h] [bp-FEh]@3
  40.   void *v40; // [sp+1A0h] [bp+0h]@22
  41.  
  42.   LODWORD(_QCX) = *((_DWORD *)dword_1BA8280 + 2);
  43.   v2 = *(_DWORD *)(_QCX + 372);
  44.   _QCX = (unsigned int)_QCX;
  45.   v33 = 1.0 / 255.0;
  46.   if ( v2 && (v31 = v2 - 84, v2 != 84) )
  47.   {
  48.     LODWORD(_QCX) = 15;
  49.     v4 = &v39;
  50.     do
  51.     {
  52.       *(v4 - 2) = BYTE4(_QCX);
  53.       *(v4 - 1) = BYTE4(_QCX);
  54.       *v4 = BYTE4(_QCX);
  55.       *(_DWORD *)(v4 + 2) = HIDWORD(_QCX);
  56.       *(_DWORD *)(v4 + 6) = HIDWORD(_QCX);
  57.       *(_DWORD *)(v4 + 10) = HIDWORD(_QCX);
  58.       v4 += 16;
  59.       LODWORD(_QCX) = _QCX - 1;
  60.     }
  61.     while ( (_DWORD)_QCX >= 0 );
  62.     v5 = 0;
  63.     sub_C9BCD0(&v34);
  64.     v6 = *(_DWORD *)(*MK_FP(__FS__, 44) + 4 * TlsIndex);
  65.     v7 = *(_DWORD *)(v6 + 1196);
  66.     v8 = Memory;
  67.     *(_DWORD *)(v6 + 1196) = 33;
  68.     Heap__Free(v8, SBYTE4(_QCX));
  69.     Heap__Free(v36, SBYTE4(_QCX));
  70.     LODWORD(_QCX) = 0;
  71.     v9 = 256;
  72.     __asm { seto    cl }
  73.     v36 = (void *)Heap__Allocate(v9 | -(_DWORD)_QCX, SHIDWORD(_QCX), 0);
  74.     *(_DWORD *)(v6 + 1196) = v7;
  75.     v37 = 16;
  76.     v32 = 0;
  77.     if ( *(_DWORD *)(a1 + 8) > 0u )
  78.     {
  79.       v10 = (int)v38;
  80.       do
  81.       {
  82.         v12 = *(_DWORD *)a1;
  83.         v30 = HIDWORD(_QCX);
  84.         v11 = *(_DWORD *)(v12 + 4 * v32);
  85.         sub_CABFB0((void *)(v31 + 84), v5 + 1, v10, 0);
  86.         if ( v11 )
  87.         {
  88.           if ( *(float *)(v11 + 8) > 0.0 )
  89.           {
  90.             sub_B02C80(*(const char **)(*(_DWORD *)v11 + 4), (int)&v30, 1, 0, 3, 0);
  91.             if ( v30 )
  92.             {
  93.               sub_CABBE0(v10, v30);
  94.               v13 = *(_DWORD *)(v11 + 4);
  95.               v29 = *(_DWORD *)(v11 + 8);
  96.               v14 = (double)(unsigned __int8)(v13 >> 16) * v33;
  97.               *((float *)&v28 + 1) = v14;
  98.               v15 = (double)BYTE1(v13) * v33;
  99.               *(float *)&v28 = v15;
  100.               v16 = v33 * (double)(unsigned __int8)v13;
  101.               *(float *)&v27 = v16;
  102.             }
  103.             else
  104.             {
  105.               sub_CABBE0(v10, dword_1BA76D4);
  106.               v29 = 0;
  107.               v28 = 0i64;
  108.               v27 = 0;
  109.             }
  110.             sub_C9BB30((int)&v34, v5, v27, v28, SHIDWORD(v28), v29);
  111.             v10 += 16;
  112.             ++v5;
  113.           }
  114.         }
  115.         if ( v30 )
  116.         {
  117.           v17 = v30;
  118.           if ( !InterlockedDecrement((volatile LONG *)(v30 + 4)) )
  119.             (*(void (__thiscall **)(int))(*(_DWORD *)v17 + 4))(v17);
  120.         }
  121.         HIDWORD(_QCX) = 0;
  122.         ++v32;
  123.       }
  124.       while ( v32 < *(_DWORD *)(a1 + 8) );
  125.     }
  126.     v18 = v5;
  127.     if ( (unsigned int)v5 < 0x10 )
  128.     {
  129.       v19 = (void *)(v31 + 84);
  130.       v20 = (int)&v38[16 * v5];
  131.       do
  132.       {
  133.         sub_CABBE0(v20, dword_1BA76D4);
  134.         sub_C9BB30((int)&v34, v18++, SHIDWORD(_QCX), SHIDWORD(_QCX), SHIDWORD(_QCX), SHIDWORD(_QCX));
  135.         sub_CABFB0(v19, v18, v20, SHIDWORD(_QCX));
  136.         v20 += 16;
  137.       }
  138.       while ( v18 < 0x10 );
  139.     }
  140.     sub_C7C650((int)dword_1BA8280, 93, (int)g_NiDX9Renderer, *(_DWORD *)a2, (int)&v34, 1);
  141.     v23 = 0;
  142.     v21 = (void *)(v31 + 84);
  143.     v22 = (int)v38;
  144.     do
  145.     {
  146.       sub_CABCA0(v22);
  147.       ++v23;
  148.       sub_CABFB0(v21, v23, SHIDWORD(_QCX), SHIDWORD(_QCX));
  149.       v22 += 16;
  150.     }
  151.     while ( v23 < 0x10 );
  152.     sub_C9BC60(&v34);
  153.     v25 = (int)&v40;
  154.     v24 = 15;
  155.     do
  156.     {
  157.       v25 -= 16;
  158.       sub_CABDB0(v25);
  159.       --v24;
  160.     }
  161.     while ( v24 >= 0 );
  162.     result = 1;
  163.   }
  164.   else
  165.   {
  166.     result = 0;
  167.   }
  168.   return result;
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement