Function at 0x46f280
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 0x46f2af
push ebx
push edi
call fcn.0046b1c0
add esp, 8
jmp 0x46f3ba
movups xmm0, xmmword [ebx + 0x58]
sub esp, 0x10
lea esi, [ebx + 0x58]
mov eax, esp
movups xmmword [eax], xmm0
call fcn.0040a480
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
je 0x46f2e3
mov ecx, dword [eax]
mov eax, dword [edi + ecx*4 + 0x63ee0]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x46f3be
movups xmm0, xmmword [esi]
psrldq xmm0, 0xc
movd eax, xmm0
mov eax, dword [eax]
cmp dword [eax + 0xc], 1
jne 0x46f2ff
test eax, eax
jne 0x46f3a8
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x10]
cmp ecx, 2
je 0x46f3a8
xor eax, eax
test ecx, ecx
push 4
push 0
sete al
push esi
push edi
mov dword [esp + 0x2c], eax
call fcn.004769f0
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 0x46f37c
mov esi, dword [ecx + 8]
test esi, esi
je 0x46f381
inc edx
add ecx, eax
jmp 0x46f370
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.0046d9d0
add esp, 0x20
jmp 0x46f3ba
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 0x46f652
mov eax, dword [ebx + 0x18]
cmp eax, 0x9c
jne 0x46f406
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 0x46f41c
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.0047edb0
add esp, 8
test eax, eax
je 0x46f652
push eax
push esi
call fcn.0047fdf0
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x46f652
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x18]
cmp eax, 0x9c
jne 0x46f482
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 0x46f490
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.0045dc00
add esp, 4
mov ebp, eax
cmp byte [esp + 0x14], 0
je 0x46f4a7
inc ebp
mov edx, dword [esp + 0x18]
xor esi, esi
mov dword [esp + 0x14], edx
test ebp, ebp
je 0x46f4e7
lea eax, [ebx + 0x68]
mov dword [esp + 0x14], edx
nop dword [eax]
push 4
push esi
push eax
push edi
call fcn.004769f0
add esp, 0x10
mov dword [esp + esi*4 + 0x2c], eax
test eax, eax
je 0x46f652
inc esi
lea eax, [ebx + 0x68]
cmp esi, ebp
jb 0x46f4c0
mov ebp, dword [esp + 0x2c]
jmp 0x46f4eb
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.00476730
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 0x46f55a
push edx
push esi
push eax
push edi
call fcn.004769f0
add esp, 0x10
mov dword [esp + esi*4 + 0x38], eax
test eax, eax
je 0x46f652
mov edx, dword [esp + 0x20]
inc esi
mov eax, dword [esp + 0x24]
cmp esi, ebx
jb 0x46f535
mov esi, ebx
cmp ebx, 4
lea ebx, [edi + 0x10]
jae 0x46f581
push dword [esp + 0x38]
call fcn.004800c0
push eax
push ebx
call fcn.0047fdf0
mov dword [esp + esi*4 + 0x44], eax
add esp, 0xc
inc esi
cmp esi, 4
jl 0x46f564
mov ecx, dword [esp + 0x28]
mov al, 1
shl al, cl
dec al
movzx eax, al
push eax
push ebx
call fcn.0047eb90
mov esi, eax
add esp, 8
test esi, esi
je 0x46f652
cmp dword [esp + 0x1c], 5
push dword [esp + 0x18]
jne 0x46f5e1
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.0046cfe0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.004eee05
add esp, 0x64
ret
push str.dx.op.textureStore
push ebx
call fcn.004829f0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x46f652
push 0x43
push ebx
call fcn.0047eaf0
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.0047d0f0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.004eee05
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.004eee05
add esp, 0x64
ret