Function at 0x41585c
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 [0x4600e0]
mov dword [esp + 0x150], ecx
mov dword [esp + 0x14c], edx
movss xmm6, dword [esi]
comiss xmm0, xmm6
jbe 0x4158a4
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 [0x469834]
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 [0x4600e8]
movss xmm2, dword [0x4600ec]
movaps xmm5, xmm4
mov dword [0x5df2a4], edx
movaps xmm3, xmm2
addss xmm0, dword [0x4600e4]
jle 0x415960
movss xmm1, dword [0x4600f4]
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 0x41594f
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 0x415916
movss xmm0, dword [esp + 0x74]
movss xmm6, dword [esp + 0x70]
movss xmm1, dword [0x4600f0]
cmp edx, 0xf
subss xmm4, xmm1
addss xmm2, xmm1
subss xmm5, xmm1
addss xmm3, xmm1
jge 0x4159ac
movss xmm1, dword [0x460134]
mov ebx, 1
mov dword [esp + 0x148], 1
subss xmm2, xmm4
subss xmm3, xmm5
divss xmm2, xmm1
divss xmm3, xmm1
xor ecx, ecx
jmp 0x415b46
movss xmm7, dword [0x4600e4]
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 0x415bb5
cmp ebx, 4
jl 0x4159a5
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 [0x45fea0]
movdqa xmmword [esp + 0x20], xmm7
movdqa xmm7, xmmword [0x45feb0]
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 + 0x5c9540], 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 + 0x5c9570], xmm1
movaps xmmword [edi*4 + 0x5c95a0], xmm2
movaps xmmword [edi*4 + 0x5c95d0], xmm0
add edi, 4
cmp edi, ecx
jb 0x415ac0
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 0x415bb5
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 + 0x5c9540], 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 + 0x5c9570], xmm7
movss dword [ecx*4 + 0x5c95a0], xmm1
movss dword [ecx*4 + 0x5c95d0], xmm6
mov ecx, edi
jb 0x415b50
movss xmm6, dword [esp + 0x70]
mov edi, 0x5c8020
xor eax, eax
mov ecx, 0xc8
rep stosd dword es:[edi], eax
mov dword [esp + 0x154], 0x64
xor ecx, ecx
test ebx, ebx
jle 0x415f63
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 [0x4600f0]
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 + 0x5c953c]
lea edi, [ecx + ecx*8]
add edi, ecx
subss xmm4, xmm0
neg edi
add edi, esi
movss xmm3, dword [ecx*4 + 0x5c956c]
test edx, edx
addss xmm3, xmm0
movss xmm2, dword [edi*4 + 0x5c959c]
movss xmm1, dword [edi*4 + 0x5c95cc]
mov edi, edx
subss xmm2, xmm0
addss xmm1, xmm0
jle 0x415ee1
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 0x415cc3
comiss xmm3, xmm7
jbe 0x415cc3
movss xmm0, dword [ebx + ecx*4 - 4]
comiss xmm0, xmm2
jbe 0x415cc3
comiss xmm1, xmm0
jbe 0x415cc3
mov dword [ecx*4 + 0x5cb9fc], 1
jmp 0x415ebe
cmp ecx, edx
jge 0x415eb3
comiss xmm7, xmm3
jbe 0x415cde
movss xmm0, dword [esi + ecx*4]
comiss xmm0, xmm3
ja 0x415eb3
movss xmm6, dword [ebx + ecx*4 - 4]
comiss xmm6, xmm1
jbe 0x415cf7
movss xmm0, dword [ebx + ecx*4]
comiss xmm0, xmm1
ja 0x415eb3
comiss xmm4, xmm7
jbe 0x415d06
comiss xmm4, dword [esi + ecx*4]
ja 0x415eb3
movss xmm5, dword [ebx + ecx*4]
comiss xmm2, xmm6
jbe 0x415d19
comiss xmm2, xmm5
ja 0x415eb3
movss xmm0, dword [esi + ecx*4]
subss xmm5, xmm6
subss xmm0, xmm7
movss dword [esp + 0x18], xmm0
andps xmm0, xmmword [0x45fec0]
comiss xmm0, dword [0x4600f8]
jbe 0x415dfc
movaps xmm0, xmm4
subss xmm0, xmm7
divss xmm0, dword [esp + 0x18]
movss dword [esp + 0x14], xmm0
comiss xmm0, dword [0x4600f8]
jbe 0x415d9e
movss xmm0, dword [0x460134]
comiss xmm0, dword [esp + 0x14]
jbe 0x415d9e
movss xmm0, dword [esp + 0x14]
mulss xmm0, xmm5
addss xmm0, xmm6
movss dword [esp + 0x14], xmm0
comiss xmm0, xmm2
jbe 0x415d9e
comiss xmm1, dword [esp + 0x14]
jbe 0x415d9e
mov dword [ecx*4 + 0x5cb9fc], eax
mov dword [ecx*4 + 0x5cba00], eax
jmp 0x415ebe
movaps xmm0, xmm3
subss xmm0, xmm7
divss xmm0, dword [esp + 0x18]
movss dword [esp + 0x10], xmm0
comiss xmm0, dword [0x4600f8]
jbe 0x415dfc
movss xmm0, dword [0x460134]
comiss xmm0, dword [esp + 0x10]
jbe 0x415dfc
movss xmm0, dword [esp + 0x10]
mulss xmm0, xmm5
addss xmm0, xmm6
movss dword [esp + 0x10], xmm0
comiss xmm0, xmm2
jbe 0x415dfc
comiss xmm1, dword [esp + 0x10]
jbe 0x415dfc
mov dword [ecx*4 + 0x5cb9fc], eax
mov dword [ecx*4 + 0x5cba00], eax
jmp 0x415ebe
movaps xmm0, xmm5
andps xmm0, xmmword [0x45fec0]
comiss xmm0, dword [0x4600f8]
jbe 0x415eb3
movaps xmm0, xmm2
subss xmm0, xmm6
divss xmm0, xmm5
movss dword [esp + 0xc], xmm0
comiss xmm0, dword [0x4600f8]
jbe 0x415e6e
movss xmm0, dword [0x460134]
comiss xmm0, dword [esp + 0xc]
jbe 0x415e6e
movss xmm0, dword [esp + 0xc]
mulss xmm0, dword [esp + 0x18]
addss xmm0, xmm7
movss dword [esp + 0xc], xmm0
comiss xmm0, xmm4
jbe 0x415e6e
comiss xmm3, dword [esp + 0xc]
jbe 0x415e6e
mov dword [ecx*4 + 0x5cb9fc], eax
mov dword [ecx*4 + 0x5cba00], eax
jmp 0x415ebe
movaps xmm0, xmm1
subss xmm0, xmm6
divss xmm0, xmm5
comiss xmm0, dword [0x4600f8]
jbe 0x415eb3
movss xmm5, dword [0x460134]
comiss xmm5, xmm0
jbe 0x415eb3
mulss xmm0, dword [esp + 0x18]
addss xmm7, xmm0
comiss xmm7, xmm4
jbe 0x415eb3
comiss xmm3, xmm7
jbe 0x415eb3
mov dword [ecx*4 + 0x5cb9fc], eax
mov dword [ecx*4 + 0x5cba00], eax
jmp 0x415ebe
mov dword [ecx*4 + 0x5cb9fc], 0
inc ecx
cmp ecx, edx
jle 0x415c93
movss xmm5, dword [0x4600f0]
movss xmm0, dword [esp + 0x74]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
test edx, edx
jle 0x415f16
mov ecx, 1
cmp dword [ecx*4 + 0x5cb9fc], 0
je 0x415f0d
inc ebx
cmp dword [esi*8 + 0x5c8018], 0
mov dword [ebx*4 + 0xd2bd7c], ecx
jne 0x415f0d
mov dword [esi*8 + 0x5c8018], ebx
inc ecx
cmp ecx, edx
jle 0x415eea
mov edx, dword [esp + 0x20]
inc eax
mov dword [esi*8 + 0x5c801c], ebx
cmp eax, dword [esp + 0x30]
jle 0x415c16
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 0x415c01
mov edi, dword [esp + 4]
movss xmm6, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp]
mov dword [0x5df284], edi
mov dword [0x5df280], ebx
test edx, edx
jle 0x417f03
mov dword [esp], esi
lea edi, [ecx*4]
mov dword [esp + 4], edi
xor ebx, ebx
mov edi, dword [0x5c8338]
mov eax, ecx
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 4]
inc eax
lea ecx, [ebx + 1]
mov dword [esi + ebx*4 + 0xd2bd80], ecx
test edi, edi
jne 0x415fa9
mov dword [0x5c8338], eax
mov edi, eax
mov ebx, ecx
cmp ecx, edx
jb 0x415f8b
jmp 0x415faf
mov ebx, ecx
cmp ecx, edx
jb 0x415f8b
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 [0x4600e0]
mulss xmm3, xmm0
mov eax, dword [esi]
mov ebx, dword [ebp + 0x18]
xor esi, esi
mov dword [0x5c833c], ecx
mov ecx, 0x47c34f80
mov dword [esp + 0x15c], eax
xorps xmm3, xmmword [0x45fed0]
movss xmm7, dword [0x4600f4]
movss xmm2, dword [0x460108]
movss xmm1, dword [0x460110]
movss dword [esp + 0x70], xmm6
jmp 0x41605b
movss xmm0, dword [0x46983c]
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 [0x4600e0]
movss dword [esp + 0x15c], xmm0
movss xmm4, dword [0x4600f0]
dec edx
mulss xmm4, xmm0
mov eax, esi
mulss xmm3, dword [0x4600e4]
movss xmm5, dword [0x460134]
test edx, edx
mov dword [ebx], 0
minss xmm5, xmm4
movss dword [esp + 0x94], xmm5
subss xmm0, xmm5
movss dword [esp + 0x90], xmm0
jle 0x416315
movss dword [esp + 0x6c], xmm3
mov edi, 1
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x150]
movss xmm1, dword [0x469838]
movss xmm0, dword [eax + edi*4 - 4]
subss xmm0, dword [eax + edi*4]
andps xmm0, xmmword [0x45fec0]
comiss xmm1, xmm0
jbe 0x4160f8
mov eax, dword [ebp + 0x14]
movss xmm0, dword [eax + edi*4 - 4]
subss xmm0, dword [eax + edi*4]
andps xmm0, xmmword [0x45fec0]
comiss xmm1, xmm0
ja 0x4162ea
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 0x45fd2c
call fcn.00408b20
movss xmm0, dword [esp + 0xe0]
comiss xmm0, dword [0x4600f4]
ja 0x4162ea
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 0x416296
lea esi, [esp + 0x160]
lea ecx, [esp + 0xd8]
lea ebx, [esp + 0xd4]
push esi
lea esi, [esp + 0xe8]
push esi
lea eax, [eax*4 + 0xc995bc]
lea esi, [esp + 0xe8]
push esi
lea edx, [eax + 0x30d40]
push edx
push eax
push ebx
push ecx
call fcn.00408240
mov eax, dword [ebp + 0x18]
movss xmm0, dword [esp + 0x6c]
comiss xmm0, dword [esp + 0x160]
mov eax, dword [eax]
ja 0x4161f2
movss xmm0, dword [esp + 0xe0]
jmp 0x416296
lea esi, [eax*4 + 0xc995bc]
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 0x469838
call fcn.0040aa80
mov eax, dword [ebp + 0x18]
mov esi, dword [esp + 0xc0]
dec esi
mov eax, dword [eax]
cmp esi, 2
jl 0x4161e4
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 + 0xc995bc], edi
mov edi, dword [edx + ebx*4 - 4]
inc ebx
mov dword [eax*4 + 0xcca2fc], edi
cmp ebx, esi
mov dword [eax*4 + 0xcfb03c], 0
jle 0x416262
mov edi, dword [esp + 0x28]
movss xmm0, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
movss dword [eax*4 + 0xc995c0], xmm0
mov dword [eax*4 + 0xcca300], edx
mov dword [eax*4 + 0xcfb040], 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 + 0xc995bc], ebx
mov dword [eax*4 + 0xcca2fc], esi
mov dword [eax*4 + 0xcfb03c], edi
jg 0x41588c
inc edi
cmp edi, dword [esp + 0x88]
jle 0x4160b4
mov ebx, dword [ebp + 0x18]
xor esi, esi
movss xmm1, dword [0x460110]
movss xmm2, dword [0x460108]
movss xmm3, dword [esp + 0x6c]
mov eax, dword [ebx]
lea ecx, [eax*4 + 0xc995bc]
lea eax, [esp + 0x160]
push eax
lea edx, [ecx + 0x30d40]
push edx
push ecx
push dword [ebp + 0x14]
push dword [esp + 0x160]
push 0xcca300
push 0xc995c0
movss dword [esp + 0x88], xmm3
call fcn.00408240
movss xmm3, dword [esp + 0x6c]
movss xmm2, dword [0x460108]
movss xmm1, dword [0x460110]
mov eax, dword [ebx]
comiss xmm3, dword [esp + 0x160]
jbe 0x41641c
lea ecx, [eax*4 + 0xc995bc]
lea eax, [esp + 0xc0]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push eax
push 0xcca300
push 0xc995c0
lea edx, [ecx + 0x30d40]
push edx
push ecx
lea edi, [esp + 0x178]
push edi
push dword [ebp + 0x14]
push dword [esp + 0x174]
push 0x469838
movss dword [esp + 0x98], xmm3
call fcn.0040aa80
mov ecx, dword [esp + 0xc0]
dec ecx
movss xmm3, dword [esp + 0x6c]
cmp ecx, 2
movss xmm2, dword [0x460108]
movss xmm1, dword [0x460110]
mov eax, dword [ebx]
jl 0x41641c
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 + 0xc995bc], ebx
mov ebx, dword [esi + edx*4 - 4]
inc edx
mov dword [eax*4 + 0xcca2fc], ebx
cmp edx, ecx
mov dword [eax*4 + 0xcfb03c], 0
jle 0x4163f0
mov ebx, dword [ebp + 0x18]
xor esi, esi
mov edx, dword [0xc995c0]
lea edi, [eax + 1]
mov dword [edi*4 + 0xc995bc], edx
test edi, edi
mov ecx, dword [0xcca300]
mov edx, dword [0xcfb040]
mov dword [edi*4 + 0xcca2fc], ecx
mov dword [edi*4 + 0xcfb03c], edx
jle 0x417ee1
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 [0x460100]
ja 0x417d4f
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 0x416480
mov edi, dword [ebx]
lea eax, [edi - 1]
test eax, eax
jle 0x4166b0
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 0x4164c6
je 0x41668a
movss xmm0, dword [esi + edi*4]
pxor xmm1, xmm1
ucomiss xmm0, xmm1
jp 0x4164da
je 0x41668a
cmp dword [edi*4 + 0xcfb03c], 0
je 0x41668a
cmp dword [edi*4 + 0xcfb040], 0
je 0x41668a
mov dword [esp + 0xa8], ebx
lea ebx, [edi*4 + 0xcca2fc]
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.004082b0
movss xmm1, dword [esp + 0x16c]
movss xmm0, dword [esp + 0x94]
comiss xmm0, xmm1
ja 0x41668a
comiss xmm1, dword [esp + 0x15c]
jbe 0x41658a
mov dword [esp + 0x168], 0
jmp 0x416681
mulss xmm1, dword [0x460104]
minss xmm1, dword [0x460108]
movss dword [esp + 0x170], xmm1
add esp, 0xffffffa8
lea edx, [esp + 0x1ac]
lea ecx, [esp + 0x1c0]
lea eax, [esp + 0x1a0]
mov dword [esp + 0xc], 0x5c95a0
mov dword [esp + 0x10], 0x5c95d0
mov dword [esp + 0x14], edx
lea edx, [esp + 0x1b0]
mov dword [esp + 0x18], 0x5c8020
mov dword [esp + 0x1c], edx
lea edx, [esp + 0xe8]
mov dword [esp + 0x20], 0xd2bd80
mov dword [esp + 0x24], ecx
mov ecx, 0x5c9570
mov dword [esp + 0x28], 0x45fd2c
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], 0x469834
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, 0x5c9540
call fcn.00417f1c
cmp dword [esp + 0x168], 0
jne 0x41668a
xor edx, edx
mov dword [esi + edi*4 - 4], edx
mov dword [esi + edi*4], edx
inc edi
cmp edi, ebx
jle 0x4164b1
mov ebx, dword [ebp + 0x18]
xor esi, esi
movss xmm1, dword [0x460110]
movss xmm2, dword [0x460108]
movss xmm3, dword [esp + 0x6c]
mov edi, dword [ebx]
test edi, edi
jle 0x4166dd
mov edx, dword [ebp + 0x1c]
mov eax, 1
pxor xmm4, xmm4
movss xmm0, dword [edx + eax*4 - 4]
ucomiss xmm0, xmm4
jp 0x4166cd
je 0x4166d8
mov dword [eax*4 + 0xcfb03c], 0xffffffff
inc eax
cmp eax, edi
jle 0x4166c0
mov dword [ebx], 0
lea eax, [edi - 1]
test eax, eax
jle 0x415895
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 + 0xcfb03c], 0
jl 0x417d3c
movss xmm1, dword [edi*4 + 0xc995bc]
movss xmm0, dword [edi*4 + 0xc995c0]
mov eax, dword [edi*4 + 0xc995bc]
mov edx, dword [edi*4 + 0xc995c0]
comiss xmm0, xmm1
jbe 0x416756
mov dword [esp + 0x144], edx
jmp 0x416760
mov dword [esp + 0x144], eax
movaps xmm1, xmm0
movss xmm0, dword [edi*4 + 0xcca2fc]
movss xmm2, dword [edi*4 + 0xcca300]
mov eax, dword [edi*4 + 0xcca2fc]
mov edx, dword [edi*4 + 0xcca300]
comiss xmm2, xmm0
jbe 0x41678e
mov dword [esp + 0x140], edx
jmp 0x416798
mov dword [esp + 0x140], eax
movaps xmm0, xmm2
mov ebx, dword [esp + 0xc0]
lea esi, [edi + 2]
cmp ebx, esi
jl 0x416ae8
lea eax, [edi*4 + 0xcca2fc]
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 + 0xcfb03c], 0
jl 0x417d29
movss xmm3, dword [esp + 0x144]
movss xmm4, dword [ebx*4 + 0xc995bc]
comiss xmm4, xmm3
jbe 0x416813
movss xmm2, dword [ebx*4 + 0xc995b8]
comiss xmm2, xmm3
ja 0x416adf
comiss xmm1, xmm4
jbe 0x416826
comiss xmm1, dword [ebx*4 + 0xc995b8]
ja 0x416adf
movss xmm4, dword [esp + 0x140]
movss xmm3, dword [ebx*4 + 0xcca2fc]
comiss xmm3, xmm4
jbe 0x41684f
movss xmm2, dword [ebx*4 + 0xcca2f8]
comiss xmm2, xmm4
ja 0x416adf
comiss xmm0, xmm3
jbe 0x416862
comiss xmm0, dword [ebx*4 + 0xcca2f8]
ja 0x416adf
cmp ebx, edi
je 0x416adf
add esp, 0xffffffd4
lea edx, [ebx*4 + 0xc995bc]
mov eax, dword [esp + 0x11c]
lea ecx, [ebx*4 + 0xcca2fc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x10], eax
lea eax, [ebx*4 + 0xc995b8]
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.004148bc
movss xmm1, dword [esp + 0xfc]
movss xmm0, dword [esp + 0xf8]
cmp dword [esp + 0x100], 0
je 0x416adf
xor eax, eax
cmp dword [edi*4 + 0xcfb03c], 0
jle 0x41692a
cmp dword [edi*4 + 0xcfb040], 0
jle 0x41692a
xor edx, edx
jmp 0x416931
mov eax, 1
mov edx, eax
cmp dword [ebx*4 + 0xcfb03c], 0
jle 0x416da8
cmp dword [ebx*4 + 0xcfb038], 0
jle 0x416da8
mov dword [esp + 0x168], eax
test edx, edx
je 0x416966
mov eax, dword [0x469834]
mov dword [esp + 0x160], eax
jmp 0x416972
mov eax, dword [0x46983c]
mov dword [esp + 0x160], eax
mov ecx, dword [esp + 0x148]
test ecx, ecx
mov dword [0x5df288], ecx
jle 0x416d9e
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 + 0x5c953c]
jbe 0x4169e2
movss xmm4, dword [eax*4 + 0x5c956c]
comiss xmm4, xmm3
jbe 0x4169e2
mov edx, edi
comiss xmm2, dword [edx*4 + 0x5c959c]
jbe 0x4169dd
movss xmm4, dword [edx*4 + 0x5c95cc]
comiss xmm4, xmm2
ja 0x416d8c
inc edx
cmp edx, ecx
jle 0x4169c1
lea esi, [esi]
lea edi, [edi]
inc eax
cmp eax, ecx
jle 0x4169a7
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 + 0x5c8018]
mov dword [esp + 0x1c], ecx
lea eax, [eax*8 + 0x5c801c]
mov dword [esp + 0x20], 0xd2bd80
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.0041856c
movss xmm1, dword [esp + 0xfc]
movss xmm0, dword [esp + 0xf8]
cmp dword [esp + 0x168], 0
jne 0x416adf
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 0x4167dc
lea esi, [esi]
inc edi
cmp edi, dword [esp + 0x8c]
jle 0x41671a
mov ebx, dword [ebp + 0x18]
xor esi, esi
mov edx, dword [ebx]
test edx, edx
movss xmm1, dword [0x460110]
movss xmm2, dword [0x460108]
movss xmm3, dword [esp + 0x6c]
je 0x415895
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 + 0xcfb040], xmm0
movdqa xmmword [eax*4 + 0x5c8340], xmm0
movdqa xmmword [eax*4 + 0xcfb050], xmm0
movdqa xmmword [eax*4 + 0x5c8350], xmm0
movdqa xmmword [eax*4 + 0xcfb060], xmm0
movdqa xmmword [eax*4 + 0x5c8360], xmm0
movdqa xmmword [eax*4 + 0xcfb070], xmm0
movdqa xmmword [eax*4 + 0x5c8370], xmm0
add eax, 0x10
cmp eax, 0x3e0
jb 0x416b50
movss xmm0, dword [esp + 0x15c]
movaps xmm4, xmm2
mulss xmm0, xmm1
mov eax, 0x47c34f80
movss xmm5, dword [esp + 0x7c]
test edx, edx
mov dword [0xcfbfc0], esi
minss xmm4, xmm0
addss xmm5, xmm5
mov dword [0x5c92c0], esi
mov dword [0xcfbfc4], esi
mov dword [0x5c92c4], esi
mov dword [0xcfbfc8], esi
mov dword [0x5c92c8], esi
mov dword [0xcfbfcc], esi
mov dword [0x5c92cc], esi
mov dword [0xcfbfd0], esi
mov dword [0x5c92d0], esi
mov dword [0xcfbfd4], esi
mov dword [0x5c92d4], esi
mov dword [0xcfbfd8], esi
mov dword [0x5c92d8], esi
mov dword [0xcfbfdc], esi
mov dword [0x5c92dc], esi
mov dword [esp + 0xd8], eax
mov dword [esp + 0xd4], eax
movss dword [esp + 0x170], xmm4
jle 0x417d16
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 0x416c76
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], 0x5c95a0
mov dword [esp + 0x10], 0x5c95d0
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x18], 0x5c8020
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x158]
mov dword [esp + 0x20], 0xd2bd80
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x28], 0x45fd30
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, 0x5c9570
mov dword [esp + 0x4c], edx
mov edx, 0x5c9540
mov dword [esp + 0x50], eax
lea eax, [esp + 0x138]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x1a0]
call fcn.00417f1c
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 + 0xc995bc], edx
mov edx, dword [esp + 0xc0]
mov dword [eax*4 + 0xcca2fc], ecx
mov dword [edx*4 + 0xcfb03c], eax
je 0x416d7f
test eax, eax
je 0x416d7f
inc edx
mov dword [esp + 0xc0], edx
inc edi
cmp edi, dword [esp + 0x24]
jle 0x416c6f
jmp 0x416dc4
mov edi, dword [esp + 0xdc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*2]
jmp 0x4169fe
mov eax, 0x64
jmp 0x4169fe
mov eax, dword [0x469834]
mov dword [esp + 0x168], 1
mov dword [esp + 0x160], eax
jmp 0x416972
mov ebx, dword [ebp + 0x18]
xor esi, esi
mov dword [esp + 0x84], edx
mov edx, dword [ebx]
movss xmm1, dword [0x460110]
movss xmm2, dword [0x460108]
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 [0x4600e8]
movss xmm5, dword [0x469834]
movaps xmm0, xmm4
mov edi, dword [ecx + edx*4 - 4]
mov ecx, dword [ebp + 0x20]
mov dword [eax*4 + 0xc995bc], edi
mov edi, dword [esp + 0x84]
test edi, edi
mov edx, dword [ecx + edx*4 - 4]
mov dword [eax*4 + 0xcca2fc], edx
mov edx, esi
mov dword [edi*4 + 0xcfb03c], eax
mov ecx, edx
mulss xmm5, dword [0x460114]
jle 0x416ecf
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 + 0x5c833c], 0
jne 0x416e9e
cmp dword [esp + 0x80], 1
je 0x416e8e
mov esi, dword [edx*4 + 0xcfb038]
inc esi
jmp 0x416e93
mov esi, 1
mov ebx, dword [edx*4 + 0xcfb03c]
cmp ebx, esi
jne 0x416ee4
mov edx, dword [esp + 0x80]
inc edx
mov dword [esp + 0x80], edx
cmp edx, dword [esp + 0x84]
jle 0x416e69
mov ebx, dword [ebp + 0x18]
cmp eax, 4
jle 0x416ecf
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 + 0x5c833c], 1
jl 0x417cf8
movss xmm1, dword [0x4600e8]
mov dword [esp + 0xb8], ebx
movss xmm5, dword [0x460118]
inc eax
mov edi, dword [ebp + 0x1c]
mov edx, eax
mov ecx, dword [ebp + 0x20]
mov ebx, dword [esi*4 + 0xc995bc]
mov dword [edi + eax*4 - 4], ebx
mov edi, dword [esi*4 + 0xcca2fc]
movss xmm3, dword [esi*4 + 0xcca2fc]
movss xmm2, dword [esi*4 + 0xc995bc]
inc esi
mov dword [ecx + eax*4 - 4], edi
comiss xmm1, xmm5
jbe 0x416f62
movaps xmm1, xmm2
movaps xmm4, xmm2
movaps xmm0, xmm3
cmp esi, dword [esp + 0xb8]
jle 0x416f14
jmp 0x417cd7
cmp esi, dword [esp + 0xb8]
jle 0x416f14
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 [0x460128]
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 0x417577
mov dword [esp + 0x188], eax
mov edi, 1
mov eax, dword [esp + 0xbc]
cmp dword [edi*4 + 0x5c833c], 0
lea esi, [edi + 1]
jne 0x417445
cmp esi, dword [esp + 0x184]
je 0x417445
cmp edi, 1
je 0x417022
mov ecx, dword [edi*4 + 0xcfb038]
inc ecx
jmp 0x417027
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 + 0xc995bc]
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.004082b0
movss xmm0, dword [esp + 0x15c]
comiss xmm0, dword [esp + 0x164]
movss xmm2, dword [0x46011c]
movss xmm1, dword [0x460134]
ja 0x41708e
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 + 0xc995bc]
mov dword [esp + 0xc], 0x5c95a0
mov dword [esp + 0x10], 0x5c95d0
mov dword [esp + 0x14], edx
lea edx, [esp + 0x1cc]
mov dword [esp + 0x18], 0x5c8020
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x1b4]
mov dword [esp + 0x20], 0xd2bd80
mov dword [esp + 0x24], edx
lea edx, [esp + 0x1c8]
mov dword [esp + 0x28], 0x45fd30
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, 0x5c9540
mov ecx, 0x5c9570
call fcn.00417f1c
movss xmm0, dword [esp + 0x15c]
mov eax, dword [esp + 0x174]
comiss xmm0, dword [esp + 0x16c]
jbe 0x4171be
test eax, eax
jne 0x4171c2
movss xmm0, dword [esp + 0x164]
addss xmm0, dword [0x460124]
movss dword [esp + 0x164], xmm0
jmp 0x4171d9
test eax, eax
je 0x4171d9
mov dword [esp + 0x164], 0x4cbebc20
mov eax, dword [esp + 0x168]
jmp 0x417445
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 + 0xc995bc]
mov ecx, dword [esp + 0x14c]
lea ebx, [edx + 0x30d40]
mov dword [esp + 0x13c], ebx
mov ecx, dword [ecx]
mov dword [0x5df2ac], ecx
dec ecx
test ecx, ecx
jle 0x41741e
mov dword [esp + 0x128], edi
mov ebx, 1
mov dword [esp + 0x12c], edx
mov dword [esp + 0x180], esi
mov esi, ecx
movss xmm1, dword [0x4600f4]
mov edi, dword [esp + 0x150]
movss xmm0, dword [edi + ebx*4 - 4]
comiss xmm0, xmm1
ja 0x417400
movss xmm0, dword [edi + ebx*4]
comiss xmm0, xmm1
ja 0x417400
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.00408360
movss xmm1, dword [0x4600f4]
cmp dword [esp + 0x104], 0
je 0x417400
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.004082b0
movss xmm0, dword [esp + 0x15c]
movss xmm1, dword [0x4600f4]
addss xmm0, dword [0x4600f0]
comiss xmm0, dword [esp + 0xd0]
jbe 0x417400
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.00408360
movss xmm1, dword [0x4600f4]
cmp dword [esp + 0xc4], 0
je 0x417400
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.004082b0
movss xmm0, dword [esp + 0x15c]
movss xmm1, dword [0x4600f4]
addss xmm0, dword [0x4600f0]
comiss xmm0, dword [esp + 0xb4]
ja 0x417cae
inc ebx
cmp ebx, esi
jle 0x41725a
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 0x417445
movss dword [esp + 0x130], xmm0
mov dword [esp + 0x100], edi
mov edi, esi
cmp esi, dword [esp + 0x188]
jle 0x416ff5
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x100]
test eax, eax
movss xmm0, dword [0x460128]
mov dword [esp + 0x184], eax
je 0x417577
cmp dword [esp + 0x184], 1
je 0x41755f
shl eax, 2
mov edx, dword [eax + 0xcfb038]
inc edx
mov dword [esp + 0x178], edx
mov ecx, dword [eax + 0xcfb03c]
cmp edx, ecx
mov dword [esp + 0x174], ecx
mov dword [eax + 0x5c833c], 1
jne 0x4174f3
movss xmm1, dword [edx*4 + 0xc995bc]
subss xmm1, dword [esp + 0xe0]
andps xmm1, xmmword [0x45fec0]
comiss xmm0, xmm1
jbe 0x4174f3
movss xmm1, dword [edx*4 + 0xcca2fc]
subss xmm1, dword [esp + 0xe4]
andps xmm1, xmmword [0x45fec0]
comiss xmm0, xmm1
ja 0x416fbd
cmp ecx, edx
jl 0x416fbd
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 0x417511
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 + 0xc995bc]
mov dword [esi + ebx*4], edi
mov edi, dword [edx + ebx*4 + 0xcca2fc]
mov dword [eax + ebx*4], edi
inc ebx
cmp ebx, ecx
jb 0x417541
jmp 0x416fbd
mov edx, 1
mov dword [esp + 0x178], 1
shl eax, 2
jmp 0x417498
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], 0x5c95a0
mov dword [esp + 0x10], 0x5c95d0
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0x5c8020
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 0xd2bd80
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], 0x45fd30
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, 0x5c9540
lea ebx, [esp + 0x138]
mov dword [esp + 0x4c], ebx
lea esi, [esp + 0x13c]
mov dword [esp + 0x50], esi
mov ecx, 0x5c9570
mov dword [esp + 0x54], eax
lea eax, [esp + 0x1a0]
call fcn.00417f1c
mov eax, dword [esp + 0x168]
cmp dword [esp + 0x174], 0
jne 0x4178b3
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 [0x4600e4]
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 [0x4600f0]
jle 0x41785b
movss xmm0, dword [0x460118]
xor edx, edx
movss dword [esp + 0x5c], xmm0
mov edi, 1
movss dword [esp + 0x58], xmm1
mov dword [esp + 0x60], edx
movss xmm0, dword [0x4600f4]
mov esi, dword [esp + 0x150]
movss xmm1, dword [esi + edi*4 - 4]
comiss xmm1, xmm0
jbe 0x417714
lea eax, [edi + 1]
jmp 0x41783b
movss xmm1, dword [esi + edi*4]
comiss xmm1, xmm0
jbe 0x417726
lea eax, [edi + 1]
jmp 0x41783b
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.00408360
movss xmm0, dword [0x4600f4]
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x38], 0
jne 0x4177e0
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.004082b0
movss xmm2, dword [esp + 0x2c]
lea eax, [edi + 1]
movss xmm1, dword [esp + 0x58]
movss xmm0, dword [0x4600f4]
comiss xmm1, xmm2
jbe 0x41783b
movss xmm1, dword [esp + 0x5c]
minss xmm1, xmm2
ucomiss xmm2, xmm1
movss dword [esp + 0x5c], xmm1
jne 0x41783b
jp 0x41783b
mov dword [esp + 0x60], edi
jmp 0x41783b
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.004082b0
movss xmm2, dword [esp + 0x2c]
lea eax, [edi + 1]
movss xmm1, dword [esp + 0x58]
movss xmm0, dword [0x4600f4]
comiss xmm1, xmm2
jbe 0x41783b
movss xmm1, dword [esp + 0x5c]
minss xmm1, xmm2
ucomiss xmm2, xmm1
movss dword [esp + 0x5c], xmm1
jne 0x41783b
jp 0x41783b
mov dword [esp + 0x60], eax
mov edi, eax
cmp eax, ebx
jle 0x417701
mov edx, dword [esp + 0x60]
test edx, edx
mov eax, dword [esp + 0x168]
mov ebx, dword [esp + 0x174]
jne 0x417868
mov dword [esp + 0x174], 1
jmp 0x4178b3
test ebx, ebx
jne 0x4178b3
mov edx, eax
sub edx, dword [esp + 0x64]
cmp edx, 2
jle 0x4178b3
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 0x417c45
mov edx, eax
sub edx, dword [esp + 0x64]
cmp edx, 5
jle 0x417c38
mov edx, dword [esp + 0x64]
xor edi, edi
movss xmm3, dword [0x4600fc]
movss xmm5, dword [0x46012c]
movaps xmm6, xmm3
mov dword [0x5df29c], eax
lea esi, [edx + 1]
mov edx, esi
movaps xmm4, xmm5
cmp eax, esi
jl 0x41799b
movss xmm0, dword [0x46012c]
movss dword [esp + 0x54], xmm0
movss xmm2, dword [0x4600f4]
mov ebx, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
movss xmm1, dword [ecx + edx*4 - 4]
comiss xmm2, xmm1
jbe 0x417992
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 0x417992
movss xmm7, dword [ecx + edx*4 - 8]
comiss xmm2, xmm7
jbe 0x417992
subss xmm1, xmm7
subss xmm0, dword [ebx + edx*4 - 8]
andps xmm1, xmmword [0x45fec0]
andps xmm0, xmmword [0x45fec0]
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 0x417992
jp 0x417992
mov edi, edx
inc edx
cmp edx, eax
jle 0x41790c
movss xmm0, dword [0x4600f0]
subss xmm5, xmm3
comiss xmm0, xmm5
ja 0x417c38
movss xmm0, dword [0x4600f0]
subss xmm4, xmm6
comiss xmm0, xmm4
ja 0x417c38
test edi, edi
je 0x417aaf
movss xmm0, dword [0x46012c]
cmp eax, esi
jl 0x417a95
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 0x417a8c
cmp esi, dword [esp + 0x30]
je 0x417a8c
mov edx, dword [ebp + 0x1c]
movss xmm1, dword [0x4600f4]
comiss xmm1, dword [edx + esi*4 - 4]
jbe 0x417a8c
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.00408cc0
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 [0x4600f0]
ja 0x417aaf
inc esi
cmp esi, eax
jle 0x417a04
movss xmm1, dword [0x4600f0]
comiss xmm1, xmm0
jbe 0x417aaf
pxor xmm1, xmm1
comiss xmm0, xmm1
ja 0x417c38
mov eax, dword [esp + 0x14c]
mov edx, dword [eax]
cmp edx, 0x2710
jg 0x417b75
test edx, edx
jle 0x417c55
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 + 0xed987c], xmm2
mov dword [eax*4 + 0xee34bc], edi
jg 0x417b4e
cmp eax, 1
jle 0x417add
movss xmm2, dword [esi + ecx*4 - 4]
movaps xmm4, xmm1
movss xmm3, dword [0x460130]
subss xmm4, xmm2
andps xmm4, xmmword [0x45fec0]
comiss xmm3, xmm4
jbe 0x417ae3
movaps xmm4, xmm0
movss xmm3, dword [0x460130]
subss xmm4, dword [ebx + ecx*4 - 4]
andps xmm4, xmmword [0x45fec0]
comiss xmm3, xmm4
jbe 0x417ae3
inc ecx
cmp ecx, edx
jle 0x417b0b
mov dword [esp + 0x18], eax
add esp, 0xfffffff0
mov edx, 0xed9880
mov ecx, 0xee34c0
lea eax, [esp + 0x28]
lea ebx, [esp + 0x188]
mov dword [esp + 0xc], ebx
call fcn.00414cec
jmp 0x417b92
add esp, 0xfffffff0
mov ecx, dword [ebp + 0x14]
lea ebx, [esp + 0x188]
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x160]
call fcn.00414cec
add esp, 0xffffffe4
mov eax, 0x45fd30
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.004101dc
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, 0x45fd30
mov esi, dword [esp + 0x16c]
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
call fcn.004101dc
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x178], 1
je 0x417ca1
test eax, eax
jne 0x417c38
cmp dword [esp + 0x74], 0
je 0x417c62
mov eax, dword [esp + 0x64]
mov ecx, eax
mov dword [esp + 0xbc], eax
movss xmm4, dword [0x4600e8]
movaps xmm0, xmm4
jmp 0x416e9e
mov dword [esp + 0x18], 0
jmp 0x417b52
movss xmm1, dword [0x460110]
xor esi, esi
movss xmm2, dword [0x460108]
movss xmm3, dword [esp + 0x6c]
mov ebx, dword [ebp + 0x18]
movss xmm4, dword [0x469834]
mulss xmm4, dword [0x4600e4]
movss xmm0, dword [esp + 0x7c]
comiss xmm0, xmm4
ja 0x41601c
jmp 0x41588c
test eax, eax
je 0x417c38
cmp dword [esp + 0x74], 0
jne 0x417c62
jmp 0x417c38
mov esi, dword [esp + 0x180]
mov edi, dword [esp + 0x128]
pxor xmm0, xmm0
mov eax, dword [esp + 0x168]
mov dword [esp + 0x164], 0
jmp 0x417427
mov dword [esp + 0xbc], edx
mov dword [esp + 0xe4], edi
mov dword [esp + 0xe0], ebx
mov dword [esp + 0x168], eax
jmp 0x416f8b
movss dword [esp + 0xe4], xmm0
movss dword [esp + 0xe0], xmm4
mov dword [esp + 0x168], ecx
jmp 0x416f8b
mov edx, 1
mov eax, esi
mov dword [esp + 0x84], edx
jmp 0x416dec
cmp dword [ebx*4 + 0xcfb038], 0
jl 0x416adf
jmp 0x4167ea
cmp dword [edi*4 + 0xcfb040], 0
jl 0x416ae8
jmp 0x416728
movss dword [esp + 0x6c], xmm3
mov esi, dword [ebp + 0x1c]
mov ebx, eax
mov edx, dword [esp + 0x148]
lea ecx, [ebx*4]
mov dword [0x5df288], edx
test edx, edx
jle 0x417ed7
mov eax, 1
movss xmm0, dword [ebx*4 + 0xc995bc]
mov esi, eax
mov dword [esp + 0x68], ebx
comiss xmm0, dword [eax*4 + 0x5c953c]
jbe 0x417dcd
movss xmm1, dword [eax*4 + 0x5c956c]
comiss xmm1, xmm0
jbe 0x417dcd
movss xmm1, dword [ecx + 0xcca2fc]
mov ebx, esi
comiss xmm1, dword [ebx*4 + 0x5c959c]
jbe 0x417dc8
movss xmm2, dword [ebx*4 + 0x5c95cc]
comiss xmm2, xmm1
ja 0x417ec3
inc ebx
cmp ebx, edx
jle 0x417dac
lea esi, [esi]
lea edi, [edi]
inc eax
cmp eax, edx
jle 0x417d8a
mov ebx, dword [esp + 0x68]
mov edx, 0x64
mov esi, dword [ebp + 0x1c]
add esp, 0xffffffc8
mov eax, 0x46983c
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0xc], ecx
lea ecx, [ebx*4 + 0xc995bc]
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 + 0x5c8018]
mov dword [esp + 0x20], 0xd2bd80
lea edx, [edx*8 + 0x5c801c]
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.0041856c
cmp dword [esp + 0x168], 0
je 0x417e92
mov dword [esi + ebx*4 - 4], 0x3f800000
inc ebx
cmp ebx, edi
jle 0x417d5a
jmp 0x417ea3
mov dword [esi + ebx*4 - 4], 0
inc ebx
cmp ebx, edi
jle 0x417d5a
movss xmm1, dword [0x460110]
xor esi, esi
movss xmm2, dword [0x460108]
movss xmm3, dword [esp + 0x6c]
mov ebx, dword [ebp + 0x18]
jmp 0x416494
mov edx, ebx
lea ecx, [eax + eax*4]
mov ebx, dword [esp + 0x68]
lea edx, [edx + ecx*2]
mov esi, dword [ebp + 0x1c]
jmp 0x417de9
mov edx, 0x64
jmp 0x417de9
test eax, eax
jle 0x4166b0
mov edx, 0x4b189680
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd8], edx
mov dword [ebx], edi
jmp 0x4164a1
mov dword [esp + 0x158], ecx
jmp 0x415fca