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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0xd4
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
movss xmm1, dword [0x45fca8]
mov ecx, dword [eax]
movss xmm0, dword [edx]
mov dword [esp + 0xd0], ecx
subss xmm0, dword [edx + ecx*4 - 4]
andps xmm0, xmmword [0x45fae0]
comiss xmm1, xmm0
jbe 0x40b184
mov eax, dword [ebp + 0x10]
mov edx, ecx
movss xmm0, dword [eax]
subss xmm0, dword [eax + edx*4 - 4]
andps xmm0, xmmword [0x45fae0]
comiss xmm1, xmm0
jbe 0x40b184
mov dword [esp + 0xb8], 0xffffffff
jmp 0x40b18f
mov dword [esp + 0xb8], 0
mov ebx, dword [ebp + 0x14]
xor eax, eax
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x2c]
movss xmm1, dword [ebx]
movss xmm2, dword [ecx]
mov dword [edx], eax
mov dword [0x4a3ac0], eax
mov dword [0x4b7340], eax
movss xmm0, dword [0x45fcac]
mov dword [0x4cabc0], 0x47c34f80
mov dword [0x4de440], 2
comiss xmm1, xmm2
jbe 0x40b1d5
pxor xmm7, xmm7
jmp 0x40b207
movaps xmm3, xmm1
divss xmm3, xmm2
movss xmm5, dword [0x45fccc]
movaps xmm4, xmm5
movss xmm7, dword [0x45fcb0]
subss xmm4, xmm3
mulss xmm7, xmm2
mulss xmm4, xmm4
subss xmm5, xmm4
sqrtss xmm5, xmm5
mulss xmm7, xmm5
mov eax, 1
cmp dword [esp + 0xd0], 3
jl 0x40ba27
cvtss2sd xmm3, dword [0x469824]
movss xmm4, dword [0x469830]
mov edx, 3
movss xmm6, dword [0x45fcb4]
movsd qword [esp + 0xb0], xmm3
movss dword [esp + 0xc0], xmm4
movss dword [esp + 0xbc], xmm7
movss dword [esp + 0xcc], xmm1
movss dword [esp + 0xc8], xmm2
mov ecx, dword [esp + 0xd0]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
movss xmm4, dword [esi + edx*4 - 0xc]
comiss xmm4, xmm6
ja 0x40b9b7
movss xmm2, dword [esi + edx*4 - 8]
comiss xmm2, xmm6
ja 0x40b9b7
movss xmm1, dword [esi + edx*4 - 4]
movss dword [esp + 0xc4], xmm1
comiss xmm1, xmm6
ja 0x40b9b7
movaps xmm1, xmm4
movss xmm3, dword [esp + 0xc0]
subss xmm1, xmm2
movaps xmm5, xmm1
andps xmm5, xmmword [0x45fae0]
comiss xmm3, xmm5
jbe 0x40b2eb
movss xmm5, dword [ebx + edx*4 - 0xc]
movss xmm3, dword [esp + 0xc0]
subss xmm5, dword [ebx + edx*4 - 8]
andps xmm5, xmmword [0x45fae0]
comiss xmm3, xmm5
ja 0x40b9b7
movss xmm5, dword [esp + 0xc4]
movss xmm3, dword [esp + 0xc0]
subss xmm5, xmm2
movss dword [esp + 0xac], xmm5
andps xmm5, xmmword [0x45fae0]
comiss xmm3, xmm5
jbe 0x40b33b
movss xmm7, dword [ebx + edx*4 - 4]
movss xmm3, dword [esp + 0xc0]
subss xmm7, dword [ebx + edx*4 - 8]
andps xmm7, xmmword [0x45fae0]
comiss xmm3, xmm7
ja 0x40b9b7
xorps xmm1, xmmword [0x45faf0]
movaps xmm3, xmm1
andps xmm3, xmmword [0x45fae0]
comiss xmm3, dword [esp + 0xbc]
ja 0x40b9b7
movss xmm7, dword [ebx + edx*4 - 8]
movss xmm3, dword [ebx + edx*4 - 0xc]
movss dword [esp + 0xa4], xmm7
subss xmm7, xmm3
movss dword [esp + 0xa8], xmm7
andps xmm7, xmmword [0x45fae0]
movss dword [esp + 0xa0], xmm3
comiss xmm7, dword [esp + 0xbc]
ja 0x40b9b7
comiss xmm5, dword [esp + 0xbc]
ja 0x40b9b7
movss xmm3, dword [ebx + edx*4 - 4]
movss dword [esp + 0x98], xmm3
subss xmm3, dword [esp + 0xa4]
movss dword [esp + 0x9c], xmm3
andps xmm3, xmmword [0x45fae0]
comiss xmm3, dword [esp + 0xbc]
ja 0x40b9b7
cvtss2sd xmm1, xmm1
cvtss2sd xmm3, dword [esp + 0xa8]
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x60], xmm3
mulsd xmm1, xmm1
mulsd xmm3, xmm3
movsd xmm5, qword [esp + 0xb0]
addsd xmm1, xmm3
sqrtsd xmm1, xmm1
cvtsd2ss xmm1, xmm1
cvtss2sd xmm1, xmm1
comisd xmm5, xmm1
jbe 0x40b444
movss dword [esp + 0x88], xmm0
movss dword [esp + 0x8c], xmm0
movss dword [esp + 0x80], xmm0
movss dword [esp + 0x7c], xmm0
jmp 0x40b5d0
movsd xmm6, qword [esp + 0x60]
movsd xmm7, qword [esp + 0x58]
mulsd xmm6, qword [0x45fb70]
cvtss2sd xmm5, xmm4
mulsd xmm7, qword [0x45fb70]
divsd xmm6, xmm1
divsd xmm7, xmm1
movss xmm3, dword [esp + 0xa0]
cvtss2sd xmm1, xmm3
movsd qword [esp + 0x28], xmm5
addsd xmm5, xmm6
movsd qword [esp + 0x20], xmm1
subsd xmm1, xmm7
cvtsd2ss xmm5, xmm5
cvtsd2ss xmm1, xmm1
movsd qword [esp + 0x60], xmm6
subss xmm3, xmm1
movss xmm6, dword [esp + 0xa4]
movsd qword [esp + 0x58], xmm7
movaps xmm7, xmm6
movss dword [esp + 0x94], xmm4
subss xmm4, xmm5
subss xmm7, xmm1
cvtss2sd xmm3, xmm3
cvtss2sd xmm6, xmm6
cvtss2sd xmm4, xmm4
cvtss2sd xmm7, xmm7
mulsd xmm4, xmm7
movaps xmm7, xmm2
subss xmm7, xmm5
movss dword [esp + 0x88], xmm5
cvtss2sd xmm5, xmm7
mulsd xmm5, xmm3
movss dword [esp + 0x8c], xmm1
subsd xmm4, xmm5
cvtss2sd xmm1, xmm2
cvtsd2ss xmm4, xmm4
pxor xmm5, xmm5
movsd qword [esp + 0x38], xmm6
movsd qword [esp + 8], xmm1
movss xmm6, dword [0x45fcb4]
comiss xmm4, xmm5
movss xmm4, dword [esp + 0x94]
jbe 0x40b54f
movsd xmm1, qword [esp + 0x60]
movsd xmm3, qword [esp + 0x38]
addsd xmm1, qword [esp + 8]
subsd xmm3, qword [esp + 0x58]
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x38], xmm3
jmp 0x40b5b5
movss dword [esp + 0x40], xmm2
movsd xmm2, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x60]
movsd xmm3, qword [esp + 0x20]
subsd xmm2, xmm1
movsd xmm5, qword [esp + 0x58]
movsd xmm7, qword [esp + 8]
addsd xmm3, xmm5
cvtsd2ss xmm2, xmm2
cvtsd2ss xmm3, xmm3
subsd xmm7, xmm1
movsd xmm1, qword [esp + 0x38]
movss dword [esp + 0x88], xmm2
addsd xmm1, xmm5
movsd qword [esp + 0x60], xmm7
movsd qword [esp + 0x38], xmm1
movss dword [esp + 0x8c], xmm3
movss xmm2, dword [esp + 0x40]
cvtsd2ss xmm1, qword [esp + 0x60]
cvtsd2ss xmm3, qword [esp + 0x38]
movss dword [esp + 0x80], xmm1
movss dword [esp + 0x7c], xmm3
movss xmm5, dword [esp + 0x88]
movaps xmm3, xmm2
movss xmm7, dword [esp + 0x8c]
addss xmm3, xmm4
addss xmm5, dword [esp + 0x80]
addss xmm7, dword [esp + 0x7c]
mulss xmm3, dword [0x45fcb8]
mulss xmm5, dword [0x45fcb8]
mulss xmm7, dword [0x45fcb8]
movss dword [esp + 0x88], xmm5
movss dword [esp + 0x8c], xmm7
cvtss2sd xmm5, dword [esp + 0xac]
cvtss2sd xmm7, dword [esp + 0x9c]
movsd qword [esp + 0x50], xmm5
movsd qword [esp + 0x68], xmm7
mulsd xmm5, xmm5
mulsd xmm7, xmm7
movss xmm1, dword [esp + 0xa4]
addsd xmm5, xmm7
addss xmm1, dword [esp + 0xa0]
sqrtsd xmm5, xmm5
mulss xmm1, dword [0x45fcb8]
cvtsd2ss xmm5, xmm5
cvtss2sd xmm5, xmm5
movsd xmm7, qword [esp + 0xb0]
comisd xmm7, xmm5
jbe 0x40b69e
movss dword [esp + 0x90], xmm0
movaps xmm5, xmm0
movss dword [esp + 0x74], xmm0
movss dword [esp + 0x78], xmm0
jmp 0x40b85d
movss dword [esp + 0x94], xmm4
movsd xmm6, qword [esp + 0x68]
movsd xmm4, qword [esp + 0x50]
mulsd xmm6, qword [0x45fb70]
cvtss2sd xmm7, xmm2
mulsd xmm4, qword [0x45fb70]
divsd xmm6, xmm5
divsd xmm4, xmm5
movss dword [esp + 0x44], xmm3
movss xmm3, dword [esp + 0xa4]
movss dword [esp + 0x48], xmm1
cvtss2sd xmm1, xmm3
movsd qword [esp + 0x10], xmm7
addsd xmm7, xmm6
movsd qword [esp + 0x18], xmm1
subsd xmm1, xmm4
cvtsd2ss xmm7, xmm7
cvtsd2ss xmm1, xmm1
movsd qword [esp + 0x68], xmm6
subss xmm3, xmm1
movss xmm6, dword [esp + 0x98]
movaps xmm5, xmm6
movss dword [esp + 0x40], xmm2
subss xmm2, xmm7
subss xmm5, xmm1
cvtss2sd xmm3, xmm3
cvtss2sd xmm6, xmm6
cvtss2sd xmm2, xmm2
cvtss2sd xmm5, xmm5
mulsd xmm2, xmm5
movss xmm5, dword [esp + 0xc4]
movsd qword [esp + 0x50], xmm4
movaps xmm4, xmm5
cvtss2sd xmm5, xmm5
subss xmm4, xmm7
cvtss2sd xmm4, xmm4
mulsd xmm4, xmm3
movss dword [esp + 0x74], xmm1
subsd xmm2, xmm4
cvtsd2ss xmm2, xmm2
pxor xmm1, xmm1
movsd qword [esp + 0x30], xmm6
movss dword [esp + 0x90], xmm7
movsd qword [esp], xmm5
movss xmm3, dword [esp + 0x44]
movss xmm4, dword [esp + 0x94]
movss xmm6, dword [0x45fcb4]
comiss xmm2, xmm1
movss xmm1, dword [esp + 0x48]
movss xmm2, dword [esp + 0x40]
jbe 0x40b7d1
movsd xmm5, qword [esp + 0x68]
movsd xmm7, qword [esp + 0x30]
addsd xmm5, qword [esp]
subsd xmm7, qword [esp + 0x50]
movsd qword [esp + 0x68], xmm5
movsd qword [esp + 0x30], xmm7
jmp 0x40b84b
movss dword [esp + 0x44], xmm3
movss dword [esp + 0x48], xmm1
movss dword [esp + 0x40], xmm2
movsd xmm2, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x68]
movsd xmm3, qword [esp + 0x18]
subsd xmm2, xmm1
movsd xmm5, qword [esp + 0x50]
movsd xmm7, qword [esp]
addsd xmm3, xmm5
subsd xmm7, xmm1
cvtsd2ss xmm2, xmm2
cvtsd2ss xmm3, xmm3
movsd xmm1, qword [esp + 0x30]
movss dword [esp + 0x90], xmm2
addsd xmm1, xmm5
movsd qword [esp + 0x30], xmm1
movss dword [esp + 0x74], xmm3
movsd qword [esp + 0x68], xmm7
movss xmm2, dword [esp + 0x40]
movss xmm1, dword [esp + 0x48]
movss xmm3, dword [esp + 0x44]
cvtsd2ss xmm7, qword [esp + 0x30]
cvtsd2ss xmm5, qword [esp + 0x68]
movss dword [esp + 0x78], xmm7
movss dword [esp + 0x94], xmm4
movss xmm4, dword [esp + 0x90]
movss xmm7, dword [esp + 0xa4]
addss xmm4, xmm5
addss xmm2, dword [esp + 0xc4]
addss xmm7, dword [esp + 0x98]
mulss xmm4, dword [0x45fcb8]
mulss xmm2, dword [0x45fcb8]
mulss xmm7, dword [0x45fcb8]
movss xmm5, dword [esp + 0x74]
movss dword [esp + 0xa4], xmm7
movss xmm6, dword [esp + 0x88]
addss xmm5, dword [esp + 0x78]
subss xmm6, xmm3
mulss xmm5, dword [0x45fcb8]
movss dword [esp + 0x88], xmm6
subss xmm7, xmm5
movaps xmm5, xmm2
mulss xmm6, xmm7
subss xmm5, xmm4
movss xmm4, dword [esp + 0x8c]
movss dword [esp + 0x70], xmm7
subss xmm4, xmm1
movss dword [esp + 0x8c], xmm4
mulss xmm4, xmm5
movss dword [esp + 0x84], xmm5
subss xmm6, xmm4
movss dword [esp + 0x4c], xmm6
andps xmm6, xmmword [0x45fae0]
movss xmm4, dword [esp + 0x94]
comiss xmm6, dword [0x45fcbc]
movss xmm6, dword [0x45fcb4]
jbe 0x40b9b7
movss xmm7, dword [esp + 0xa4]
subss xmm2, xmm3
subss xmm7, xmm1
mulss xmm2, dword [esp + 0x70]
movss xmm5, dword [esp + 0x84]
mulss xmm5, xmm7
subss xmm5, xmm2
movss xmm2, dword [esp + 0x88]
divss xmm5, dword [esp + 0x4c]
mulss xmm2, xmm5
mulss xmm5, dword [esp + 0x8c]
subss xmm3, xmm2
subss xmm1, xmm5
subss xmm4, xmm3
movss xmm2, dword [esp + 0xa0]
cvtss2sd xmm4, xmm4
subss xmm2, xmm1
mulsd xmm4, xmm4
cvtss2sd xmm2, xmm2
mulsd xmm2, xmm2
addsd xmm4, xmm2
sqrtsd xmm4, xmm4
cvtsd2ss xmm4, xmm4
jmp 0x40b9c2
movaps xmm4, xmm0
pxor xmm3, xmm3
pxor xmm1, xmm1
comiss xmm4, dword [esp + 0xc8]
jbe 0x40b9cf
movaps xmm4, xmm0
comiss xmm4, xmm6
jbe 0x40b9e2
movss xmm2, dword [eax*4 + 0x4cabbc]
comiss xmm2, xmm6
ja 0x40ba15
inc eax
comiss xmm4, xmm6
movss dword [eax*4 + 0x4cabbc], xmm4
movss dword [eax*4 + 0x4a3abc], xmm3
movss dword [eax*4 + 0x4b733c], xmm1
mov dword [eax*4 + 0x4de43c], 0
jbe 0x40ba15
mov dword [eax*4 + 0x4de43c], edx
inc edx
cmp edx, ecx
jle 0x40b271
movss xmm1, dword [esp + 0xcc]
inc eax
xor edx, edx
mov ecx, dword [esp + 0xd0]
test eax, eax
mov dword [eax*4 + 0x4a3abc], edx
mov dword [eax*4 + 0x4b733c], edx
mov dword [eax*4 + 0x4cabbc], 0x47c34f80
mov dword [eax*4 + 0x4de43c], ecx
jle 0x40baa0
movss xmm4, dword [0x469828]
mov ecx, 1
movss xmm3, dword [0x45fcb0]
pxor xmm0, xmm0
movss xmm2, dword [0x45fcbc]
xor edx, edx
mov dword [ecx*4 + 0x4f1cbc], edx
mov dword [ecx*8 + 0x505538], edx
mov dword [ecx*8 + 0x50553c], edx
cmp dword [ecx*4 + 0x4de43c], 0
jle 0x40c072
inc ecx
cmp ecx, eax
jle 0x40ba78
cmp dword [esp + 0xd0], 0
jle 0x40bbb7
push 1
pop edx
xor ecx, ecx
mov ebx, ecx
test eax, eax
jle 0x40baea
mov esi, ecx
mov edi, 1
cmp edx, dword [edi*8 + 0x505538]
jl 0x40bae3
cmp edx, dword [edi*8 + 0x50553c]
jg 0x40bae3
mov ecx, dword [edi*4 + 0x4f1cbc]
cmp ecx, esi
cmovge esi, ecx
cmp esi, ecx
cmove ebx, edi
inc edi
cmp edi, eax
jle 0x40bac0
xor ecx, ecx
mov dword [edx*4 + 0x4de43c], ebx
test ebx, ebx
je 0x40bb93
mov dword [esp + 0x3c], eax
mov edi, dword [ebx*8 + 0x505538]
mov esi, dword [ebx*8 + 0x50553c]
mov eax, dword [esp + 0xd0]
jmp 0x40bb1b
mov dword [edx*4 + 0x4de43c], ebx
inc edx
mov dword [ebx*4 + 0x4f1cbc], ecx
cmp edx, eax
mov dword [ebx*8 + 0x505538], ecx
mov dword [ebx*8 + 0x50553c], ecx
jg 0x40c064
test edi, edi
je 0x40bba9
test esi, esi
je 0x40bba9
cmp edx, edi
jl 0x40bb49
cmp edx, esi
jle 0x40bb14
mov eax, dword [esp + 0x3c]
mov ebx, ecx
test eax, eax
jle 0x40bb84
mov esi, ecx
mov edi, 1
cmp edx, dword [edi*8 + 0x505538]
jl 0x40bb7d
cmp edx, dword [edi*8 + 0x50553c]
jg 0x40bb7d
mov ecx, dword [edi*4 + 0x4f1cbc]
cmp ecx, esi
cmovge esi, ecx
cmp esi, ecx
cmove ebx, edi
inc edi
cmp edi, eax
jle 0x40bb5a
xor ecx, ecx
mov dword [edx*4 + 0x4de43c], ebx
test ebx, ebx
jne 0x40baf9
lea esi, [esi]
inc edx
cmp edx, dword [esp + 0xd0]
jle 0x40bab3
jmp 0x40bbb2
mov eax, dword [esp + 0x3c]
jmp 0x40bab3
mov dword [0x58e1dc], eax
mov ebx, dword [ebp + 0x1c]
mov eax, dword [esp + 0xd0]
cmp eax, 2
mov dword [0x58e1e0], eax
mov dword [ebx], 0
lea edx, [eax - 1]
jl 0x40bc51
xor ecx, ecx
xor eax, eax
pxor xmm0, xmm0
xor edi, edi
mov dword [esp + 8], edx
xor esi, esi
mov edx, dword [esi*4 + 0x4de444]
test edx, edx
jle 0x40bc06
cmp edx, dword [esi*4 + 0x4de440]
jne 0x40bc06
test eax, eax
lea edx, [esi + 1]
lea edi, [esi + 2]
cmove eax, edx
inc ecx
jmp 0x40bc46
test ecx, ecx
jle 0x40bc3d
mov ecx, edi
sub ecx, eax
cmp ecx, 3
jge 0x40bc3d
cmp edi, eax
jl 0x40bc3d
lea edx, [ecx + 1]
cmp edx, 0x18
jle 0x40bf14
lea ecx, [ecx*4 + 4]
push ecx
push 0
lea eax, [eax*4 + 0x4de43c]
push eax
call fcn.00443730
add esp, 0xc
xor ecx, ecx
lea edx, [esi + 1]
xor eax, eax
xor edi, edi
mov esi, edx
cmp edx, dword [esp + 8]
jb 0x40bbe4
mov ebx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x24]
xor ecx, ecx
mov esi, dword [ebp + 0x28]
cmp dword [esp + 0xd0], 0
jle 0x40bfb8
movss xmm2, dword [0x45fcb4]
xor edx, edx
movss xmm1, dword [0x45fcc0]
push 1
pop eax
movss xmm0, dword [0x45fcc4]
mov edi, dword [eax*4 + 0x4de43c]
test edi, edi
jne 0x40bcf8
cmp ecx, 1
jle 0x40bcc4
mov edx, dword [ebp + 0x28]
movss xmm3, dword [edx + ecx*4 - 4]
comiss xmm3, xmm2
jbe 0x40bcc4
inc ecx
mov ebx, dword [ebp + 0x20]
mov edi, dword [ebp + 0x24]
mov edx, dword [ebx + ecx*4 - 8]
mov dword [ebx + ecx*4 - 4], edx
mov edx, dword [ebp + 0x28]
mov esi, dword [edi + ecx*4 - 8]
mov dword [edi + ecx*4 - 4], esi
mov dword [edx + ecx*4 - 4], 0
mov edx, dword [ebp + 0x1c]
inc ecx
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x20]
mov dword [edx], ecx
mov esi, dword [ebx + eax*4 - 4]
mov edx, dword [ebp + 0x10]
mov dword [edi + ecx*4 - 4], esi
mov esi, dword [ebp + 0x24]
mov edi, dword [ebp + 0x28]
mov ebx, dword [edx + eax*4 - 4]
xor edx, edx
mov dword [esi + ecx*4 - 4], ebx
mov dword [edi + ecx*4 - 4], 0
jmp 0x40bee2
cmp eax, 1
je 0x40c022
cmp edi, dword [eax*4 + 0x4de438]
je 0x40bd6c
cmp ecx, 1
jle 0x40bd3f
mov ebx, dword [ebp + 0x28]
movss xmm3, dword [ebx + ecx*4 - 4]
comiss xmm3, xmm2
jbe 0x40bd3f
inc ecx
mov esi, dword [ebp + 0x20]
mov ebx, dword [esi + ecx*4 - 8]
mov dword [esi + ecx*4 - 4], ebx
mov esi, dword [ebp + 0x24]
mov ebx, dword [esi + ecx*4 - 8]
mov dword [esi + ecx*4 - 4], ebx
mov ebx, dword [ebp + 0x28]
mov dword [ebx + ecx*4 - 4], 0
mov ebx, dword [ebp + 0x1c]
inc ecx
mov esi, dword [ebp + 0xc]
mov dword [ebx], ecx
mov ebx, dword [esi + eax*4 - 4]
mov esi, dword [ebp + 0x20]
mov dword [esi + ecx*4 - 4], ebx
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebx + eax*4 - 4]
mov ebx, dword [ebp + 0x24]
mov dword [ebx + ecx*4 - 4], esi
mov esi, dword [ebp + 0x28]
mov dword [esi + ecx*4 - 4], 0
test edx, edx
jne 0x40bd72
mov edx, eax
cmp eax, edx
jle 0x40be60
mov esi, dword [ebp + 0xc]
movss xmm5, dword [edi*4 + 0x4cabbc]
mulss xmm5, xmm1
movss xmm3, dword [esi + eax*4 - 4]
mov ebx, dword [esi + eax*4 - 4]
cmp eax, dword [esp + 0xd0]
mov dword [esp + 0xc], ebx
subss xmm3, dword [esi + edx*4 - 4]
mov esi, dword [ebp + 0x10]
cvtss2sd xmm3, xmm3
movss xmm4, dword [esi + eax*4 - 4]
mulsd xmm3, xmm3
subss xmm4, dword [esi + edx*4 - 4]
cvtss2sd xmm4, xmm4
mulsd xmm4, xmm4
mov ebx, dword [esi + eax*4 - 4]
addsd xmm3, xmm4
sqrtsd xmm3, xmm3
cvtsd2ss xmm3, xmm3
mov dword [esp + 8], ebx
jne 0x40bddd
movaps xmm3, xmm0
mov ebx, dword [edi*4 + 0x4cabbc]
mov dword [esp + 0x10], ebx
comiss xmm3, xmm5
jbe 0x40be60
cmp eax, edx
je 0x40be60
mov ebx, dword [ebp + 0x24]
mov dword [esp + 4], eax
mov dword [esp], edi
mov esi, dword [edi*4 + 0x4a3abc]
mov eax, dword [ebp + 0x20]
mov edi, dword [edi*4 + 0x4b733c]
mov dword [ebx + ecx*4], edi
mov edi, dword [ebp + 0x28]
mov dword [eax + ecx*4], esi
mov esi, dword [esp + 0x10]
mov dword [edi + ecx*4], esi
mov esi, dword [ebp + 0xc]
mov esi, dword [esi + edx*4 - 4]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [ebp + 0x10]
mov edx, dword [esi + edx*4 - 4]
mov esi, dword [ebp + 0x1c]
mov dword [ebx + ecx*4 + 4], edx
mov edx, 0x47c34f80
mov dword [edi + ecx*4 + 4], edx
add ecx, 3
mov dword [esi], ecx
mov esi, dword [esp + 0xc]
mov dword [eax + ecx*4 - 4], esi
mov eax, dword [esp + 8]
mov dword [ebx + ecx*4 - 4], eax
mov dword [edi + ecx*4 - 4], edx
mov eax, dword [esp + 4]
mov edx, eax
mov edi, dword [esp]
cmp edi, dword [eax*4 + 0x4de440]
je 0x40bee2
cmp eax, edx
je 0x40bee0
mov esi, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [edi*4 + 0x4a3abc]
mov dword [esi + ecx*4], eax
mov eax, dword [edi*4 + 0x4b733c]
mov dword [ebx + ecx*4], eax
mov eax, dword [ebp + 0x28]
mov edi, dword [edi*4 + 0x4cabbc]
mov dword [eax + ecx*4], edi
mov edi, dword [ebp + 0xc]
mov dword [eax + ecx*4 + 4], 0x47c34f80
mov eax, dword [ebp + 0x1c]
mov edi, dword [edi + edx*4 - 4]
mov dword [esi + ecx*4 + 4], edi
mov edi, dword [ebp + 0x10]
mov edx, dword [edi + edx*4 - 4]
mov dword [ebx + ecx*4 + 4], edx
add ecx, 3
mov dword [eax], ecx
mov eax, dword [esp + 4]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + eax*4 - 4]
mov dword [esi + ecx*4 - 4], edx
mov esi, dword [edi + eax*4 - 4]
mov dword [ebx + ecx*4 - 4], esi
mov ebx, dword [ebp + 0x28]
mov dword [ebx + ecx*4 - 4], 0x47c34f80
xor edx, edx
inc eax
cmp eax, dword [esp + 0xd0]
jg 0x40bfaf
cmp ecx, 0x4e16
jle 0x40bc84
mov eax, dword [ebp + 0x2c]
mov dword [eax], 1
add esp, 0xd4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x28
cmp edx, 4
jl 0x40bfab
lea edi, [eax*4]
mov dword [esp + 4], edi
lea edi, [eax*4 + 0x4de44c]
and edi, 0xf
mov ecx, edi
neg ecx
add ecx, 0x10
shr ecx, 2
test edi, edi
cmovne edi, ecx
lea ebx, [edi + 4]
cmp edx, ebx
jl 0x40bfab
mov ecx, edx
sub ecx, edi
and ecx, 3
neg ecx
add ecx, edx
test edi, edi
jbe 0x40bf73
mov dword [esp], esi
xor ebx, ebx
mov esi, dword [esp + 4]
mov dword [esi + ebx*4 + 0x4de43c], 0
inc ebx
cmp ebx, edi
jb 0x40bf60
mov esi, dword [esp]
mov ebx, dword [esp + 4]
pxor xmm0, xmm0
movdqa xmmword [ebx + edi*4 + 0x4de43c], xmm0
add edi, 4
cmp edi, ecx
jb 0x40bf7b
cmp ecx, edx
jae 0x40bc3d
shl eax, 2
mov dword [eax + ecx*4 + 0x4de43c], 0
inc ecx
cmp ecx, edx
jb 0x40bf96
jmp 0x40bc3d
xor ecx, ecx
jmp 0x40bf8b
mov esi, dword [ebp + 0x28]
mov edi, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x1c]
test byte [esp + 0xb8], 1
je 0x40bf05
movss xmm0, dword [0x45fcc8]
inc ecx
mov dword [ebx], ecx
mov eax, dword [esi]
comiss xmm0, dword [esi]
jbe 0x40bffa
mov ebx, dword [ebp + 0x20]
mov dword [esi + ecx*4 - 4], eax
mov edx, dword [ebx]
mov dword [ebx + ecx*4 - 4], edx
mov edx, dword [edi]
mov dword [edi + ecx*4 - 4], edx
add esp, 0xd4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x28
mov edx, dword [ebp + 0x20]
mov ebx, dword [edi + 4]
mov dword [edi + ecx*4 - 4], ebx
mov eax, dword [edx + 4]
mov dword [edx + ecx*4 - 4], eax
mov dword [esi + ecx*4 - 4], 0
add esp, 0xd4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x28
cmp ecx, 1
jle 0x40bd3f
mov ebx, dword [ebp + 0x28]
movss xmm3, dword [ebx + ecx*4 - 4]
comiss xmm3, xmm2
jbe 0x40bd3f
inc ecx
mov esi, dword [ebp + 0x20]
mov ebx, dword [esi + ecx*4 - 8]
mov dword [esi + ecx*4 - 4], ebx
mov esi, dword [ebp + 0x24]
mov ebx, dword [esi + ecx*4 - 8]
mov dword [esi + ecx*4 - 4], ebx
mov ebx, dword [ebp + 0x28]
mov dword [ebx + ecx*4 - 4], 0
jmp 0x40bd3f
mov eax, dword [esp + 0x3c]
mov dword [0x58e1dc], eax
jmp 0x40bbb7
mov dword [esp + 0x30], edx
mov ebx, edx
mov dword [0x58e1d8], eax
mov esi, 1
mov edi, dword [esi*4 + 0x4de43c]
test edi, edi
jle 0x40c09b
cmp ecx, esi
jle 0x40c095
mov edx, edi
jmp 0x40c09b
test ebx, ebx
jne 0x40c0a5
mov ebx, edi
test edx, edx
je 0x40c0a9
test ebx, ebx
jne 0x40c0ae
jmp 0x40c0a9
test edx, edx
jne 0x40c0ae
inc esi
cmp esi, eax
jle 0x40c082
mov dword [esp + 0x30], edx
xor edx, edx
movss xmm0, dword [ecx*4 + 0x4cabbc]
comiss xmm1, xmm0
jbe 0x40c0c8
pxor xmm6, xmm6
jmp 0x40c0fa
movaps xmm5, xmm1
divss xmm5, xmm0
movss xmm6, dword [0x45fccc]
movss xmm7, dword [0x45fccc]
subss xmm6, xmm5
mulss xmm6, xmm6
subss xmm7, xmm6
movaps xmm6, xmm0
mulss xmm6, xmm3
sqrtss xmm7, xmm7
mulss xmm6, xmm7
movaps xmm5, xmm6
andps xmm5, xmmword [0x45fae0]
comiss xmm2, xmm5
jbe 0x40c10f
mov dword [esp + 0x34], edx
jmp 0x40c135
mulss xmm0, xmm4
mov edi, 3
divss xmm0, xmm6
cvttss2si esi, xmm0
cmp esi, 3
cmovl esi, edi
mov edi, 7
cmp esi, 7
cmovge esi, edi
mov dword [esp + 0x34], esi
cmp ebx, dword [esp + 0x30]
jl 0x40ba9b
movss xmm0, dword [ecx*4 + 0x4cabbc]
movaps xmm5, xmm1
mov dword [esp + 0x3c], eax
addss xmm5, xmm0
movss xmm6, dword [ecx*4 + 0x4a3abc]
mov esi, dword [ecx*4 + 0x4f1cbc]
movss dword [esp + 0x2c], xmm0
movss dword [esp + 0x28], xmm4
movss dword [esp + 0xcc], xmm1
mov edi, dword [esp + 0x30]
mov eax, dword [ebp + 0xc]
movss xmm4, dword [eax + edi*4 - 8]
movaps xmm2, xmm6
subss xmm2, xmm4
movaps xmm0, xmm2
andps xmm0, xmmword [0x45fae0]
comiss xmm0, xmm5
ja 0x40c3c7
mov edx, dword [ebp + 0x10]
movss xmm3, dword [ecx*4 + 0x4b733c]
movaps xmm1, xmm3
movss xmm0, dword [edx + edi*4 - 8]
movss dword [esp + 0x38], xmm0
subss xmm1, xmm0
movaps xmm7, xmm1
andps xmm7, xmmword [0x45fae0]
comiss xmm7, xmm5
ja 0x40c3c7
movss xmm0, dword [eax + edi*4 - 4]
movaps xmm7, xmm6
movss dword [esp + 0x20], xmm0
subss xmm7, xmm0
movss dword [esp + 0x24], xmm7
andps xmm7, xmmword [0x45fae0]
comiss xmm7, xmm5
ja 0x40c3c7
mov edx, dword [ebp + 0x10]
movaps xmm7, xmm3
movss xmm0, dword [edx + edi*4 - 4]
movss dword [esp + 0x18], xmm0
subss xmm7, xmm0
movss dword [esp + 0x1c], xmm7
andps xmm7, xmmword [0x45fae0]
comiss xmm7, xmm5
ja 0x40c3c7
xorps xmm2, xmmword [0x45faf0]
xorps xmm1, xmmword [0x45faf0]
cvtss2sd xmm7, xmm2
cvtss2sd xmm0, xmm1
mulsd xmm7, xmm7
mulsd xmm0, xmm0
addsd xmm7, xmm0
sqrtsd xmm7, xmm7
cvtsd2ss xmm7, xmm7
subss xmm7, dword [esp + 0x2c]
andps xmm7, xmmword [0x45fae0]
comiss xmm7, dword [esp + 0xcc]
ja 0x40c3c7
movss xmm0, dword [esp + 0x24]
movss xmm7, dword [esp + 0x1c]
xorps xmm0, xmmword [0x45faf0]
xorps xmm7, xmmword [0x45faf0]
cvtss2sd xmm0, xmm0
cvtss2sd xmm7, xmm7
mulsd xmm0, xmm0
mulsd xmm7, xmm7
addsd xmm0, xmm7
sqrtsd xmm0, xmm0
cvtsd2ss xmm0, xmm0
subss xmm0, dword [esp + 0x2c]
andps xmm0, xmmword [0x45fae0]
comiss xmm0, dword [esp + 0xcc]
ja 0x40c3c7
movss xmm7, dword [esp + 0x20]
movss xmm0, dword [esp + 0x18]
subss xmm7, xmm4
subss xmm0, dword [esp + 0x38]
cvtss2sd xmm7, xmm7
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x10], xmm7
movsd qword [esp + 8], xmm0
mulsd xmm7, xmm7
mulsd xmm0, xmm0
addsd xmm7, xmm0
pxor xmm0, xmm0
movsd qword [esp], xmm7
comisd xmm7, xmm0
jbe 0x40c3ea
cvtss2sd xmm2, xmm2
cvtss2sd xmm1, xmm1
mulsd xmm2, qword [esp + 0x10]
mulsd xmm1, qword [esp + 8]
pxor xmm0, xmm0
addsd xmm2, xmm1
comisd xmm0, xmm2
jb 0x40c3ea
divsd xmm2, qword [esp]
xorps xmm2, xmmword [0x45fb00]
pxor xmm0, xmm0
comisd xmm2, xmm0
jb 0x40c3ea
movsd xmm0, qword [0x45fb78]
comisd xmm0, xmm2
jb 0x40c3ea
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 8]
cvtss2sd xmm7, dword [esp + 0x38]
cvtss2sd xmm4, xmm4
mulsd xmm0, xmm2
mulsd xmm1, xmm2
addsd xmm4, xmm0
addsd xmm7, xmm1
cvtsd2ss xmm4, xmm4
cvtsd2ss xmm7, xmm7
movaps xmm2, xmm6
subss xmm3, xmm7
subss xmm2, xmm4
cvtss2sd xmm3, xmm3
cvtss2sd xmm2, xmm2
mulsd xmm3, xmm3
mulsd xmm2, xmm2
movss xmm0, dword [esp + 0x2c]
addsd xmm2, xmm3
sqrtsd xmm2, xmm2
cvtsd2ss xmm2, xmm2
subss xmm0, xmm2
andps xmm0, xmmword [0x45fae0]
comiss xmm0, dword [esp + 0xcc]
jbe 0x40c3ea
cmp esi, dword [esp + 0x34]
jge 0x40c416
test esi, esi
jle 0x40c40d
xor esi, esi
mov dword [ecx*4 + 0x4f1cbc], esi
mov dword [ecx*8 + 0x505538], esi
mov dword [ecx*8 + 0x50553c], esi
jmp 0x40c40d
inc esi
mov dword [ecx*4 + 0x4f1cbc], esi
cmp dword [ecx*8 + 0x505538], 0
jne 0x40c406
lea edx, [edi - 1]
mov dword [ecx*8 + 0x505538], edx
mov dword [ecx*8 + 0x50553c], edi
inc edi
cmp edi, ebx
jle 0x40c17f
movss xmm2, dword [0x45fcbc]
xor edx, edx
movss xmm3, dword [0x45fcb0]
movss xmm4, dword [esp + 0x28]
movss xmm1, dword [esp + 0xcc]
mov eax, dword [esp + 0x3c]
jmp 0x40ba9b