Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- signed __int64 __fastcall sub_140948620(__int64 *a1, __int64 a2, int *a3)
- {
- __int64 *v3; // rax
- int v4; // edi
- __int64 *v5; // r15
- __int64 v6; // rcx
- __int64 *v7; // rax
- int *v8; // rbx
- __int64 v9; // rsi
- __int64 v10; // rax
- ID3D11SamplerState **v11; // r14
- int v12; // ecx
- __int64 v13; // r8
- signed int v14; // eax
- __int64 v15; // rax
- unsigned int v16; // edx
- __m128i v17; // xmm0
- signed int v18; // eax
- __int64 v19; // rax
- ID3D11Device *v20; // rcx
- signed __int64 result; // rax
- int v22; // ecx
- __int64 v23; // [rsp+30h] [rbp-39h]
- signed int v24; // [rsp+40h] [rbp-29h]
- signed int v25; // [rsp+44h] [rbp-25h]
- ID3D11SamplerState **v26; // [rsp+48h] [rbp-21h]
- D3D11_SAMPLER_DESC v27; // [rsp+58h] [rbp-11h]
- v3 = (__int64 *)a1[9];
- v4 = 0;
- v5 = a1;
- v6 = *v3;
- v7 = (__int64 *)v3[5];
- v8 = a3;
- v9 = a2;
- v25 = -1;
- v24 = 0;
- if ( v7 )
- {
- v10 = *v7;
- v24 = 1;
- v23 = v10;
- }
- HeapInstance::ReserveMemory((CHeapInstance *)v6, (HeapAlloc_t *)&v26, 8i64, *(_QWORD *)(v6 + 120), 0, (__int64)&v23);
- v11 = v26;
- if ( !v26 )
- return 0i64;
- *v26 = 0i64;
- v12 = *v8;
- v13 = v8[1];
- v27.MipLODBias = 0.0;
- if ( v12 )
- {
- if ( v12 == 1 )
- v4 = dword_140E9F328[v13];
- }
- else
- {
- v4 = dword_140E9F2F0[v13];
- }
- v14 = v8[3];
- if ( !v14 || v8[2] )
- {
- v27.MaxAnisotropy = 1;
- }
- else
- {
- v4 = 85;
- if ( v14 > 4 )
- v14 = 4;
- v27.MaxAnisotropy = dword_140E9F370[v14];
- }
- v27.ComparisonFunc = dword_140E9F458[v8[8]];
- if ( v27.ComparisonFunc != 1 )
- v4 += 128;
- v15 = v8[7];
- if ( (signed int)v15 < 0 )
- {
- *(_QWORD *)v27.BorderColor = 0i64;
- *(_QWORD *)&v27.BorderColor[2] = 0i64;
- goto LABEL_20;
- }
- if ( (signed int)v15 < *((_DWORD *)v5 + 6) )
- {
- v16 = *(_DWORD *)(v5[2] + 4 * v15);
- v17 = _mm_cvtsi32_si128((unsigned __int8)(*(_DWORD *)(v5[2] + 4 * v15) >> 16));
- v18 = (unsigned __int8)(*(_WORD *)(v5[2] + 4 * v15) >> 8);
- v27.BorderColor[0] = COERCE_FLOAT(_mm_cvtepi32_ps(v17)) * 0.0039215689;
- v27.BorderColor[1] = (float)v18 * 0.0039215689;
- v27.BorderColor[2] = (float)(unsigned __int8)v16 * 0.0039215689;
- v27.BorderColor[3] = (float)(v16 >> 24) * 0.0039215689;
- LABEL_20:
- v19 = v8[4];
- v27.MinLOD = 0.0;
- v27.AddressU = dword_140E9F318[v19];
- v27.AddressV = dword_140E9F318[v8[5]];
- v27.AddressW = dword_140E9F318[v8[6]];
- if ( (_DWORD)v13 )
- v27.MaxLOD = 3.4028235e38;
- else
- v27.MaxLOD = 0.0;
- v20 = (ID3D11Device *)*v5;
- v27.Filter = v4;
- if ( v20->lpVtbl->CreateSamplerState(v20, &v27, v11) >= 0 )
- {
- *(_DWORD *)(v9 + 8) = *v8;
- *(_DWORD *)(v9 + 12) = v8[1];
- result = 1i64;
- *(_DWORD *)(v9 + 16) = v8[2];
- *(_DWORD *)(v9 + 20) = v8[3];
- *(_DWORD *)(v9 + 24) = v8[4];
- *(_DWORD *)(v9 + 28) = v8[5];
- *(_DWORD *)(v9 + 32) = v8[6];
- *(_DWORD *)(v9 + 36) = v8[7];
- v22 = v8[8];
- *(_QWORD *)(v9 + 56) = v11;
- *(_DWORD *)(v9 + 40) = v22;
- return result;
- }
- }
- ReleaseComComponent((IUnknown **)v11);
- return 0i64;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement