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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1b4
mov ecx, dword [0x9d2c30]
movss xmm0, dword [0x6fa6a8]
imul ecx, ecx, 0x4d0
mov edx, dword [ebp + 8]
push ebx
fld dword [ecx + 0x9ce3f0]
push esi
fstp dword [esp + 0x24]
push edi
fld dword [esp + 0x28]
movss dword [esp + 0x5c], xmm0
fsubr qword [0x6fa6a0]
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcompi st(1)
fstp st(0)
jb 0x4ff288
movss xmm0, dword [esp + 0x28]
jmp 0x4ff290
movss xmm0, dword [0x6fa698]
fld dword [ebp + 0xc]
mov eax, dword [0xa35ff0]
mov ecx, dword [ecx + 0x9ce3f4]
fmul st(0), st(0)
movss dword [esp + 0x28], xmm0
mov dword [esp + 0x80], eax
fmul dword [esp + 0x28]
mov eax, ecx
mov esi, 1
sub eax, esi
fstp dword [esp + 0x40]
je 0x4ff2d2
sub eax, esi
je 0x4ff2d2
sub eax, esi
je 0x4ff2d2
movss xmm0, dword [0x6cc5ec]
jmp 0x4ff2da
movss xmm0, dword [0x6b8770]
xor edi, edi
cmp ecx, edi
movss dword [esp + 0x24], xmm0
mov dword [esp + 0x64], esi
mov dword [esp + 0x58], edi
je 0x4ff317
fld dword [ebp + 0x10]
mov dword [esp + 0x64], edi
fmul qword [0x6f9bb8]
mov dword [esp + 0x58], esi
fstp dword [ebp + 0x10]
fld dword [esp + 0x40]
fdiv qword [0x6f9ca8]
fstp dword [esp + 0x40]
fld dword [ebp + 0x10]
fstp dword [esp + 0x5c]
fld dword [esp + 0x24]
mov dword [edx + 0x30], edi
fld st(0)
mov eax, dword [0x9d2c30]
fmul st(0), st(0)
imul eax, eax, 0x4d0
fld1
fld st(0)
fdivrp st(2)
lea ecx, [eax + 0x9ce230]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 0x9cdfe0]
mov dword [esp + 0x94], ecx
mov ecx, dword [eax + 0x9cdfe4]
mov dword [esp + 0x98], ecx
mov ecx, dword [eax + 0x9cdfe8]
mov dword [esp + 0x9c], ecx
movss xmm0, dword [str.fff_transitionIn]
shufps xmm0, xmm0, 0
mov dword [esp + 0x28], edi
fxch st(1)
fstp dword [esp + 0x18]
fld dword [eax + 0x9ce3f0]
fld dword [esp + 0x18]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x18]
movss xmm1, dword [esp + 0x18]
fstp dword [esp + 0x18]
fdivrp st(1)
shufps xmm1, xmm1, 0
mulps xmm0, xmm1
movaps xmmword [esp + 0xb0], xmm1
movss xmm1, dword [esp + 0x18]
shufps xmm1, xmm1, 0
mulps xmm0, xmm1
movaps xmmword [esp + 0x100], xmm0
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fmul qword [0x6fa690]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
mov eax, dword [edx + 0x1c]
cmp eax, edi
mov edx, dword [edx + 0x20]
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], edx
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0xe0], xmm0
xorps xmm0, xmm0
movaps xmmword [esp + 0xa0], xmm0
jbe 0x4ffadf
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x8c], eax
mov eax, dword [eax]
cmp eax, edi
je 0x4ffab3
mov eax, dword [eax]
cmp eax, edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x18], edi
jbe 0x4ffab3
mov dword [esp + 0x50], edi
mov edi, edi
mov edx, dword [esp + 0x8c]
mov eax, dword [edx]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
lea ebx, [ecx + eax + 4]
mov eax, dword [ebx]
movzx esi, word [eax + 0x34]
lea ecx, [esi - 1]
cmp edx, ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x6c], esi
jbe 0x4ff484
mov dword [esp + 0x78], ecx
jmp 0x4ff48a
mov ecx, edx
mov dword [esp + 0x78], edx
mov edx, 1
shl edx, cl
cmp esi, 1
mov dword [esp + 0x90], edx
jne 0x4ff4a3
mov dword [esp + 0x30], esi
jmp 0x4ff4ae
mov edx, dword [esp + 0x80]
mov dword [esp + 0x30], edx
test byte [eax + 8], 0x80
je 0x4ff4bc
movss xmm0, dword [esp + 0x5c]
jmp 0x4ff4c1
movss xmm0, dword [ebp + 0x10]
mov ecx, dword [eax]
mov esi, dword [ebx + 4]
sub ecx, ecx
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [eax + 0x2c]
movss dword [esp + 0x70], xmm0
movss xmm0, dword [eax + 0x28]
mov eax, 0xd20d20d3
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, eax
mov eax, dword [ebx + 0xc]
imul ecx, esi
mov edx, ecx
shl edx, 6
prefetcht2 byte [eax + edx]
add eax, edx
mov dword [esp + 0x34], esi
mov edx, esi
mov esi, dword [ebx + 0x20]
shl ecx, 4
add ecx, dword [ebx + 0x10]
shr edx, 2
prefetcht2 byte [ecx]
mov dword [ebx + 0x14], edi
movss dword [esp + 0x68], xmm0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], edx
je 0x4ff638
prefetcht2 byte [eax + 0x100]
fld dword [esp + 0x68]
prefetcht2 byte [ecx + 0x40]
lea edx, [eax + 0x100]
mov dword [esp + 0x38], edx
lea edx, [ecx + 0x40]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x60]
push edx
push 4
lea edx, [esp + 0x9c]
push edx
mov edx, dword [esp + 0x30]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [esp + 0x8c]
fstp dword [esp + 8]
fld dword [esp + 0x5c]
fstp dword [esp + 4]
fld dword [esp + 0x68]
fstp dword [esp]
push esi
push edx
push ecx
call fcn.00424050
mov edi, eax
and edi, 1
mov ecx, edi
neg ecx
sar ecx, 0x1f
mov edx, edi
sar edx, 0x1f
or cl, dl
not cl
and cl, 0x7f
mov byte [esi + 4], cl
mov ecx, eax
and ecx, 2
mov edx, ecx
neg edx
sar edx, 0x1f
sar ecx, 0x1f
or dl, cl
not dl
and dl, 0x7f
mov byte [esi + 0xc], dl
mov ecx, eax
and ecx, 4
mov edx, ecx
neg edx
sar edx, 0x1f
sar ecx, 0x1f
or dl, cl
not dl
and dl, 0x7f
mov byte [esi + 0x14], dl
mov ecx, eax
and ecx, 8
mov edx, ecx
neg edx
sar edx, 0x1f
sar ecx, 0x1f
or dl, cl
not dl
and dl, 0x7f
mov byte [esi + 0x1c], dl
mov edx, eax
mov ecx, eax
shr edx, 2
and edx, 1
shr ecx, 3
add edx, edi
mov edi, dword [esp + 0x44]
shr eax, 1
and ecx, 1
and eax, 1
add edx, ecx
add eax, edx
add esp, 0x28
add edi, eax
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
add esi, 0x20
sub dword [esp + 0x2c], 1
jne 0x4ff538
mov ebx, dword [esp + 0x34]
and ebx, 3
je 0x4ff6ca
mov edx, dword [esp + 0x60]
fld dword [esp + 0x68]
push edx
push ebx
lea edx, [esp + 0x9c]
push edx
mov edx, dword [esp + 0x30]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [esp + 0x8c]
fstp dword [esp + 8]
fld dword [esp + 0x5c]
fstp dword [esp + 4]
fld dword [esp + 0x68]
fstp dword [esp]
push esi
push edx
push ecx
call fcn.00424050
add esp, 0x28
test ebx, ebx
mov dword [esp + 0x20], eax
mov edx, 1
jbe 0x4ff6ca
add esi, 4
mov dword [esp + 0x1c], ebx
mov ecx, edx
and ecx, dword [esp + 0x20]
mov eax, ecx
neg eax
sar eax, 0x1f
mov ebx, ecx
sar ebx, 0x1f
or al, bl
not al
and al, 0x7f
mov byte [esi], al
xor eax, eax
test ecx, ecx
setne al
add esi, 8
add edx, edx
add edi, eax
sub dword [esp + 0x1c], 1
jne 0x4ff69b
test edi, edi
je 0x4ff92d
cmp dword [esp + 0x30], 0
je 0x4ff70e
mov eax, dword [esp + 0x34]
test eax, eax
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 0x14], 1
jbe 0x4ff92d
mov ecx, dword [esp + 0x44]
add ecx, 4
test byte [ecx], 0x7f
jne 0x4ff6ff
mov byte [ecx], 0
sub eax, 1
add ecx, 8
test eax, eax
ja 0x4ff6f7
jmp 0x4ff92d
mov ecx, dword [esp + 0x24]
movups xmm3, xmmword [ecx + 0x3c]
movaps xmm4, xmmword [esp + 0xa0]
movss xmm0, dword [0x6cc5ec]
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 0x1c]
mov edi, dword [esp + 0x44]
shufps xmm0, xmm0, 0
movaps xmm1, xmm3
mulps xmm1, xmmword [esp + 0xb0]
mulps xmm3, xmmword [esp + 0x100]
sqrtps xmm5, xmm1
divps xmm0, xmm5
mulps xmm0, xmm1
movaps xmm2, xmm4
cmpltps xmm2, xmm1
andps xmm0, xmm2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
test eax, eax
andnps xmm2, xmm4
orps xmm0, xmm2
movaps xmmword [esp + 0xf0], xmm0
mulps xmm0, xmmword [esp + 0xe0]
movaps xmmword [esp + 0xc0], xmm1
movaps xmmword [esp + 0x110], xmm3
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0x38], eax
jbe 0x4ff92d
lea ecx, [ecx]
test byte [edi + 4], 0x7f
jne 0x4ff916
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx]
and ecx, 2
mov ebx, dword [esp + 0x78]
mov eax, ecx
neg eax
or eax, ecx
sar eax, 0x1f
mov ecx, eax
not ecx
lea edx, [esp + 0x110]
and ecx, edx
mov edx, eax
lea esi, [esp + 0xc0]
and edx, esi
mov esi, eax
or ecx, edx
not esi
lea edx, [esp + 0xd0]
and esi, edx
lea edx, [esp + 0xf0]
and eax, edx
or esi, eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x2c], eax
lea eax, [ebx + 1]
cmp eax, dword [esp + 0x6c]
jae 0x4ff829
lea ecx, [ecx + ebx*4 + 4]
lea ebx, [ebx]
mov edx, dword [edi]
cmp edx, dword [ecx]
jb 0x4ff829
shl dword [esp + 0x2c], 1
add eax, 1
add ebx, 1
add ecx, 4
cmp eax, dword [esp + 0x6c]
jb 0x4ff810
xor ecx, ecx
test ebx, ebx
setne cl
and ecx, dword [esp + 0x64]
test byte [0xb31498], 1
jne 0x4ff854
movss xmm0, dword [0x6e5b20]
or dword [0xb31498], 1
movss dword [0xb31494], xmm0
test ecx, ecx
je 0x4ff8f9
fld dword [edi]
call fcn.004ad260
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fsub dword [esi + ebx*4]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fld dword [0x6cac60]
fcompi st(1)
jbe 0x4ff8aa
fmul dword [0xb31494]
mov ecx, 1
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fldz
fsubrp st(1)
fstp dword [esp + 0x20]
fldz
fld dword [esp + 0x20]
fcompi st(1)
jb 0x4ff8b0
xorps xmm0, xmm0
jmp 0x4ff8b6
fstp st(0)
xor ecx, ecx
jmp 0x4ff8f7
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x74], xmm0
fld dword [esp + 0x74]
fld1
fsubrp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fcompi st(1)
fstp st(0)
jae 0x4ff8da
movss xmm0, dword [0x6cc5ec]
movss dword [esp + 0x54], xmm0
fld dword [esp + 0x54]
fmul qword [0x6f9ac8]
fstp dword [esp + 0x20]
cvttss2si eax, dword [esp + 0x20]
mov byte [edi + 5], al
test ecx, ecx
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
setne cl
shl cl, 7
and bl, 0x7f
or cl, bl
or dword [eax + 0x14], edx
mov eax, dword [esp + 0x38]
mov byte [edi + 4], cl
add dword [esp + 0x1c], 4
sub eax, 1
add edi, 8
test eax, eax
mov dword [esp + 0x38], eax
ja 0x4ff7a0
mov edx, dword [esp + 0x3c]
cmp dword [edx + 0x14], 0
je 0x4ffa97
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
cmp ecx, dword [eax + 0x18]
jae 0x4ffad2
mov esi, dword [eax + 0x34]
mov dword [esi + ecx*4], edx
add dword [eax + 0x30], 1
mov eax, dword [0x93dc98]
test eax, eax
je 0x4ffa97
mov eax, dword [eax + 0x308]
cmp eax, dword [0x9cdd20]
jne 0x4ffa97
mov edi, dword [esp + 0x34]
test edi, edi
jbe 0x4ffa97
mov edx, dword [esp + 0x48]
mov ecx, edi
shl ecx, 6
lea eax, [ecx + edx + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
movss xmm0, dword [0x6f2110]
movups xmm1, xmmword [eax - 0x10]
movups xmm2, xmmword [eax + 0x10]
movaps xmm3, xmmword [esp + 0xa0]
movups xmm5, xmmword [eax]
shufps xmm3, xmm0, 0x10
movaps xmm0, xmm2
unpcklps xmm0, xmm3
unpckhps xmm2, xmm3
movaps xmm4, xmm1
unpcklps xmm4, xmm5
movaps xmm3, xmm4
movlhps xmm3, xmm0
movhlps xmm0, xmm4
unpckhps xmm1, xmm5
movaps xmmword [esp + 0x130], xmm0
movaps xmm0, xmm1
movlhps xmm0, xmm2
movhlps xmm2, xmm1
movaps xmmword [esp + 0x120], xmm3
movaps xmmword [esp + 0x140], xmm0
movaps xmmword [esp + 0x150], xmm2
xor ebx, ebx
lea esi, [esp + 0x160]
test bl, 1
mov eax, dword [esp + 0x24]
je 0x4ffa10
movss xmm0, dword [eax + 0x1c]
jmp 0x4ffa15
movss xmm0, dword [eax + 0x10]
test bl, 2
movss dword [esi], xmm0
je 0x4ffa25
movss xmm0, dword [eax + 0x20]
jmp 0x4ffa2a
movss xmm0, dword [eax + 0x14]
test bl, 4
movss dword [esi + 4], xmm0
je 0x4ffa3b
movss xmm0, dword [eax + 0x24]
jmp 0x4ffa40
movss xmm0, dword [eax + 0x18]
push esi
lea ecx, [esp + 0x124]
mov edx, esi
movss dword [esi + 8], xmm0
call fcn.00404e50
add ebx, 1
add esp, 4
add esi, 0xc
cmp ebx, 8
jb 0x4ffa00
mov ecx, dword [esp + 0x44]
fld dword [ecx + edi*8]
call fcn.004ad260
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
push ecx
lea edx, [esp + 0x164]
fstp dword [esp]
push edx
call fcn.0057c550
sub dword [esp + 0x1c], 0x40
sub edi, 1
test edi, edi
ja 0x4ff990
mov eax, dword [esp + 0x18]
add dword [esp + 0x50], 0x24
add eax, 1
xor edi, edi
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x18], eax
jb 0x4ff450
mov eax, dword [esp + 0x28]
add eax, 1
cmp eax, dword [esp + 0x88]
mov dword [esp + 0x28], eax
jb 0x4ff419
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Instanced_Models_list_overflow_in_the_vis_block_n
call fcn.00408d10
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret