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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x11c
mov ebx, dword [0x5609a0]
xor eax, eax
push eax
push eax
push dword [esp + 0x138]
call fcn.0040206f
add esp, 0xc
lea ecx, [ebx + 0x18e8]
push eax
call fcn.00402d2c
test eax, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xf0], eax
je 0x411222
mov ebp, eax
jmp 0x411596
cmp dword [ebx + 0x197c], 0
je 0x411245
movss xmm0, dword [ebx + 0x19a4]
movups xmmword [esp + 0x90], xmm0
movss xmm0, dword [ebx + 0x19a8]
jmp 0x411253
xorps xmm0, xmm0
movups xmmword [esp + 0x90], xmm0
xorps xmm0, xmm0
mov ebx, dword [esp + 0x138]
mov edi, dword [0x5609a0]
inc dword [0x560da8]
movups xmmword [esp + 0x30], xmm0
push dword [0x560dac]
push 0x350
call dword [0x554020]
add esp, 8
mov ebp, eax
mov ecx, eax
push dword [esp + 0x130]
push edi
call fcn.0040e6b6
mov dword [ebp + 8], ebx
lea ecx, [edi + 0x18e8]
push ebp
push dword [ebp + 4]
call fcn.0041688a
mov eax, 0x42700000
bt ebx, 8
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], eax
jb 0x4112ec
mov eax, dword [0x5609a0]
mov ecx, dword [eax + 0x2970]
test ecx, ecx
je 0x4112ec
mov eax, dword [eax + 0x2978]
mov edx, dword [ebp + 4]
movups xmm3, xmmword [esp + 0x30]
movups xmm4, xmmword [esp + 0x90]
add eax, 0x18
cmp dword [eax - 0x14], edx
je 0x4113e4
add eax, 0x1c
dec ecx
jne 0x4112db
jmp 0x4112f9
movups xmm3, xmmword [esp + 0x30]
movups xmm4, xmmword [esp + 0x90]
movss dword [ebp + 0x2c], xmm4
movss dword [ebp + 0x30], xmm3
test bl, 0x40
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
movd xmm0, ecx
movd xmm1, eax
punpckldq xmm1, xmm0
pshufd xmm0, xmm1, 0x44
movdqu xmmword [ebp + 0x14], xmm0
jne 0x411365
movd xmm2, eax
pxor xmm1, xmm1
movd xmm0, ecx
ucomiss xmm1, xmm2
jb 0x41133f
mov dword [ebp + 0x9c], 2
ucomiss xmm1, xmm0
jb 0x41134e
mov dword [ebp + 0xa0], 2
cmp dword [ebp + 0x9c], 0
mov al, 1
jg 0x411378
cmp dword [ebp + 0xa0], 0
setg al
jmp 0x411378
mov eax, 2
mov dword [ebp + 0xa0], eax
mov dword [ebp + 0x9c], eax
xor eax, eax
bt ebx, 0xd
mov byte [ebp + 0xa4], al
jb 0x4113b1
mov eax, dword [edi + 0x18c4]
cmp eax, dword [edi + 0x18c8]
jne 0x4114da
lea ebx, [eax + 1]
test eax, eax
je 0x41145d
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x411462
mov eax, dword [edi + 0x18c4]
mov esi, dword [edi + 0x18cc]
cmp eax, dword [edi + 0x18c8]
jne 0x41156f
lea ebx, [eax + 1]
test eax, eax
je 0x4114f2
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x4114f7
and byte [ebp + 0xb4], 0xfb
and byte [ebp + 0xb8], 0xfb
and byte [ebp + 0xbc], 0xfb
movss xmm0, dword [eax - 0x10]
movss xmm1, dword [eax - 0xc]
cvttps2dq xmm1, xmm1
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [ebp + 0xc], xmm0
movss dword [ebp + 0x10], xmm1
mov cl, byte [eax]
mov byte [ebp + 0x85], cl
movsd xmm0, qword [eax - 8]
movaps xmm1, xmm0
mulps xmm1, xmm0
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xe5
addss xmm2, xmm1
ucomiss xmm2, dword [0x4b2568]
jbe 0x4112f9
cvttps2dq xmm1, xmm0
shufps xmm0, xmm0, 0xe5
cvttps2dq xmm0, xmm0
cvtdq2ps xmm4, xmm1
cvtdq2ps xmm3, xmm0
jmp 0x4112f9
mov ecx, 8
cmp ecx, ebx
cmovge ebx, ecx
cmp eax, ebx
jge 0x4114da
inc dword [0x560da8]
lea eax, [ebx*4]
push dword [0x560dac]
push eax
call dword [0x554020]
add esp, 8
mov esi, eax
mov eax, dword [edi + 0x18cc]
test eax, eax
je 0x4114ae
mov ecx, dword [edi + 0x18c4]
shl ecx, 2
push ecx
push eax
push esi
call fcn.0048b1e0
add esp, 0xc
mov eax, dword [edi + 0x18cc]
test eax, eax
je 0x4114b8
dec dword [0x560da8]
push dword [0x560dac]
push eax
call dword [0x554024]
add esp, 8
mov dword [edi + 0x18cc], esi
mov dword [edi + 0x18c8], ebx
mov eax, dword [edi + 0x18c4]
mov ecx, dword [edi + 0x18cc]
mov dword [ecx + eax*4], ebp
inc dword [edi + 0x18c4]
mov ebx, dword [esp + 0x1c]
jmp 0x411596
mov ecx, 8
cmp ecx, ebx
cmovge ebx, ecx
cmp eax, ebx
jge 0x41156f
inc dword [0x560da8]
lea eax, [ebx*4]
push dword [0x560dac]
push eax
call dword [0x554020]
add esp, 8
mov esi, eax
mov eax, dword [edi + 0x18cc]
test eax, eax
je 0x411543
mov ecx, dword [edi + 0x18c4]
shl ecx, 2
push ecx
push eax
push esi
call fcn.0048b1e0
add esp, 0xc
mov eax, dword [edi + 0x18cc]
test eax, eax
je 0x41154d
dec dword [0x560da8]
push dword [0x560dac]
push eax
call dword [0x554024]
add esp, 8
mov dword [edi + 0x18cc], esi
mov dword [edi + 0x18c8], ebx
mov eax, dword [edi + 0x18c4]
test eax, eax
jle 0x41158a
shl eax, 2
push eax
push esi
add esi, 4
push esi
call fcn.0048b1e0
add esp, 0xc
mov esi, dword [edi + 0x18cc]
mov ebx, dword [esp + 0x1c]
mov dword [esi], ebp
inc dword [edi + 0x18c4]
mov eax, dword [esp + 0x138]
mov ecx, dword [ebp + 0x22c]
mov esi, ebx
mov edx, eax
mov dword [esp + 0x90], ecx
or edx, 6
bt eax, 9
cmovae edx, eax
mov eax, dword [ebx + 0x18b8]
cmp ecx, eax
jne 0x4115c7
mov edx, dword [ebp + 8]
jmp 0x4115ca
mov dword [ebp + 8], edx
mov dword [esp + 0x60], eax
dec eax
mov edi, dword [ebp + 0xb0]
mov ecx, edx
mov dword [esp + 0x30], edx
cmp dword [esp + 0x90], eax
setl bl
bt edx, 0x1a
mov ecx, ebx
mov ebx, esi
jae 0x411623
mov edx, dword [ebx + 0x196c]
cmp dword [esp + 0x90], eax
mov ecx, dword [ebx + 0x1968]
mov esi, dword [ebp + 0x98]
lea edx, [edx + edx*8]
setl al
cmp esi, dword [ecx + edx*4]
setne ah
cmp dword [ecx + edx*4 + 4], ebp
mov edx, dword [esp + 0x30]
setne cl
or cl, ah
or cl, al
test edi, edi
setg al
cmp dword [esp + 0x134], 0
setne byte [ebp + 0x89]
or al, cl
mov byte [ebp + 0x88], al
je 0x411656
or byte [ebp + 0xb4], 8
or byte [ebp + 0xb8], 8
or byte [ebp + 0xbc], 8
mov eax, dword [ebx + 0x18dc]
mov byte [esp + 0x2a], cl
test eax, eax
je 0x411670
mov ecx, dword [ebx + 0x18e4]
mov esi, dword [ecx + eax*4 - 4]
jmp 0x411672
xor esi, esi
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x2c], edi
cmp ecx, dword [esp + 0x60]
jne 0x41168b
mov esi, dword [ebp + 0x2f8]
jmp 0x411696
mov ecx, edx
and ecx, 0x5000000
cmove esi, ecx
cmp eax, dword [ebx + 0x18e0]
mov dword [esp + 0x24], esi
jne 0x41173b
lea edi, [eax + 1]
test eax, eax
je 0x4116ba
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x4116bf
mov ecx, 8
cmp ecx, edi
cmovge edi, ecx
cmp eax, edi
jge 0x41173b
inc dword [0x560da8]
lea eax, [edi*4]
push dword [0x560dac]
push eax
call dword [0x554020]
add esp, 8
mov esi, eax
mov eax, dword [ebx + 0x18e4]
test eax, eax
je 0x41170b
mov ecx, dword [ebx + 0x18dc]
shl ecx, 2
push ecx
push eax
push esi
call fcn.0048b1e0
add esp, 0xc
mov eax, dword [ebx + 0x18e4]
test eax, eax
je 0x411715
dec dword [0x560da8]
push dword [0x560dac]
push eax
call dword [0x554024]
add esp, 8
mov dword [ebx + 0x18e4], esi
mov dword [ebx + 0x18e0], edi
mov edx, dword [esp + 0x30]
mov eax, dword [ebx + 0x18dc]
mov ecx, dword [ebx + 0x18e4]
mov esi, edx
mov dword [ecx + eax*4], ebp
inc dword [ebx + 0x18dc]
bt edx, 0x1a
mov eax, dword [0x5609a0]
mov dword [eax + 0x18f8], ebp
movss xmm0, dword [eax + 0x182c]
mulss xmm0, dword [ebp + 0x27c]
movss dword [eax + 0x183c], xmm0
movss dword [eax + 0x1828], xmm0
mov ecx, dword [ebp + 0x19c]
mov edx, dword [ebp + 0x1d0]
mov dword [ebp + 0x1a8], edx
mov dword [ebp + 0x1ac], ecx
mov ecx, dword [eax + 0x196c]
mov dword [ebp + 0x1b0], ecx
mov ecx, dword [eax + 0x193c]
mov dword [ebp + 0x1b4], ecx
mov ecx, dword [eax + 0x1948]
mov dword [ebp + 0x1b8], ecx
mov eax, dword [eax + 0x1954]
mov dword [ebp + 0x1bc], eax
jae 0x4118c8
mov ecx, dword [ebx + 0x196c]
mov eax, dword [ebx + 0x1968]
mov edx, ebx
lea ecx, [ecx + ecx*8]
lea ebx, [eax + ecx*4]
mov dword [ebx + 4], ebp
mov eax, dword [edx + 0x196c]
cmp eax, dword [edx + 0x1970]
jne 0x41189b
lea edi, [eax + 1]
test eax, eax
je 0x411806
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x41180b
mov ecx, 8
cmp ecx, edi
cmovge edi, ecx
cmp eax, edi
jge 0x41189b
inc dword [0x560da8]
lea eax, [edi*4]
lea eax, [eax + eax*8]
push dword [0x560dac]
push eax
call dword [0x554020]
add esp, 8
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov edx, dword [esi + 0x1974]
test edx, edx
je 0x411867
mov ecx, dword [esi + 0x196c]
shl ecx, 2
lea ecx, [ecx + ecx*8]
push ecx
push edx
push eax
call fcn.0048b1e0
add esp, 0xc
mov edx, dword [esi + 0x1974]
test edx, edx
je 0x411871
dec dword [0x560da8]
push dword [0x560dac]
push edx
call dword [0x554024]
add esp, 8
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x1974], ecx
mov dword [eax + 0x1970], edi
mov eax, dword [eax + 0x196c]
mov edx, dword [esp + 0x1c]
lea edi, [eax + eax*8]
mov ecx, 9
mov esi, ebx
shl edi, 2
add edi, dword [edx + 0x1974]
rep movsd dword es:[edi], dword [esi]
inc dword [edx + 0x196c]
mov eax, dword [ebx]
mov esi, dword [esp + 0x30]
mov ebx, edx
mov dword [ebp + 0x98], eax
mov eax, dword [esp + 0x2c]
bt esi, 0x18
jb 0x4118e0
test eax, eax
jle 0x4118e0
mov dword [ebp + 0x310], 0
mov eax, dword [ebx + 0x1978]
mov edi, dword [esp + 0x24]
test eax, eax
je 0x41196a
mov ecx, dword [ebp + 0xb4]
test ecx, eax
setne dl
mov dword [esp + 0x20], edx
je 0x411957
movsd xmm0, qword [ebx + 0x199c]
mulps xmm0, xmm0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xe5
addss xmm1, xmm0
ucomiss xmm1, dword [0x4b2568]
jbe 0x411957
movsd xmm0, qword [ebx + 0x1994]
and ecx, 0xfffffff1
movsd qword [ebp + 0xc0], xmm0
mov eax, dword [ebx + 0x199c]
mov edx, dword [ebx + 0x19a0]
mov dword [ebp + 0xc8], eax
mov al, 1
mov dword [ebp + 0xcc], edx
mov dword [ebp + 0xb4], ecx
mov dword [esp + 0x20], eax
jmp 0x411972
lea edx, [ebx + 0x1994]
mov ecx, ebp
push eax
call fcn.0040fdb8
add esp, 4
jmp 0x411972
mov dword [esp + 0x20], 0
mov eax, dword [ebx + 0x197c]
test eax, eax
je 0x4119b0
test dword [ebp + 0xb8], eax
je 0x4119c5
movss xmm0, dword [ebx + 0x19a4]
movss xmm1, dword [ebx + 0x19a8]
xorps xmm2, xmm2
ucomiss xmm0, xmm2
seta cl
ucomiss xmm1, xmm2
mov dword [esp + 0x44], ecx
seta cl
mov dword [esp + 0xc0], ecx
jmp 0x4119d8
mov dword [esp + 0xc0], 0
mov dword [esp + 0x44], 0
jmp 0x4119e9
mov dword [esp + 0x44], 0
mov dword [esp + 0xc0], 0
lea edx, [ebx + 0x19a4]
mov ecx, ebp
push eax
call fcn.0040f463
add esp, 4
cmp dword [ebx + 0x1980], 0
je 0x411a8c
mov ecx, dword [ebx + 0x19b0]
mov eax, dword [ebx + 0x19ac]
xorps xmm1, xmm1
movd xmm0, ecx
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x3c], eax
ucomiss xmm0, xmm1
jne 0x411a1a
jnp 0x411aa1
mov eax, dword [ebp + 8]
test al, 1
jne 0x411a47
mov ecx, dword [0x5609a0]
movss xmm2, dword [ecx + 0x182c]
movss xmm1, dword [ecx + 0x1524]
mulss xmm2, dword [ebp + 0x27c]
addss xmm1, xmm1
addss xmm1, xmm2
xorps xmm2, xmm2
bt eax, 0xa
jae 0x411a7d
mov eax, dword [0x5609a0]
movss xmm3, dword [eax + 0x182c]
movss xmm2, dword [eax + 0x1524]
mulss xmm3, dword [ebp + 0x27c]
addss xmm2, xmm2
addss xmm3, dword [ebp + 0x150]
addss xmm2, xmm3
addss xmm1, xmm2
addss xmm1, xmm0
movss dword [ebp + 0x40], xmm1
jmp 0x411aa1
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x60]
je 0x411aa1
xor eax, eax
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], eax
mov ecx, dword [ebx + 0x1984]
test ecx, ecx
je 0x411aca
mov eax, dword [ebp + 0xbc]
test eax, ecx
je 0x411aca
mov cl, byte [ebx + 0x19b4]
and eax, 0xfffffff1
mov dword [ebp + 0xbc], eax
mov byte [ebp + 0x85], cl
cmp dword [ebx + 0x198c], 0
je 0x411adc
push ebp
call fcn.00418676
add esp, 4
cmp byte [ebp + 0x88], 0
je 0x411afa
and byte [ebp + 0xb4], 0xf7
and byte [ebp + 0xb8], 0xf7
and byte [ebp + 0xbc], 0xf7
mov eax, dword [esp + 0x90]
lea esi, [ebx + 0x1978]
cmp eax, dword [esp + 0x60]
jne 0x411b2e
lea ecx, [ebp + 0x20c]
lea eax, [ebp + 0x214]
push 1
push eax
push ecx
call fcn.00403bb0
add esp, 0xc
mov ecx, dword [esp + 0x30]
jmp 0x4149da
mov ecx, dword [esp + 0x30]
movd xmm0, ebp
mov dword [ebp + 0x2f8], edi
pshufd xmm0, xmm0, 0
movdqu xmmword [ebp + 0x2fc], xmm0
mov eax, ecx
and eax, 0x3000000
cmp eax, 0x1000000
mov dword [esp + 0x4c], eax
jne 0x411b6b
test edi, edi
je 0x411b6b
mov eax, dword [edi + 0x2fc]
mov dword [ebp + 0x2fc], eax
mov edx, ecx
and edx, 0x8000000
test ecx, 0x5000000
je 0x411b95
test edi, edi
je 0x411b95
test edx, edx
jne 0x411b95
mov eax, dword [edi + 0x300]
mov dword [ebp + 0x304], eax
mov dword [ebp + 0x300], eax
test byte [ebp + 0xa], 0x80
mov dword [esp + 0xe0], edx
je 0x411bb6
mov eax, ebp
mov eax, dword [eax + 0x2f8]
mov dword [ebp + 0x308], eax
test byte [eax + 0xa], 0x80
jne 0x411ba4
xor eax, eax
mov byte [ebp + 0x82], 1
movaps xmm0, xmmword [0x4b26e0]
mov dword [esp + 0x118], esi
mov dword [ebp + 0x8c], eax
mov ecx, dword [ebx + 0x18f4]
lea edx, [ecx + 1]
mov dword [ebx + 0x18f4], edx
mov dword [ebp + 0x90], ecx
mov dword [ebp + 0x94], eax
mov eax, dword [esp + 0x60]
movups xmmword [ebp + 0x1dc], xmm0
mov edx, dword [esp + 0x30]
mov dword [ebp + 0x22c], eax
mov eax, dword [ebp + 0x1d4]
test eax, eax
jg 0x411c9a
je 0x411c28
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
cmp ecx, 1
jg 0x411c9a
xor edi, edi
inc edi
jmp 0x411c2d
mov edi, 8
inc dword [0x560da8]
lea eax, [edi*4]
push dword [0x560dac]
push eax
call dword [0x554020]
add esp, 8
mov esi, eax
mov eax, dword [ebp + 0x1d8]
test eax, eax
je 0x411c70
mov ecx, dword [ebp + 0x1d0]
shl ecx, 2
push ecx
push eax
push esi
call fcn.0048b1e0
add esp, 0xc
mov eax, dword [ebp + 0x1d8]
test eax, eax
je 0x411c7a
dec dword [0x560da8]
push dword [0x560dac]
push eax
call dword [0x554024]
add esp, 8
mov edx, dword [esp + 0x30]
mov dword [ebp + 0x1d8], esi
mov dword [ebp + 0x1d4], edi
shr edx, 0x18
lea esi, [esp + 0xc]
mov dword [ebp + 0x1d0], 1
mov edi, edx
mov ecx, esi
mov edx, ebp
call fcn.00416824
movsd xmm0, qword [esi]
movsd qword [ebp + 0x34], xmm0
mov eax, dword [ebp + 0xb0]
test eax, eax
jle 0x411cd0
dec eax
mov dword [ebp + 0xb0], eax
and edi, 1
cmp dword [esp + 0xf0], 0
mov al, byte [esp + 0x2a]
mov dword [esp + 0x90], edi
jne 0x411d03
cmp byte [esp + 0xc0], 0
je 0x411cf9
cmp byte [esp + 0x44], 0
jne 0x411d03
mov dword [ebp + 0xb0], 1
mov ecx, dword [esp + 0x30]
mov edx, eax
xor dl, 1
test ecx, 0x6000000
je 0x411d50
test dl, dl
jne 0x411d50
test cl, 0x40
mov dword [ebp + 0xb0], 1
je 0x411d50
cmp byte [esp + 0x44], 0
jne 0x411d36
xor eax, eax
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x14], eax
cmp byte [esp + 0xc0], 0
jne 0x411d48
xor eax, eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x18], eax
xor eax, eax
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], eax
mov edi, dword [0x5609a0]
bt ecx, 0x18
mov byte [esp + 0x60], dl
mov dword [edi + 0x18f8], ebp
movss xmm0, dword [edi + 0x182c]
mulss xmm0, dword [ebp + 0x27c]
movss dword [edi + 0x183c], xmm0
movss dword [edi + 0x1828], xmm0
jb 0x411da0
test ecx, 0x6000000
je 0x411da8
cmp dword [esp + 0xe0], 0
jne 0x411da8
lea eax, [ebx + 0x151c]
jmp 0x411dae
lea eax, [ebx + 0x1514]
jmp 0x411dae
lea eax, [ebx + 0x14fc]
mov eax, dword [eax]
mov esi, ebx
test dword [esp + 0x30], 0x4010000
mov dword [ebp + 0x50], eax
mov ecx, dword [ebx + 0x14f0]
mov edx, dword [ebx + 0x14f4]
mov ebx, dword [esp + 0x90]
mov bh, bl
mov dword [ebp + 0x48], edx
setne dl
movd xmm0, ecx
mov dword [ebp + 0x44], ecx
xor bh, 1
or bh, dl
jne 0x411e1a
mov ecx, dword [esp + 0x30]
movd xmm2, eax
xorps xmm1, xmm1
mov eax, esi
ucomiss xmm2, xmm1
jne 0x411e20
jp 0x411e20
bt ecx, 0xa
jae 0x411e08
movss xmm1, dword [eax + 0x14f4]
pxor xmm0, xmm0
mov dword [ebp + 0x44], 0
movss dword [ebp + 0x48], xmm1
jmp 0x411e20
mov ecx, dword [esp + 0x30]
mov eax, esi
movss xmm2, dword [eax + 0x1530]
movss xmm1, dword [eax + 0x19d4]
lea esi, [ebp + 0x34]
test cl, 0x21
movaps xmm3, xmm2
cmpless xmm3, xmm0
andps xmm0, xmm3
andnps xmm3, xmm2
orps xmm3, xmm0
movaps xmm0, xmm1
cmpless xmm0, xmm3
movaps xmm2, xmm0
andnps xmm0, xmm1
andps xmm2, xmm3
orps xmm0, xmm2
movss dword [ebp + 0x14c], xmm0
mov eax, dword [eax + 0x19d8]
mov dword [ebp + 0x150], eax
je 0x411e7d
mov byte [ebp + 0x85], 0
jmp 0x411f3c
mov ebx, dword [ebp + 8]
movss xmm0, dword [ebp + 0x10]
xorps xmm1, xmm1
test bl, 1
jne 0x411ead
movss xmm2, dword [edi + 0x182c]
movss xmm1, dword [edi + 0x1524]
mulss xmm2, dword [ebp + 0x27c]
addss xmm1, xmm1
addss xmm1, xmm2
movss xmm2, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
addss xmm0, xmm1
addss xmm2, dword [ebp + 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
movss dword [esp + 0x14], xmm2
movss dword [esp + 0x18], xmm0
cmp byte [ebp + 0x86], 0
je 0x411f0b
xor byte [ebp + 0x85], 1
bt ebx, 8
jb 0x411f00
xorps xmm0, xmm0
ucomiss xmm0, dword [edi + 0x2954]
jb 0x411f00
mov eax, dword [edi + 0x18]
mov dword [edi + 0x2954], eax
push ebp
call fcn.00418676
add esp, 4
jmp 0x411f3c
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x18fc], ebp
jne 0x411f3c
lea eax, [esp + 0x14]
push 1
push eax
lea eax, [esp + 0x14]
push eax
call fcn.0040f375
add esp, 0xc
test al, al
je 0x411f3c
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x3d1], 0
jne 0x411ede
mov byte [ebp + 0x86], 0
lea ecx, [esp + 0xd4]
mov edx, ebp
push esi
call fcn.0040b655
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0xf0], esi
test al, 0x40
je 0x411f71
cmp byte [ebp + 0x85], 0
je 0x412059
cmp dword [ebp + 0x9c], 0
jle 0x411fbc
cmp byte [esp + 0x44], 0
mov ebx, 0x7f7fffff
jne 0x411fd3
cmp byte [ebp + 0xa4], 0
movss xmm0, dword [esp + 0xd4]
je 0x411fb1
movss xmm1, dword [ebp + 0x1c]
movaps xmm2, xmm0
cmpless xmm2, xmm1
andps xmm1, xmm2
andnps xmm2, xmm0
orps xmm2, xmm1
movaps xmm0, xmm2
movd ebx, xmm0
movss dword [ebp + 0x1c], xmm0
jmp 0x411fd3
cmp dword [ebp + 0xa0], 0
mov ebx, 0x7f7fffff
mov edi, 0x7f7fffff
jle 0x4122cf
cmp byte [esp + 0xc0], 0
mov edi, 0x7f7fffff
jne 0x41201f
cmp dword [ebp + 0xa0], 0
jle 0x41201f
cmp byte [ebp + 0xa4], 0
movss xmm0, dword [esp + 0xd8]
je 0x412016
movss xmm1, dword [ebp + 0x20]
movaps xmm2, xmm0
cmpless xmm2, xmm1
andps xmm1, xmm2
andnps xmm2, xmm0
orps xmm2, xmm1
movaps xmm0, xmm2
movd edi, xmm0
movss dword [ebp + 0x20], xmm0
cmp byte [ebp + 0x85], 0
jne 0x4122cf
test byte [ebp + 9], 1
jne 0x4122cf
mov eax, dword [0x5609a0]
xorps xmm0, xmm0
ucomiss xmm0, dword [eax + 0x2954]
jb 0x4122cf
mov ecx, dword [eax + 0x18]
mov dword [eax + 0x2954], ecx
jmp 0x4122cf
bt eax, 0x1e
jb 0x412097
cmp byte [esp + 0x44], 0
mov edi, 0x7f7fffff
mov ebx, 0x7f7fffff
jne 0x41207a
mov ebx, dword [esp + 0xd4]
mov dword [ebp + 0x1c], ebx
cmp byte [esp + 0xc0], 0
jne 0x4122cf
mov edi, dword [esp + 0xd8]
mov dword [ebp + 0x20], edi
jmp 0x4122cf
cmp byte [esp + 0x44], 0
mov ebx, 0x7f7fffff
jne 0x4120ad
mov ebx, dword [esp + 0xd4]
mov dword [ebp + 0x24], ebx
cmp byte [esp + 0xc0], 0
je 0x4120c3
movd xmm1, dword [ebp + 0x28]
mov edi, 0x7f7fffff
jmp 0x4120d1
mov edi, dword [esp + 0xd8]
movd xmm1, edi
mov dword [ebp + 0x28], edi
movss xmm0, dword [ebp + 0x20]
movdqa xmm2, xmm1
subss xmm2, xmm0
ucomiss xmm2, dword [0x4b23d4]
jbe 0x412151
movaps xmm3, xmm0
mov eax, dword [0x5609a0]
lea ecx, [esp + 0x50]
subss xmm3, xmm1
movss xmm1, dword [0x4b2570]
andps xmm3, xmmword [0x4b23c0]
movss xmm2, dword [eax + 0x14]
lea eax, [esp + 0xac]
mov dword [esp + 0xc], 0x420c0000
mov dword [eax], 0x41a00000
ucomiss xmm1, xmm3
movss dword [ecx], xmm3
cmova ecx, eax
ucomiss xmm3, dword [0x4b26f4]
lea eax, [esp + 0xc]
mulss xmm2, dword [0x4b26f0]
cmova ecx, eax
mulss xmm2, dword [ecx]
cvttps2dq xmm1, xmm2
cvtdq2ps xmm1, xmm1
addss xmm1, xmm0
jmp 0x4121c9
movaps xmm2, xmm0
subss xmm2, xmm1
ucomiss xmm2, dword [0x4b23d4]
jbe 0x4121c9
mov eax, dword [0x5609a0]
andps xmm2, xmmword [0x4b23c0]
movss xmm3, dword [0x4b2570]
lea ecx, [esp + 0x50]
movss xmm1, dword [eax + 0x14]
lea eax, [esp + 0xac]
ucomiss xmm3, xmm2
movss dword [ecx], xmm2
mov dword [esp + 0xc], 0x420c0000
cmova ecx, eax
ucomiss xmm2, dword [0x4b26f4]
mov dword [eax], 0x41a00000
lea eax, [esp + 0xc]
mulss xmm1, dword [0x4b26f0]
cmova ecx, eax
mulss xmm1, dword [ecx]
cvttps2dq xmm1, xmm1
cvtdq2ps xmm1, xmm1
subss xmm0, xmm1
movss dword [ebp + 0x20], xmm0
jmp 0x4121ce
movss dword [ebp + 0x20], xmm1
movss xmm1, dword [ebp + 0x24]
movss xmm0, dword [ebp + 0x1c]
movaps xmm2, xmm1
subss xmm2, xmm0
ucomiss xmm2, dword [0x4b23d4]
jbe 0x412252
movaps xmm3, xmm0
mov eax, dword [0x5609a0]
lea ecx, [esp + 0x50]
subss xmm3, xmm1
movss xmm1, dword [0x4b2570]
andps xmm3, xmmword [0x4b23c0]
movss xmm2, dword [eax + 0x14]
lea eax, [esp + 0xac]
mov dword [esp + 0xc], 0x420c0000
mov dword [eax], 0x41a00000
ucomiss xmm1, xmm3
movss dword [ecx], xmm3
cmova ecx, eax
ucomiss xmm3, dword [0x4b26f4]
lea eax, [esp + 0xc]
mulss xmm2, dword [0x4b26f0]
cmova ecx, eax
mulss xmm2, dword [ecx]
cvttps2dq xmm1, xmm2
cvtdq2ps xmm1, xmm1
addss xmm1, xmm0
jmp 0x4122ca
movaps xmm2, xmm0
subss xmm2, xmm1
ucomiss xmm2, dword [0x4b23d4]
jbe 0x4122ca
mov eax, dword [0x5609a0]
andps xmm2, xmmword [0x4b23c0]
movss xmm3, dword [0x4b2570]
lea ecx, [esp + 0x50]
movss xmm1, dword [eax + 0x14]
lea eax, [esp + 0xac]
ucomiss xmm3, xmm2
movss dword [ecx], xmm2
mov dword [esp + 0xc], 0x420c0000
cmova ecx, eax
ucomiss xmm2, dword [0x4b26f4]
mov dword [eax], 0x41a00000
lea eax, [esp + 0xc]
mulss xmm1, dword [0x4b26f0]
cmova ecx, eax
mulss xmm1, dword [ecx]
cvttps2dq xmm1, xmm1
cvtdq2ps xmm1, xmm1
subss xmm0, xmm1
movss dword [ebp + 0x1c], xmm0
jmp 0x4122cf
movss dword [ebp + 0x1c], xmm1
movss xmm0, dword [ebp + 0x1c]
movss xmm1, dword [ebp + 0x20]
lea esi, [esp + 0xc]
mov edx, ebp
mov ecx, esi
call fcn.00416634
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x1c], ecx
mov al, byte [ebp + 0x85]
test al, al
sete ah
or ah, byte [esp + 0x90]
jne 0x41235a
movss xmm1, dword [ebp + 0x10]
test byte [ebp + 8], 1
movd xmm0, ecx
xorps xmm2, xmm2
jne 0x41233d
mov ecx, dword [0x5609a0]
movss xmm3, dword [ecx + 0x182c]
movss xmm2, dword [ecx + 0x1524]
mulss xmm3, dword [ebp + 0x27c]
addss xmm2, xmm2
addss xmm2, xmm3
movss xmm3, dword [ebp + 0xc]
addss xmm2, xmm1
subss xmm2, xmm1
movd edx, xmm2
addss xmm0, xmm3
subss xmm0, xmm3
movd ecx, xmm0
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x18], edx
mov edx, dword [esp + 0x30]
test al, al
jne 0x4124d1
movss xmm2, dword [0x4b2470]
movd xmm0, ebx
cmpeqss xmm0, xmm2
movd eax, xmm0
movd xmm0, edi
cmpeqss xmm0, xmm2
and eax, 1
movd ecx, xmm0
shl eax, 4
and ecx, 1
movss xmm1, dword [eax + ebp + 0x1c]
shl ecx, 4
bt edx, 0xe
movss xmm0, dword [ecx + ebp + 0x20]
jb 0x4123df
movss xmm2, dword [ebp + 0x38]
ucomiss xmm2, xmm0
seta cl
test dl, 8
sete al
and al, cl
test dx, dx
mov byte [ebp + 0x81], al
js 0x412406
mov ecx, dword [esp + 0xf0]
test al, al
movss xmm2, dword [ecx]
je 0x41242d
mov eax, dword [esp + 0x1c]
jmp 0x4123fa
mov eax, dword [esp + 0x1c]
test dx, dx
mov byte [ebp + 0x81], 1
js 0x41241c
mov ecx, dword [esp + 0xf0]
movss xmm2, dword [ecx]
movss xmm3, dword [eax + 0x1550]
mov al, 1
jmp 0x412432
lea ecx, [ebp + 0x80]
test al, al
mov byte [ebp + 0x80], 1
je 0x412464
jmp 0x41249e
lea ecx, [ebp + 0x80]
mov byte [ebp + 0x80], 1
mov al, 1
jmp 0x41249e
xorps xmm3, xmm3
xor eax, eax
test dl, 8
jne 0x412491
subss xmm1, xmm3
ucomiss xmm2, xmm1
jbe 0x412491
mov edx, dword [esp + 0x30]
lea ecx, [ebp + 0x80]
and edx, 0x800
sete bl
shr edx, 0xb
mov byte [ebp + 0x80], dl
mov edx, dword [esp + 0x30]
or bl, al
jne 0x41249e
mov eax, dword [esp + 0x1c]
movss xmm1, dword [ebp + 0x38]
subss xmm0, dword [eax + 0x1550]
ucomiss xmm1, xmm0
seta dl
test byte [esp + 0x30], 8
sete al
and al, dl
mov edx, dword [esp + 0x30]
mov byte [ebp + 0x81], al
jmp 0x41249e
lea ecx, [ebp + 0x80]
mov byte [ebp + 0x80], 0
bt edx, 0x1d
jb 0x4124d1
cmp byte [ecx], 0
mov ecx, dword [esp + 0x1c]
xorps xmm0, xmm0
xorps xmm1, xmm1
je 0x4124bb
movss xmm1, dword [ecx + 0x1550]
test al, al
je 0x4124c7
movss xmm0, dword [ecx + 0x1550]
movss dword [ebp + 0x74], xmm0
movss dword [ebp + 0x78], xmm1
cmp byte [esp + 0x2a], 0
mov ebx, dword [esp + 0x1c]
je 0x412510
cmp byte [esp + 0x20], 0
mov dword [ebp + 0xac], 0xffffffff
jne 0x412510
mov eax, edx
and eax, 0x4000000
je 0x412510
mov eax, dword [ebx + 0x196c]
mov ecx, dword [ebx + 0x1974]
lea eax, [eax + eax*8]
movsd xmm0, qword [ecx + eax*4 - 0x10]
movsd qword [ebp + 0xc], xmm0
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
bt edx, 0x18
jae 0x412635
mov eax, edx
shr eax, 0x19
and eax, dword [esp + 0x90]
mov dword [esp + 0xc0], eax
mov eax, dword [ecx + 0x154]
mov dword [ebp + 0x8c], eax
mov eax, dword [ecx + 0x154]
cmp eax, dword [ecx + 0x158]
jne 0x4125f4
lea edi, [eax + 1]
test eax, eax
je 0x412567
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x41256c
mov ecx, 8
cmp ecx, edi
cmovge edi, ecx
cmp eax, edi
jge 0x4125f4
inc dword [0x560da8]
lea eax, [edi*4]
push dword [0x560dac]
push eax
call dword [0x554020]
add esp, 8
mov ebx, dword [esp + 0x24]
mov esi, eax
mov eax, dword [ebx + 0x15c]
test eax, eax
je 0x4125bc
mov ecx, dword [ebx + 0x154]
shl ecx, 2
push ecx
push eax
push esi
call fcn.0048b1e0
add esp, 0xc
mov eax, dword [ebx + 0x15c]
mov ebx, dword [esp + 0x1c]
test eax, eax
je 0x4125ca
dec dword [0x560da8]
push dword [0x560dac]
push eax
call dword [0x554024]
add esp, 8
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov dword [eax + 0x15c], esi
mov dword [eax + 0x158], edi
mov eax, dword [eax + 0x154]
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + 0x15c]
mov dword [ecx + eax*4], ebp
mov eax, edx
inc dword [esi + 0x154]
shr eax, 0x1a
and eax, 1
cmp byte [esp + 0x20], 0
setne cl
or cl, al
mov eax, dword [esp + 0xc0]
or al, cl
mov eax, dword [esp + 0x2c]
jne 0x412635
movsd xmm0, qword [esi + 0xd0]
movsd qword [ebp + 0xc], xmm0
movss xmm0, dword [ebp + 0xc0]
ucomiss xmm0, dword [0x4b2470]
jne 0x412648
jnp 0x412651
cmp dword [ebp + 0xb0], 0
je 0x4126a2
bt edx, 0x1c
jb 0x412686
bt edx, 0x1a
jae 0x412668
cmp byte [esp + 0x20], 0
jne 0x412668
test eax, eax
jg 0x412686
cmp byte [esp + 0x20], 0
setne al
bt edx, 0x19
setae cl
or cl, al
or cl, byte [esp + 0x90]
jne 0x412721
lea esi, [esp + 0xc]
mov edx, ebp
mov ecx, esi
call fcn.00404a09
mov edx, dword [esp + 0x30]
movsd xmm0, qword [esi]
movsd qword [ebp + 0xc], xmm0
jmp 0x412721
movss xmm2, dword [ebp + 0x20]
movss xmm1, dword [ebp + 0x1c]
movss xmm3, dword [ebp + 0xc4]
lea edx, [esp + 0xc]
mov ecx, ebp
mulss xmm2, dword [ebp + 0xcc]
mulss xmm1, dword [ebp + 0xc8]
subss xmm3, xmm2
movss xmm2, dword [ebx + 0x1574]
subss xmm0, xmm1
movss xmm1, dword [ebx + 0x1570]
movaps xmm4, xmm3
cmpless xmm4, xmm2
movaps xmm5, xmm4
andps xmm4, xmm2
movaps xmm2, xmm0
cmpless xmm2, xmm1
andnps xmm5, xmm3
movaps xmm3, xmm2
andps xmm2, xmm1
orps xmm4, xmm5
andnps xmm3, xmm0
orps xmm2, xmm3
movss dword [edx], xmm2
movss dword [edx + 4], xmm4
push 0
call fcn.0040fdb8
mov edx, dword [esp + 0x34]
add esp, 4
bt edx, 0x18
jb 0x41282b
cmp byte [esp + 0x20], 0
jne 0x41282b
cmp dword [ebp + 0x9c], 0
jg 0x41282b
cmp dword [ebp + 0xa0], 0
jg 0x41282b
movss xmm1, dword [ebx + 0xc]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
jbe 0x41282b
movss xmm1, dword [ebx + 0x10]
ucomiss xmm1, xmm0
jbe 0x41282b
movss xmm3, dword [ebx + 0x1574]
movss xmm1, dword [ebx + 0x156c]
movss xmm2, dword [ebx + 0x1568]
movss xmm4, dword [ebp + 0x18]
movss xmm5, dword [ebp + 0x10]
movss xmm6, dword [ebp + 0xc]
movaps xmm0, xmm3
addss xmm5, xmm4
cmpless xmm0, xmm1
andps xmm1, xmm0
andnps xmm0, xmm3
movss xmm3, dword [ebx + 0x1570]
orps xmm0, xmm1
movaps xmm1, xmm3
cmpless xmm1, xmm2
andps xmm2, xmm1
andnps xmm1, xmm3
movss xmm3, dword [ebp + 0x14]
orps xmm1, xmm2
movaps xmm2, xmm0
cmpless xmm2, xmm5
movaps xmm7, xmm2
andps xmm2, xmm5
movaps xmm5, xmm1
addss xmm6, xmm3
andnps xmm7, xmm0
cmpless xmm5, xmm6
orps xmm2, xmm7
movaps xmm7, xmm5
andps xmm5, xmm6
subss xmm2, xmm4
andnps xmm7, xmm1
orps xmm5, xmm7
subss xmm5, xmm3
movss dword [ebp + 0xc], xmm5
movss dword [ebp + 0x10], xmm2
movss xmm3, dword [ebx + 0xc]
movss xmm4, dword [ebx + 0x10]
subss xmm4, xmm0
subss xmm3, xmm1
minss xmm5, xmm3
minss xmm2, xmm4
movss dword [ebp + 0xc], xmm5
movss dword [ebp + 0x10], xmm2
movss xmm0, dword [ebp + 0xc]
movss xmm1, dword [ebp + 0x10]
bt edx, 0x18
cvttps2dq xmm1, xmm1
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [ebp + 0xc], xmm0
movss dword [ebp + 0x10], xmm1
jb 0x41286a
bt edx, 0x1b
jb 0x412872
mov eax, edx
and eax, 0x4000000
je 0x412872
lea eax, [ebx + 0x1518]
jmp 0x412878
lea eax, [ebx + 0x1510]
jmp 0x412878
lea eax, [ebx + 0x14f8]
mov eax, dword [eax]
mov ecx, 0x7fffffff
mov edx, 0x7fffffff
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x348]
cmp eax, 0x7fffffff
je 0x4128ac
mov esi, dword [ebp + 0x338]
mov edx, 0x7fffffff
cmp esi, 0xffffffff
je 0x4128ac
lea eax, [esi + eax + 1]
inc esi
cdq
idiv esi
mov dword [ebp + 0x340], edx
mov eax, dword [ebp + 0x34c]
cmp eax, 0x7fffffff
je 0x4128d4
mov esi, dword [ebp + 0x33c]
cmp esi, 0xffffffff
je 0x4128d4
lea eax, [esi + eax + 1]
inc esi
cdq
idiv esi
mov ecx, edx
xor eax, eax
mov dword [ebp + 0x344], ecx
mov ecx, 0x7fffffff
lea esi, [esp + 0xc]
mov edx, ebp
dec eax
mov dword [ebp + 0x33c], eax
mov dword [ebp + 0x338], eax
mov dword [ebp + 0x34c], ecx
mov dword [ebp + 0x348], ecx
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.004169dc
movsd xmm0, qword [esi]
mov edx, dword [esp + 0x30]
mov eax, 0x7f7fffff
movsd qword [ebp + 0x5c], xmm0
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x68], eax
mov eax, edx
shr eax, 0xc
and eax, 1
or al, byte [esp + 0x60]
jne 0x41294c
mov eax, edx
shr eax, 0x1a
and eax, 1
cmp dword [esp + 0x4c], 0
sete cl
or cl, al
mov dword [esp + 0x90], ecx
jmp 0x412957
mov dword [esp + 0x90], 0
movss xmm0, dword [ebp + 0x4c]
cmp byte [ebp + 0x85], 0
lea eax, [ebp + 0xc]
mov dword [esp + 0x44], eax
addss xmm0, dword [0x4b23b0]
movups xmmword [esp + 0xc0], xmm0
movss xmm0, dword [ebx + 0x1828]
movups xmmword [esp + 0xf0], xmm0
jne 0x412ff9
mov ecx, dword [ebp + 8]
bt edx, 0x11
mov edi, 2
adc edi, 0xffffffff
test cl, 0x42
jne 0x412ff9
cmp dword [ebp + 0x9c], 0
jg 0x412ff9
cmp dword [ebp + 0xa0], 0
jg 0x412ff9
mov eax, dword [0x5609a0]
movss xmm1, dword [0x4b24d0]
shr ecx, 0xf
mov dword [esp + 0x10c], ecx
lea ecx, [esp + 0xac]
movss xmm0, dword [eax + 0x1828]
mov dword [esp + 0x60], eax
mov eax, 0x7f7fffff
mov dword [ecx], eax
mov dword [ecx + 4], eax
lea ecx, [esp + 0x50]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mulss xmm1, xmm0
mulss xmm0, dword [0x4b26f8]
addss xmm1, dword [esp + 0xc0]
movaps xmm2, xmm1
cmpless xmm2, xmm0
movaps xmm3, xmm2
andps xmm2, xmm0
andnps xmm3, xmm1
orps xmm2, xmm3
cvttps2dq xmm0, xmm2
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4b26fc]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movups xmmword [esp + 0xe0], xmm0
push str.RESIZE
call fcn.00416c23
add esp, 4
movss xmm0, dword [esp + 0xd4]
movss xmm1, dword [esp + 0xd8]
mov esi, 0x560db0
xor ebx, ebx
movss dword [esp + 0x114], xmm0
movss dword [esp + 0x110], xmm1
movss xmm1, dword [ebp + 0x10]
movss xmm4, dword [ebp + 0x18]
movss xmm0, dword [ebp + 0xc]
movss xmm3, dword [ebp + 0x14]
movups xmm2, xmmword [esp + 0xe0]
addss xmm4, xmm1
addss xmm3, xmm0
subss xmm4, xmm1
subss xmm3, xmm0
mulss xmm4, dword [esi + 4]
mulss xmm3, dword [esi]
addss xmm4, xmm1
movss xmm1, dword [esi + 8]
addss xmm3, xmm0
movss xmm0, dword [esi + 0xc]
movss dword [esp + 0xc], xmm3
movss dword [esp + 0x10], xmm4
mulss xmm1, xmm2
mulss xmm0, xmm2
addss xmm1, xmm3
addss xmm0, xmm4
ucomiss xmm3, xmm1
movss dword [esp + 0x14], xmm1
movss dword [esp + 0x18], xmm0
jbe 0x412b09
movss dword [esp + 0xc], xmm1
movss dword [esp + 0x14], xmm3
movss dword [esp + 0xbc], xmm1
jmp 0x412b15
movss dword [esp + 0xbc], xmm3
movaps xmm3, xmm1
ucomiss xmm4, xmm0
movss dword [esp + 0x2c], xmm3
jbe 0x412b3d
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x20], xmm4
movss dword [esp + 0x18], xmm4
movss dword [esp + 0xdc], xmm0
jmp 0x412b4c
movss dword [esp + 0xdc], xmm4
movss dword [esp + 0x20], xmm0
mov ecx, ebp
push ebx
call fcn.004087f0
push 0x2020
lea ecx, [esp + 0x2f]
push ecx
lea ecx, [esp + 0x90]
push ecx
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.0040b7a2
add esp, 0x14
mov al, byte [esp + 0x2b]
mov cl, byte [esp + 0x88]
or cl, al
je 0x412b99
mov ecx, ebx
mov edx, 6
and ecx, 1
sub edx, ecx
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x1b58], edx
movss xmm2, dword [esp + 0x2c]
test al, al
je 0x412c19
mov ecx, dword [esp + 0x60]
cmp dword [ecx + 0x18fc], ebp
jne 0x412c19
test ebx, ebx
jne 0x412c19
mov ecx, dword [esp + 0x60]
cmp byte [ecx + 0x3d1], 0
je 0x412c19
movss xmm0, dword [esp + 0x114]
movss xmm1, dword [esp + 0x110]
lea ecx, [esp + 0x50]
mov edx, ebp
call fcn.00416634
mov eax, dword [0x5609a0]
cmp dword [eax + 0x1914], 0
setne byte [eax + 0x1921]
je 0x412bfc
mov dword [eax + 0x191c], 0
xor ecx, ecx
mov dword [eax + 0x1914], ecx
mov dword [eax + 0x1924], ecx
mov byte [eax + 0x1922], 0
mov dword [eax + 0x1930], ecx
jmp 0x412c92
test al, al
je 0x412c92
movss xmm3, dword [esp + 0x20]
mov eax, dword [esp + 0x60]
subss xmm2, dword [esp + 0xbc]
mov ecx, ebp
lea edx, [esp + 0x78]
subss xmm3, dword [esp + 0xdc]
movss xmm0, dword [eax + 0xd4]
movss xmm1, dword [eax + 0xd8]
mulss xmm2, dword [esi]
subss xmm0, dword [eax + 0x1928]
subss xmm1, dword [eax + 0x192c]
mulss xmm3, dword [esi + 4]
lea eax, [esp + 0x50]
addss xmm0, xmm2
addss xmm1, xmm3
movss dword [esp + 0x78], xmm0
movss dword [esp + 0x7c], xmm1
push eax
lea eax, [esp + 0xb0]
push eax
push esi
call fcn.00415f09
add esp, 0xc
inc ebx
add esi, 0x18
cmp edi, ebx
jne 0x412a7e
mov edi, dword [esp + 0x10c]
xor eax, eax
dec eax
and edi, 4
jne 0x412cba
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x20], eax
jmp 0x412e5d
xor esi, esi
mov dword [esp + 0x20], eax
movups xmm0, xmmword [esp + 0xe0]
movss xmm1, dword [0x4b23d4]
lea ebx, [esp + 0xc]
mov edx, ebp
mov ecx, ebx
push esi
call fcn.0040f2b9
add esp, 4
lea eax, [esi + 4]
mov ecx, ebp
push eax
call fcn.004087f0
push 0x20
lea ecx, [esp + 0x4f]
push ecx
lea ecx, [esp + 0x33]
push ecx
push eax
push ebx
mov ebx, dword [esp + 0x74]
call fcn.0040b7a2
add esp, 0x14
cmp byte [esp + 0x2b], 0
je 0x412d38
movss xmm0, dword [ebx + 0x1910]
ucomiss xmm0, dword [0x4b2634]
jbe 0x412d38
mov eax, esi
and eax, 1
add eax, 3
cmp byte [esp + 0x4b], 0
mov dword [ebx + 0x1b58], eax
jne 0x412d51
jmp 0x412e54
cmp byte [esp + 0x4b], 0
je 0x412e54
mov eax, esi
and eax, 1
add eax, 3
mov dword [ebx + 0x1b58], eax
mov eax, dword [esp + 0x44]
movsd xmm0, qword [eax]
xor eax, eax
cmp esi, 3
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], eax
movsd qword [esp + 0x78], xmm0
ja case.default.0x412d78
jmp dword [esi*4 + 0x4b2894]
xor eax, eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
movss xmm0, dword [ebx + 0xd8]
subss xmm0, dword [ebx + 0x192c]
jmp 0x412dff
mov dword [esp + 0x88], 0x3f800000
mov dword [esp + 0x8c], 0
movss xmm0, dword [ebx + 0xd4]
subss xmm0, dword [ebx + 0x1928]
addss xmm0, dword [0x4b23d4]
jmp 0x412e27
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0x3f800000
movss xmm0, dword [ebx + 0xd8]
subss xmm0, dword [ebx + 0x192c]
addss xmm0, dword [0x4b23d4]
movss dword [esp + 0x7c], xmm0
jmp case.default.0x412d78
xor eax, eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
movss xmm0, dword [ebx + 0xd4]
subss xmm0, dword [ebx + 0x1928]
movss dword [esp + 0x78], xmm0
lea eax, [esp + 0x50]
mov ecx, ebp
lea edx, [esp + 0x78]
push eax
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0x90]
push eax
call fcn.00415f09
add esp, 0xc
mov dword [esp + 0x20], esi
inc esi
cmp edi, esi
jne 0x412cc0
mov eax, dword [0x5609a0]
mov eax, dword [eax + 0x18f8]
dec dword [eax + 0x1d0]
cmp dword [ebx + 0x1a20], ebp
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
jne 0x412f5c
mov esi, dword [esp + 0x60]
xorps xmm0, xmm0
mov eax, dword [esi + 0x1a08]
cmp eax, 3
jne 0x412ec1
cmp byte [esi + 0xee], 0
je 0x412ee6
xor eax, eax
push eax
push eax
push eax
push 1
lea eax, [esp + 0x1c]
push eax
call fcn.004179a0
mov edx, dword [esp + 0x44]
add esp, 0x14
movsd xmm0, qword [esp + 0xc]
mov eax, dword [esi + 0x1a08]
cmp eax, 4
jne 0x412ee9
xor eax, eax
push eax
push eax
push eax
push 2
lea eax, [esp + 0x1c]
push eax
call fcn.004179a0
mov edx, dword [esp + 0x44]
add esp, 0x14
movsd xmm0, qword [esp + 0xc]
jmp 0x412ee9
xorps xmm0, xmm0
movaps xmm1, xmm0
xorps xmm2, xmm2
ucomiss xmm0, xmm2
shufps xmm1, xmm0, 0xe5
jne 0x412f01
jp 0x412f01
ucomiss xmm1, xmm2
jne 0x412f01
jnp 0x412f5c
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x50]
mov edx, ebp
movss xmm2, dword [eax + 0x14]
movss xmm3, dword [eax + 0xa0]
minss xmm3, dword [eax + 0xa4]
mulss xmm2, dword [0x4b2700]
mov byte [eax + 0x1a2c], 0
mov byte [eax + 0x1a3b], 1
mulss xmm3, xmm2
cvttps2dq xmm2, xmm3
cvtdq2ps xmm2, xmm2
mulss xmm0, xmm2
mulss xmm1, xmm2
addss xmm1, dword [ebp + 0x20]
addss xmm0, dword [ebp + 0x1c]
call fcn.00416634
mov edx, dword [esp + 0x30]
movss xmm0, dword [esp + 0x50]
ucomiss xmm0, dword [0x4b2470]
jne 0x412f6d
jnp 0x412f98
movsd xmm0, qword [esp + 0x50]
movsd qword [ebp + 0x1c], xmm0
test byte [ebp + 9], 1
jne 0x412f98
mov eax, dword [0x5609a0]
xorps xmm0, xmm0
ucomiss xmm0, dword [eax + 0x2954]
jb 0x412f98
mov ecx, dword [eax + 0x18]
mov dword [eax + 0x2954], ecx
movss xmm0, dword [esp + 0xac]
ucomiss xmm0, dword [0x4b2470]
jne 0x412fac
jnp 0x412fed
movss xmm1, dword [esp + 0xb0]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movss dword [ebp + 0xc], xmm0
cvttps2dq xmm1, xmm1
cvtdq2ps xmm1, xmm1
movss dword [ebp + 0x10], xmm1
test byte [ebp + 9], 1
jne 0x412fed
mov eax, dword [0x5609a0]
xorps xmm0, xmm0
ucomiss xmm0, dword [eax + 0x2954]
jb 0x412fed
mov ecx, dword [eax + 0x18]
mov dword [eax + 0x2954], ecx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x20]
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x14], eax
bt edx, 0x19
jb 0x41301d
movss xmm0, dword [ebp + 0x14]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jbe 0x41301d
mov eax, edx
and eax, 0x40
jne 0x41301d
mulss xmm0, dword [0x4b2574]
jmp 0x41302d
movss xmm0, dword [ebx + 0x1828]
mulss xmm0, dword [0x4b2490]
cvttps2dq xmm0, xmm0
mov esi, dword [esp + 0x24]
cvtdq2ps xmm0, xmm0
movss dword [ebp + 0x230], xmm0
mov ecx, dword [ebp + 0x280]
call fcn.00423008
movzx ecx, byte [ebx + 0x157d]
movzx eax, byte [ebx + 0x157c]
add ecx, ecx
or ecx, eax
mov eax, dword [ebp + 0x280]
mov dword [eax + 0x24], ecx
mov eax, dword [ebx + 0x1824]
mov ecx, dword [ebp + 0x280]
mov eax, dword [eax + 0x44]
push dword [eax + 4]
call fcn.00419ec0
mov eax, dword [0x5609a0]
movss xmm0, dword [eax + 0xa8]
ucomiss xmm0, dword [eax + 0xb0]
jne 0x413095
jnp 0x4130b9
movss xmm0, dword [eax + 0xac]
ucomiss xmm0, dword [eax + 0xb4]
jne 0x4130a8
jnp 0x4130b9
movups xmm0, xmmword [eax + 0xa8]
movups xmmword [esp + 0xac], xmm0
jmp 0x4130dd
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
xor edx, edx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x4c], 0x1000000
jne 0x413104
and eax, 0x4000000
jne 0x413104
lea eax, [esi + 0x1dc]
lea ecx, [esi + 0x1e4]
push 1
push ecx
push eax
jmp 0x413116
lea eax, [esp + 0xb4]
lea ecx, [esp + 0xac]
push 1
push eax
push ecx
call fcn.00403bb0
mov edx, dword [esp + 0x3c]
add esp, 0xc
bt edx, 0x1b
jae 0x4131a5
call fcn.00403f5d
mov edx, dword [esp + 0x30]
cmp eax, ebp
jne 0x4131a5
mov eax, dword [0x5609a0]
movss xmm0, dword [ebx + 0x1ae0]
mov edi, dword [ebp + 0x280]
movsd xmm1, qword [eax + 0x17e4]
movsd xmm2, qword [eax + 0x17ec]
movsd qword [esp + 0x14], xmm2
movsd qword [esp + 0xc], xmm1
mulss xmm0, dword [eax + 0x14ec]
lea eax, [esp + 0xc]
mulss xmm0, dword [esp + 0x18]
movss dword [esp + 0x18], xmm0
push eax
call fcn.004151b7
add esp, 4
lea edx, [esp + 0xb4]
lea esi, [esp + 0xac]
mov ecx, edi
push 0xf
push 0
push eax
push edx
push esi
call fcn.0041c634
mov edx, dword [esp + 0x30]
cmp dword [ebx + 0x1a20], ebp
jne 0x4132cc
movss xmm3, dword [ebp + 0xc]
movss xmm2, dword [ebp + 0x14]
movss xmm1, dword [ebp + 0x10]
movss xmm0, dword [ebp + 0x18]
movss xmm4, dword [ebx + 0x1828]
movss xmm5, dword [esp + 0xac]
addss xmm0, xmm1
addss xmm2, xmm3
subss xmm3, xmm4
subss xmm1, xmm4
addss xmm2, xmm4
addss xmm0, xmm4
ucomiss xmm5, xmm3
movss dword [esp + 0x50], xmm3
movss dword [esp + 0x54], xmm1
movss dword [esp + 0x58], xmm2
movss dword [esp + 0x5c], xmm0
jb 0x413231
movss xmm3, dword [esp + 0xb0]
ucomiss xmm3, xmm1
jb 0x413231
ucomiss xmm2, dword [esp + 0xb4]
jb 0x413231
ucomiss xmm0, dword [esp + 0xb8]
jae 0x4132cc
mov eax, dword [0x5609a0]
movss xmm3, dword [ebx + 0x1a28]
movss xmm0, dword [ebx + 0x14f8]
mov edi, dword [ebp + 0x280]
movsd xmm1, qword [eax + 0x1814]
movsd xmm2, qword [eax + 0x181c]
mulss xmm3, dword [0x4b23e8]
movss dword [esp + 0x60], xmm0
movsd qword [esp + 0x14], xmm2
movsd qword [esp + 0xc], xmm1
mulss xmm3, dword [eax + 0x14ec]
lea eax, [esp + 0xc]
mulss xmm3, dword [esp + 0x18]
movss dword [esp + 0x18], xmm3
push eax
call fcn.004151b7
add esp, 4
lea ecx, [esp + 0x58]
sub esp, 0x14
movss xmm0, dword [esp + 0x74]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
lea eax, [esp + 0x64]
mov ecx, edi
mov dword [esp + 0x10], 0xf
mov dword [esp], eax
movss dword [esp + 0xc], xmm0
call fcn.0041c634
mov edx, dword [esp + 0x30]
movss xmm0, dword [ebp + 0x4c]
movss xmm1, dword [ebp + 0x50]
cmp byte [esp + 0x90], 0
mov al, 1
movss dword [esp + 0x60], xmm0
jne 0x413305
mov eax, dword [ebx + 0x19e4]
test eax, eax
je 0x413303
mov ecx, dword [ebp + 0x300]
cmp ecx, dword [eax + 0x300]
sete al
jmp 0x413305
xor eax, eax
movss xmm2, dword [ebp + 0x10]
test byte [ebp + 8], 1
xorps xmm3, xmm3
mov dword [esp + 0x2c], eax
jne 0x41333c
mov eax, dword [0x5609a0]
movss xmm0, dword [eax + 0x182c]
movss xmm3, dword [eax + 0x1524]
mulss xmm0, dword [ebp + 0x27c]
addss xmm3, xmm3
addss xmm3, xmm0
movss xmm0, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
addss xmm3, xmm2
addss xmm0, dword [ebp + 0x1c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
movss dword [esp + 0x58], xmm0
movss dword [esp + 0x5c], xmm3
cmp byte [ebp + 0x85], 0
je 0x413468
mov esi, dword [ebx + 0x152c]
cmp byte [esp + 0x2c], 0
movss dword [esp + 0xc0], xmm0
movd xmm0, eax
mov eax, 0xc
movss dword [esp + 0x20], xmm3
movss dword [ebx + 0x152c], xmm1
movd dword [esp + 0xf0], xmm0
movd xmm0, ecx
movd dword [esp + 0x4c], xmm0
je 0x4133c0
cmp byte [ebx + 0x1a3a], 1
mov eax, 0xc
sbb eax, 0
mov ecx, dword [0x5609a0]
shl eax, 4
movsd xmm0, qword [ecx + eax + 0x1584]
movsd xmm1, qword [ecx + eax + 0x158c]
lea eax, [esp + 0xc]
movsd qword [esp + 0x14], xmm1
movsd qword [esp + 0xc], xmm0
movss xmm0, dword [ecx + 0x14ec]
mulss xmm0, dword [esp + 0x18]
movss dword [esp + 0x18], xmm0
push eax
call fcn.004151b7
sub esp, 0x18
movss xmm2, dword [esp + 0x3c]
movss xmm1, dword [esp + 0xdc]
movss xmm0, dword [esp + 0x7c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
movss dword [esp + 0xc], xmm2
movss dword [esp + 8], xmm1
movss xmm2, dword [esp + 0x68]
movss xmm1, dword [esp + 0x10c]
movss dword [esp + 0x18], xmm0
movss dword [esp + 4], xmm2
movss dword [esp], xmm1
call fcn.00417c51
add esp, 0x1c
mov dword [ebx + 0x152c], esi
jmp 0x413af7
bt edx, 0x18
mov eax, 3
mov esi, dword [0x5609a0]
mov ecx, 4
movss dword [esp + 0xe0], xmm1
movss dword [esp + 0x4c], xmm2
adc eax, 0xffffffff
test edx, 0x6000000
cmove ecx, eax
lea eax, [esp + 0xc]
shl ecx, 4
movsd xmm0, qword [esi + ecx + 0x1584]
movsd xmm1, qword [esi + ecx + 0x158c]
movsd qword [esp + 0x14], xmm1
movsd qword [esp + 0xc], xmm0
movss xmm0, dword [esi + 0x14ec]
mulss xmm0, dword [esp + 0x18]
movss dword [esp + 0x18], xmm0
push eax
call fcn.004151b7
add esp, 4
cmp dword [ebx + 0x1990], 0
je 0x41353d
movss xmm0, dword [ebx + 0x19d0]
movss xmm1, dword [0x4b23b0]
movss xmm2, dword [0x4b2064]
xorps xmm3, xmm3
mov dword [ebx + 0x1990], 0
and eax, 0xffffff
movss xmm4, dword [ebp + 0x10]
minss xmm1, xmm0
cmpltss xmm0, xmm3
mulss xmm1, dword [section..rdata]
movaps xmm3, xmm0
andps xmm0, xmm2
addss xmm1, xmm2
andnps xmm3, xmm1
orps xmm0, xmm3
cvttss2si ecx, xmm0
shl ecx, 0x18
or eax, ecx
jmp 0x413543
movss xmm4, dword [esp + 0x4c]
mov ebx, dword [esp + 0x30]
movss xmm1, dword [ebp + 0x18]
movss xmm0, dword [ebp + 0xc]
movss xmm2, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x280]
mov edx, ebx
addss xmm2, xmm0
addss xmm1, xmm4
and edx, 1
movss dword [esp + 0xc], xmm2
movss dword [esp + 0x10], xmm1
test ebx, ebx
xorps xmm1, xmm1
xorps xmm2, xmm2
mov dword [esp + 0x4c], edx
lea edi, [edx + edx*2 + 0xc]
mov edx, 0xc
cmovns edx, edi
test byte [ebp + 8], 1
jne 0x4135b3
movss xmm3, dword [esi + 0x182c]
movss xmm2, dword [esi + 0x1524]
mulss xmm3, dword [ebp + 0x27c]
addss xmm2, xmm2
addss xmm2, xmm3
lea edi, [esp + 0x78]
addss xmm0, xmm1
addss xmm2, xmm4
movss dword [edi], xmm0
movss dword [edi + 4], xmm2
sub esp, 0x14
movss xmm0, dword [esp + 0x74]
lea esi, [esp + 0x20]
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov dword [esp], edi
mov dword [esp + 4], esi
movss dword [esp + 0xc], xmm0
call fcn.0041c634
movzx eax, byte [esp + 0x2c]
mov ecx, dword [0x5609a0]
shl eax, 4
movsd xmm0, qword [eax + ecx + 0x1624]
movsd xmm1, qword [eax + ecx + 0x162c]
movsd qword [esp + 0x14], xmm1
movsd qword [esp + 0xc], xmm0
movss xmm0, dword [ecx + 0x14ec]
mulss xmm0, dword [esp + 0x18]
movss dword [esp + 0x18], xmm0
push esi
call fcn.004151b7
add esp, 4
test bl, 1
jne 0x413676
mov ecx, dword [ebp + 0x280]
lea edx, [esp + 0x58]
sub esp, 0x14
movss xmm0, dword [esp + 0x74]
mov dword [esp + 8], eax
lea eax, [esp + 0x64]
mov dword [esp + 4], edx
mov dword [esp + 0x10], 3
mov dword [esp], eax
movss dword [esp + 0xc], xmm0
call fcn.0041c634
mov ebx, dword [esp + 0x30]
bt ebx, 0xa
mov ebx, dword [esp + 0x1c]
jae 0x41385e
mov ecx, ebp
push edi
call fcn.00414f74
lea ebx, [esp + 0x80]
movss xmm1, dword [ebp + 0x10]
movss xmm2, dword [ebp + 0x18]
movss xmm0, dword [ebp + 0xc]
movss xmm3, dword [ebp + 0x14]
test byte [esp + 0x30], 1
movss xmm5, dword [ebx - 4]
movss xmm4, dword [ebx - 8]
movaps xmm6, xmm1
addss xmm2, xmm1
addss xmm3, xmm0
cmpless xmm6, xmm5
andps xmm5, xmm6
andnps xmm6, xmm1
movaps xmm1, xmm0
cmpless xmm1, xmm4
orps xmm6, xmm5
andps xmm4, xmm1
andnps xmm1, xmm0
orps xmm1, xmm4
movss dword [ebx - 8], xmm1
movss dword [ebx - 4], xmm6
movss xmm0, dword [ebx + 4]
movss xmm1, dword [ebx]
minss xmm1, xmm3
minss xmm0, xmm2
movss dword [ebx], xmm1
movss dword [ebx + 4], xmm0
xorps xmm0, xmm0
mov esi, dword [ebp + 0x280]
je 0x413715
movss xmm0, dword [esp + 0x60]
mov eax, dword [0x5609a0]
movss dword [esp + 0x2c], xmm0
movsd xmm0, qword [eax + 0x1654]
movsd xmm1, qword [eax + 0x165c]
movsd qword [esp + 0x14], xmm1
movsd qword [esp + 0xc], xmm0
movss xmm0, dword [eax + 0x14ec]
lea eax, [esp + 0xc]
mulss xmm0, dword [esp + 0x18]
movss dword [esp + 0x18], xmm0
push eax
call fcn.004151b7
sub esp, 0x10
movss xmm0, dword [esp + 0x40]
mov ecx, esi
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0x10], 3
movss dword [esp + 0xc], xmm0
call fcn.0041c634
mov ebx, dword [esp + 0x1c]
movss xmm1, dword [ebx + 0x152c]
ucomiss xmm1, dword [0x4b23b4]
jbe 0x41385e
movss xmm0, dword [ebp + 0x10]
movss xmm2, dword [esp + 0x84]
addss xmm0, dword [ebp + 0x18]
ucomiss xmm0, xmm2
jbe 0x41385e
mov eax, dword [0x5609a0]
movss dword [esp + 0x2c], xmm1
mov esi, dword [ebp + 0x280]
movsd xmm0, qword [eax + 0x15d4]
movsd xmm1, qword [eax + 0x15dc]
movsd qword [esp + 0x14], xmm1
movsd qword [esp + 0xc], xmm0
movss xmm0, dword [eax + 0x14ec]
lea eax, [esp + 0xc]
mulss xmm0, dword [esp + 0x18]
movss dword [esp + 0x18], xmm0
push eax
movss dword [esp + 0xc0], xmm2
call fcn.004151b7
add esp, 4
movsd xmm0, qword [esp + 0x80]
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0x88]
movsd qword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0xbc]
mov dword [edx], ecx
movss dword [edx + 4], xmm0
sub esp, 0x10
movss xmm0, dword [esp + 0x3c]
mov dword [esp + 8], eax
lea eax, [esp + 0x1c]
mov ecx, esi
mov dword [esp], edx
mov dword [esp + 4], eax
movss dword [esp + 0xc], xmm0
call fcn.00419a10
cmp byte [ebp + 0x80], 0
je 0x413871
push 1
call fcn.004152e9
add esp, 4
cmp byte [ebp + 0x81], 0
je 0x413884
push 0
call fcn.004152e9
add esp, 4
movss xmm1, dword [esp + 0xe0]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
jbe 0x413944
mov eax, dword [0x5609a0]
mov esi, dword [ebp + 0x280]
lea edi, [esp + 0xc]
movsd xmm0, qword [eax + 0x15d4]
movsd xmm1, qword [eax + 0x15dc]
movsd qword [esp + 0x14], xmm1
movsd qword [esp + 0xc], xmm0
movss xmm0, dword [eax + 0x14ec]
mulss xmm0, dword [esp + 0x18]
movss dword [esp + 0x18], xmm0
push edi
call fcn.004151b7
add esp, 4
movss xmm0, dword [ebp + 0xc]
movss xmm1, dword [ebp + 0x10]
addss xmm1, dword [ebp + 0x18]
addss xmm0, dword [ebp + 0x14]
movss dword [esp + 0xc], xmm0
movss dword [esp + 0x10], xmm1
sub esp, 0x18
movss xmm0, dword [esp + 0xf8]
movss xmm1, dword [esp + 0x78]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x5c]
mov ecx, esi
mov dword [esp + 4], edi
lea edi, [esp + 0x90]
mov dword [esp + 0x10], 0xf
movss dword [esp + 0x14], xmm0
movss dword [esp + 0xc], xmm1
mov dword [esp], eax
call fcn.0041fd5c
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x413a2b
movss xmm0, dword [0x4b24d0]
movups xmm3, xmmword [esp + 0xf0]
movups xmm2, xmmword [esp + 0xc0]
mov ecx, edi
mov edx, ebp
mulss xmm0, xmm3
mulss xmm3, dword [0x4b26f8]
addss xmm2, xmm0
movaps xmm0, xmm2
cmpless xmm0, xmm3
movaps xmm1, xmm0
andps xmm0, xmm3
andnps xmm1, xmm2
orps xmm0, xmm1
xorps xmm1, xmm1
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
push eax
call fcn.0040f2b9
add esp, 4
movss xmm0, dword [0x4b23b0]
mov eax, dword [0x5609a0]
mov esi, dword [ebp + 0x280]
maxss xmm0, dword [esp + 0xe0]
movsd xmm1, qword [eax + 0x175c]
movss dword [esp + 0x60], xmm0
movsd xmm0, qword [eax + 0x1754]
movsd qword [esp + 0x14], xmm1
movsd qword [esp + 0xc], xmm0
movss xmm0, dword [eax + 0x14ec]
lea eax, [esp + 0xc]
mulss xmm0, dword [esp + 0x18]
movss dword [esp + 0x18], xmm0
push eax
call fcn.004151b7
add esp, 4
lea ecx, [esp + 0x80]
sub esp, 0x10
movss xmm0, dword [esp + 0x70]
mov dword [esp + 4], ecx
mov ecx, esi
mov dword [esp + 8], eax
mov dword [esp], edi
movss dword [esp + 0xc], xmm0
call fcn.00419a10
movss xmm1, dword [ebx + 0x152c]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
setbe al
or al, byte [esp + 0x4c]
jne 0x413af7
mov eax, dword [0x5609a0]
movss dword [esp + 0x60], xmm1
mov esi, dword [ebp + 0x280]
movsd xmm0, qword [eax + 0x15d4]
movsd xmm1, qword [eax + 0x15dc]
movsd qword [esp + 0x14], xmm1
movsd qword [esp + 0xc], xmm0
movss xmm0, dword [eax + 0x14ec]
lea eax, [esp + 0xc]
mulss xmm0, dword [esp + 0x18]
movss dword [esp + 0x18], xmm0
push eax
call fcn.004151b7
add esp, 4
movss xmm2, dword [esp + 0x5c]
movss xmm0, dword [ebx + 0x14fc]
movss xmm1, dword [esp + 0x58]
subss xmm1, xmm0
addss xmm0, dword [esp + 0x50]
addss xmm2, dword [0x4b23a8]
movss dword [esp + 0xc], xmm1
movss dword [esp + 0x78], xmm0
movss dword [esp + 0x10], xmm2
movss dword [esp + 0x7c], xmm2
sub esp, 0x10
movss xmm0, dword [esp + 0x70]
mov dword [esp + 8], eax
lea eax, [esp + 0x1c]
mov ecx, esi
mov dword [esp], edi
mov dword [esp + 4], eax
movss dword [esp + 0xc], xmm0
call fcn.00419a10
cmp dword [ebx + 0x1a20], ebp
jne 0x413c76
movss xmm1, dword [ebx + 0x14f8]
movss xmm0, dword [ebp + 0x4c]
movss xmm4, dword [ebp + 0xc]
movss xmm3, dword [ebp + 0x14]
movss xmm5, dword [ebx + 0x1828]
movss xmm6, dword [esp + 0xac]
movaps xmm7, xmm1
addss xmm3, xmm4
subss xmm4, xmm5
cmpless xmm7, xmm0
addss xmm3, xmm5
ucomiss xmm6, xmm4
movaps xmm2, xmm7
andnps xmm7, xmm1
movss xmm1, dword [ebp + 0x18]
andps xmm2, xmm0
orps xmm7, xmm2
movss xmm2, dword [ebp + 0x10]
movss dword [esp + 0x78], xmm4
addss xmm1, xmm2
subss xmm2, xmm5
addss xmm1, xmm5
movss dword [esp + 0x7c], xmm2
movss dword [esp + 0x80], xmm3
movss dword [esp + 0x84], xmm1
jb 0x413be3
movss xmm6, dword [esp + 0xb0]
ucomiss xmm6, xmm2
jb 0x413be3
ucomiss xmm3, dword [esp + 0xb4]
jb 0x413be3
ucomiss xmm1, dword [esp + 0xb8]
jb 0x413be3
movss xmm6, dword [0x4b23a8]
movaps xmm7, xmm0
subss xmm6, xmm5
subss xmm4, xmm6
subss xmm2, xmm6
addss xmm3, xmm6
addss xmm1, xmm6
movss dword [esp + 0x78], xmm4
movss dword [esp + 0x7c], xmm2
movss dword [esp + 0x80], xmm3
movss dword [esp + 0x84], xmm1
mov eax, dword [0x5609a0]
movss xmm0, dword [ebx + 0x1a28]
mov edi, dword [ebp + 0x280]
movups xmmword [esp + 0x60], xmm7
movsd xmm1, qword [eax + 0x1814]
movsd xmm2, qword [eax + 0x181c]
movsd qword [esp + 0x14], xmm2
movsd qword [esp + 0xc], xmm1
mulss xmm0, dword [eax + 0x14ec]
lea eax, [esp + 0xc]
mulss xmm0, dword [esp + 0x18]
movss dword [esp + 0x18], xmm0
push eax
call fcn.004151b7
add esp, 4
lea ecx, [esp + 0x80]
sub esp, 0x18
movups xmm0, xmmword [esp + 0x78]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
lea eax, [esp + 0x90]
mov ecx, edi
mov dword [esp + 0x14], 0x40400000
mov dword [esp + 0x10], 0xffffffff
mov dword [esp], eax
movss dword [esp + 0xc], xmm0
call fcn.0041fd5c
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x20]
mov edi, dword [esp + 0x24]
xorps xmm4, xmm4
xorps xmm5, xmm5
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x2c], eax
movss xmm7, dword [ebp + 0xc]
movss xmm0, dword [ebp + 0x5c]
movss xmm1, dword [ebp + 0x44]
movss dword [esp + 0xc0], xmm7
subss xmm7, xmm0
movss dword [esp + 0x20], xmm0
movaps xmm0, xmm7
addss xmm0, xmm1
movss dword [ebp + 0x21c], xmm0
movss xmm2, dword [ebp + 0x10]
movss xmm0, dword [ebp + 0x60]
mov eax, dword [ebp + 8]
movss xmm3, dword [ebp + 0x48]
movss dword [esp + 0x60], xmm2
subss xmm2, xmm0
test al, 1
movss dword [esp + 0x2c], xmm0
movaps xmm6, xmm2
addss xmm6, xmm3
jne 0x413d10
mov ecx, dword [0x5609a0]
movss xmm0, dword [ecx + 0x182c]
movss xmm5, dword [ecx + 0x1524]
mulss xmm0, dword [ebp + 0x27c]
addss xmm5, xmm5
addss xmm5, xmm0
addss xmm6, xmm5
bt eax, 0xa
jae 0x413d48
mov ecx, dword [0x5609a0]
movss xmm0, dword [ecx + 0x182c]
movss xmm4, dword [ecx + 0x1524]
mulss xmm0, dword [ebp + 0x27c]
addss xmm4, xmm4
addss xmm0, dword [ebp + 0x150]
addss xmm4, xmm0
addss xmm6, xmm4
xorps xmm4, xmm4
subss xmm7, xmm1
movss dword [ebp + 0x220], xmm6
movss xmm6, dword [ebp + 0x3c]
ucomiss xmm6, xmm4
jne 0x413d71
jp 0x413d71
movss xmm6, dword [ebp + 0x14]
subss xmm6, dword [ebp + 0x74]
addss xmm7, xmm6
subss xmm2, xmm3
movss dword [ebp + 0x224], xmm7
movss xmm6, dword [ebp + 0x40]
ucomiss xmm6, xmm4
jne 0x413d97
jp 0x413d97
movss xmm6, dword [ebp + 0x18]
subss xmm6, dword [ebp + 0x78]
addss xmm2, xmm6
xorps xmm6, xmm6
xor ecx, ecx
test al, 1
addss xmm1, xmm6
movss dword [ebp + 0x228], xmm2
subss xmm1, dword [esp + 0x20]
movss dword [ebp + 0x1c0], xmm1
mov dword [ebp + 0x1c4], ecx
mov dword [ebp + 0x1c8], ecx
jne 0x413df0
mov ecx, dword [0x5609a0]
movss xmm0, dword [ecx + 0x182c]
movss xmm6, dword [ecx + 0x1524]
mulss xmm0, dword [ebp + 0x27c]
addss xmm6, xmm6
addss xmm6, xmm0
bt eax, 0xa
jb 0x413e00
mov eax, dword [0x5609a0]
xorps xmm2, xmm2
jmp 0x413e2d
mov eax, dword [0x5609a0]
movss xmm0, dword [eax + 0x182c]
movss xmm2, dword [eax + 0x1524]
mulss xmm0, dword [ebp + 0x27c]
addss xmm2, xmm2
addss xmm0, dword [ebp + 0x150]
addss xmm2, xmm0
addss xmm6, xmm2
movss xmm0, dword [esp + 0xc0]
movss xmm4, dword [esp + 0x60]
xorps xmm2, xmm2
xor ebx, ebx
addss xmm3, xmm6
addss xmm1, xmm2
subss xmm3, dword [esp + 0x2c]
addss xmm1, xmm0
movss dword [ebp + 0xe0], xmm1
addss xmm4, xmm3
movss dword [ebp + 0xe4], xmm4
mov ecx, dword [ebp + 0xe4]
mov edx, dword [ebp + 0xe0]
movd xmm0, edx
movd xmm1, ecx
punpckldq xmm0, xmm1
pshufd xmm0, xmm0, 0x44
movdqu xmmword [ebp + 0xd0], xmm0
mov dword [ebp + 0xe8], edx
mov dword [ebp + 0xec], ecx
mov byte [ebp + 0x134], bl
mov dword [ebp + 0xf4], ebx
mov dword [ebp + 0xf0], ebx
mov dword [ebp + 0xfc], ebx
mov dword [ebp + 0xf8], ebx
mov eax, dword [eax + 0x18f8]
movss xmm0, dword [eax + 0x20]
movss xmm1, dword [eax + 0x38]
subss xmm0, dword [eax + 0x78]
subss xmm1, xmm0
movaps xmm0, xmm1
cmpless xmm0, xmm2
andnps xmm0, xmm1
ucomiss xmm0, xmm2
movd xmm0, ecx
seta byte [ebp + 0x135]
addss xmm0, dword [0x4b2704]
mov eax, dword [ebp + 0x144]
mov dword [ebp + 0x140], eax
mov dword [ebp + 0x144], ebx
mov byte [ebp + 0x148], bl
movss dword [ebp + 0x100], xmm0
mov eax, dword [ebp + 0x158]
test eax, eax
jns 0x413fa3
mov esi, eax
xor ecx, ecx
shr esi, 0x1f
add esi, eax
sar esi, 1
add esi, eax
cmovs esi, ecx
cmp eax, esi
jge 0x413fa3
inc dword [0x560da8]
lea eax, [esi*4]
push dword [0x560dac]
push eax
call dword [0x554020]
add esp, 8
mov edi, eax
mov eax, dword [ebp + 0x15c]
test eax, eax
je 0x413f79
mov ecx, dword [ebp + 0x154]
shl ecx, 2
push ecx
push eax
push edi
call fcn.0048b1e0
add esp, 0xc
mov eax, dword [ebp + 0x15c]
test eax, eax
je 0x413f83
dec dword [0x560da8]
push dword [0x560dac]
push eax
call dword [0x554024]
add esp, 8
mov dword [ebp + 0x15c], edi
mov edi, dword [esp + 0x24]
mov dword [ebp + 0x158], esi
test edi, edi
mov dword [ebp + 0x154], ebx
mov dword [ebp + 0x164], ebx
je 0x413fb9
mov ebx, dword [edi + 0x164]
mov dword [ebp + 0x168], ebx
mov dword [ebp + 0x16c], 1
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x17c]
mov ecx, dword [ebp + 0x230]
test eax, eax
mov dword [ebp + 0x170], ecx
mov dword [ebp + 0x174], 0xbf800000
jns 0x414072
mov esi, eax
xor ecx, ecx
shr esi, 0x1f
add esi, eax
sar esi, 1
add esi, eax
cmovs esi, ecx
cmp eax, esi
jge 0x414072
inc dword [0x560da8]
lea eax, [esi*4]
push dword [0x560dac]
push eax
call dword [0x554020]
add esp, 8
mov edi, eax
mov eax, dword [ebp + 0x180]
test eax, eax
je 0x414048
mov ecx, dword [ebp + 0x178]
shl ecx, 2
push ecx
push eax
push edi
call fcn.0048b1e0
add esp, 0xc
mov eax, dword [ebp + 0x180]
test eax, eax
je 0x414052
dec dword [0x560da8]
push dword [0x560dac]
push eax
call dword [0x554024]
add esp, 8
mov dword [ebp + 0x180], edi
mov edi, dword [esp + 0x24]
mov dword [ebp + 0x17c], esi
mov dword [ebp + 0x178], 0
mov eax, dword [ebp + 0x188]
test eax, eax
jns 0x41410b
mov esi, eax
xor ecx, ecx
shr esi, 0x1f
add esi, eax
sar esi, 1
add esi, eax
cmovs esi, ecx
cmp eax, esi
jge 0x41410b
inc dword [0x560da8]
lea eax, [esi*4]
push dword [0x560dac]
push eax
call dword [0x554020]
add esp, 8
mov edi, eax
mov eax, dword [ebp + 0x18c]
test eax, eax
je 0x4140e1
mov ecx, dword [ebp + 0x184]
shl ecx, 2
push ecx
push eax
push edi
call fcn.0048b1e0
add esp, 0xc
mov eax, dword [ebp + 0x18c]
test eax, eax
je 0x4140eb
dec dword [0x560da8]
push dword [0x560dac]
push eax
call dword [0x554024]
add esp, 8
mov dword [ebp + 0x18c], edi
mov edi, dword [esp + 0x24]
mov dword [ebp + 0x188], esi
mov dword [ebp + 0x184], 0
mov eax, dword [ebp + 0x194]
test eax, eax
jns 0x4141a4
mov esi, eax
xor ecx, ecx
shr esi, 0x1f
add esi, eax
sar esi, 1
add esi, eax
cmovs esi, ecx
cmp eax, esi
jge 0x4141a4
inc dword [0x560da8]
lea eax, [esi*4]
push dword [0x560dac]
push eax
call dword [0x554020]
add esp, 8
mov edi, eax
mov eax, dword [ebp + 0x198]
test eax, eax
je 0x41417a
mov ecx, dword [ebp + 0x190]
shl ecx, 2
push ecx
push eax
push edi
call fcn.0048b1e0
add esp, 0xc
mov eax, dword [ebp + 0x198]
test eax, eax
je 0x414184
dec dword [0x560da8]
push dword [0x560dac]
push eax
call dword [0x554024]
add esp, 8
mov dword [ebp + 0x198], edi
mov edi, dword [esp + 0x24]
mov dword [ebp + 0x194], esi
xor esi, esi
lea eax, [ebp + 0x264]
mov dword [ebp + 0x190], esi
mov dword [ebp + 0x1cc], esi
mov dword [ebp + 0x104], esi
mov dword [ebp + 0x108], esi
mov dword [ebp + 0x160], eax
mov eax, dword [ebp + 0x1a0]
test eax, eax
jns 0x41425d
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
cmovns esi, ecx
cmp eax, esi
jge 0x41425d
inc dword [0x560da8]
lea eax, [esi*8]
lea eax, [eax + eax*4]
push dword [0x560dac]
push eax
call dword [0x554020]
add esp, 8
mov edi, eax
mov eax, dword [ebp + 0x1a4]
test eax, eax
je 0x414233
mov ecx, dword [ebp + 0x19c]
shl ecx, 3
lea ecx, [ecx + ecx*4]
push ecx
push eax
push edi
call fcn.0048b1e0
add esp, 0xc
mov eax, dword [ebp + 0x1a4]
test eax, eax
je 0x41423d
dec dword [0x560da8]
push dword [0x560dac]
push eax
call dword [0x554024]
add esp, 8
mov dword [ebp + 0x1a4], edi
mov edi, dword [esp + 0x24]
mov dword [ebp + 0x1a0], esi
mov dword [ebp + 0x19c], 0
lea ecx, [ebp + 0x234]
movss xmm0, dword [ebx + 0x1530]
sub esp, 0xc
movzx eax, byte [esp + 0x36]
movss dword [esp + 4], xmm0
mov dword [esp], 3
mov dword [esp + 8], eax
call fcn.00407552
mov edx, dword [esp + 0x30]
bt edx, 0x18
jae 0x414379
mov eax, dword [edi + 0x16c]
cmp dword [ebp + 0x16c], eax
je 0x414379
mov dword [ebp + 0x16c], eax
mov ecx, dword [ebp + 0x178]
cmp ecx, dword [ebp + 0x17c]
jne 0x414366
lea esi, [ecx + 1]
test ecx, ecx
je 0x4142df
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
add edx, ecx
jmp 0x4142e4
mov edx, 8
cmp edx, esi
cmovge esi, edx
cmp ecx, esi
jge 0x414366
inc dword [0x560da8]
lea eax, [esi*4]
push dword [0x560dac]
push eax
call dword [0x554020]
add esp, 8
mov edi, eax
mov eax, dword [ebp + 0x180]
test eax, eax
je 0x414330
mov ecx, dword [ebp + 0x178]
shl ecx, 2
push ecx
push eax
push edi
call fcn.0048b1e0
add esp, 0xc
mov eax, dword [ebp + 0x180]
test eax, eax
je 0x41433a
dec dword [0x560da8]
push dword [0x560dac]
push eax
call dword [0x554024]
add esp, 8
mov dword [ebp + 0x180], edi
mov dword [ebp + 0x17c], esi
mov edi, dword [esp + 0x24]
mov eax, dword [ebp + 0x16c]
mov ecx, dword [ebp + 0x178]
mov edx, dword [ebp + 0x180]
mov dword [edx + ecx*4], eax
inc dword [ebp + 0x178]
mov edx, dword [esp + 0x30]
mov eax, dword [ebp + 0x9c]
test eax, eax
jle 0x41438a
dec eax
mov dword [ebp + 0x9c], eax
mov eax, dword [ebp + 0xa0]
test eax, eax
jle 0x41439b
dec eax
mov dword [ebp + 0xa0], eax
cmp byte [esp + 0x90], 0
je 0x4143bd
push ebp
call fcn.00418676
add esp, 4
push 0
push ebp
call fcn.0040eb94
mov edx, dword [esp + 0x38]
add esp, 8
test dl, 1
jne 0x414774
mov esi, dword [ebp + 0x16c]
inc dword [ebp + 0x138]
shl dword [ebp + 0x13c], 1
mov eax, esi
or eax, 0x10
test dl, 0x20
mov dword [ebp + 0x16c], eax
jne 0x4144fd
mov eax, dword [ebp + 0x1d0]
mov ecx, dword [ebp + 0x1d8]
mov dword [esp + 0x90], esi
push dword [ecx + eax*4 - 4]
push 0
push str.COLLAPSE
call fcn.0040206f
add esp, 0xc
mov edi, eax
mov eax, dword [0x5609a0]
cmp dword [eax + 0x1914], edi
jne 0x414428
mov byte [eax + 0x1920], 1
mov eax, dword [esp + 0x44]
movsd xmm2, qword [ebx + 0x1520]
movss xmm0, dword [ebx + 0x1828]
xor ebx, ebx
movsd xmm1, qword [eax]
addps xmm2, xmm1
movaps xmm1, xmm2
movaps xmm3, xmm2
shufps xmm1, xmm2, 0xe5
addss xmm1, xmm0
addss xmm0, xmm2
shufps xmm3, xmm0, 0x84
shufps xmm1, xmm3, 0x20
shufps xmm2, xmm1, 0x24
addps xmm2, xmmword [0x4b2580]
movups xmmword [esp + 0xc], xmm2
push ebx
push edi
lea esi, [esp + 0x14]
push esi
call fcn.004103dc
add esp, 0xc
push ebx
push ebx
push ebx
push edi
push esi
call fcn.0040b7a2
add esp, 0x14
test al, al
je 0x414496
mov byte [ebp + 0x86], 1
push 1
push edi
lea eax, [esp + 0x14]
push eax
call fcn.00406e08
add esp, 0xc
movss xmm0, dword [ebp + 0xc]
mov ebx, dword [esp + 0x1c]
movss xmm1, dword [ebp + 0x10]
xor eax, eax
cmp byte [ebp + 0x85], 0
addss xmm1, dword [ebx + 0x1524]
addss xmm0, dword [ebx + 0x1520]
sete al
lea eax, [eax + eax + 1]
sub esp, 0x10
mov dword [esp + 8], eax
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
mov dword [esp + 0xc], 0x3f800000
call fcn.004068c7
add esp, 0x10
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x13c]
cmp dword [esp + 0x134], 0
je 0x4145d7
movss xmm1, dword [ebx + 0x1828]
movss xmm2, dword [0x4b23b0]
movss xmm0, dword [ebx + 0x1524]
movss xmm3, dword [ebp + 0xc]
mulss xmm1, dword [0x4b2064]
addss xmm3, dword [ebp + 0x14]
addss xmm2, xmm1
movss dword [esp + 0x90], xmm2
movaps xmm2, xmm0
xorps xmm0, xmmword [0x4b2430]
addss xmm2, xmm1
addss xmm2, dword [ebp + 0x10]
subss xmm0, xmm1
addss xmm3, xmm0
movss dword [esp + 0xc], xmm3
movss dword [esp + 0x10], xmm2
mov eax, dword [ebp + 0x1d0]
mov ecx, dword [ebp + 0x1d8]
push dword [ecx + eax*4 - 4]
push 0
push str.CLOSE
call fcn.0040206f
add esp, 0xc
mov ecx, dword [0x5609a0]
cmp dword [ecx + 0x1914], eax
jne 0x4145a4
mov byte [ecx + 0x1920], 1
sub esp, 0xc
movss xmm0, dword [esp + 0x9c]
lea ecx, [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
movss dword [esp + 8], xmm0
call fcn.00404051
add esp, 0xc
test al, al
je 0x4145d7
mov eax, dword [esp + 0x134]
mov byte [eax], 0
dec dword [ebp + 0x138]
sar dword [ebp + 0x13c], 1
xor ebx, ebx
mov dword [ebp + 0x16c], esi
push dword [0x554004]
push ebx
call fcn.00406b18
add esp, 8
mov eax, dword [esp + 0x130]
test edi, edi
lea esi, [esp + 0x88]
cmovne eax, edi
push 0xbf800000
push 1
push ebx
mov ebx, dword [esp + 0x28]
mov edi, eax
push eax
push esi
call fcn.00415df6
add esp, 0x14
movsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
test byte [esp + 0x30], 0x20
movsd qword [esp + 0x14], xmm1
movsd qword [esp + 0xc], xmm0
movss xmm0, dword [ebx + 0x1520]
movaps xmm1, xmm0
jne 0x414663
movss xmm1, dword [ebx + 0x1828]
addss xmm1, xmm0
addss xmm1, dword [ebx + 0x1538]
cmp dword [esp + 0x134], 0
movaps xmm2, xmm0
je 0x414684
movss xmm2, dword [ebx + 0x1828]
addss xmm2, xmm0
addss xmm2, dword [ebx + 0x1538]
lea ecx, [esp + 0x14]
movaps xmm4, xmm1
movss xmm3, dword [ebx + 0x1508]
xorps xmm5, xmm5
cmp dword [esp + 0x134], 0
lea eax, [ebx + 0x1508]
addss xmm1, dword [ecx - 8]
subss xmm4, xmm2
mulss xmm4, xmm3
cmpltss xmm5, xmm3
movss dword [ecx - 8], xmm1
addss xmm4, xmm2
movss xmm1, dword [ecx]
andps xmm4, xmm5
andnps xmm5, xmm2
orps xmm5, xmm4
subss xmm1, xmm5
movss dword [ecx], xmm1
movsd xmm1, qword [ecx]
movsd qword [esp + 0x80], xmm1
movsd xmm1, qword [ecx - 8]
movsd qword [esp + 0x78], xmm1
movss xmm1, dword [ebp + 0xc]
addss xmm1, dword [ebp + 0x14]
je 0x41470c
movss xmm0, dword [esp + 0x5c]
subss xmm0, dword [esp + 0x54]
addss xmm0, dword [0x4b2708]
lea edx, [esp + 0x78]
subss xmm1, xmm0
movss dword [edx + 8], xmm1
push edx
push eax
push esi
push 0
push edi
push ecx
lea eax, [esp + 0x24]
push eax
call fcn.0040fa40
add esp, 0x1c
mov eax, dword [0x5609a0]
mov ecx, dword [eax + 0x193c]
mov edx, dword [eax + 0x1944]
lea ecx, [ecx + ecx*4]
mov esi, dword [edx + ecx*4 - 0x14]
movsd xmm0, qword [edx + ecx*4 - 8]
shl esi, 4
movsd qword [eax + esi + 0x158c], xmm0
movsd xmm0, qword [edx + ecx*4 - 0x10]
movsd qword [eax + esi + 0x1584], xmm0
dec dword [eax + 0x193c]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
movss xmm4, dword [ebp + 0x1e0]
movss xmm3, dword [ebp + 0x10]
movss xmm0, dword [ebp + 0x18]
movss xmm2, dword [ebp + 0xc]
movss xmm1, dword [ebp + 0x14]
lea ecx, [ebp + 0x50]
movaps xmm5, xmm4
addss xmm0, xmm3
addss xmm1, xmm2
cmpless xmm5, xmm3
andps xmm3, xmm5
andnps xmm5, xmm4
orps xmm5, xmm3
movss xmm3, dword [ebp + 0x1dc]
movaps xmm4, xmm3
cmpless xmm4, xmm2
andps xmm2, xmm4
andnps xmm4, xmm3
movaps xmm3, xmm1
orps xmm4, xmm2
movaps xmm2, xmm0
movss dword [ebp + 0x1ec], xmm4
movss dword [ebp + 0x1f0], xmm5
minss xmm2, dword [ebp + 0x1e8]
minss xmm3, dword [ebp + 0x1e4]
movss dword [ebp + 0x1f4], xmm3
movss dword [ebp + 0x1f8], xmm2
movss xmm3, dword [esp + 0x50]
movss xmm6, dword [ebp + 0x50]
movaps xmm4, xmm3
addss xmm4, xmm6
movss dword [ebp + 0x1fc], xmm4
movss xmm7, dword [esp + 0x5c]
test byte [ebp + 9], 4
jne 0x41482b
mov eax, dword [0x5609a0]
xorps xmm5, xmm5
jmp 0x414858
mov eax, dword [0x5609a0]
movss xmm2, dword [eax + 0x182c]
movss xmm5, dword [eax + 0x1524]
mulss xmm2, dword [ebp + 0x27c]
addss xmm5, xmm5
addss xmm2, dword [ebp + 0x150]
addss xmm5, xmm2
and edx, 0x401
lea esi, [ebx + 0x152c]
addss xmm5, xmm7
movss dword [esp + 0x90], xmm7
movss xmm7, dword [0x4b2064]
cmp edx, 1
cmove esi, ecx
addss xmm5, dword [esi]
addss xmm4, xmm7
movss dword [ebp + 0x200], xmm5
subss xmm1, dword [ebp + 0x74]
subss xmm1, xmm6
movss dword [ebp + 0x204], xmm1
subss xmm0, dword [ebp + 0x78]
subss xmm0, xmm6
movss dword [ebp + 0x208], xmm0
movss xmm2, dword [ebp + 0x44]
mulss xmm2, xmm7
subss xmm2, xmm6
xorps xmm6, xmm6
cvttss2si ecx, xmm2
test ecx, ecx
jle 0x4148d0
cvttps2dq xmm2, xmm2
cvtdq2ps xmm6, xmm2
addss xmm4, xmm6
addss xmm1, xmm7
addss xmm0, xmm7
addss xmm5, xmm7
lea ecx, [ebp + 0x20c]
lea edx, [ebp + 0x214]
cvttps2dq xmm2, xmm4
subss xmm1, xmm6
cvttps2dq xmm0, xmm0
cvtdq2ps xmm2, xmm2
cvttps2dq xmm1, xmm1
cvtdq2ps xmm0, xmm0
movss dword [ebp + 0x20c], xmm2
cvttps2dq xmm2, xmm5
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
movss dword [ebp + 0x210], xmm2
movss dword [ebp + 0x214], xmm1
movss dword [ebp + 0x218], xmm0
mov esi, dword [ebp + 0x54]
mov dword [ebp + 0x10c], esi
xor esi, esi
movss xmm0, dword [eax + 0x1540]
movss xmm1, dword [eax + 0xd4]
subss xmm3, xmm0
ucomiss xmm1, xmm3
jb 0x41499a
movss xmm2, dword [eax + 0x1544]
movss xmm3, dword [esp + 0x54]
movss xmm5, dword [eax + 0xd8]
movss xmm4, dword [esp + 0x90]
addss xmm0, dword [esp + 0x58]
subss xmm3, xmm2
addss xmm4, xmm2
ucomiss xmm5, xmm3
setae al
ucomiss xmm0, xmm1
seta ah
ucomiss xmm4, xmm5
seta bl
and bl, al
and bl, ah
movzx esi, bl
mov ebx, dword [esp + 0x1c]
mov dword [ebp + 0x110], esi
movsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
movsd qword [ebp + 0x114], xmm0
movsd qword [ebp + 0x11c], xmm1
push 1
push edx
push ecx
call fcn.00403bb0
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x118]
mov byte [ebp + 0x84], 0
inc dword [ebp + 0x94]
xor eax, eax
bt ecx, 0x18
mov dword [esi + 4], eax
mov dword [esi], eax
mov dword [esi + 0xc], eax
mov dword [esi + 8], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x18], eax
jae 0x414a5f
test edi, edi
je 0x414a08
mov al, byte [edi + 0x85]
jmp 0x414a0a
xor eax, eax
test cl, 0x40
mov byte [ebp + 0x85], al
jne 0x414a54
cmp dword [ebp + 0x9c], 0
jg 0x414a54
cmp dword [ebp + 0xa0], 0
jg 0x414a54
movss xmm0, dword [ebp + 0x1ec]
mov cl, 1
ucomiss xmm0, dword [ebp + 0x1f4]
jae 0x414a4c
movss xmm0, dword [ebp + 0x1f0]
ucomiss xmm0, dword [ebp + 0x1f8]
setae cl
or al, cl
mov byte [ebp + 0x85], al
test al, al
je 0x414a5f
mov byte [ebp + 0x82], 0
xorps xmm0, xmm0
ucomiss xmm0, dword [ebx + 0x14ec]
jb 0x414a72
mov byte [ebp + 0x82], 0
cmp byte [ebp + 0x85], 0
je 0x414a90
cmp dword [ebp + 0x9c], 0
jg 0x414a99
cmp dword [ebp + 0xa0], 0
setle al
jmp 0x414a9b
cmp byte [ebp + 0x82], 0
je 0x414a7b
xor eax, eax
test al, al
mov byte [ebp + 0x87], al
sete al
add esp, 0x11c
pop esi
pop edi
pop ebx
pop ebp
ret