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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x194
mov esi, eax
movss xmm0, dword [0x477190]
mov dword [esp + 0x150], ecx
mov dword [esp + 0x14c], edx
movss xmm6, dword [esi]
comiss xmm0, xmm6
jbe 0x4159c4
mov eax, dword [ebp + 0x24]
mov dword [eax], 0xffffffff
add esp, 0x194
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x20
movss xmm0, dword [0x482840]
mov edx, dword [ebp + 0x24]
addss xmm0, xmm0
mov ecx, dword [esp + 0x14c]
mov dword [edx], 0
movss dword [esp + 0x7c], xmm0
movaps xmm0, xmm6
mov edx, dword [ecx]
test edx, edx
movss xmm4, dword [0x477198]
movss xmm2, dword [0x47719c]
movaps xmm5, xmm4
mov dword [0xa4d4e4], edx
movaps xmm3, xmm2
addss xmm0, dword [0x477194]
jle 0x415a80
movss xmm1, dword [0x4771a4]
mov ecx, 1
movss dword [esp + 0x74], xmm0
movss dword [esp + 0x70], xmm6
mov ebx, dword [ebp + 0x14]
mov edi, dword [esp + 0x150]
movss xmm6, dword [edi + ecx*4 - 4]
comiss xmm1, xmm6
jbe 0x415a6f
movss xmm0, dword [ebx + ecx*4 - 4]
movaps xmm7, xmm4
movaps xmm4, xmm6
minss xmm4, xmm7
movaps xmm7, xmm5
movaps xmm5, xmm0
minss xmm5, xmm7
movaps xmm7, xmm2
movaps xmm2, xmm6
movaps xmm6, xmm3
movaps xmm3, xmm0
maxss xmm2, xmm7
maxss xmm3, xmm6
inc ecx
cmp ecx, edx
jle 0x415a36
movss xmm0, dword [esp + 0x74]
movss xmm6, dword [esp + 0x70]
movss xmm1, dword [0x4771a0]
cmp edx, 0xf
subss xmm4, xmm1
addss xmm2, xmm1
subss xmm5, xmm1
addss xmm3, xmm1
jge 0x415acc
movss xmm1, dword [0x4771e4]
mov ebx, 1
mov dword [esp + 0x148], 1
subss xmm2, xmm4
subss xmm3, xmm5
divss xmm2, xmm1
divss xmm3, xmm1
xor ecx, ecx
jmp 0x415c66
movss xmm7, dword [0x477194]
mov edi, 1
movaps xmm1, xmm7
mov eax, 9
subss xmm2, xmm4
subss xmm3, xmm5
mulss xmm1, xmm2
mulss xmm7, xmm3
divss xmm1, xmm0
divss xmm7, xmm0
cvttss2si ecx, xmm1
cvttss2si ebx, xmm7
cmp ecx, ebx
cmovge ebx, ecx
cmp ebx, 1
cmovle ebx, edi
cmp ebx, 9
cmovg ebx, eax
cvtsi2ss xmm1, ebx
mov dword [esp + 0x148], ebx
test ebx, ebx
divss xmm2, xmm1
divss xmm3, xmm1
jle 0x415cd5
cmp ebx, 4
jl 0x415ac5
mov edi, 4
mov ecx, ebx
movss dword [esp + 0x40], xmm3
and ecx, 0xfffffffc
movss dword [esp + 0x48], xmm5
movss dword [esp + 0x4c], xmm4
movd xmm1, edi
xor edi, edi
pshufd xmm7, xmm1, 0
movdqa xmm1, xmmword [0x476f50]
movdqa xmmword [esp + 0x20], xmm7
movdqa xmm7, xmmword [0x476f60]
movdqa xmmword [esp + 0x10], xmm1
movaps xmm1, xmm4
movdqa xmmword [esp], xmm7
movaps xmm7, xmm5
shufps xmm1, xmm1, 0
movaps xmmword [esp + 0x80], xmm1
movaps xmm1, xmm2
shufps xmm7, xmm7, 0
movaps xmmword [esp + 0x30], xmm7
movaps xmm7, xmm3
shufps xmm1, xmm1, 0
shufps xmm7, xmm7, 0
movss dword [esp + 0x70], xmm6
movaps xmmword [esp + 0x60], xmm7
movaps xmmword [esp + 0x50], xmm1
movss dword [esp + 0x44], xmm2
movss dword [esp + 0x74], xmm0
movaps xmm4, xmmword [esp + 0x30]
movdqa xmm5, xmmword [esp]
movdqa xmm3, xmmword [esp + 0x10]
movdqa xmm6, xmmword [esp + 0x20]
lea esi, [esi]
lea edi, [edi]
cvtdq2ps xmm2, xmm3
movaps xmm1, xmmword [esp + 0x50]
paddd xmm3, xmm6
movaps xmm0, xmm1
mulps xmm0, xmm2
movaps xmm7, xmmword [esp + 0x80]
addps xmm0, xmm7
movaps xmmword [edi*4 + 0xa37780], xmm0
cvtdq2ps xmm0, xmm5
mulps xmm1, xmm0
paddd xmm5, xmm6
addps xmm1, xmm7
movaps xmm7, xmmword [esp + 0x60]
mulps xmm2, xmm7
mulps xmm0, xmm7
addps xmm2, xmm4
addps xmm0, xmm4
movaps xmmword [edi*4 + 0xa377b0], xmm1
movaps xmmword [edi*4 + 0xa377e0], xmm2
movaps xmmword [edi*4 + 0xa37810], xmm0
add edi, 4
cmp edi, ecx
jb 0x415be0
movss xmm3, dword [esp + 0x40]
movss xmm2, dword [esp + 0x44]
movss xmm5, dword [esp + 0x48]
movss xmm4, dword [esp + 0x4c]
movss xmm0, dword [esp + 0x74]
movss xmm6, dword [esp + 0x70]
cmp ecx, ebx
jae 0x415cd5
movss dword [esp + 0x70], xmm6
pxor xmm1, xmm1
movaps xmm6, xmm2
cvtsi2ss xmm1, ecx
mulss xmm6, xmm1
lea edi, [ecx + 1]
mulss xmm1, xmm3
addss xmm6, xmm4
addss xmm1, xmm5
movss dword [ecx*4 + 0xa37780], xmm6
movaps xmm7, xmm2
cvtsi2ss xmm6, edi
mulss xmm7, xmm6
cmp edi, ebx
mulss xmm6, xmm3
addss xmm7, xmm4
addss xmm6, xmm5
movss dword [ecx*4 + 0xa377b0], xmm7
movss dword [ecx*4 + 0xa377e0], xmm1
movss dword [ecx*4 + 0xa37810], xmm6
mov ecx, edi
jb 0x415c70
movss xmm6, dword [esp + 0x70]
mov edi, 0xa36260
xor eax, eax
mov ecx, 0xc8
rep stosd dword es:[edi], eax
mov dword [esp + 0x154], 0x64
xor ecx, ecx
test ebx, ebx
jle 0x416083
mov eax, dword [esp + 0x14c]
mov edi, 1
movss dword [esp + 0x70], xmm6
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
mov dword [esp], esi
mov esi, edi
movss xmm5, dword [0x4771a0]
mov dword [esp + 0x30], ebx
lea ecx, [edi + edi*4]
mov dword [esp + 0x2c], ecx
mov eax, esi
mov dword [esp + 8], edi
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
lea esi, [eax + esi*2]
cvtsi2ss xmm1, esi
mulss xmm1, xmm5
cvttss2si ecx, xmm1
movss xmm4, dword [ecx*4 + 0xa3777c]
lea edi, [ecx + ecx*8]
add edi, ecx
subss xmm4, xmm0
neg edi
add edi, esi
movss xmm3, dword [ecx*4 + 0xa377ac]
test edx, edx
addss xmm3, xmm0
movss xmm2, dword [edi*4 + 0xa377dc]
movss xmm1, dword [edi*4 + 0xa3780c]
mov edi, edx
subss xmm2, xmm0
addss xmm1, xmm0
jle 0x416001
mov ecx, 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], ebx
movss dword [esp + 0x74], xmm0
mov dword [esp + 0x28], eax
mov eax, ecx
mov ebx, dword [ebp + 0x14]
mov esi, dword [esp + 0x150]
movss xmm7, dword [esi + ecx*4 - 4]
comiss xmm7, xmm4
jbe 0x415de3
comiss xmm3, xmm7
jbe 0x415de3
movss xmm0, dword [ebx + ecx*4 - 4]
comiss xmm0, xmm2
jbe 0x415de3
comiss xmm1, xmm0
jbe 0x415de3
mov dword [ecx*4 + 0xa39c3c], 1
jmp 0x415fde
cmp ecx, edx
jge 0x415fd3
comiss xmm7, xmm3
jbe 0x415dfe
movss xmm0, dword [esi + ecx*4]
comiss xmm0, xmm3
ja 0x415fd3
movss xmm6, dword [ebx + ecx*4 - 4]
comiss xmm6, xmm1
jbe 0x415e17
movss xmm0, dword [ebx + ecx*4]
comiss xmm0, xmm1
ja 0x415fd3
comiss xmm4, xmm7
jbe 0x415e26
comiss xmm4, dword [esi + ecx*4]
ja 0x415fd3
movss xmm5, dword [ebx + ecx*4]
comiss xmm2, xmm6
jbe 0x415e39
comiss xmm2, xmm5
ja 0x415fd3
movss xmm0, dword [esi + ecx*4]
subss xmm5, xmm6
subss xmm0, xmm7
movss dword [esp + 0x18], xmm0
andps xmm0, xmmword [0x476f70]
comiss xmm0, dword [0x4771a8]
jbe 0x415f1c
movaps xmm0, xmm4
subss xmm0, xmm7
divss xmm0, dword [esp + 0x18]
movss dword [esp + 0x14], xmm0
comiss xmm0, dword [0x4771a8]
jbe 0x415ebe
movss xmm0, dword [0x4771e4]
comiss xmm0, dword [esp + 0x14]
jbe 0x415ebe
movss xmm0, dword [esp + 0x14]
mulss xmm0, xmm5
addss xmm0, xmm6
movss dword [esp + 0x14], xmm0
comiss xmm0, xmm2
jbe 0x415ebe
comiss xmm1, dword [esp + 0x14]
jbe 0x415ebe
mov dword [ecx*4 + 0xa39c3c], eax
mov dword [ecx*4 + 0xa39c40], eax
jmp 0x415fde
movaps xmm0, xmm3
subss xmm0, xmm7
divss xmm0, dword [esp + 0x18]
movss dword [esp + 0x10], xmm0
comiss xmm0, dword [0x4771a8]
jbe 0x415f1c
movss xmm0, dword [0x4771e4]
comiss xmm0, dword [esp + 0x10]
jbe 0x415f1c
movss xmm0, dword [esp + 0x10]
mulss xmm0, xmm5
addss xmm0, xmm6
movss dword [esp + 0x10], xmm0
comiss xmm0, xmm2
jbe 0x415f1c
comiss xmm1, dword [esp + 0x10]
jbe 0x415f1c
mov dword [ecx*4 + 0xa39c3c], eax
mov dword [ecx*4 + 0xa39c40], eax
jmp 0x415fde
movaps xmm0, xmm5
andps xmm0, xmmword [0x476f70]
comiss xmm0, dword [0x4771a8]
jbe 0x415fd3
movaps xmm0, xmm2
subss xmm0, xmm6
divss xmm0, xmm5
movss dword [esp + 0xc], xmm0
comiss xmm0, dword [0x4771a8]
jbe 0x415f8e
movss xmm0, dword [0x4771e4]
comiss xmm0, dword [esp + 0xc]
jbe 0x415f8e
movss xmm0, dword [esp + 0xc]
mulss xmm0, dword [esp + 0x18]
addss xmm0, xmm7
movss dword [esp + 0xc], xmm0
comiss xmm0, xmm4
jbe 0x415f8e
comiss xmm3, dword [esp + 0xc]
jbe 0x415f8e
mov dword [ecx*4 + 0xa39c3c], eax
mov dword [ecx*4 + 0xa39c40], eax
jmp 0x415fde
movaps xmm0, xmm1
subss xmm0, xmm6
divss xmm0, xmm5
comiss xmm0, dword [0x4771a8]
jbe 0x415fd3
movss xmm5, dword [0x4771e4]
comiss xmm5, xmm0
jbe 0x415fd3
mulss xmm0, dword [esp + 0x18]
addss xmm7, xmm0
comiss xmm7, xmm4
jbe 0x415fd3
comiss xmm3, xmm7
jbe 0x415fd3
mov dword [ecx*4 + 0xa39c3c], eax
mov dword [ecx*4 + 0xa39c40], eax
jmp 0x415fde
mov dword [ecx*4 + 0xa39c3c], 0
inc ecx
cmp ecx, edx
jle 0x415db3
movss xmm5, dword [0x4771a0]
movss xmm0, dword [esp + 0x74]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
test edx, edx
jle 0x416036
mov ecx, 1
cmp dword [ecx*4 + 0xa39c3c], 0
je 0x41602d
inc ebx
cmp dword [esi*8 + 0xa36258], 0
mov dword [ebx*4 + 0xc81f3c], ecx
jne 0x41602d
mov dword [esi*8 + 0xa36258], ebx
inc ecx
cmp ecx, edx
jle 0x41600a
mov edx, dword [esp + 0x20]
inc eax
mov dword [esi*8 + 0xa3625c], ebx
cmp eax, dword [esp + 0x30]
jle 0x415d36
mov dword [esp + 4], edi
mov esi, 1
mov edi, dword [esp + 8]
inc edi
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x30]
cmp edi, ebx
jle 0x415d21
mov edi, dword [esp + 4]
movss xmm6, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp]
mov dword [0xa4d4c4], edi
mov dword [0xa4d4c0], ebx
test edx, edx
jle 0x418023
mov dword [esp], esi
lea edi, [ecx*4]
mov dword [esp + 4], edi
xor ebx, ebx
mov edi, dword [0xa36578]
mov eax, ecx
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 4]
inc eax
lea ecx, [ebx + 1]
mov dword [esi + ebx*4 + 0xc81f40], ecx
test edi, edi
jne 0x4160c9
mov dword [0xa36578], eax
mov edi, eax
mov ebx, ecx
cmp ecx, edx
jb 0x4160ab
jmp 0x4160cf
mov ebx, ecx
cmp ecx, edx
jb 0x4160ab
mov esi, dword [esp]
mov ebx, ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14c]
add ecx, ebx
mov dword [esp + 0x158], eax
mov edx, dword [edx]
movss xmm0, dword [esi]
xor edi, edi
movss xmm3, dword [0x477190]
mulss xmm3, xmm0
mov eax, dword [esi]
mov ebx, dword [ebp + 0x18]
xor esi, esi
mov dword [0xa3657c], ecx
mov ecx, 0x47c34f80
mov dword [esp + 0x15c], eax
xorps xmm3, xmmword [0x476f80]
movss xmm7, dword [0x4771a4]
movss xmm2, dword [0x4771b8]
movss xmm1, dword [0x4771c0]
movss dword [esp + 0x70], xmm6
jmp 0x41617b
movss xmm0, dword [0x482848]
movss xmm4, dword [esp + 0x7c]
addss xmm0, xmm0
mov eax, dword [esp + 0x14c]
subss xmm4, xmm0
movss xmm0, dword [esp + 0x15c]
movss dword [esp + 0x7c], xmm4
mov edx, dword [eax]
addss xmm0, dword [0x477190]
movss dword [esp + 0x15c], xmm0
movss xmm4, dword [0x4771a0]
dec edx
mulss xmm4, xmm0
mov eax, esi
mulss xmm3, dword [0x477194]
movss xmm5, dword [0x4771e4]
test edx, edx
mov dword [ebx], 0
minss xmm5, xmm4
movss dword [esp + 0x94], xmm5
subss xmm0, xmm5
movss dword [esp + 0x90], xmm0
jle 0x416435
movss dword [esp + 0x6c], xmm3
mov edi, 1
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x150]
movss xmm1, dword [0x482844]
movss xmm0, dword [eax + edi*4 - 4]
subss xmm0, dword [eax + edi*4]
andps xmm0, xmmword [0x476f70]
comiss xmm1, xmm0
jbe 0x416218
mov eax, dword [ebp + 0x14]
movss xmm0, dword [eax + edi*4 - 4]
subss xmm0, dword [eax + edi*4]
andps xmm0, xmmword [0x476f70]
comiss xmm1, xmm0
ja 0x41640a
mov esi, dword [esp + 0x150]
mov eax, dword [ebp + 0x14]
lea ebx, [esi + edi*4]
lea esi, [esp + 0x164]
push esi
lea esi, [esp + 0x134]
push esi
lea esi, [esp + 0xec]
push esi
lea esi, [esp + 0xec]
push esi
lea esi, [esp + 0x16c]
push esi
lea ecx, [eax + edi*4]
push ecx
push ebx
lea edx, [ecx - 4]
push edx
lea eax, [ebx - 4]
push eax
push 0x476ddc
call fcn.00405dd0
movss xmm0, dword [esp + 0xe0]
comiss xmm0, dword [0x4771a4]
ja 0x41640a
mov eax, dword [esp + 0x150]
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x18]
mov edx, dword [eax + edi*4 - 4]
mov ebx, dword [ecx + edi*4 - 4]
mov eax, dword [esi]
cmp eax, 1
mov dword [esp + 0xd8], edx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x160], 0
jle 0x4163b6
lea esi, [esp + 0x160]
lea ecx, [esp + 0xd8]
lea ebx, [esp + 0xd4]
push esi
lea esi, [esp + 0xe8]
push esi
lea eax, [eax*4 + 0xbef77c]
lea esi, [esp + 0xe8]
push esi
lea edx, [eax + 0x30d40]
push edx
push eax
push ebx
push ecx
call fcn.004054f0
mov eax, dword [ebp + 0x18]
movss xmm0, dword [esp + 0x6c]
comiss xmm0, dword [esp + 0x160]
mov eax, dword [eax]
ja 0x416312
movss xmm0, dword [esp + 0xe0]
jmp 0x4163b6
lea esi, [eax*4 + 0xbef77c]
lea eax, [esp + 0xc0]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push eax
lea edx, [esp + 0xf0]
push edx
lea ecx, [esp + 0xf0]
push ecx
lea ebx, [esi + 0x30d40]
push ebx
push esi
lea eax, [esp + 0x178]
push eax
lea edx, [esp + 0xf4]
push edx
lea ecx, [esp + 0xfc]
push ecx
push 0x482844
call fcn.00407d30
mov eax, dword [ebp + 0x18]
mov esi, dword [esp + 0xc0]
dec esi
mov eax, dword [eax]
cmp esi, 2
jl 0x416304
mov dword [esp + 0x28], edi
mov ebx, 2
mov edx, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
inc eax
mov edi, dword [ecx + ebx*4 - 4]
mov dword [eax*4 + 0xbef77c], edi
mov edi, dword [edx + ebx*4 - 4]
inc ebx
mov dword [eax*4 + 0xc204bc], edi
cmp ebx, esi
mov dword [eax*4 + 0xc511fc], 0
jle 0x416382
mov edi, dword [esp + 0x28]
movss xmm0, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
movss dword [eax*4 + 0xbef780], xmm0
mov dword [eax*4 + 0xc204c0], edx
mov dword [eax*4 + 0xc51200], edi
add eax, 2
mov ecx, dword [ebp + 0x18]
cmp eax, 0xc31e
mov ebx, dword [esp + 0x130]
mov esi, dword [esp + 0x164]
mov dword [ecx], eax
mov dword [eax*4 + 0xbef77c], ebx
mov dword [eax*4 + 0xc204bc], esi
mov dword [eax*4 + 0xc511fc], edi
jg 0x4159ac
inc edi
cmp edi, dword [esp + 0x88]
jle 0x4161d4
mov ebx, dword [ebp + 0x18]
xor esi, esi
movss xmm1, dword [0x4771c0]
movss xmm2, dword [0x4771b8]
movss xmm3, dword [esp + 0x6c]
mov eax, dword [ebx]
lea ecx, [eax*4 + 0xbef77c]
lea eax, [esp + 0x160]
push eax
lea edx, [ecx + 0x30d40]
push edx
push ecx
push dword [ebp + 0x14]
push dword [esp + 0x160]
push 0xc204c0
push 0xbef780
movss dword [esp + 0x88], xmm3
call fcn.004054f0
movss xmm3, dword [esp + 0x6c]
movss xmm2, dword [0x4771b8]
movss xmm1, dword [0x4771c0]
mov eax, dword [ebx]
comiss xmm3, dword [esp + 0x160]
jbe 0x41653c
lea ecx, [eax*4 + 0xbef77c]
lea eax, [esp + 0xc0]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push eax
push 0xc204c0
push 0xbef780
lea edx, [ecx + 0x30d40]
push edx
push ecx
lea edi, [esp + 0x178]
push edi
push dword [ebp + 0x14]
push dword [esp + 0x174]
push 0x482844
movss dword [esp + 0x98], xmm3
call fcn.00407d30
mov ecx, dword [esp + 0xc0]
dec ecx
movss xmm3, dword [esp + 0x6c]
cmp ecx, 2
movss xmm2, dword [0x4771b8]
movss xmm1, dword [0x4771c0]
mov eax, dword [ebx]
jl 0x41653c
mov esi, dword [ebp + 0x20]
mov edx, 2
mov edi, dword [ebp + 0x1c]
inc eax
mov ebx, dword [edi + edx*4 - 4]
mov dword [eax*4 + 0xbef77c], ebx
mov ebx, dword [esi + edx*4 - 4]
inc edx
mov dword [eax*4 + 0xc204bc], ebx
cmp edx, ecx
mov dword [eax*4 + 0xc511fc], 0
jle 0x416510
mov ebx, dword [ebp + 0x18]
xor esi, esi
mov edx, dword [0xbef780]
lea edi, [eax + 1]
mov dword [edi*4 + 0xbef77c], edx
test edi, edi
mov ecx, dword [0xc204c0]
mov edx, dword [0xc51200]
mov dword [edi*4 + 0xc204bc], ecx
mov dword [edi*4 + 0xc511fc], edx
jle 0x418001
movss xmm0, dword [esp + 0x70]
mov eax, 0x4b189680
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov eax, 1
mov dword [ebx], edi
comiss xmm0, dword [0x4771b0]
ja 0x417e6f
mov edx, dword [ebp + 0x1c]
xor ecx, ecx
mov dword [edx + eax*4 - 4], ecx
inc eax
mov dword [esp + 0x168], 0
cmp eax, edi
jle 0x4165a0
mov edi, dword [ebx]
lea eax, [edi - 1]
test eax, eax
jle 0x4167d0
movss dword [esp + 0x6c], xmm3
mov edi, 1
mov esi, dword [ebp + 0x1c]
mov ebx, eax
movss xmm0, dword [esi + edi*4 - 4]
pxor xmm1, xmm1
ucomiss xmm0, xmm1
jp 0x4165e6
je 0x4167aa
movss xmm0, dword [esi + edi*4]
pxor xmm1, xmm1
ucomiss xmm0, xmm1
jp 0x4165fa
je 0x4167aa
cmp dword [edi*4 + 0xc511fc], 0
je 0x4167aa
cmp dword [edi*4 + 0xc51200], 0
je 0x4167aa
mov dword [esp + 0xa8], ebx
lea ebx, [edi*4 + 0xc204bc]
mov dword [esp + 0xac], edi
lea eax, [esp + 0x16c]
mov dword [esp + 0xa4], ebx
lea edi, [ebx - 0x30d40]
mov dword [esp + 0x9c], edi
lea edx, [ebx + 4]
mov dword [esp + 0xa0], edx
lea ecx, [ebx - 0x30d3c]
mov dword [esp + 0x98], ecx
push eax
push edx
push ecx
push ebx
push edi
mov edi, dword [esp + 0xc0]
mov ebx, dword [esp + 0xbc]
call fcn.00405560
movss xmm1, dword [esp + 0x16c]
movss xmm0, dword [esp + 0x94]
comiss xmm0, xmm1
ja 0x4167aa
comiss xmm1, dword [esp + 0x15c]
jbe 0x4166aa
mov dword [esp + 0x168], 0
jmp 0x4167a1
mulss xmm1, dword [0x4771b4]
minss xmm1, dword [0x4771b8]
movss dword [esp + 0x170], xmm1
add esp, 0xffffffa8
lea edx, [esp + 0x1ac]
lea ecx, [esp + 0x1c0]
lea eax, [esp + 0x1a0]
mov dword [esp + 0xc], 0xa377e0
mov dword [esp + 0x10], 0xa37810
mov dword [esp + 0x14], edx
lea edx, [esp + 0x1b0]
mov dword [esp + 0x18], 0xa36260
mov dword [esp + 0x1c], edx
lea edx, [esp + 0xe8]
mov dword [esp + 0x20], 0xc81f40
mov dword [esp + 0x24], ecx
mov ecx, 0xa377b0
mov dword [esp + 0x28], 0x476ddc
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x1c8]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x1a4]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x1a8]
mov dword [esp + 0x38], edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], 0x482840
mov edx, dword [esp + 0xf4]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xf0]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0xf8]
mov dword [esp + 0x50], edx
lea edx, [esp + 0x138]
mov dword [esp + 0x54], edx
mov edx, 0xa37780
call fcn.0041803c
cmp dword [esp + 0x168], 0
jne 0x4167aa
xor edx, edx
mov dword [esi + edi*4 - 4], edx
mov dword [esi + edi*4], edx
inc edi
cmp edi, ebx
jle 0x4165d1
mov ebx, dword [ebp + 0x18]
xor esi, esi
movss xmm1, dword [0x4771c0]
movss xmm2, dword [0x4771b8]
movss xmm3, dword [esp + 0x6c]
mov edi, dword [ebx]
test edi, edi
jle 0x4167fd
mov edx, dword [ebp + 0x1c]
mov eax, 1
pxor xmm4, xmm4
movss xmm0, dword [edx + eax*4 - 4]
ucomiss xmm0, xmm4
jp 0x4167ed
je 0x4167f8
mov dword [eax*4 + 0xc511fc], 0xffffffff
inc eax
cmp eax, edi
jle 0x4167e0
mov dword [ebx], 0
lea eax, [edi - 1]
test eax, eax
jle 0x4159b5
mov edx, 0x4b189680
mov dword [esp + 0xc0], edi
mov edi, 1
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd8], edx
movss dword [esp + 0x6c], xmm3
mov dword [esp + 0x8c], eax
cmp dword [edi*4 + 0xc511fc], 0
jl 0x417e5c
movss xmm1, dword [edi*4 + 0xbef77c]
movss xmm0, dword [edi*4 + 0xbef780]
mov eax, dword [edi*4 + 0xbef77c]
mov edx, dword [edi*4 + 0xbef780]
comiss xmm0, xmm1
jbe 0x416876
mov dword [esp + 0x144], edx
jmp 0x416880
mov dword [esp + 0x144], eax
movaps xmm1, xmm0
movss xmm0, dword [edi*4 + 0xc204bc]
movss xmm2, dword [edi*4 + 0xc204c0]
mov eax, dword [edi*4 + 0xc204bc]
mov edx, dword [edi*4 + 0xc204c0]
comiss xmm2, xmm0
jbe 0x4168ae
mov dword [esp + 0x140], edx
jmp 0x4168b8
mov dword [esp + 0x140], eax
movaps xmm0, xmm2
mov ebx, dword [esp + 0xc0]
lea esi, [edi + 2]
cmp ebx, esi
jl 0x416c08
lea eax, [edi*4 + 0xc204bc]
mov dword [esp + 0xec], eax
lea edx, [eax - 0x30d40]
mov dword [esp + 0xe8], edx
lea ecx, [eax + 4]
mov dword [esp + 0xf4], ecx
lea ecx, [eax - 0x30d3c]
mov dword [esp + 0xf0], ecx
cmp dword [ebx*4 + 0xc511fc], 0
jl 0x417e49
movss xmm3, dword [esp + 0x144]
movss xmm4, dword [ebx*4 + 0xbef77c]
comiss xmm4, xmm3
jbe 0x416933
movss xmm2, dword [ebx*4 + 0xbef778]
comiss xmm2, xmm3
ja 0x416bff
comiss xmm1, xmm4
jbe 0x416946
comiss xmm1, dword [ebx*4 + 0xbef778]
ja 0x416bff
movss xmm4, dword [esp + 0x140]
movss xmm3, dword [ebx*4 + 0xc204bc]
comiss xmm3, xmm4
jbe 0x41696f
movss xmm2, dword [ebx*4 + 0xc204b8]
comiss xmm2, xmm4
ja 0x416bff
comiss xmm0, xmm3
jbe 0x416982
comiss xmm0, dword [ebx*4 + 0xc204b8]
ja 0x416bff
cmp ebx, edi
je 0x416bff
add esp, 0xffffffd4
lea edx, [ebx*4 + 0xbef77c]
mov eax, dword [esp + 0x11c]
lea ecx, [ebx*4 + 0xc204bc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x10], eax
lea eax, [ebx*4 + 0xbef778]
mov dword [esp + 0x14], edx
lea edx, [eax + 0x30d40]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x10c]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x110]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
lea eax, [esp + 0x12c]
mov edx, dword [esp + 0x114]
mov ecx, dword [esp + 0x118]
movss dword [esp + 0x124], xmm0
movss dword [esp + 0x128], xmm1
call fcn.004149dc
movss xmm1, dword [esp + 0xfc]
movss xmm0, dword [esp + 0xf8]
cmp dword [esp + 0x100], 0
je 0x416bff
xor eax, eax
cmp dword [edi*4 + 0xc511fc], 0
jle 0x416a4a
cmp dword [edi*4 + 0xc51200], 0
jle 0x416a4a
xor edx, edx
jmp 0x416a51
mov eax, 1
mov edx, eax
cmp dword [ebx*4 + 0xc511fc], 0
jle 0x416ec8
cmp dword [ebx*4 + 0xc511f8], 0
jle 0x416ec8
mov dword [esp + 0x168], eax
test edx, edx
je 0x416a86
mov eax, dword [0x482840]
mov dword [esp + 0x160], eax
jmp 0x416a92
mov eax, dword [0x482848]
mov dword [esp + 0x160], eax
mov ecx, dword [esp + 0x148]
test ecx, ecx
mov dword [0xa4d4c8], ecx
jle 0x416ebe
mov eax, 1
movss xmm3, dword [esp + 0xe0]
movss xmm2, dword [esp + 0xe4]
mov dword [esp + 0xdc], edi
mov edi, eax
comiss xmm3, dword [eax*4 + 0xa3777c]
jbe 0x416b02
movss xmm4, dword [eax*4 + 0xa377ac]
comiss xmm4, xmm3
jbe 0x416b02
mov edx, edi
comiss xmm2, dword [edx*4 + 0xa377dc]
jbe 0x416afd
movss xmm4, dword [edx*4 + 0xa3780c]
comiss xmm4, xmm2
ja 0x416eac
inc edx
cmp edx, ecx
jle 0x416ae1
lea esi, [esi]
lea edi, [edi]
inc eax
cmp eax, ecx
jle 0x416ac7
mov edi, dword [esp + 0xdc]
mov eax, 0x64
add esp, 0xffffffc8
mov edx, dword [ebp + 0x14]
lea ecx, [esp + 0x11c]
mov dword [esp + 0xc], edx
lea edx, [esp + 0x118]
mov dword [esp + 0x10], edx
lea edx, [esp + 0x194]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x190]
mov dword [esp + 0x18], edx
lea edx, [eax*8 + 0xa36258]
mov dword [esp + 0x1c], ecx
lea eax, [eax*8 + 0xa3625c]
mov dword [esp + 0x20], 0xc81f40
lea ecx, [esp + 0x10c]
mov dword [esp + 0x24], edx
lea edx, [esp + 0x110]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x1a0]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x198]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x184]
mov ecx, dword [esp + 0x188]
movss dword [esp + 0x130], xmm0
movss dword [esp + 0x134], xmm1
call fcn.0041868c
movss xmm1, dword [esp + 0xfc]
movss xmm0, dword [esp + 0xf8]
cmp dword [esp + 0x168], 0
jne 0x416bff
mov edx, dword [ebp + 0x18]
mov ecx, dword [esp + 0xe0]
mov eax, dword [edx]
inc eax
mov dword [edx], eax
mov edx, dword [ebp + 0x1c]
mov dword [edx + eax*4 - 4], ecx
mov edx, dword [ebp + 0x20]
mov ecx, dword [esp + 0xe4]
mov dword [edx + eax*4 - 4], ecx
dec ebx
cmp ebx, esi
jge 0x4168fc
lea esi, [esi]
inc edi
cmp edi, dword [esp + 0x8c]
jle 0x41683a
mov ebx, dword [ebp + 0x18]
xor esi, esi
mov edx, dword [ebx]
test edx, edx
movss xmm1, dword [0x4771c0]
movss xmm2, dword [0x4771b8]
movss xmm3, dword [esp + 0x6c]
je 0x4159b5
mov edi, dword [ebp + 0x1c]
lea eax, [edx + 1]
mov dword [esp + 0x14], eax
mov dword [ebx], eax
pxor xmm0, xmm0
mov ecx, dword [edi]
mov dword [edi + eax*4 - 4], ecx
mov edi, dword [ebp + 0x20]
mov dword [esp + 0xc0], 1
mov ecx, dword [edi]
mov dword [edi + eax*4 - 4], ecx
mov eax, esi
lea esi, [esi]
movdqa xmmword [eax*4 + 0xc51200], xmm0
movdqa xmmword [eax*4 + 0xa36580], xmm0
movdqa xmmword [eax*4 + 0xc51210], xmm0
movdqa xmmword [eax*4 + 0xa36590], xmm0
movdqa xmmword [eax*4 + 0xc51220], xmm0
movdqa xmmword [eax*4 + 0xa365a0], xmm0
movdqa xmmword [eax*4 + 0xc51230], xmm0
movdqa xmmword [eax*4 + 0xa365b0], xmm0
add eax, 0x10
cmp eax, 0x3e0
jb 0x416c70
movss xmm0, dword [esp + 0x15c]
movaps xmm4, xmm2
mulss xmm0, xmm1
mov eax, 0x47c34f80
movss xmm5, dword [esp + 0x7c]
test edx, edx
mov dword [0xc52180], esi
minss xmm4, xmm0
addss xmm5, xmm5
mov dword [0xa37500], esi
mov dword [0xc52184], esi
mov dword [0xa37504], esi
mov dword [0xc52188], esi
mov dword [0xa37508], esi
mov dword [0xc5218c], esi
mov dword [0xa3750c], esi
mov dword [0xc52190], esi
mov dword [0xa37510], esi
mov dword [0xc52194], esi
mov dword [0xa37514], esi
mov dword [0xc52198], esi
mov dword [0xa37518], esi
mov dword [0xc5219c], esi
mov dword [0xa3751c], esi
mov dword [esp + 0xd8], eax
mov dword [esp + 0xd4], eax
movss dword [esp + 0x170], xmm4
jle 0x417e36
mov dword [esp + 0x168], 0
mov edi, 1
movss dword [esp + 0x160], xmm5
movss dword [esp + 0x6c], xmm3
mov dword [esp + 0x24], edx
mov ebx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x1c]
jmp 0x416d96
mov dword [esp + 0x168], eax
add esp, 0xffffffa8
lea edx, [esi + edi*4]
lea ecx, [esp + 0x1ac]
lea eax, [ebx + edi*4]
mov dword [esp + 0xc], 0xa377e0
mov dword [esp + 0x10], 0xa37810
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x18], 0xa36260
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x158]
mov dword [esp + 0x20], 0xc81f40
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x28], 0x476de0
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x1c8]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1a4]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x1a8]
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x40], ecx
lea ecx, [edx - 4]
mov dword [esp + 0x44], ecx
lea ecx, [eax - 4]
mov dword [esp + 0x48], ecx
mov ecx, 0xa377b0
mov dword [esp + 0x4c], edx
mov edx, 0xa37780
mov dword [esp + 0x50], eax
lea eax, [esp + 0x138]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x1a0]
call fcn.0041803c
mov eax, dword [esp + 0x168]
inc eax
mov edx, dword [esi + edi*4 - 4]
mov ecx, dword [ebx + edi*4 - 4]
cmp dword [esp + 0x100], 0
mov dword [eax*4 + 0xbef77c], edx
mov edx, dword [esp + 0xc0]
mov dword [eax*4 + 0xc204bc], ecx
mov dword [edx*4 + 0xc511fc], eax
je 0x416e9f
test eax, eax
je 0x416e9f
inc edx
mov dword [esp + 0xc0], edx
inc edi
cmp edi, dword [esp + 0x24]
jle 0x416d8f
jmp 0x416ee4
mov edi, dword [esp + 0xdc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*2]
jmp 0x416b1e
mov eax, 0x64
jmp 0x416b1e
mov eax, dword [0x482840]
mov dword [esp + 0x168], 1
mov dword [esp + 0x160], eax
jmp 0x416a92
mov ebx, dword [ebp + 0x18]
xor esi, esi
mov dword [esp + 0x84], edx
mov edx, dword [ebx]
movss xmm1, dword [0x4771c0]
movss xmm2, dword [0x4771b8]
movss xmm3, dword [esp + 0x6c]
mov dword [esp + 0x14], edx
mov ecx, dword [ebp + 0x1c]
inc eax
mov edx, dword [esp + 0x14]
movss xmm4, dword [0x477198]
movss xmm5, dword [0x482840]
movaps xmm0, xmm4
mov edi, dword [ecx + edx*4 - 4]
mov ecx, dword [ebp + 0x20]
mov dword [eax*4 + 0xbef77c], edi
mov edi, dword [esp + 0x84]
test edi, edi
mov edx, dword [ecx + edx*4 - 4]
mov dword [eax*4 + 0xc204bc], edx
mov edx, esi
mov dword [edi*4 + 0xc511fc], eax
mov ecx, edx
mulss xmm5, dword [0x4771c4]
jle 0x416fef
mov eax, esi
movss dword [esp + 0x160], xmm5
mov dword [esp + 0x64], eax
mov dword [esp + 0x80], 1
movss dword [esp + 0x6c], xmm3
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x80]
cmp dword [edx*4 + 0xa3657c], 0
jne 0x416fbe
cmp dword [esp + 0x80], 1
je 0x416fae
mov esi, dword [edx*4 + 0xc511f8]
inc esi
jmp 0x416fb3
mov esi, 1
mov ebx, dword [edx*4 + 0xc511fc]
cmp ebx, esi
jne 0x417004
mov edx, dword [esp + 0x80]
inc edx
mov dword [esp + 0x80], edx
cmp edx, dword [esp + 0x84]
jle 0x416f89
mov ebx, dword [ebp + 0x18]
cmp eax, 4
jle 0x416fef
mov dword [ebx], eax
add esp, 0x194
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x20
mov dword [ebx], 0
add esp, 0x194
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x20
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], esi
mov dword [edx*4 + 0xa3657c], 1
jl 0x417e18
movss xmm1, dword [0x477198]
mov dword [esp + 0xb8], ebx
movss xmm5, dword [0x4771c8]
inc eax
mov edi, dword [ebp + 0x1c]
mov edx, eax
mov ecx, dword [ebp + 0x20]
mov ebx, dword [esi*4 + 0xbef77c]
mov dword [edi + eax*4 - 4], ebx
mov edi, dword [esi*4 + 0xc204bc]
movss xmm3, dword [esi*4 + 0xc204bc]
movss xmm2, dword [esi*4 + 0xbef77c]
inc esi
mov dword [ecx + eax*4 - 4], edi
comiss xmm1, xmm5
jbe 0x417082
movaps xmm1, xmm2
movaps xmm4, xmm2
movaps xmm0, xmm3
cmp esi, dword [esp + 0xb8]
jle 0x417034
jmp 0x417df7
cmp esi, dword [esp + 0xb8]
jle 0x417034
mov dword [esp + 0xbc], edx
movss dword [esp + 0xe4], xmm0
movss dword [esp + 0xe0], xmm4
mov dword [esp + 0x168], eax
mov edi, dword [esp + 0x80]
lea ecx, [esp + 0x15c]
mov dword [esp + 0x184], edi
movss xmm0, dword [0x4771d8]
lea esi, [esp + 0x158]
lea edx, [esp + 0x170]
lea ebx, [esp + 0x174]
mov eax, dword [esp + 0xc0]
test eax, eax
mov dword [esp + 0x100], 0
mov dword [esp + 0x130], 0x4b189680
jle 0x417697
mov dword [esp + 0x188], eax
mov edi, 1
mov eax, dword [esp + 0xbc]
cmp dword [edi*4 + 0xa3657c], 0
lea esi, [edi + 1]
jne 0x417565
cmp esi, dword [esp + 0x184]
je 0x417565
cmp edi, 1
je 0x417142
mov ecx, dword [edi*4 + 0xc511f8]
inc ecx
jmp 0x417147
mov ecx, 1
mov dword [esp + 0x180], esi
mov ebx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x20]
mov dword [esp + 0x178], ecx
lea edx, [ebx + eax*4 - 4]
lea eax, [esi + eax*4 - 4]
lea esi, [ecx*4 + 0xbef77c]
lea ecx, [esp + 0x164]
push ecx
lea ebx, [esi + 0x30d40]
push ebx
push esi
push eax
push edx
mov esi, dword [esp + 0x194]
call fcn.00405560
movss xmm0, dword [esp + 0x15c]
comiss xmm0, dword [esp + 0x164]
movss xmm2, dword [0x4771cc]
movss xmm1, dword [0x4771e4]
ja 0x4171ae
movaps xmm2, xmm1
mulss xmm2, dword [esp + 0x160]
mov eax, dword [esp + 0x168]
mov ebx, dword [esp + 0x178]
movss dword [esp + 0x17c], xmm2
add esp, 0xffffffa8
lea edx, [esp + 0x1ac]
lea ecx, [esp + 0x1b0]
lea ebx, [ebx*4 + 0xbef77c]
mov dword [esp + 0xc], 0xa377e0
mov dword [esp + 0x10], 0xa37810
mov dword [esp + 0x14], edx
lea edx, [esp + 0x1cc]
mov dword [esp + 0x18], 0xa36260
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x20], 0xc81f40
mov dword [esp + 0x24], edx
lea edx, [esp + 0x1c8]
mov dword [esp + 0x28], 0x476de0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x1a4]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x1a8]
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x38], edx
lea edx, [esp + 0x1d4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x40], edx
lea edx, [ecx + eax*4 - 4]
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x44], edx
lea edx, [esp + 0x1c4]
lea eax, [ecx + eax*4 - 4]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
lea eax, [ebx + 0x30d40]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x1a0]
mov dword [esp + 0x54], edx
mov edx, 0xa37780
mov ecx, 0xa377b0
call fcn.0041803c
movss xmm0, dword [esp + 0x15c]
mov eax, dword [esp + 0x174]
comiss xmm0, dword [esp + 0x16c]
jbe 0x4172de
test eax, eax
jne 0x4172e2
movss xmm0, dword [esp + 0x164]
addss xmm0, dword [0x4771d4]
movss dword [esp + 0x164], xmm0
jmp 0x4172f9
test eax, eax
je 0x4172f9
mov dword [esp + 0x164], 0x4cbebc20
mov eax, dword [esp + 0x168]
jmp 0x417565
mov eax, dword [esp + 0x168]
mov edx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x20]
lea ecx, [edx + eax*4 - 4]
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x178]
lea edx, [ebx + eax*4 - 4]
mov dword [esp + 0x134], edx
lea edx, [ecx*4 + 0xbef77c]
mov ecx, dword [esp + 0x14c]
lea ebx, [edx + 0x30d40]
mov dword [esp + 0x13c], ebx
mov ecx, dword [ecx]
mov dword [0xa4d4ec], ecx
dec ecx
test ecx, ecx
jle 0x41753e
mov dword [esp + 0x128], edi
mov ebx, 1
mov dword [esp + 0x12c], edx
mov dword [esp + 0x180], esi
mov esi, ecx
movss xmm1, dword [0x4771a4]
mov edi, dword [esp + 0x150]
movss xmm0, dword [edi + ebx*4 - 4]
comiss xmm0, xmm1
ja 0x417520
movss xmm0, dword [edi + ebx*4]
comiss xmm0, xmm1
ja 0x417520
mov dword [esp + 0x120], esi
lea edx, [edi + ebx*4]
mov esi, dword [ebp + 0x14]
lea ecx, [edx - 4]
mov dword [esp + 0x124], ebx
mov dword [esp + 0x118], edx
mov dword [esp + 0x11c], ecx
lea ebx, [esi + ebx*4]
mov dword [esp + 0x110], ebx
lea esi, [esp + 0x10c]
lea eax, [ebx - 4]
mov dword [esp + 0x114], eax
push esi
lea esi, [esp + 0x10c]
push esi
push ebx
push edx
push eax
push ecx
push dword [esp + 0x14c]
push dword [esp + 0x154]
lea eax, [esp + 0x124]
push eax
mov ebx, dword [esp + 0x148]
mov esi, dword [esp + 0x144]
call fcn.00405610
movss xmm1, dword [0x4771a4]
cmp dword [esp + 0x104], 0
je 0x417520
lea eax, [esp + 0xd0]
push eax
lea edx, [esp + 0x110]
push edx
lea eax, [esp + 0x110]
push eax
push dword [esp + 0x140]
push dword [esp + 0x148]
call fcn.00405560
movss xmm0, dword [esp + 0x15c]
movss xmm1, dword [0x4771a4]
addss xmm0, dword [0x4771a0]
comiss xmm0, dword [esp + 0xd0]
jbe 0x417520
lea eax, [esp + 0xcc]
lea ecx, [esp + 0xc4]
lea edx, [esp + 0xc8]
push eax
push edx
push dword [esp + 0x118]
push dword [esp + 0x124]
push dword [esp + 0x124]
push dword [esp + 0x130]
push dword [esp + 0x154]
push dword [esp + 0x148]
push ecx
call fcn.00405610
movss xmm1, dword [0x4771a4]
cmp dword [esp + 0xc4], 0
je 0x417520
lea eax, [esp + 0xb4]
push eax
lea edx, [esp + 0xd0]
push edx
lea eax, [esp + 0xd0]
push eax
push dword [esp + 0x148]
push dword [esp + 0x13c]
call fcn.00405560
movss xmm0, dword [esp + 0x15c]
movss xmm1, dword [0x4771a4]
addss xmm0, dword [0x4771a0]
comiss xmm0, dword [esp + 0xb4]
ja 0x417dce
inc ebx
cmp ebx, esi
jle 0x41737a
mov esi, dword [esp + 0x180]
mov edi, dword [esp + 0x128]
mov eax, dword [esp + 0x168]
movss xmm0, dword [esp + 0x164]
movss xmm1, dword [esp + 0x130]
comiss xmm1, xmm0
jbe 0x417565
movss dword [esp + 0x130], xmm0
mov dword [esp + 0x100], edi
mov edi, esi
cmp esi, dword [esp + 0x188]
jle 0x417115
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x100]
test eax, eax
movss xmm0, dword [0x4771d8]
mov dword [esp + 0x184], eax
je 0x417697
cmp dword [esp + 0x184], 1
je 0x41767f
shl eax, 2
mov edx, dword [eax + 0xc511f8]
inc edx
mov dword [esp + 0x178], edx
mov ecx, dword [eax + 0xc511fc]
cmp edx, ecx
mov dword [esp + 0x174], ecx
mov dword [eax + 0xa3657c], 1
jne 0x417613
movss xmm1, dword [edx*4 + 0xbef77c]
subss xmm1, dword [esp + 0xe0]
andps xmm1, xmmword [0x476f70]
comiss xmm0, xmm1
jbe 0x417613
movss xmm1, dword [edx*4 + 0xc204bc]
subss xmm1, dword [esp + 0xe4]
andps xmm1, xmmword [0x476f70]
comiss xmm0, xmm1
ja 0x4170dd
cmp ecx, edx
jl 0x4170dd
mov eax, dword [esp + 0xbc]
sub ecx, edx
mov dword [esp + 0xb0], eax
inc ecx
xor ebx, ebx
lea edi, [eax + 1]
inc ebx
mov eax, edi
mov esi, edi
inc edi
cmp ebx, ecx
jb 0x417631
mov dword [esp + 0x168], esi
xor ebx, ebx
mov esi, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x20]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xb0]
lea esi, [esi + eax*4]
shl edx, 2
lea eax, [edi + eax*4]
mov edi, dword [edx + ebx*4 + 0xbef77c]
mov dword [esi + ebx*4], edi
mov edi, dword [edx + ebx*4 + 0xc204bc]
mov dword [eax + ebx*4], edi
inc ebx
cmp ebx, ecx
jb 0x417661
jmp 0x4170dd
mov edx, 1
mov dword [esp + 0x178], 1
shl eax, 2
jmp 0x4175b8
lea ebx, [esp + 0x174]
lea edx, [esp + 0x170]
lea esi, [esp + 0x158]
lea eax, [esp + 0x16c]
lea ecx, [esp + 0x15c]
add esp, 0xffffffa8
lea edi, [esp + 0x1ac]
mov dword [esp + 0xc], 0xa377e0
mov dword [esp + 0x10], 0xa37810
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0xa36260
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 0xc81f40
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], 0x476de0
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x30], edx
mov ebx, dword [esp + 0x1a4]
mov dword [esp + 0x34], ebx
mov esi, dword [esp + 0x1a8]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x114]
mov ebx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x20]
lea esi, [ebx + edx*4 - 4]
mov dword [esp + 0x44], esi
lea ecx, [edi + edx*4 - 4]
mov dword [esp + 0x48], ecx
mov edx, 0xa37780
lea ebx, [esp + 0x138]
mov dword [esp + 0x4c], ebx
lea esi, [esp + 0x13c]
mov dword [esp + 0x50], esi
mov ecx, 0xa377b0
mov dword [esp + 0x54], eax
lea eax, [esp + 0x1a0]
call fcn.0041803c
mov eax, dword [esp + 0x168]
cmp dword [esp + 0x174], 0
jne 0x4179d3
mov edx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x20]
mov esi, dword [esp + 0x14c]
movss xmm0, dword [edx + eax*4 - 4]
movss xmm2, dword [ebx + eax*4 - 4]
movss xmm1, dword [0x477194]
mov ebx, dword [esi]
dec ebx
addss xmm0, dword [esp + 0xe0]
addss xmm2, dword [esp + 0xe4]
mulss xmm0, xmm1
mulss xmm2, xmm1
movss xmm1, dword [esp + 0x15c]
test ebx, ebx
movss dword [esp + 0x144], xmm0
movss dword [esp + 0x140], xmm2
addss xmm1, dword [0x4771a0]
jle 0x41797b
movss xmm0, dword [0x4771c8]
xor edx, edx
movss dword [esp + 0x5c], xmm0
mov edi, 1
movss dword [esp + 0x58], xmm1
mov dword [esp + 0x60], edx
movss xmm0, dword [0x4771a4]
mov esi, dword [esp + 0x150]
movss xmm1, dword [esi + edi*4 - 4]
comiss xmm1, xmm0
jbe 0x417834
lea eax, [edi + 1]
jmp 0x41795b
movss xmm1, dword [esi + edi*4]
comiss xmm1, xmm0
jbe 0x417846
lea eax, [edi + 1]
jmp 0x41795b
mov dword [esp + 0x48], ebx
lea ecx, [esi + edi*4]
mov ebx, dword [ebp + 0x14]
lea eax, [ecx - 4]
mov dword [esp + 0x4c], edi
lea edx, [ebx + edi*4]
lea ebx, [esp + 0x40]
lea edi, [edx - 4]
mov dword [esp + 0x44], edi
push ebx
lea ebx, [esp + 0x40]
push ebx
push edx
push ecx
push edi
push eax
lea edx, [esp + 0x158]
push edx
lea ecx, [esp + 0x160]
push ecx
lea edi, [esp + 0x58]
push edi
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x74], eax
call fcn.00405610
movss xmm0, dword [0x4771a4]
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x38], 0
jne 0x417900
lea edx, [esp + 0x2c]
push edx
push dword [esp + 0x48]
push eax
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0x154]
push ecx
call fcn.00405560
movss xmm2, dword [esp + 0x2c]
lea eax, [edi + 1]
movss xmm1, dword [esp + 0x58]
movss xmm0, dword [0x4771a4]
comiss xmm1, xmm2
jbe 0x41795b
movss xmm1, dword [esp + 0x5c]
minss xmm1, xmm2
ucomiss xmm2, xmm1
movss dword [esp + 0x5c], xmm1
jne 0x41795b
jp 0x41795b
mov dword [esp + 0x60], edi
jmp 0x41795b
lea eax, [esp + 0x2c]
push eax
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0x44]
push ecx
lea eax, [esp + 0x14c]
push eax
lea edx, [esp + 0x154]
push edx
call fcn.00405560
movss xmm2, dword [esp + 0x2c]
lea eax, [edi + 1]
movss xmm1, dword [esp + 0x58]
movss xmm0, dword [0x4771a4]
comiss xmm1, xmm2
jbe 0x41795b
movss xmm1, dword [esp + 0x5c]
minss xmm1, xmm2
ucomiss xmm2, xmm1
movss dword [esp + 0x5c], xmm1
jne 0x41795b
jp 0x41795b
mov dword [esp + 0x60], eax
mov edi, eax
cmp eax, ebx
jle 0x417821
mov edx, dword [esp + 0x60]
test edx, edx
mov eax, dword [esp + 0x168]
mov ebx, dword [esp + 0x174]
jne 0x417988
mov dword [esp + 0x174], 1
jmp 0x4179d3
test ebx, ebx
jne 0x4179d3
mov edx, eax
sub edx, dword [esp + 0x64]
cmp edx, 2
jle 0x4179d3
mov edx, dword [ebp + 0x1c]
mov edi, 0x47c34f80
mov ebx, dword [esp + 0xe0]
mov esi, dword [esp + 0xe4]
mov dword [edx + eax*4], ebx
mov ebx, dword [ebp + 0x20]
mov dword [ebx + eax*4], esi
add eax, 2
mov dword [esp + 0xbc], eax
mov ecx, eax
mov dword [esp + 0x64], eax
mov dword [edx + eax*4 - 4], edi
mov dword [ebx + eax*4 - 4], edi
jmp 0x417d65
mov edx, eax
sub edx, dword [esp + 0x64]
cmp edx, 5
jle 0x417d58
mov edx, dword [esp + 0x64]
xor edi, edi
movss xmm3, dword [0x4771ac]
movss xmm5, dword [0x4771dc]
movaps xmm6, xmm3
mov dword [0xa4d4dc], eax
lea esi, [edx + 1]
mov edx, esi
movaps xmm4, xmm5
cmp eax, esi
jl 0x417abb
movss xmm0, dword [0x4771dc]
movss dword [esp + 0x54], xmm0
movss xmm2, dword [0x4771a4]
mov ebx, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
movss xmm1, dword [ecx + edx*4 - 4]
comiss xmm2, xmm1
jbe 0x417ab2
movaps xmm0, xmm3
movaps xmm3, xmm1
movaps xmm7, xmm5
movaps xmm5, xmm1
cmp edx, esi
minss xmm3, xmm0
maxss xmm5, xmm7
movss xmm0, dword [ebx + edx*4 - 4]
movaps xmm7, xmm6
movaps xmm6, xmm0
minss xmm6, xmm7
movaps xmm7, xmm4
movaps xmm4, xmm0
maxss xmm4, xmm7
jle 0x417ab2
movss xmm7, dword [ecx + edx*4 - 8]
comiss xmm2, xmm7
jbe 0x417ab2
subss xmm1, xmm7
subss xmm0, dword [ebx + edx*4 - 8]
andps xmm1, xmmword [0x476f70]
andps xmm0, xmmword [0x476f70]
addss xmm1, xmm0
movss xmm0, dword [esp + 0x54]
movaps xmm7, xmm1
movss dword [esp + 0x34], xmm1
maxss xmm7, xmm0
ucomiss xmm7, xmm1
movss dword [esp + 0x54], xmm7
jne 0x417ab2
jp 0x417ab2
mov edi, edx
inc edx
cmp edx, eax
jle 0x417a2c
movss xmm0, dword [0x4771a0]
subss xmm5, xmm3
comiss xmm0, xmm5
ja 0x417d58
movss xmm0, dword [0x4771a0]
subss xmm4, xmm6
comiss xmm0, xmm4
ja 0x417d58
test edi, edi
je 0x417bcf
movss xmm0, dword [0x4771dc]
cmp eax, esi
jl 0x417bb5
mov edx, dword [ebp + 0x1c]
lea ebx, [edi - 1]
mov dword [esp + 0x30], ebx
lea ecx, [edx + edi*4]
mov edx, dword [ebp + 0x20]
lea ebx, [ecx - 8]
mov dword [esp + 0x20], ebx
add ecx, 0xfffffffc
lea ebx, [edx + edi*4]
lea edx, [ebx - 8]
mov dword [esp + 0x1c], edx
add ebx, 0xfffffffc
cmp esi, edi
je 0x417bac
cmp esi, dword [esp + 0x30]
je 0x417bac
mov edx, dword [ebp + 0x1c]
movss xmm1, dword [0x4771a4]
comiss xmm1, dword [edx + esi*4 - 4]
jbe 0x417bac
mov dword [esp + 4], edi
mov edi, dword [ebp + 0x1c]
mov dword [esp], esi
lea edx, [edi + esi*4 - 4]
mov edi, dword [ebp + 0x20]
lea edi, [edi + esi*4 - 4]
lea esi, [esp + 0x34]
push esi
push dword [esp + 0x20]
push dword [esp + 0x28]
push ebx
push ecx
push edi
push edx
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
movss dword [esp + 0x24], xmm0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
call fcn.00405f70
movss xmm0, dword [esp + 8]
movss xmm1, dword [esp + 0x34]
movaps xmm2, xmm0
movaps xmm0, xmm1
mov eax, dword [esp + 0x10]
maxss xmm0, xmm2
mov ecx, dword [esp + 0xc]
comiss xmm0, dword [0x4771a0]
ja 0x417bcf
inc esi
cmp esi, eax
jle 0x417b24
movss xmm1, dword [0x4771a0]
comiss xmm1, xmm0
jbe 0x417bcf
pxor xmm1, xmm1
comiss xmm0, xmm1
ja 0x417d58
mov eax, dword [esp + 0x14c]
mov edx, dword [eax]
cmp edx, 0x2710
jg 0x417c95
test edx, edx
jle 0x417d75
mov ebx, dword [ebp + 0x14]
xor eax, eax
mov esi, dword [esp + 0x150]
mov ecx, 1
movss xmm2, dword [esi + ecx*4 - 4]
inc eax
movaps xmm1, xmm2
movss xmm0, dword [ebx + ecx*4 - 4]
mov edi, dword [ebx + ecx*4 - 4]
inc ecx
cmp ecx, edx
movss dword [eax*4 + 0xe2fa3c], xmm2
mov dword [eax*4 + 0xe3967c], edi
jg 0x417c6e
cmp eax, 1
jle 0x417bfd
movss xmm2, dword [esi + ecx*4 - 4]
movaps xmm4, xmm1
movss xmm3, dword [0x4771e0]
subss xmm4, xmm2
andps xmm4, xmmword [0x476f70]
comiss xmm3, xmm4
jbe 0x417c03
movaps xmm4, xmm0
movss xmm3, dword [0x4771e0]
subss xmm4, dword [ebx + ecx*4 - 4]
andps xmm4, xmmword [0x476f70]
comiss xmm3, xmm4
jbe 0x417c03
inc ecx
cmp ecx, edx
jle 0x417c2b
mov dword [esp + 0x18], eax
add esp, 0xfffffff0
mov edx, 0xe2fa40
mov ecx, 0xe39680
lea eax, [esp + 0x28]
lea ebx, [esp + 0x188]
mov dword [esp + 0xc], ebx
call fcn.00414e0c
jmp 0x417cb2
add esp, 0xfffffff0
mov ecx, dword [ebp + 0x14]
lea ebx, [esp + 0x188]
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x160]
call fcn.00414e0c
add esp, 0xffffffe4
mov eax, 0x476de0
mov ecx, dword [ebp + 0x14]
lea ebx, [esp + 0x94]
lea edx, [esp + 0xfc]
mov dword [esp + 0xc], ebx
mov esi, dword [esp + 0x168]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x16c]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x100]
call fcn.004102fc
mov edi, dword [esp + 0x168]
add esp, 0xffffffe4
mov ebx, dword [ebp + 0x1c]
lea eax, [esp + 0x90]
mov esi, dword [ebp + 0x20]
mov dword [esp + 0xc], eax
lea edx, [ebx + edi*4 - 4]
mov ebx, dword [esp + 0x168]
lea ecx, [esi + edi*4 - 4]
mov dword [esp + 0x10], ebx
mov eax, 0x476de0
mov esi, dword [esp + 0x16c]
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
call fcn.004102fc
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x178], 1
je 0x417dc1
test eax, eax
jne 0x417d58
cmp dword [esp + 0x74], 0
je 0x417d82
mov eax, dword [esp + 0x64]
mov ecx, eax
mov dword [esp + 0xbc], eax
movss xmm4, dword [0x477198]
movaps xmm0, xmm4
jmp 0x416fbe
mov dword [esp + 0x18], 0
jmp 0x417c72
movss xmm1, dword [0x4771c0]
xor esi, esi
movss xmm2, dword [0x4771b8]
movss xmm3, dword [esp + 0x6c]
mov ebx, dword [ebp + 0x18]
movss xmm4, dword [0x482840]
mulss xmm4, dword [0x477194]
movss xmm0, dword [esp + 0x7c]
comiss xmm0, xmm4
ja 0x41613c
jmp 0x4159ac
test eax, eax
je 0x417d58
cmp dword [esp + 0x74], 0
jne 0x417d82
jmp 0x417d58
mov esi, dword [esp + 0x180]
mov edi, dword [esp + 0x128]
pxor xmm0, xmm0
mov eax, dword [esp + 0x168]
mov dword [esp + 0x164], 0
jmp 0x417547
mov dword [esp + 0xbc], edx
mov dword [esp + 0xe4], edi
mov dword [esp + 0xe0], ebx
mov dword [esp + 0x168], eax
jmp 0x4170ab
movss dword [esp + 0xe4], xmm0
movss dword [esp + 0xe0], xmm4
mov dword [esp + 0x168], ecx
jmp 0x4170ab
mov edx, 1
mov eax, esi
mov dword [esp + 0x84], edx
jmp 0x416f0c
cmp dword [ebx*4 + 0xc511f8], 0
jl 0x416bff
jmp 0x41690a
cmp dword [edi*4 + 0xc51200], 0
jl 0x416c08
jmp 0x416848
movss dword [esp + 0x6c], xmm3
mov esi, dword [ebp + 0x1c]
mov ebx, eax
mov edx, dword [esp + 0x148]
lea ecx, [ebx*4]
mov dword [0xa4d4c8], edx
test edx, edx
jle 0x417ff7
mov eax, 1
movss xmm0, dword [ebx*4 + 0xbef77c]
mov esi, eax
mov dword [esp + 0x68], ebx
comiss xmm0, dword [eax*4 + 0xa3777c]
jbe 0x417eed
movss xmm1, dword [eax*4 + 0xa377ac]
comiss xmm1, xmm0
jbe 0x417eed
movss xmm1, dword [ecx + 0xc204bc]
mov ebx, esi
comiss xmm1, dword [ebx*4 + 0xa377dc]
jbe 0x417ee8
movss xmm2, dword [ebx*4 + 0xa3780c]
comiss xmm2, xmm1
ja 0x417fe3
inc ebx
cmp ebx, edx
jle 0x417ecc
lea esi, [esi]
lea edi, [edi]
inc eax
cmp eax, edx
jle 0x417eaa
mov ebx, dword [esp + 0x68]
mov edx, 0x64
mov esi, dword [ebp + 0x1c]
add esp, 0xffffffc8
mov eax, 0x482848
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0xc], ecx
lea ecx, [ebx*4 + 0xbef77c]
mov dword [esp + 0x10], ecx
lea ecx, [ecx + 0x30d40]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0xc8]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x190]
mov dword [esp + 0x1c], ecx
lea ecx, [edx*8 + 0xa36258]
mov dword [esp + 0x20], 0xc81f40
lea edx, [edx*8 + 0xa3625c]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
lea edx, [esp + 0x1a0]
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x110]
mov dword [esp + 0x30], edx
lea edx, [esp + 0x10c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x184]
mov ecx, dword [esp + 0x188]
call fcn.0041868c
cmp dword [esp + 0x168], 0
je 0x417fb2
mov dword [esi + ebx*4 - 4], 0x3f800000
inc ebx
cmp ebx, edi
jle 0x417e7a
jmp 0x417fc3
mov dword [esi + ebx*4 - 4], 0
inc ebx
cmp ebx, edi
jle 0x417e7a
movss xmm1, dword [0x4771c0]
xor esi, esi
movss xmm2, dword [0x4771b8]
movss xmm3, dword [esp + 0x6c]
mov ebx, dword [ebp + 0x18]
jmp 0x4165b4
mov edx, ebx
lea ecx, [eax + eax*4]
mov ebx, dword [esp + 0x68]
lea edx, [edx + ecx*2]
mov esi, dword [ebp + 0x1c]
jmp 0x417f09
mov edx, 0x64
jmp 0x417f09
test eax, eax
jle 0x4167d0
mov edx, 0x4b189680
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd8], edx
mov dword [ebx], edi
jmp 0x4165c1
mov dword [esp + 0x158], ecx
jmp 0x4160ea