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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x70
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [esi + 4]
mov ecx, dword [esi]
inc dword [esi + 0xc4]
mov dword [esp + 0xc], edi
lea eax, [edi + edi]
mov dword [esp + 0x10], eax
sub eax, ecx
sub ecx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0xc4]
mov dword [esp + 0x58], ecx
cmp eax, 0x4e20
jle 0x4e60e3
mov dword [esi + 0xc4], 0x4e20
mov eax, 0x4e20
movss xmm0, dword [0x51cc74]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
inc dword [esi + 0xcc]
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x34], eax
divss xmm0, xmm1
movsd xmm1, qword [0x546c68]
cvtps2pd xmm0, xmm0
maxsd xmm1, xmm0
movss xmm0, dword [0x51cc74]
cvtpd2ps xmm1, xmm1
movss dword [esp + 0x38], xmm1
subss xmm0, xmm1
movss dword [esp + 0x3c], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x54], xmm0
test ecx, ecx
je 0x4e63b1
push edi
push dword [esi + 0x8c]
push ecx
call fcn.004e35f0
mov eax, dword [esi + 0x8c]
lea edx, [esi + 0x8c]
add esp, 0xc
mov dword [esp + 0x4c], eax
movss xmm1, dword [eax]
comiss xmm1, dword [0x51cc70]
jb 0x4e6187
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x546cc4]
comiss xmm0, xmm1
ja 0x4e624e
xor ecx, ecx
test edi, edi
jle 0x4e624e
cmp edi, 4
jb 0x4e61f4
lea esi, [edi - 1]
lea esi, [eax + esi*4]
mov dword [esp + 0x50], esi
mov esi, dword [ebp + 8]
cmp eax, edx
ja 0x4e61ad
cmp dword [esp + 0x50], edx
jae 0x4e61f4
mov eax, edi
and eax, 0x80000003
jns 0x4e61bb
dec eax
or eax, 0xfffffffc
inc eax
sub edi, eax
nop dword [eax]
add ecx, 4
cmp ecx, edi
jl 0x4e61c0
lea eax, [edi + 3]
mov dword [esp + 0x50], ecx
mov edi, dword [esp + 0x4c]
cdq
and edx, 3
lea ecx, [edx + eax]
sar ecx, 2
lea edx, [esi + 0x8c]
shl ecx, 4
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0xc]
cmp ecx, edi
jge 0x4e624e
mov eax, edi
sub eax, ecx
cmp eax, 4
jl 0x4e6235
lea esi, [edi - 3]
mov eax, dword [edx]
mov dword [eax + ecx*4], 0
mov eax, dword [edx]
mov dword [eax + ecx*4 + 4], 0
mov eax, dword [edx]
mov dword [eax + ecx*4 + 8], 0
mov eax, dword [edx]
mov dword [eax + ecx*4 + 0xc], 0
add ecx, 4
cmp ecx, esi
jl 0x4e6204
mov esi, dword [ebp + 8]
cmp ecx, edi
jge 0x4e624e
nop dword [eax]
mov eax, dword [edx]
mov dword [eax + ecx*4], 0
inc ecx
cmp ecx, edi
jl 0x4e6240
xor edx, edx
test edi, edi
jle 0x4e6396
cmp edi, 0x10
jb 0x4e6359
mov eax, dword [esi + 0x8c]
lea ecx, [esi + 0x88]
mov dword [esp + 0x40], eax
lea esi, [edi - 1]
mov dword [esp + 0x44], ecx
mov ecx, dword [ecx]
lea eax, [eax + edi*4]
add eax, 0xfffffffc
cmp ecx, eax
lea eax, [edi - 1]
lea esi, [ecx + esi*4]
mov dword [esp + 0x50], esi
lea eax, [ecx + eax*4]
mov esi, dword [ebp + 8]
ja 0x4e629e
cmp eax, dword [esp + 0x40]
jae 0x4e6359
cmp ecx, dword [esp + 0x44]
ja 0x4e62ae
cmp eax, dword [esp + 0x44]
jae 0x4e6359
lea eax, [esi + 0x8c]
cmp ecx, eax
ja 0x4e62c2
cmp dword [esp + 0x50], eax
jae 0x4e635f
mov eax, edi
and eax, 0x8000000f
jns 0x4e62d0
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm2, xmmword [0x546d30]
mov esi, edi
sub esi, eax
mov eax, 0x20
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x40]
nop dword [eax + eax]
movups xmm0, xmmword [eax + ecx - 0x20]
lea eax, [eax + 0x40]
add edx, 0x10
movaps xmm1, xmm2
mulps xmm1, xmm0
movups xmm0, xmmword [eax + esi - 0x60]
maxps xmm1, xmm0
movups xmm0, xmmword [eax + esi - 0x50]
movups xmmword [eax + ecx - 0x60], xmm1
movups xmm1, xmmword [eax + ecx - 0x50]
mulps xmm1, xmm2
maxps xmm1, xmm0
movups xmm0, xmmword [eax + esi - 0x40]
movups xmmword [eax + ecx - 0x50], xmm1
movups xmm1, xmmword [eax + ecx - 0x40]
mulps xmm1, xmm2
maxps xmm1, xmm0
movups xmmword [eax + ecx - 0x40], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [eax + ecx - 0x30]
mulps xmm1, xmm0
movups xmm0, xmmword [eax + esi - 0x30]
maxps xmm1, xmm0
movups xmmword [eax + ecx - 0x30], xmm1
cmp edx, dword [esp + 0x50]
jl 0x4e62f0
mov esi, dword [ebp + 8]
lea eax, [esi + 0x8c]
cmp edx, edi
jge 0x4e6396
movss xmm1, dword [0x546a70]
nop dword [eax + eax]
mov ecx, dword [esi + 0x88]
mov eax, dword [eax]
movss xmm0, dword [ecx + edx*4]
mulss xmm0, xmm1
maxss xmm0, dword [eax + edx*4]
lea eax, [esi + 0x8c]
movss dword [ecx + edx*4], xmm0
inc edx
cmp edx, edi
jl 0x4e6370
mov ecx, dword [esi + 0x88]
lea eax, [ecx + edi*4]
push eax
push ecx
push dword [esi + 0x10]
call fcn.004fd760
add esp, 0xc
jmp 0x4e64a2
lea edx, [eax + edi]
xor ecx, ecx
mov dword [esp + 0x48], edx
test edx, edx
jle 0x4e64a2
cmp edx, 4
jb 0x4e6432
lea eax, [esi + 0x88]
mov esi, dword [eax]
lea edi, [edx - 1]
mov dword [esp + 0x4c], esi
cmp esi, eax
lea edi, [esi + edi*4]
mov esi, dword [ebp + 8]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0xc]
ja 0x4e63ee
cmp dword [esp + 0x50], eax
jae 0x4e6432
mov eax, edx
and eax, 0x80000003
jns 0x4e63fc
dec eax
or eax, 0xfffffffc
inc eax
sub edx, eax
nop
add ecx, 4
cmp ecx, edx
jl 0x4e6400
mov edi, dword [esp + 0x4c]
lea eax, [edx + 3]
cdq
and edx, 3
mov dword [esp + 0x50], ecx
lea ecx, [edx + eax]
mov edx, dword [esp + 0x48]
sar ecx, 2
shl ecx, 4
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0xc]
cmp ecx, edx
jge 0x4e64a2
mov eax, edx
sub eax, ecx
cmp eax, 4
jl 0x4e6484
lea edi, [edx - 3]
mov eax, dword [esi + 0x88]
mov dword [eax + ecx*4], 0
mov eax, dword [esi + 0x88]
mov dword [eax + ecx*4 + 4], 0
mov eax, dword [esi + 0x88]
mov dword [eax + ecx*4 + 8], 0
mov eax, dword [esi + 0x88]
mov dword [eax + ecx*4 + 0xc], 0
add ecx, 4
cmp ecx, edi
jl 0x4e6442
mov edi, dword [esp + 0xc]
cmp ecx, edx
jge 0x4e64a2
nop dword [eax + eax]
mov eax, dword [esi + 0x88]
mov dword [eax + ecx*4], 0
inc ecx
cmp ecx, edx
jl 0x4e6490
push dword [ebp + 0xc]
push esi
call fcn.004e51a0
push esi
call fcn.004e8270
mov eax, dword [esi + 0x5c]
add esp, 0xc
xor ecx, ecx
mov dword [esp + 0x28], eax
test edi, edi
jle 0x4e6525
movss xmm2, dword [esp + 0x3c]
mov edx, eax
movss xmm3, dword [esp + 0x38]
nop
mov eax, dword [esi + 0x80]
cmp dword [eax + ecx*4], 0
je 0x4e64ea
mov eax, dword [esi + 0x4c]
movss xmm0, dword [edx + ecx*4]
comiss xmm0, dword [eax + ecx*4]
jbe 0x4e651a
mov eax, dword [esi + 0x4c]
movss xmm0, dword [edx + ecx*4]
mulss xmm0, xmm2
movss xmm1, dword [eax + ecx*4]
mulss xmm1, xmm3
addss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [edx + ecx*4], xmm0
mov edx, dword [esi + 0x5c]
mov eax, edx
mov dword [esp + 0x28], eax
jmp 0x4e651e
mov eax, dword [esp + 0x28]
inc ecx
cmp ecx, edi
jl 0x4e64d0
jmp 0x4e6529
mov dword [esp + 0x28], eax
lea ecx, [edi*4]
add eax, ecx
mov dword [esp + 0x38], ecx
push eax
push dword [esp + 0x2c]
push dword [esi + 0x10]
call fcn.004fd760
add esp, 0xc
cmp dword [esi + 0xc4], 1
jne 0x4e6616
mov eax, dword [esp + 0x34]
xor edx, edx
add eax, edi
mov dword [esp + 0x40], eax
cmp eax, 4
jl 0x4e65f0
mov edx, dword [esp + 0x24]
add eax, 0xfffffffc
mov ecx, 4
shr eax, 2
sub ecx, edx
mov dword [esp + 0x30], 8
mov dword [esp + 0x50], ecx
inc eax
mov ecx, 0xfffffff8
mov dword [esp + 0x44], eax
sub ecx, edx
lea edi, [edx + 8]
shl eax, 2
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
nop
mov eax, dword [edi - 8]
lea edx, [ecx + edi]
mov ecx, dword [esi + 0x64]
mov dword [edx + ecx], eax
mov ecx, dword [esi + 0x64]
mov eax, dword [edi - 4]
mov dword [edx + ecx + 4], eax
mov ecx, dword [esi + 0x64]
mov edx, dword [esp + 0x30]
mov eax, dword [edi]
add dword [esp + 0x30], 0x10
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x50]
mov ecx, dword [esi + 0x64]
add edx, edi
mov eax, dword [edi + 4]
add edi, 0x10
sub dword [esp + 0x44], 1
mov dword [edx + ecx], eax
mov ecx, dword [esp + 0x4c]
jne 0x4e65a0
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
cmp edx, eax
jge 0x4e6616
mov edi, dword [esp + 0x40]
nop dword [eax + eax]
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x64]
mov eax, dword [eax + edx*4]
mov dword [ecx + edx*4], eax
inc edx
cmp edx, edi
jl 0x4e6600
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x34]
xor ecx, ecx
add edx, edi
mov dword [esp + 0x1c], edx
test edx, edx
jle 0x4e6ac9
cmp edx, 4
jb 0x4e69ea
lea eax, [esi + 0x64]
mov dword [esp + 0x4c], eax
lea edi, [edx - 1]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
lea eax, [esi + 0x6c]
mov dword [esp + 0x50], eax
mov eax, dword [eax]
mov dword [esp + 0x18], eax
lea edi, [eax + edi*4]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x30]
lea edi, [edi + edx*4]
add edi, 0xfffffffc
mov dword [esp + 0x5c], edi
cmp eax, edi
mov edi, dword [esp + 0xc]
ja 0x4e667b
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x14], eax
jae 0x4e69ea
mov eax, dword [esi + 0x70]
lea edi, [edx - 1]
mov dword [esp + 0x28], eax
lea edi, [eax + edi*4]
cmp dword [esp + 0x18], edi
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0xc]
ja 0x4e66a0
cmp dword [esp + 0x14], eax
jae 0x4e69ea
mov edi, dword [esp + 0x24]
lea edi, [edi + edx*4]
add edi, 0xfffffffc
cmp dword [esp + 0x18], edi
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0xc]
ja 0x4e66c9
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x14], esi
mov esi, dword [ebp + 8]
jae 0x4e69ea
lea edi, [esi + 0x60]
mov dword [esp + 0x48], edi
mov edi, dword [edi]
mov dword [esp + 0x44], edi
lea edi, [edi + edx*4]
add edi, 0xfffffffc
cmp dword [esp + 0x18], edi
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0xc]
ja 0x4e66fc
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
jae 0x4e69ea
lea edi, [esi + 0x88]
mov dword [esp + 0x70], edi
mov edi, dword [edi]
mov dword [esp + 0x40], edi
lea edi, [edi + edx*4]
add edi, 0xfffffffc
cmp dword [esp + 0x18], edi
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0xc]
ja 0x4e6732
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
jae 0x4e69ea
mov edi, dword [esi + 0x5c]
mov dword [esp + 0x3c], edi
lea edi, [edi + edx*4]
add edi, 0xfffffffc
cmp dword [esp + 0x18], edi
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0xc]
ja 0x4e675f
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
jae 0x4e69ea
lea edi, [esi + 0x5c]
cmp dword [esp + 0x18], edi
mov edi, dword [esp + 0xc]
ja 0x4e677d
lea eax, [esi + 0x5c]
cmp dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
jae 0x4e69ea
lea edi, [esi + 0x60]
cmp dword [esp + 0x18], edi
mov edi, dword [esp + 0xc]
ja 0x4e679b
mov esi, dword [esp + 0x48]
cmp dword [esp + 0x14], esi
mov esi, dword [ebp + 8]
jae 0x4e69ea
lea edi, [esi + 0x64]
cmp dword [esp + 0x18], edi
mov edi, dword [esp + 0xc]
ja 0x4e67b9
lea edx, [esi + 0x64]
cmp dword [esp + 0x14], edx
mov edx, dword [esp + 0x1c]
jae 0x4e69ea
lea edi, [esi + 0x6c]
cmp dword [esp + 0x18], edi
mov edi, dword [esp + 0xc]
ja 0x4e67d7
lea eax, [esi + 0x6c]
cmp dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
jae 0x4e69ea
lea edi, [esi + 0x70]
cmp dword [esp + 0x18], edi
mov edi, dword [esp + 0xc]
ja 0x4e67f5
lea edx, [esi + 0x70]
cmp dword [esp + 0x14], edx
mov edx, dword [esp + 0x1c]
jae 0x4e69ea
lea edi, [esi + 0x88]
cmp dword [esp + 0x18], edi
mov edi, dword [esp + 0xc]
ja 0x4e6819
lea edi, [esi + 0x88]
cmp dword [esp + 0x14], edi
mov edi, dword [esp + 0xc]
jae 0x4e69ea
cmp eax, dword [esp + 0x5c]
ja 0x4e6831
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x20], edi
mov edi, dword [esp + 0xc]
jae 0x4e69ea
cmp eax, dword [esp + 0x60]
ja 0x4e6849
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
jae 0x4e69ea
cmp eax, dword [esp + 0x64]
ja 0x4e6860
mov esi, dword [esp + 0x44]
cmp dword [esp + 0x20], esi
mov esi, dword [ebp + 8]
jae 0x4e69ea
cmp eax, dword [esp + 0x68]
ja 0x4e6878
mov edx, dword [esp + 0x40]
cmp dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
jae 0x4e69ea
cmp eax, dword [esp + 0x6c]
ja 0x4e6890
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x20], edi
mov edi, dword [esp + 0xc]
jae 0x4e69ea
lea edi, [esi + 0x5c]
cmp eax, edi
mov edi, dword [esp + 0xc]
ja 0x4e68ac
lea edi, [esi + 0x5c]
cmp dword [esp + 0x20], edi
mov edi, dword [esp + 0xc]
jae 0x4e69ea
mov esi, dword [ebp + 8]
cmp eax, dword [esp + 0x48]
ja 0x4e68c6
lea edx, [esi + 0x60]
cmp dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
jae 0x4e69ea
cmp eax, dword [esp + 0x4c]
ja 0x4e68dd
mov esi, dword [esp + 0x4c]
cmp dword [esp + 0x20], esi
mov esi, dword [ebp + 8]
jae 0x4e69ea
mov esi, dword [ebp + 8]
cmp eax, dword [esp + 0x50]
ja 0x4e68f7
mov esi, dword [esp + 0x50]
cmp dword [esp + 0x20], esi
mov esi, dword [ebp + 8]
jae 0x4e69ea
lea edi, [esi + 0x70]
cmp eax, edi
mov edi, dword [esp + 0xc]
ja 0x4e6913
lea edx, [esi + 0x70]
cmp dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
jae 0x4e69ea
cmp eax, dword [esp + 0x70]
ja 0x4e6929
lea eax, [esi + 0x88]
cmp dword [esp + 0x20], eax
jae 0x4e69ea
mov eax, edx
and eax, 0x80000003
jns 0x4e6937
dec eax
or eax, 0xfffffffc
inc eax
movaps xmm6, xmmword [0x546d60]
sub edx, eax
movaps xmm7, xmmword [0x546d70]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x40]
nop word [eax + eax]
movups xmm5, xmmword [esi + ecx*4]
mov edi, dword [esp + 0x44]
movups xmm0, xmmword [edx + ecx*4]
addps xmm5, xmm6
movaps xmm1, xmm6
addps xmm5, xmm0
movups xmm0, xmmword [edi + ecx*4]
mov edi, dword [esp + 0x24]
addps xmm5, xmm0
movups xmm4, xmmword [edi + ecx*4]
mov edi, dword [esp + 0x30]
divps xmm4, xmm5
movups xmm3, xmmword [edi + ecx*4]
mov edi, dword [esp + 0x18]
subps xmm4, xmm6
movaps xmm0, xmm3
movaps xmm2, xmm3
addps xmm0, xmm5
divps xmm3, xmm5
divps xmm2, xmm0
minps xmm4, xmm7
mulps xmm2, xmm2
xorps xmm0, xmm0
maxps xmm0, xmm4
mulps xmm2, xmmword [0x546d50]
movups xmmword [eax + ecx*4], xmm4
addps xmm2, xmmword [0x546d00]
subps xmm1, xmm2
mulps xmm0, xmm2
mulps xmm1, xmm3
addps xmm1, xmm0
minps xmm1, xmm7
movups xmmword [edi + ecx*4], xmm1
add ecx, 4
cmp ecx, dword [esp + 0x70]
jl 0x4e6960
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
movss xmm5, dword [0x51cc74]
cmp ecx, edx
jge 0x4e6ad1
movss xmm6, dword [0x515f4c]
movss xmm7, dword [0x546c5c]
nop word [eax + eax]
mov eax, dword [esi + 0x5c]
xorps xmm1, xmm1
movss xmm4, dword [eax + ecx*4]
mov eax, dword [esi + 0x88]
addss xmm4, xmm5
addss xmm4, dword [eax + ecx*4]
mov eax, dword [esi + 0x60]
addss xmm4, dword [eax + ecx*4]
mov eax, dword [esp + 0x24]
movss xmm0, dword [eax + ecx*4]
divss xmm0, xmm4
mov eax, dword [esi + 0x70]
subss xmm0, xmm5
movss dword [eax + ecx*4], xmm0
mov eax, dword [esi + 0x70]
movss xmm0, dword [eax + ecx*4]
minss xmm0, xmm6
movss dword [eax + ecx*4], xmm0
mov eax, dword [esi + 0x64]
movss xmm3, dword [eax + ecx*4]
movaps xmm0, xmm3
mov eax, dword [esi + 0x70]
addss xmm0, xmm4
movaps xmm2, xmm3
divss xmm3, xmm4
divss xmm2, xmm0
maxss xmm1, dword [eax + ecx*4]
mov eax, dword [esi + 0x6c]
movaps xmm0, xmm5
mulss xmm2, xmm2
mulss xmm2, xmm7
addss xmm2, dword [0x546a5c]
subss xmm0, xmm2
mulss xmm1, xmm2
mulss xmm3, xmm0
addss xmm3, xmm1
movss dword [eax + ecx*4], xmm3
mov eax, dword [esi + 0x6c]
movss xmm0, dword [eax + ecx*4]
minss xmm0, xmm6
movss dword [eax + ecx*4], xmm0
inc ecx
cmp ecx, edx
jl 0x4e6a10
mov edi, dword [esp + 0xc]
jmp 0x4e6ad1
movss xmm5, dword [0x51cc74]
mov ecx, dword [esi + 0x84]
lea eax, [esi + 0x84]
movss xmm7, dword [0x546c50]
mov edx, 1
movss xmm6, dword [0x546a80]
movss xmm3, dword [0x546a60]
movss xmm0, dword [ecx]
mov dword [esp + 0x20], eax
lea eax, [esi + 0x6c]
mov dword [esp + 0x28], eax
mov eax, dword [eax]
mulss xmm0, xmm6
movss xmm1, dword [eax]
mulss xmm1, xmm7
addss xmm1, xmm0
movss dword [ecx], xmm1
lea ecx, [edi - 1]
lea eax, [ecx - 1]
cmp ecx, edx
jle 0x4e6c9e
cmp eax, 4
jb 0x4e6c3d
mov edi, dword [esi + 0x84]
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x40], eax
lea esi, [edi + 4]
lea edi, [edi + ecx*4]
mov dword [esp + 0x44], esi
add edi, 0xfffffffc
lea eax, [eax + ecx*4]
mov dword [esp + 0x3c], edi
cmp esi, eax
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0xc]
ja 0x4e6b74
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x3c], eax
jae 0x4e6c3d
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x28]
ja 0x4e6b90
mov edi, dword [esp + 0x3c]
cmp edi, dword [esp + 0x28]
mov edi, dword [esp + 0xc]
jae 0x4e6c3d
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x20]
mov eax, dword [esp + 0x40]
ja 0x4e6bb0
mov edi, dword [esp + 0x3c]
cmp edi, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
jae 0x4e6c3d
lea esi, [ecx - 1]
and esi, 0x80000003
jns 0x4e6bc0
dec esi
or esi, 0xfffffffc
inc esi
movaps xmm4, xmmword [0x546d40]
movaps xmm7, xmmword [0x546d10]
movaps xmm3, xmmword [0x546cf0]
mov dword [esp + 0x70], esi
mov esi, ecx
sub esi, dword [esp + 0x70]
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x6c]
nop word [eax + eax]
movups xmm0, xmmword [esi + edx*4]
movaps xmm2, xmm4
movaps xmm1, xmm7
mulps xmm2, xmm0
movups xmm0, xmmword [eax + edx*4]
mulps xmm1, xmm0
movups xmm0, xmmword [eax + edx*4 - 4]
mulps xmm0, xmm3
addps xmm2, xmm1
addps xmm2, xmm0
movups xmm0, xmmword [eax + edx*4 + 4]
mulps xmm0, xmm3
addps xmm2, xmm0
movups xmmword [esi + edx*4], xmm2
add edx, 4
cmp edx, dword [esp + 0x70]
jl 0x4e6bf0
movss xmm7, dword [0x546c50]
movss xmm3, dword [0x546a60]
mov esi, dword [ebp + 8]
cmp edx, ecx
jge 0x4e6c9e
movss xmm2, dword [0x546c3c]
lea esi, [edi - 1]
nop dword [eax]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [esp + 0x28]
movss xmm1, dword [ecx + edx*4]
mov eax, dword [eax]
mulss xmm1, xmm6
movss xmm0, dword [eax + edx*4]
mulss xmm0, xmm3
addss xmm1, xmm0
movss xmm0, dword [eax + edx*4 - 4]
mulss xmm0, xmm2
addss xmm1, xmm0
movss xmm0, dword [eax + edx*4 + 4]
mulss xmm0, xmm2
addss xmm1, xmm0
movss dword [ecx + edx*4], xmm1
inc edx
cmp edx, esi
jl 0x4e6c50
mov esi, dword [ebp + 8]
lea ecx, [edi - 1]
mov edx, dword [esp + 0x1c]
lea eax, [edi - 1]
mov dword [esp + 0x30], edx
sub dword [esp + 0x30], eax
mov dword [esp + 0x18], ecx
cmp eax, edx
jge 0x4e6e03
cmp dword [esp + 0x30], 0x10
jb 0x4e6e03
mov dword [esp + 0x18], eax
lea ecx, [edi - 1]
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x84]
mov dword [esp + 0x6c], eax
lea ecx, [eax + ecx*4]
lea eax, [eax + edx*4]
mov dword [esp + 0x50], ecx
add eax, 0xfffffffc
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x4c]
lea esi, [eax - 4]
lea eax, [eax + edx*4]
lea esi, [esi + edi*4]
add eax, 0xfffffffc
mov dword [esp + 0x70], esi
cmp ecx, eax
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
ja 0x4e6d1a
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x44], eax
jae 0x4e6e03
lea eax, [esi + 0x6c]
cmp dword [esp + 0x50], eax
ja 0x4e6d2d
cmp dword [esp + 0x44], eax
jae 0x4e6e06
lea eax, [esi + 0x84]
cmp dword [esp + 0x50], eax
ja 0x4e6d43
cmp dword [esp + 0x44], eax
jae 0x4e6e03
mov eax, dword [esp + 0x30]
and eax, 0x8000000f
jns 0x4e6d53
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm3, xmmword [0x546d40]
mov esi, edx
movaps xmm4, xmmword [0x546d20]
sub esi, eax
mov edi, dword [esp + 0x6c]
lea eax, [ecx*4 + 0x20]
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x4c]
nop dword [eax + eax]
movups xmm0, xmmword [edi + eax - 0x20]
add ecx, 0x10
movups xmm2, xmmword [esi + eax - 0x20]
movaps xmm1, xmm3
mulps xmm1, xmm0
mulps xmm2, xmm4
addps xmm2, xmm1
movaps xmm1, xmm3
movups xmmword [edi + eax - 0x20], xmm2
movups xmm0, xmmword [edi + eax - 0x10]
movups xmm2, xmmword [esi + eax - 0x10]
mulps xmm1, xmm0
mulps xmm2, xmm4
addps xmm2, xmm1
movaps xmm1, xmm3
movups xmmword [edi + eax - 0x10], xmm2
movups xmm0, xmmword [edi + eax]
movups xmm2, xmmword [esi + eax]
mulps xmm1, xmm0
mulps xmm2, xmm4
addps xmm2, xmm1
movups xmm1, xmmword [esi + eax + 0x10]
mulps xmm1, xmm4
movups xmmword [edi + eax], xmm2
movups xmm0, xmmword [edi + eax + 0x10]
mulps xmm0, xmm3
addps xmm1, xmm0
movups xmmword [edi + eax + 0x10], xmm1
add eax, 0x40
cmp ecx, dword [esp + 0x70]
jl 0x4e6d80
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
jmp 0x4e6e06
lea eax, [esi + 0x6c]
cmp ecx, edx
jge 0x4e6e41
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov eax, dword [eax]
mov ecx, dword [edi]
movss xmm1, dword [eax + esi*4]
movss xmm0, dword [ecx + esi*4]
mov eax, dword [esp + 0x28]
mulss xmm1, xmm7
mulss xmm0, xmm6
addss xmm1, xmm0
movss dword [ecx + esi*4], xmm1
inc esi
cmp esi, edx
jl 0x4e6e12
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0xc]
xorps xmm1, xmm1
mov ecx, edi
cmp edi, edx
jge 0x4e6eac
cmp dword [esp + 0x34], 4
jl 0x4e6e91
mov eax, dword [esp + 0x20]
mov ecx, edx
sub ecx, edi
sub ecx, 4
shr ecx, 2
mov eax, dword [eax]
lea eax, [eax + edi*4]
add eax, 8
inc ecx
lea esi, [edi + ecx*4]
mov dword [esp + 0x70], esi
mov esi, dword [ebp + 8]
addss xmm1, dword [eax - 8]
addss xmm1, dword [eax - 4]
addss xmm1, dword [eax]
addss xmm1, dword [eax + 4]
add eax, 0x10
sub ecx, 1
jne 0x4e6e72
mov ecx, dword [esp + 0x70]
cmp ecx, edx
jge 0x4e6eac
mov eax, dword [esi + 0x84]
lea eax, [eax + ecx*4]
nop
addss xmm1, dword [eax]
inc ecx
add eax, 4
cmp ecx, edx
jl 0x4e6ea0
movd xmm0, dword [esi + 0xc]
lea ecx, [edi*4]
cvtdq2ps xmm0, xmm0
mov eax, dword [esi + 0x54]
add eax, ecx
movaps xmm2, xmm5
divss xmm1, xmm0
movss xmm0, dword [0x546a60]
divss xmm0, xmm1
push dword [esp + 0x34]
addss xmm0, xmm5
movaps xmm1, xmm5
push eax
mov eax, dword [esi + 0x88]
add eax, ecx
push eax
divss xmm2, xmm0
mov eax, dword [esi + 0x5c]
add eax, ecx
push eax
movd xmm0, dword [esi + 0x34]
mulss xmm2, dword [0x546c60]
cvtdq2ps xmm0, xmm0
addss xmm2, dword [0x546a5c]
subss xmm1, xmm2
movss dword [esp + 0x4c], xmm2
mulss xmm1, xmm0
movd xmm0, dword [esi + 0x38]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
addss xmm1, xmm0
cvttss2si eax, xmm1
push eax
push dword [esi + 0x30]
call fcn.004e4f90
add esp, 0x18
mov dword [esp + 0x40], edi
mov ecx, edi
cmp edi, dword [esp + 0x1c]
jge 0x4e715a
movss xmm3, dword [0x51cc74]
mov eax, dword [esi + 0x6c]
sub esp, 8
movss xmm1, dword [eax + ecx*4]
movaps xmm0, xmm1
mov eax, dword [esi + 0x70]
addss xmm0, xmm3
divss xmm1, xmm0
movss xmm0, dword [eax + ecx*4]
addss xmm0, xmm3
movss dword [esp + 0x70], xmm1
mulss xmm0, xmm1
movaps xmm1, xmm0
movss dword [esp + 0x4c], xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movss dword [esp + 0x74], xmm1
movsd qword [esp + 0x78], xmm0
fld qword [esp + 0x78]
fstp qword [esp]
call fcn.0050ab22
fstp dword [esp + 0x78]
movss xmm0, dword [esp + 0x78]
add esp, 8
cvttss2si eax, xmm0
test eax, eax
jns 0x4e6fc9
movss xmm2, dword [0x51cc74]
movaps xmm1, xmm2
jmp 0x4e7052
cmp eax, 0x13
jle 0x4e6fed
movss xmm0, dword [esp + 0x44]
movsd xmm1, qword [0x546c78]
cvtps2pd xmm0, xmm0
divsd xmm1, xmm0
addsd xmm1, qword [0x515f98]
jmp 0x4e7046
movss xmm2, dword [esp + 0x6c]
movss xmm1, dword [0x51cc74]
subss xmm2, xmm0
movss xmm0, dword [eax*4 + 0x546b74]
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, dword [eax*4 + 0x546b70]
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp + 0x70], xmm0
movss xmm0, dword [esp + 0x44]
addss xmm0, dword [0x546c2c]
cvtps2pd xmm0, xmm0
call fcn.0050ab2e
movsd xmm1, qword [esp + 0x70]
divsd xmm1, xmm0
movss xmm2, dword [0x51cc74]
cvtpd2ps xmm1, xmm1
mulss xmm1, dword [esp + 0x68]
movaps xmm0, xmm2
mov ecx, dword [esp + 0x40]
mov eax, dword [esi + 0x68]
mov edx, dword [esp + 0x24]
minss xmm0, xmm1
movss dword [eax + ecx*4], xmm0
mov eax, dword [esi + 0x68]
movss xmm1, dword [eax + ecx*4]
mov eax, dword [esi + 0x64]
mulss xmm1, xmm1
movss xmm0, dword [eax + ecx*4]
mulss xmm1, dword [0x51eacc]
mulss xmm0, dword [0x546c48]
mulss xmm1, dword [edx + ecx*4]
addss xmm1, xmm0
movss xmm0, dword [0x546a60]
movss dword [eax + ecx*4], xmm1
movaps xmm1, xmm2
mov eax, dword [esi + 0x84]
divss xmm0, dword [eax + ecx*4]
addss xmm0, xmm2
divss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm1, dword [0x51eacc]
addss xmm1, dword [0x546c44]
mulss xmm1, dword [esp + 0x3c]
subss xmm0, xmm1
movss dword [esp + 0x70], xmm0
movss xmm0, dword [esp + 0x44]
xorps xmm0, xmmword [0x545570]
cvtss2sd xmm0, xmm0
call fcn.0050ab28
movss xmm3, dword [0x51cc74]
movaps xmm2, xmm0
movss xmm0, dword [esp + 0x70]
movaps xmm1, xmm3
subss xmm1, xmm0
mov ecx, dword [esp + 0x40]
mov eax, dword [esi + 0x6c]
divss xmm0, xmm1
movss xmm1, dword [eax + ecx*4]
addss xmm1, xmm3
mov eax, dword [esi + 0x50]
mulss xmm0, xmm1
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x515f98]
mulsd xmm2, xmm1
addsd xmm2, xmm0
divsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [eax + ecx*4], xmm0
inc ecx
mov dword [esp + 0x40], ecx
cmp ecx, dword [esp + 0x1c]
jl 0x4e6f50
mov eax, dword [esi + 0x50]
lea edi, [esi + 0x50]
push eax
add eax, dword [esp + 0x3c]
push eax
push dword [esi + 0x10]
call fcn.004fd7e0
mov eax, dword [esi + 0x68]
push eax
add eax, dword [esp + 0x48]
push eax
push dword [esi + 0x10]
call fcn.004fd7e0
mov eax, dword [esi + 0x54]
push eax
add eax, dword [esp + 0x54]
push eax
push dword [esi + 0x10]
call fcn.004fd7e0
xor ecx, ecx
add esp, 0x24
mov dword [esp + 0x34], ecx
cmp dword [esp + 0xc], ecx
jle 0x4e73b1
mov eax, dword [esi + 0x6c]
sub esp, 8
movss xmm1, dword [eax + ecx*4]
movaps xmm0, xmm1
mov eax, dword [esi + 0x70]
addss xmm0, dword [0x51cc74]
divss xmm1, xmm0
movss xmm0, dword [eax + ecx*4]
addss xmm0, dword [0x51cc74]
movss dword [esp + 0x70], xmm1
mulss xmm0, xmm1
movaps xmm1, xmm0
movss dword [esp + 0x58], xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movss dword [esp + 0x74], xmm1
movsd qword [esp + 0x78], xmm0
fld qword [esp + 0x78]
fstp qword [esp]
call fcn.0050ab22
fstp dword [esp + 0x78]
movss xmm0, dword [esp + 0x78]
add esp, 8
cvttss2si eax, xmm0
test eax, eax
jns 0x4e7221
movss xmm0, dword [0x51cc74]
jmp 0x4e72a2
cmp eax, 0x13
jle 0x4e7245
movss xmm0, dword [esp + 0x50]
movsd xmm1, qword [0x546c78]
cvtps2pd xmm0, xmm0
divsd xmm1, xmm0
addsd xmm1, qword [0x515f98]
jmp 0x4e729e
movss xmm2, dword [esp + 0x6c]
movss xmm1, dword [0x51cc74]
subss xmm2, xmm0
movss xmm0, dword [eax*4 + 0x546b74]
subss xmm1, xmm2
mulss xmm0, xmm2
mulss xmm1, dword [eax*4 + 0x546b70]
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp + 0x70], xmm0
movss xmm0, dword [esp + 0x50]
addss xmm0, dword [0x546c2c]
cvtps2pd xmm0, xmm0
call fcn.0050ab2e
movsd xmm1, qword [esp + 0x70]
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
mulss xmm0, dword [esp + 0x68]
mov eax, dword [edi]
movss xmm1, dword [0x51cc74]
mov ecx, dword [esp + 0x34]
minss xmm1, xmm0
movss xmm0, dword [eax + ecx*4]
mov eax, dword [esi + 0x68]
movss dword [esp + 0x50], xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x546c54]
movss xmm2, dword [eax + ecx*4]
comiss xmm0, xmm2
jbe 0x4e72e8
movaps xmm1, xmm2
mulss xmm1, dword [0x54555c]
mov edx, dword [esp + 0x24]
movss dword [eax + ecx*4], xmm1
mov eax, dword [esi + 0x68]
movss xmm1, dword [eax + ecx*4]
mov eax, dword [esi + 0x64]
mulss xmm1, xmm1
movss xmm0, dword [eax + ecx*4]
mulss xmm1, dword [0x51eacc]
mulss xmm0, dword [0x546c48]
mulss xmm1, dword [edx + ecx*4]
addss xmm1, xmm0
movss dword [eax + ecx*4], xmm1
mov eax, dword [esi + 0x54]
mov edx, dword [esi + 0x68]
movss xmm0, dword [eax + ecx*4]
comiss xmm0, dword [edx + ecx*4]
jbe 0x4e7339
movss dword [edx + ecx*4], xmm0
mov eax, dword [esi + 0x54]
movss xmm0, dword [eax + ecx*4]
cvtps2pd xmm0, xmm0
call fcn.0050ab2e
movss xmm1, dword [0x51cc74]
subss xmm1, dword [esp + 0x50]
mov eax, dword [esi + 0x68]
mov ecx, dword [esp + 0x34]
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm1
movsd qword [esp + 0x70], xmm0
movss xmm0, dword [eax + ecx*4]
cvtps2pd xmm0, xmm0
call fcn.0050ab2e
movss xmm1, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
mov eax, dword [edi]
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm1
movsd xmm1, qword [esp + 0x70]
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
mulss xmm0, xmm0
movss dword [eax + ecx*4], xmm0
inc ecx
mov dword [esp + 0x34], ecx
cmp ecx, dword [esp + 0xc]
jl 0x4e71a3
cmp dword [esi + 0x14], 0
jne 0x4e748e
mov edx, dword [esp + 0x1c]
xor ecx, ecx
test edx, edx
jle 0x4e748e
cmp edx, 4
jb 0x4e7434
mov eax, dword [edi]
lea esi, [edx - 1]
mov dword [esp + 0x6c], eax
lea esi, [eax + esi*4]
mov dword [esp + 0x70], esi
mov esi, dword [ebp + 8]
cmp eax, edi
ja 0x4e73eb
cmp dword [esp + 0x70], edi
jae 0x4e7434
mov eax, edx
and eax, 0x80000003
jns 0x4e73f9
dec eax
or eax, 0xfffffffc
inc eax
sub edx, eax
nop dword [eax + eax]
add ecx, 4
cmp ecx, edx
jl 0x4e7400
mov edi, dword [esp + 0x6c]
lea eax, [edx + 3]
cdq
and edx, 3
mov dword [esp + 0x70], ecx
lea ecx, [edx + eax]
mov edx, dword [esp + 0x1c]
sar ecx, 2
mov eax, 0x3f800000
shl ecx, 4
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x70]
lea edi, [esi + 0x50]
cmp ecx, edx
jge 0x4e748e
mov eax, edx
sub eax, ecx
cmp eax, 4
jl 0x4e7475
lea esi, [edx - 3]
mov eax, dword [edi]
mov dword [eax + ecx*4], 0x3f800000
mov eax, dword [edi]
mov dword [eax + ecx*4 + 4], 0x3f800000
mov eax, dword [edi]
mov dword [eax + ecx*4 + 8], 0x3f800000
mov eax, dword [edi]
mov dword [eax + ecx*4 + 0xc], 0x3f800000
add ecx, 4
cmp ecx, esi
jl 0x4e7444
mov esi, dword [ebp + 8]
cmp ecx, edx
jge 0x4e748e
nop dword [eax]
mov eax, dword [edi]
mov dword [eax + ecx*4], 0x3f800000
inc ecx
cmp ecx, edx
jl 0x4e7480
mov edx, 1
cmp dword [esp + 0xc], edx
jle 0x4e74d1
nop dword [eax]
mov eax, dword [edi]
mov ecx, dword [esi + 0x48]
movss xmm0, dword [eax + edx*4]
mulss xmm0, dword [ecx + edx*8 - 4]
movss dword [ecx + edx*8 - 4], xmm0
mov eax, dword [edi]
mov ecx, dword [esi + 0x48]
movss xmm0, dword [eax + edx*4]
mulss xmm0, dword [ecx + edx*8]
movss dword [ecx + edx*8], xmm0
inc edx
cmp edx, dword [esp + 0xc]
jl 0x4e74a0
mov eax, dword [edi]
mov ecx, dword [esi + 0x48]
mov edx, dword [esp + 0x38]
movss xmm0, dword [eax]
mulss xmm0, dword [ecx]
movss dword [ecx], xmm0
mov eax, dword [edi]
mov ecx, dword [esi + 0x48]
movss xmm0, dword [edx + eax - 4]
mov eax, dword [esp + 0xc]
mulss xmm0, dword [ecx + eax*8 - 4]
movss dword [ecx + eax*8 - 4], xmm0
cmp dword [esi + 0x98], 0
je 0x4e7522
push dword [esi + 0x48]
movss xmm0, dword [esp + 0x40]
push ecx
movss dword [esp], xmm0
push esi
call fcn.004e5600
add esp, 0xc
push dword [esi + 0x44]
lea edi, [esi + 0x44]
push dword [esi + 0x48]
push dword [esi + 0xd0]
call fcn.004fd6f0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
xor eax, eax
cmp ecx, 4
jl 0x4e754e
lea edx, [ecx - 3]
add eax, 4
cmp eax, edx
jl 0x4e7547
cmp dword [esi + 0x98], 0
je 0x4e76c7
xor eax, eax
test ecx, ecx
jle 0x4e76c7
mov edx, dword [edi]
xorps xmm0, xmm0
movsd xmm2, qword [0x546d80]
movss xmm1, dword [edx + eax*4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
andps xmm1, xmm2
comisd xmm1, xmm0
jbe 0x4e7592
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x54], xmm0
jmp 0x4e7598
movss xmm0, dword [esp + 0x54]
inc eax
cmp eax, ecx
jl 0x4e7572
movss xmm1, dword [0x546cb8]
comiss xmm0, xmm1
jbe 0x4e76c7
divss xmm1, xmm0
mov eax, dword [esp + 0x10]
xor ecx, ecx
movaps xmm2, xmm1
shufps xmm2, xmm2, 0
cmp eax, 0x10
jb 0x4e7640
lea esi, [eax - 1]
lea esi, [edx + esi*4]
mov dword [esp + 0x70], esi
mov esi, dword [ebp + 8]
cmp edx, edi
ja 0x4e75db
cmp dword [esp + 0x70], edi
jae 0x4e7640
and eax, 0x8000000f
jns 0x4e75e7
dec eax
or eax, 0xfffffff0
inc eax
mov esi, dword [esp + 0x10]
sub esi, eax
mov eax, 0x20
mov dword [esp + 0x70], esi
mov esi, dword [ebp + 8]
nop dword [eax]
movups xmm0, xmmword [eax + edx - 0x20]
add ecx, 0x10
lea eax, [eax + 0x40]
mulps xmm0, xmm2
movups xmmword [eax + edx - 0x60], xmm0
movups xmm0, xmmword [eax + edx - 0x50]
mulps xmm0, xmm2
movups xmmword [eax + edx - 0x50], xmm0
movups xmm0, xmmword [eax + edx - 0x40]
mulps xmm0, xmm2
movups xmmword [eax + edx - 0x40], xmm0
movups xmm0, xmmword [eax + edx - 0x30]
mulps xmm0, xmm2
movups xmmword [eax + edx - 0x30], xmm0
cmp ecx, dword [esp + 0x70]
jl 0x4e7600
mov edx, dword [esp + 0x10]
cmp ecx, edx
jge 0x4e76c5
mov eax, edx
sub eax, ecx
cmp eax, 4
jl 0x4e76a2
lea esi, [edx - 3]
mov eax, dword [edi]
movaps xmm0, xmm1
mulss xmm0, dword [eax + ecx*4]
movss dword [eax + ecx*4], xmm0
mov eax, dword [edi]
movss xmm0, dword [eax + ecx*4 + 4]
mulss xmm0, xmm1
movss dword [eax + ecx*4 + 4], xmm0
mov eax, dword [edi]
movss xmm0, dword [eax + ecx*4 + 8]
mulss xmm0, xmm1
movss dword [eax + ecx*4 + 8], xmm0
movaps xmm0, xmm1
mov eax, dword [edi]
mulss xmm0, dword [eax + ecx*4 + 0xc]
movss dword [eax + ecx*4 + 0xc], xmm0
add ecx, 4
cmp ecx, esi
jl 0x4e7654
mov esi, dword [ebp + 8]
cmp ecx, edx
jge 0x4e76c5
nop word [eax + eax]
mov eax, dword [edi]
movss xmm0, dword [eax + ecx*4]
mulss xmm0, xmm1
movss dword [eax + ecx*4], xmm0
inc ecx
cmp ecx, edx
jl 0x4e76b0
mov ecx, edx
xor edx, edx
test ecx, ecx
jle 0x4e784b
cmp ecx, 0x10
jb 0x4e77ab
mov ecx, dword [edi]
lea eax, [esi + 0x58]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
lea edi, [esi - 1]
lea edi, [ecx + edi*4]
lea eax, [eax + esi*4]
mov dword [esp + 0x54], edi
mov esi, dword [ebp + 8]
add eax, 0xfffffffc
cmp ecx, eax
mov eax, dword [esp + 0x54]
lea edi, [esi + 0x44]
ja 0x4e7715
cmp eax, dword [esp + 0x4c]
jae 0x4e77a7
cmp ecx, edi
ja 0x4e7721
cmp eax, edi
jae 0x4e77a7
cmp ecx, dword [esp + 0x50]
ja 0x4e772d
cmp eax, dword [esp + 0x50]
jae 0x4e77a7
mov esi, dword [esp + 0x10]
mov eax, esi
and eax, 0x8000000f
jns 0x4e773f
dec eax
or eax, 0xfffffff0
inc eax
sub esi, eax
mov eax, 0x20
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x4c]
nop
movups xmm0, xmmword [eax + ecx - 0x20]
add edx, 0x10
lea eax, [eax + 0x40]
movups xmm1, xmmword [eax + esi - 0x60]
mulps xmm1, xmm0
movups xmmword [eax + ecx - 0x60], xmm1
movups xmm0, xmmword [eax + ecx - 0x50]
movups xmm1, xmmword [eax + esi - 0x50]
mulps xmm1, xmm0
movups xmmword [eax + ecx - 0x50], xmm1
movups xmm0, xmmword [eax + ecx - 0x40]
movups xmm1, xmmword [eax + esi - 0x40]
mulps xmm1, xmm0
movups xmmword [eax + ecx - 0x40], xmm1
movups xmm0, xmmword [eax + ecx - 0x30]
movups xmm1, xmmword [eax + esi - 0x30]
mulps xmm1, xmm0
movups xmmword [eax + ecx - 0x30], xmm1
cmp edx, dword [esp + 0x70]
jl 0x4e7750
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
cmp edx, ecx
jge 0x4e784b
mov eax, ecx
sub eax, edx
cmp eax, 4
jl 0x4e7829
lea eax, [ecx - 3]
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x58]
mov ecx, dword [edi]
movss xmm0, dword [eax + edx*4]
mulss xmm0, dword [ecx + edx*4]
movss dword [ecx + edx*4], xmm0
mov eax, dword [esi + 0x58]
mov ecx, dword [edi]
movss xmm0, dword [eax + edx*4 + 4]
mulss xmm0, dword [ecx + edx*4 + 4]
movss dword [ecx + edx*4 + 4], xmm0
mov eax, dword [esi + 0x58]
mov ecx, dword [edi]
movss xmm0, dword [eax + edx*4 + 8]
mulss xmm0, dword [ecx + edx*4 + 8]
movss dword [ecx + edx*4 + 8], xmm0
mov eax, dword [esi + 0x58]
mov ecx, dword [edi]
movss xmm0, dword [eax + edx*4 + 0xc]
mulss xmm0, dword [ecx + edx*4 + 0xc]
movss dword [ecx + edx*4 + 0xc], xmm0
add edx, 4
cmp edx, dword [esp + 0x70]
jl 0x4e77c3
mov ecx, dword [esp + 0x10]
cmp edx, ecx
jge 0x4e784b
nop dword [eax]
mov eax, dword [esi + 0x58]
mov ecx, dword [edi]
movss xmm0, dword [eax + edx*4]
mulss xmm0, dword [ecx + edx*4]
movss dword [ecx + edx*4], xmm0
inc edx
cmp edx, dword [esp + 0x10]
jl 0x4e7830
mov eax, dword [esp + 0x2c]
xor edx, edx
test eax, eax
jle 0x4e7886
nop word [eax + eax]
mov eax, dword [edi]
mov ecx, dword [esi + 0x94]
movss xmm0, dword [eax + edx*4]
addss xmm0, dword [ecx + edx*4]
mov ecx, dword [ebp + 0xc]
cvttss2si eax, xmm0
mov word [ecx + edx*2], ax
inc edx
mov eax, dword [esp + 0x2c]
cmp edx, eax
jl 0x4e7860
cmp dword [esp + 0x58], 0
jle 0x4e78ba
mov edx, dword [ebp + 0xc]
lea ecx, [eax*4]
mov esi, dword [esp + 0x58]
lea edx, [edx + eax*2]
nop
mov eax, dword [edi]
lea ecx, [ecx + 4]
lea edx, [edx + 2]
cvttss2si eax, dword [eax + ecx - 4]
mov word [edx - 2], ax
sub esi, 1
jne 0x4e78a0
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
xor eax, eax
mov dword [esp + 0x1c], eax
cmp ecx, 4
jl 0x4e794c
nop dword [eax]
mov edx, dword [esi]
mov ecx, dword [esi + 0x94]
add edx, eax
mov eax, dword [edi]
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x1c]
mov dword [ecx + edx*4], eax
mov edx, dword [esi]
add edx, dword [esp + 0x1c]
mov eax, dword [edi]
mov ecx, dword [esi + 0x94]
mov eax, dword [eax + edx*4 + 4]
mov edx, dword [esp + 0x1c]
mov dword [ecx + edx*4 + 4], eax
mov edx, dword [esi]
add edx, dword [esp + 0x1c]
mov eax, dword [edi]
mov ecx, dword [esi + 0x94]
mov eax, dword [eax + edx*4 + 8]
mov edx, dword [esp + 0x1c]
mov dword [ecx + edx*4 + 8], eax
mov edx, dword [esi]
add edx, dword [esp + 0x1c]
mov eax, dword [edi]
mov ecx, dword [esi + 0x94]
mov eax, dword [eax + edx*4 + 0xc]
mov edx, dword [esp + 0x1c]
mov dword [ecx + edx*4 + 0xc], eax
mov eax, edx
mov ecx, dword [esp + 0x2c]
add eax, 4
add ecx, 0xfffffffd
mov dword [esp + 0x1c], eax
cmp eax, ecx
jl 0x4e78d0
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
jge 0x4e7973
mov edx, dword [esi]
mov ecx, dword [esi + 0x94]
add edx, eax
mov eax, dword [edi]
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x1c]
mov dword [ecx + edx*4], eax
mov eax, edx
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x2c]
jl 0x4e7950
cmp dword [esi + 0x18], 0
movss xmm0, dword [esp + 0x3c]
movss dword [esi + 0x40], xmm0
je 0x4e79b5
comiss xmm0, dword [esi + 0x28]
ja 0x4e79ab
cmp dword [esi + 0xc8], 0
je 0x4e7999
comiss xmm0, dword [esi + 0x2c]
ja 0x4e79ab
mov dword [esi + 0xc8], 0
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esi + 0xc8], 1
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret