Function at 0x46f2f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x64
mov eax, dword [0x97ffc0]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
mov ebx, dword [esp + 0x70]
push ebp
push esi
push edi
cmp dword [ebx + 0x18], 0x3b
mov edi, dword [esp + 0x78]
jne 0x46f31f
push ebx
push edi
call fcn.0046b230
add esp, 8
jmp 0x46f42a
movups xmm0, xmmword [ebx + 0x58]
sub esp, 0x10
lea esi, [ebx + 0x58]
mov eax, esp
movups xmmword [eax], xmm0
call fcn.0040a4f0
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
je 0x46f353
mov ecx, dword [eax]
mov eax, dword [edi + ecx*4 + 0x63ee0]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x46f42e
movups xmm0, xmmword [esi]
psrldq xmm0, 0xc
movd eax, xmm0
mov eax, dword [eax]
cmp dword [eax + 0xc], 1
jne 0x46f36f
test eax, eax
jne 0x46f418
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x10]
cmp ecx, 2
je 0x46f418
xor eax, eax
test ecx, ecx
push 4
push 0
sete al
push esi
push edi
mov dword [esp + 0x2c], eax
call fcn.00476a70
mov edx, dword [edi + 0x63fec]
add esp, 0x10
mov ebp, dword [edi + 0x640fc]
mov esi, dword [edi + 0x63bc8]
shr ebp, 2
shr edx, 2
add ebp, edx
shr esi, 2
add ebp, esi
mov dword [esp + 0x14], eax
cmp dword [edi + 0x24], 6
mov edx, ebp
mov dword [esp + 0x10], ebp
sbb eax, eax
and eax, 0xfffffff8
add eax, 0x18
mov ecx, eax
imul ecx, ebp
mov ebp, dword [esp + 0x1c]
add ecx, dword [edi + 0x64208]
nop dword [eax + eax]
cmp dword [ecx + 4], ebp
jne 0x46f3ec
mov esi, dword [ecx + 8]
test esi, esi
je 0x46f3f1
inc edx
add ecx, eax
jmp 0x46f3e0
cmp dword [esp + 0x18], 0
sete al
sub edx, dword [esp + 0x10]
movzx eax, al
push eax
push dword [esp + 0x18]
push edx
push ebp
push dword [ecx + 0xc]
push esi
push 1
push edi
call fcn.0046da40
add esp, 0x20
jmp 0x46f42a
mov eax, dword [ebx + 0x64]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x64230]
shl ecx, 6
mov eax, dword [ecx + eax]
mov dword [esp + 0x10], eax
mov edx, 0x58
mov ecx, ebx
lea ebp, [ecx + edx]
test eax, eax
je 0x46f6c2
mov eax, dword [ebx + 0x18]
cmp eax, 0x9c
jne 0x46f476
movups xmm0, xmmword [ebp]
xor ecx, ecx
psrldq xmm0, 0xc
movd eax, xmm0
mov eax, dword [eax]
cmp dword [eax + 0xc], 1
cmovne eax, ecx
mov eax, dword [eax + 0x20]
mov eax, dword [eax + 4]
shr eax, 0x15
and eax, 0xffffff01
mov dword [esp + 0x14], eax
jmp 0x46f48c
imul eax, eax, 0x64
movzx eax, byte [eax + 0x52383c]
cmp dword [ebx + eax*4 + 0x30], 0
setne al
mov byte [esp + 0x14], al
lea esi, [edi + 0x10]
push 0x20
push esi
call fcn.0047ee30
add esp, 8
test eax, eax
je 0x46f6c2
push eax
push esi
call fcn.0047fe70
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x46f6c2
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x18]
cmp eax, 0x9c
jne 0x46f4f2
movups xmm0, xmmword [ebp]
xor ecx, ecx
psrldq xmm0, 0xc
movd eax, xmm0
mov eax, dword [eax]
cmp dword [eax + 0xc], 1
cmovne eax, ecx
mov eax, dword [eax + 0x20]
movzx eax, word [eax + 6]
and eax, 0xf
jmp 0x46f500
imul eax, eax, 0x64
movzx eax, byte [eax + 0x52383b]
mov eax, dword [ebx + eax*4 + 0x30]
push eax
mov dword [esp + 0x20], eax
call fcn.0045dc80
add esp, 4
mov ebp, eax
cmp byte [esp + 0x14], 0
je 0x46f517
inc ebp
mov edx, dword [esp + 0x18]
xor esi, esi
mov dword [esp + 0x14], edx
test ebp, ebp
je 0x46f557
lea eax, [ebx + 0x68]
mov dword [esp + 0x14], edx
nop dword [eax]
push 4
push esi
push eax
push edi
call fcn.00476a70
add esp, 0x10
mov dword [esp + esi*4 + 0x2c], eax
test eax, eax
je 0x46f6c2
inc esi
lea eax, [ebx + 0x68]
cmp esi, ebp
jb 0x46f530
mov ebp, dword [esp + 0x2c]
jmp 0x46f55b
mov ebp, dword [esp + 0x18]
imul eax, dword [ebx + 0x18], 0x64
push 0x20
movzx eax, byte [eax + 0x523844]
mov edx, dword [ebx + eax*4 + 0x30]
push edx
mov dword [esp + 0x28], edx
call fcn.004767b0
movups xmm0, xmmword [ebx + 0x88]
mov dword [esp + 0x20], eax
add esp, 8
lea eax, [ebx + 0x88]
xor esi, esi
psrldq xmm0, 0xc
movd ecx, xmm0
mov dword [esp + 0x24], eax
movzx ebx, byte [ecx + 0x10]
mov dword [esp + 0x28], ebx
test ebx, ebx
je 0x46f5ca
push edx
push esi
push eax
push edi
call fcn.00476a70
add esp, 0x10
mov dword [esp + esi*4 + 0x38], eax
test eax, eax
je 0x46f6c2
mov edx, dword [esp + 0x20]
inc esi
mov eax, dword [esp + 0x24]
cmp esi, ebx
jb 0x46f5a5
mov esi, ebx
cmp ebx, 4
lea ebx, [edi + 0x10]
jae 0x46f5f1
push dword [esp + 0x38]
call fcn.00480140
push eax
push ebx
call fcn.0047fe70
mov dword [esp + esi*4 + 0x44], eax
add esp, 0xc
inc esi
cmp esi, 4
jl 0x46f5d4
mov ecx, dword [esp + 0x28]
mov al, 1
shl al, cl
dec al
movzx eax, al
push eax
push ebx
call fcn.0047ec10
mov esi, eax
add esp, 8
test esi, esi
je 0x46f6c2
cmp dword [esp + 0x1c], 5
push dword [esp + 0x18]
jne 0x46f651
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x3c]
push esi
push eax
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x20]
push eax
push edi
call fcn.0046d050
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.004eee65
add esp, 0x64
ret
push str.dx.op.textureStore
push ebx
call fcn.00482a70
mov edi, eax
add esp, 0xc
test edi, edi
je 0x46f6c2
push 0x43
push ebx
call fcn.0047eb70
movups xmm0, xmmword [esp + 0x40]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x50]
push 0xa
push eax
push edi
push ebx
mov dword [esp + 0x68], ebp
movups xmmword [esp + 0x74], xmm0
mov dword [esp + 0x84], esi
call fcn.0047d170
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.004eee65
add esp, 0x64
ret
mov ecx, dword [esp + 0x70]
xor al, al
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004eee65
add esp, 0x64
ret