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

Disassembly:
sub esp, 0x64
mov eax, dword [0x97efc0]
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 0x46f1cf
push ebx
push edi
call fcn.0046b0e0
add esp, 8
jmp 0x46f2da
movups xmm0, xmmword [ebx + 0x58]
sub esp, 0x10
lea esi, [ebx + 0x58]
mov eax, esp
movups xmmword [eax], xmm0
call fcn.0040a460
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
je 0x46f203
mov ecx, dword [eax]
mov eax, dword [edi + ecx*4 + 0x63ee0]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x46f2de
movups xmm0, xmmword [esi]
psrldq xmm0, 0xc
movd eax, xmm0
mov eax, dword [eax]
cmp dword [eax + 0xc], 1
jne 0x46f21f
test eax, eax
jne 0x46f2c8
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x10]
cmp ecx, 2
je 0x46f2c8
xor eax, eax
test ecx, ecx
push 4
push 0
sete al
push esi
push edi
mov dword [esp + 0x2c], eax
call fcn.00476910
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 0x46f29c
mov esi, dword [ecx + 8]
test esi, esi
je 0x46f2a1
inc edx
add ecx, eax
jmp 0x46f290
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.0046d8f0
add esp, 0x20
jmp 0x46f2da
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 0x46f572
mov eax, dword [ebx + 0x18]
cmp eax, 0x9b
jne 0x46f326
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 0x46f33c
imul eax, eax, 0x64
movzx eax, byte [eax + 0x5237e4]
cmp dword [ebx + eax*4 + 0x30], 0
setne al
mov byte [esp + 0x14], al
lea esi, [edi + 0x10]
push 0x20
push esi
call fcn.0047ece0
add esp, 8
test eax, eax
je 0x46f572
push eax
push esi
call fcn.0047fd20
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x46f572
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x18]
cmp eax, 0x9b
jne 0x46f3a2
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 0x46f3b0
imul eax, eax, 0x64
movzx eax, byte [eax + 0x5237e3]
mov eax, dword [ebx + eax*4 + 0x30]
push eax
mov dword [esp + 0x20], eax
call fcn.0045db20
add esp, 4
mov ebp, eax
cmp byte [esp + 0x14], 0
je 0x46f3c7
inc ebp
mov edx, dword [esp + 0x18]
xor esi, esi
mov dword [esp + 0x14], edx
test ebp, ebp
je 0x46f407
lea eax, [ebx + 0x68]
mov dword [esp + 0x14], edx
nop dword [eax]
push 4
push esi
push eax
push edi
call fcn.00476910
add esp, 0x10
mov dword [esp + esi*4 + 0x2c], eax
test eax, eax
je 0x46f572
inc esi
lea eax, [ebx + 0x68]
cmp esi, ebp
jb 0x46f3e0
mov ebp, dword [esp + 0x2c]
jmp 0x46f40b
mov ebp, dword [esp + 0x18]
imul eax, dword [ebx + 0x18], 0x64
push 0x20
movzx eax, byte [eax + 0x5237ec]
mov edx, dword [ebx + eax*4 + 0x30]
push edx
mov dword [esp + 0x28], edx
call fcn.00476650
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 0x46f47a
push edx
push esi
push eax
push edi
call fcn.00476910
add esp, 0x10
mov dword [esp + esi*4 + 0x38], eax
test eax, eax
je 0x46f572
mov edx, dword [esp + 0x20]
inc esi
mov eax, dword [esp + 0x24]
cmp esi, ebx
jb 0x46f455
mov esi, ebx
cmp ebx, 4
lea ebx, [edi + 0x10]
jae 0x46f4a1
push dword [esp + 0x38]
call fcn.0047fff0
push eax
push ebx
call fcn.0047fd20
mov dword [esp + esi*4 + 0x44], eax
add esp, 0xc
inc esi
cmp esi, 4
jl 0x46f484
mov ecx, dword [esp + 0x28]
mov al, 1
shl al, cl
dec al
movzx eax, al
push eax
push ebx
call fcn.0047eac0
mov esi, eax
add esp, 8
test esi, esi
je 0x46f572
cmp dword [esp + 0x1c], 5
push dword [esp + 0x18]
jne 0x46f501
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.0046cf00
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.004eec95
add esp, 0x64
ret
push str.dx.op.textureStore
push ebx
call fcn.00482920
mov edi, eax
add esp, 0xc
test edi, edi
je 0x46f572
push 0x43
push ebx
call fcn.0047ea20
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.0047d020
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.004eec95
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.004eec95
add esp, 0x64
ret