Function at 0x4e13c0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x80
movsd xmm1, qword [0x546aa0]
xor edx, edx
push esi
push edi
mov edi, dword [ebp + 8]
movss xmm2, dword [0x51cc74]
movss dword [esp + 0x38], xmm2
movss dword [esp + 0x50], xmm2
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0x1c]
inc dword [edi + 0xc]
mov esi, dword [edi + 4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov dword [esp + 0x14], ecx
mov ecx, dword [edi + 0x20]
mov dword [esp + 0xc], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ecx
divsd xmm1, xmm0
movaps xmm0, xmm2
cvtpd2ps xmm1, xmm1
subss xmm0, xmm1
movss dword [esp + 0x84], xmm1
movss dword [esp + 0x80], xmm0
cmp dword [esp + 0x14], edx
jle 0x4e1599
mov eax, dword [edi]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ecx
nop
movss xmm4, dword [edi + 0xbc]
movaps xmm0, xmm2
subss xmm0, xmm4
mov esi, dword [edi + 0xc0]
mov ecx, eax
mov dword [esp + 0x68], 0
mov eax, dword [edi + 0x48]
imul ecx, edx
cvtps2pd xmm2, xmm0
movaps xmm0, xmm4
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x40]
mulss xmm0, xmm4
mov dword [esp + 0x64], eax
mov eax, ecx
mov dword [esp + 0x4c], ecx
cvtps2pd xmm1, xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [0x546aa8]
mulsd xmm0, xmm2
addsd xmm1, xmm0
cvtpd2ps xmm5, xmm1
test ecx, ecx
jle 0x4e1525
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x68]
add eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x4c], eax
movsx eax, word [eax]
movss xmm1, dword [esi + edx*8]
movd xmm3, eax
cvtdq2ps xmm3, xmm3
mov eax, dword [esp + 0x64]
addss xmm1, xmm3
movaps xmm2, xmm1
mulss xmm1, xmm5
mulss xmm2, xmm4
movaps xmm0, xmm2
subss xmm0, xmm3
subss xmm3, xmm1
addss xmm0, xmm0
addss xmm0, dword [esi + edx*8 + 4]
movss dword [esi + edx*8 + 4], xmm3
movss dword [esi + edx*8], xmm0
movss dword [eax + edi*4], xmm2
inc edi
mov eax, dword [esp + 0x4c]
add eax, dword [esp + 0x60]
mov dword [esp + 0x4c], eax
cmp edi, ecx
jl 0x4e14c4
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov dword [esp + 0x4c], eax
xor esi, esi
mov dword [esp + 0x40], eax
cmp dword [esp + 0x4c], esi
jle 0x4e1579
mov ecx, dword [edi]
mov eax, dword [edi + 0x48]
imul ecx, edx
add ecx, esi
movss xmm2, dword [eax + ecx*4]
mov eax, dword [edi + 0xb0]
movaps xmm1, xmm2
movss xmm0, dword [eax + edx*4]
mulss xmm0, dword [edi + 0xb8]
movss dword [eax + edx*4], xmm2
mov ecx, dword [edi]
mov eax, dword [edi + 0x48]
subss xmm1, xmm0
imul ecx, edx
add ecx, esi
inc esi
movss dword [eax + ecx*4], xmm1
mov eax, dword [edi]
mov dword [esp + 0x40], eax
cmp esi, eax
jl 0x4e1531
add dword [esp + 0x3c], 2
inc edx
movss xmm2, dword [0x51cc74]
cmp edx, dword [esp + 0x14]
jl 0x4e1450
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x34], eax
test ecx, ecx
jle 0x4e1671
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], ecx
xor edx, edx
cmp dword [edi], edx
jle 0x4e1649
mov eax, dword [esp + 0x3c]
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [edi]
add eax, dword [esp + 0x30]
mov ecx, dword [edi + 0x40]
add eax, edx
mov edi, dword [esp + 0x40]
add dword [esp + 0x40], 4
mov eax, dword [ecx + eax*4]
mov dword [edi + ecx], eax
movsx eax, word [esi]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x34]
movd xmm1, eax
mov eax, dword [edi + 0xac]
cvtdq2ps xmm1, xmm1
movss xmm0, dword [eax + ecx*4]
mulss xmm0, dword [edi + 0xb8]
mov ecx, dword [edi]
add ecx, dword [esp + 0x30]
mov eax, dword [edi + 0x40]
add ecx, edx
subss xmm1, xmm0
inc edx
movss dword [eax + ecx*4], xmm1
movsx eax, word [esi]
mov ecx, dword [esp + 0x34]
movd xmm0, eax
mov eax, dword [edi + 0xac]
cvtdq2ps xmm0, xmm0
movss dword [eax + ecx*4], xmm0
mov ecx, dword [esp + 0x10]
lea esi, [esi + ecx*2]
cmp edx, dword [edi]
jl 0x4e15c6
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
add dword [ebp + 0x10], 2
lea edx, [esi*4]
add dword [esp + 0x3c], edx
inc eax
add ecx, esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
cmp eax, dword [esp + 0x10]
jl 0x4e15b1
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], 0
test ecx, ecx
jle 0x4e1825
mov ecx, dword [esp + 0x18]
dec ecx
xor eax, eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x30], eax
mov edx, ecx
mov dword [esp + 0x40], edx
test edx, edx
js 0x4e17df
mov ecx, dword [esp + 0x10]
imul ecx, esi
mov edi, dword [ebp + 8]
mov eax, ecx
neg ecx
neg eax
shl ecx, 2
mov dword [esp + 0x5c], eax
mov eax, edx
imul eax, dword [esp + 0x10]
mov dword [esp + 0x60], ecx
imul eax, esi
add eax, dword [esp + 0x30]
mov dword [esp + 0x34], eax
lea eax, [edx + 1]
imul eax, dword [esp + 0x10]
mov ecx, eax
add eax, dword [esp + 0x24]
imul ecx, esi
imul eax, esi
add ecx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x34]
shl ecx, 2
shl eax, 2
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x3c], eax
nop dword [eax]
xor ecx, ecx
cmp esi, 4
jl 0x4e1769
mov edx, eax
lea eax, [esi - 4]
mov esi, dword [esp + 0x2c]
shr eax, 2
inc eax
mov dword [esp + 0x4c], eax
shl eax, 2
mov dword [esp + 0x64], eax
nop
sub dword [esp + 0x4c], 1
lea esi, [esi + 0x10]
mov ecx, dword [edi + 0x44]
lea edx, [edx + 0x10]
mov eax, dword [ecx + esi - 0x10]
mov dword [ecx + edx - 0x10], eax
mov ecx, dword [edi + 0x44]
mov eax, dword [ecx + esi - 0xc]
mov dword [ecx + edx - 0xc], eax
mov ecx, dword [edi + 0x44]
mov eax, dword [ecx + esi - 8]
mov dword [ecx + edx - 8], eax
mov ecx, dword [edi + 0x44]
mov eax, dword [ecx + esi - 4]
mov dword [ecx + edx - 4], eax
jne 0x4e1720
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
cmp ecx, esi
jge 0x4e17b4
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
add eax, ecx
shl eax, 2
lea edx, [edx + ecx]
mov dword [esp + 0x68], eax
shl edx, 2
sub esi, ecx
mov dword [esp + 0x4c], esi
mov esi, eax
nop dword [eax]
sub dword [esp + 0x4c], 1
lea esi, [esi + 4]
mov ecx, dword [edi + 0x44]
lea edx, [edx + 4]
mov eax, dword [ecx + esi - 4]
mov dword [ecx + edx - 4], eax
jne 0x4e1790
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
dec edx
add dword [esp + 0x2c], ecx
add eax, ecx
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x28], ecx
add dword [esp + 0x34], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
test edx, edx
jns 0x4e1700
mov eax, dword [esp + 0x30]
lea ecx, [eax*4]
mov eax, dword [edi + 0x44]
add eax, ecx
push eax
mov eax, dword [edi + 0x40]
add eax, ecx
push eax
push dword [edi + 0xa8]
call fcn.004fd5f0
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov eax, dword [esp + 0x30]
inc ecx
add eax, esi
mov dword [esp + 0x24], ecx
cmp ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x30], eax
jl 0x4e1690
mov ecx, dword [esp + 0x10]
xorps xmm4, xmm4
xorps xmm3, xmm3
movss dword [esp + 0x34], xmm4
test ecx, ecx
jle 0x4e1944
lea eax, [esi - 1]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x40], eax
nop word [eax + eax]
mov edx, dword [edi]
movaps xmm2, xmm3
lea ecx, [eax + edx]
sar edx, 1
mov eax, dword [edi + 0x40]
lea eax, [eax + ecx*4]
mov ecx, eax
je 0x4e1899
nop dword [eax]
nop dword [eax + eax]
movss xmm0, dword [eax]
mulss xmm0, dword [ecx]
movss xmm1, dword [eax + 4]
add eax, 8
mulss xmm1, dword [ecx + 4]
add ecx, 8
addss xmm0, xmm3
addss xmm1, xmm0
addss xmm2, xmm1
sub edx, 1
jne 0x4e1870
mov eax, dword [edi + 0x44]
addss xmm2, xmm4
mov ecx, dword [esp + 0x40]
movss xmm0, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
mov edx, dword [edi + 0x8c]
mulss xmm0, xmm0
mov dword [esp + 0x48], eax
mov eax, 1
movaps xmm4, xmm2
mov ecx, eax
addss xmm0, dword [edx]
movss dword [edx], xmm0
cmp dword [esp + 0x4c], eax
jle 0x4e190f
mov esi, dword [esp + 0x48]
nop word [eax + eax]
movss xmm1, dword [esi + eax*4 + 4]
movss xmm0, dword [esi + eax*4]
add eax, 2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
addss xmm1, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm1
inc ecx
cmp eax, dword [esp + 0x4c]
jl 0x4e18e0
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x48]
movss xmm0, dword [edi + eax*4]
mov eax, dword [esp + 0x40]
mov edi, dword [ebp + 8]
add eax, esi
sub dword [esp + 0x44], 1
mulss xmm0, xmm0
mov dword [esp + 0x40], eax
addss xmm0, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm0
jne 0x4e1850
movss dword [esp + 0x34], xmm4
mov ecx, dword [esp + 0x14]
movss dword [esp + 0x20], xmm3
mov dword [esp + 0x24], 0
test ecx, ecx
jle 0x4e1bf9
mov edx, dword [esp + 0x10]
lea ecx, [esi*4]
imul edx, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x4c], edx
imul edx, esi
shl edx, 2
mov dword [esp + 0x6c], edx
mov edx, dword [edi + 0x54]
add edx, eax
mov eax, dword [edi + 0x64]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x44]
mov dword [esp + 0x68], edx
mov dword [esp + 0x40], eax
test esi, esi
jle 0x4e19bd
shr ecx, 2
mov edi, edx
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 8]
cmp dword [esp + 0x4c], 0
jle 0x4e1b01
mov edi, dword [esp + 0x3c]
lea eax, [esi - 1]
mov dword [esp + 0x48], eax
mov ecx, edx
mov eax, esi
mov esi, dword [esp + 0x40]
neg eax
shl eax, 2
mov dword [esp + 0x64], eax
mov eax, edi
sub eax, edx
sub ecx, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
nop
cmp dword [esp + 0x48], 1
movss xmm0, dword [esi]
mulss xmm0, dword [edi]
mov dword [esp + 0x58], 1
addss xmm0, dword [edx]
movss dword [edx], xmm0
jle 0x4e1ab3
lea ecx, [edx + 4]
sub edi, esi
mov edx, dword [esp + 0x48]
lea eax, [esi + 8]
add edx, 0xfffffffe
mov dword [esp + 0x54], edi
shr edx, 1
inc edx
lea esi, [edx*2 + 1]
mov dword [esp + 0x58], esi
mov esi, edi
mov edi, dword [esp + 0x2c]
nop word [eax + eax]
movss xmm0, dword [esi + eax]
movss xmm1, dword [edi + ecx]
mulss xmm1, dword [eax - 4]
mulss xmm0, dword [eax]
subss xmm1, xmm0
addss xmm1, dword [ecx]
movss dword [ecx], xmm1
movss xmm1, dword [esi + eax]
movss xmm0, dword [edi + ecx]
add ecx, 8
mulss xmm1, dword [eax - 4]
mov esi, dword [esp + 0x30]
mulss xmm0, dword [eax]
addss xmm1, xmm0
addss xmm1, dword [esi + eax]
movss dword [esi + eax], xmm1
add eax, 8
mov esi, dword [esp + 0x54]
sub edx, 1
jne 0x4e1a50
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x58]
add ecx, dword [esp + 0x64]
mov dword [esp + 0x30], ecx
movss xmm0, dword [esi + eax*4]
mulss xmm0, dword [edi + eax*4]
add esi, dword [esp + 0x5c]
add edi, dword [esp + 0x5c]
mov dword [esp + 0x40], esi
addss xmm0, dword [edx + eax*4]
mov dword [esp + 0x3c], edi
movss dword [edx + eax*4], xmm0
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x5c]
sub dword [esp + 0x60], 1
mov dword [esp + 0x2c], eax
jne 0x4e1a00
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0xc]
mov eax, dword [edi + 0x3c]
add eax, dword [esp + 0x28]
push eax
mov eax, dword [edi + 0x54]
add eax, dword [esp + 0x2c]
push eax
push dword [edi + 0xa8]
call fcn.004fd6f0
mov edx, dword [edi]
xor eax, eax
add esp, 0xc
mov dword [esp + 0x40], eax
test edx, edx
jle 0x4e1b7c
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x60], ecx
mov ecx, dword [edi]
mov edx, ecx
imul edx, dword [esp + 0x24]
add ecx, dword [esp + 0x44]
add ecx, dword [esp + 0x40]
mov esi, dword [edi + 0x3c]
add edx, eax
mov eax, dword [edi + 0x48]
mov edi, dword [ebp + 8]
movss xmm0, dword [eax + edx*4]
subss xmm0, dword [esi + ecx*4]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x40], eax
movss dword [ecx + esi], xmm0
add ecx, 4
mov edx, dword [edi]
mov dword [esp + 0x60], ecx
cmp eax, edx
jl 0x4e1b33
mov esi, dword [esp + 0xc]
mov eax, dword [edi + 0x3c]
xorps xmm3, xmm3
add eax, dword [esp + 0x28]
xorps xmm2, xmm2
sar edx, 1
mov ecx, eax
je 0x4e1bb9
nop
movss xmm0, dword [ecx]
mulss xmm0, dword [eax]
movss xmm1, dword [ecx + 4]
add ecx, 8
mulss xmm1, dword [eax + 4]
add eax, 8
addss xmm0, xmm3
addss xmm1, xmm0
addss xmm2, xmm1
sub edx, 1
jne 0x4e1b90
mov eax, dword [esp + 0x6c]
lea ecx, [esi*4]
add dword [esp + 0x1c], eax
addss xmm2, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
inc edx
add dword [esp + 0x44], esi
add eax, ecx
mov dword [esp + 0x24], edx
movss dword [esp + 0x20], xmm2
mov dword [esp + 0x28], eax
cmp edx, dword [esp + 0x14]
jl 0x4e1992
mov ecx, dword [esp + 0x14]
cmp dword [edi + 0x10], 0
je 0x4e1c1d
mov eax, dword [esp + 0x10]
push dword [edi + 0xa4]
imul eax, ecx
push eax
push dword [esp + 0x20]
push esi
push dword [edi + 0x60]
call fcn.004e10d0
add esp, 0x14
mov eax, dword [edi + 0x14]
movss xmm4, dword [0x545570]
test eax, eax
jne 0x4e1eaf
mov edx, dword [esp + 0x14]
test edx, edx
jle 0x4e2017
mov edx, dword [esp + 0x18]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x4c], ecx
imul edx, esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x64], edx
nop dword [eax + eax]
xor edx, edx
mov dword [esp + 0x54], edx
cmp dword [esp + 0x10], edx
jle 0x4e1e8d
mov ecx, dword [esp + 0x18]
dec ecx
xor eax, eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x1c], eax
nop
mov dword [esp + 0x2c], ecx
test ecx, ecx
js 0x4e1e6c
lea eax, [esi - 1]
mov dword [esp + 0x60], eax
mov eax, ecx
imul eax, esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
imul eax, esi
neg eax
shl eax, 2
mov dword [esp + 0x70], eax
lea eax, [ecx + 1]
imul eax, dword [esp + 0x10]
add eax, edx
imul eax, esi
shl eax, 2
mov dword [esp + 0x24], eax
mov ecx, dword [edi + 0x5c]
mov esi, dword [esp + 0x2c]
mov edx, dword [edi + 0x58]
add edx, dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
mov ecx, dword [edi + 0x44]
add ecx, eax
mov dword [esp + 0x5c], edx
mov eax, dword [edi + 0xa4]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], 1
movss xmm0, dword [ecx]
movss xmm3, dword [eax + esi*4]
mov eax, dword [edi + 0x7c]
movaps xmm1, xmm3
mulss xmm0, dword [edx]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x58], eax
mulss xmm1, dword [eax]
mulss xmm1, xmm0
movss dword [esi], xmm1
mov esi, 1
cmp dword [esp + 0x60], esi
jle 0x4e1dd8
lea eax, [edx + 8]
add ecx, 4
mov edx, dword [esp + 0x40]
sub edx, dword [esp + 0x5c]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x5c]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x30]
sub edx, dword [esp + 0x40]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x60]
add edx, 0xfffffffe
shr edx, 1
inc edx
lea edi, [edx*2 + 1]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x58]
movss xmm1, dword [ecx]
mulss xmm1, dword [eax - 4]
movss xmm2, dword [edi + esi*4]
inc esi
mov edi, dword [esp + 0x44]
mulss xmm2, xmm3
movss xmm0, dword [edi + eax]
mulss xmm0, dword [eax]
mov edi, dword [esp + 0x6c]
addss xmm1, xmm0
mulss xmm1, xmm2
movss dword [edi + ecx], xmm1
mov edi, dword [esp + 0x44]
movss xmm0, dword [ecx]
add ecx, 8
mulss xmm0, dword [eax]
movss xmm1, dword [edi + eax]
mov edi, dword [esp + 0x68]
xorps xmm1, xmm4
mulss xmm1, dword [eax - 4]
addss xmm1, xmm0
mulss xmm1, xmm2
movss dword [edi + eax], xmm1
add eax, 8
sub edx, 1
jne 0x4e1d62
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x3c]
movss xmm0, dword [eax + esi*4]
xor esi, esi
mov eax, dword [esp + 0x30]
mulss xmm0, xmm3
movss xmm1, dword [ecx + edi*4]
mov ecx, edi
mov edi, dword [ebp + 8]
mulss xmm1, dword [edx + ecx*4]
mulss xmm1, xmm0
movss dword [eax + ecx*4], xmm1
cmp dword [esp + 0xc], esi
jle 0x4e1e3f
mov edx, dword [esp + 0x48]
add edx, dword [esp + 0x28]
imul edx, dword [esp + 0x10]
add edx, dword [esp + 0x1c]
shl edx, 2
nop dword [eax]
mov eax, dword [edi + 0x5c]
mov ecx, dword [edi + 0x60]
movss xmm0, dword [eax + esi*4]
inc esi
addss xmm0, dword [edx + ecx]
movss dword [edx + ecx], xmm0
add edx, 4
cmp esi, dword [esp + 0xc]
jl 0x4e1e20
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x70]
dec ecx
add dword [esp + 0x24], eax
mov esi, dword [esp + 0xc]
sub dword [esp + 0x28], esi
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jns 0x4e1cc0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x78]
inc edx
add eax, esi
mov dword [esp + 0x54], edx
mov dword [esp + 0x1c], eax
cmp edx, dword [esp + 0x10]
jl 0x4e1c80
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
add eax, dword [esp + 0x7c]
lea edx, [esi*4]
add ecx, edx
mov dword [esp + 0x48], eax
sub dword [esp + 0x64], 1
mov dword [esp + 0x4c], ecx
jne 0x4e1c60
jmp 0x4e1eb3
dec eax
mov dword [edi + 0x14], eax
mov edx, dword [esp + 0x14]
test edx, edx
jle 0x4e2017
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x64], eax
nop dword [eax]
xor ecx, ecx
mov dword [esp + 0x4c], ecx
cmp dword [esp + 0x10], ecx
jle 0x4e1ffe
xor eax, eax
mov dword [esp + 0x30], eax
cmp dword [esp + 0x18], eax
jle 0x4e1feb
test eax, eax
je 0x4e1f16
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0xc]
cdq
lea ecx, [ecx - 1]
idiv ecx
mov eax, dword [esp + 0x30]
dec eax
cmp edx, eax
jne 0x4e1fd0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push dword [edi + 0x80]
lea ecx, [edx + eax]
mov eax, dword [edi + 0x60]
imul ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x50]
imul ecx, esi
shl ecx, 2
add eax, ecx
mov dword [esp + 0x80], ecx
push eax
push dword [edi + 0xa8]
call fcn.004fd6f0
mov ecx, dword [edi]
add esp, 0xc
cmp ecx, esi
jge 0x4e1fb4
mov eax, esi
sub eax, ecx
cmp eax, 4
jl 0x4e1f9e
lea edx, [esi - 3]
nop
mov eax, dword [edi + 0x80]
mov dword [eax + ecx*4], 0
mov eax, dword [edi + 0x80]
mov dword [eax + ecx*4 + 4], 0
mov eax, dword [edi + 0x80]
mov dword [eax + ecx*4 + 8], 0
mov eax, dword [edi + 0x80]
mov dword [eax + ecx*4 + 0xc], 0
add ecx, 4
cmp ecx, edx
jl 0x4e1f60
cmp ecx, esi
jge 0x4e1fb4
mov eax, dword [edi + 0x80]
mov dword [eax + ecx*4], 0
inc ecx
cmp ecx, esi
jl 0x4e1fa2
mov eax, dword [edi + 0x60]
add eax, dword [esp + 0x7c]
push eax
push dword [edi + 0x80]
push dword [edi + 0xa8]
call fcn.004fd5f0
add esp, 0xc
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x30], eax
cmp eax, dword [esp + 0x18]
jl 0x4e1ef0
mov ecx, dword [esp + 0x4c]
inc ecx
mov dword [esp + 0x4c], ecx
cmp ecx, dword [esp + 0x10]
jl 0x4e1ee0
mov eax, dword [esp + 0x64]
add edx, dword [esp + 0x18]
sub eax, 1
mov dword [esp + 0x2c], edx
mov dword [esp + 0x64], eax
jne 0x4e1ed0
mov edx, dword [esp + 0x14]
xor ecx, ecx
cmp dword [edi], ecx
jl 0x4e204c
nop dword [eax]
mov eax, dword [edi + 0x8c]
mov dword [eax + ecx*4], 0
mov eax, dword [edi + 0x88]
mov dword [eax + ecx*4], 0
mov eax, dword [edi + 0x84]
mov dword [eax + ecx*4], 0
inc ecx
cmp ecx, dword [edi]
jle 0x4e2020
mov dword [esp + 0x44], 0
xorps xmm0, xmm0
movss dword [esp + 0x24], xmm0
xorps xmm6, xmm6
movss dword [esp + 0x3c], xmm6
test edx, edx
jle 0x4e23d0
mov edx, dword [esp + 0x10]
lea ecx, [esi*4]
imul edx, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x64], edx
imul edx, esi
shl edx, 2
mov dword [esp + 0x70], edx
mov edx, dword [edi + 0x54]
add edx, eax
mov eax, dword [edi + 0x60]
add eax, dword [esp + 0x40]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x44]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x4c], eax
test esi, esi
jle 0x4e20cd
shr ecx, 2
mov edi, edx
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 8]
cmp dword [esp + 0x64], 0
jle 0x4e2211
mov edi, dword [esp + 0x48]
lea eax, [esi - 1]
mov dword [esp + 0x60], eax
mov ecx, edx
mov eax, esi
mov esi, dword [esp + 0x4c]
neg eax
shl eax, 2
mov dword [esp + 0x78], eax
mov eax, edi
sub eax, edx
sub ecx, esi
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
nop
cmp dword [esp + 0x60], 1
movss xmm0, dword [esi]
mulss xmm0, dword [edi]
mov dword [esp + 0x58], 1
addss xmm0, dword [edx]
movss dword [edx], xmm0
jle 0x4e21c3
lea ecx, [edx + 4]
sub edi, esi
mov edx, dword [esp + 0x60]
lea eax, [esi + 8]
add edx, 0xfffffffe
mov dword [esp + 0x5c], edi
shr edx, 1
inc edx
lea esi, [edx*2 + 1]
mov dword [esp + 0x58], esi
mov esi, edi
mov edi, dword [esp + 0x2c]
nop word [eax + eax]
movss xmm0, dword [esi + eax]
movss xmm1, dword [edi + ecx]
mulss xmm1, dword [eax - 4]
mulss xmm0, dword [eax]
subss xmm1, xmm0
addss xmm1, dword [ecx]
movss dword [ecx], xmm1
movss xmm1, dword [esi + eax]
movss xmm0, dword [edi + ecx]
add ecx, 8
mulss xmm1, dword [eax - 4]
mov esi, dword [esp + 0x30]
mulss xmm0, dword [eax]
addss xmm1, xmm0
addss xmm1, dword [esi + eax]
movss dword [esi + eax], xmm1
add eax, 8
mov esi, dword [esp + 0x5c]
sub edx, 1
jne 0x4e2160
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x58]
add ecx, dword [esp + 0x78]
mov dword [esp + 0x30], ecx
movss xmm0, dword [esi + eax*4]
mulss xmm0, dword [edi + eax*4]
add esi, dword [esp + 0x54]
add edi, dword [esp + 0x54]
mov dword [esp + 0x4c], esi
addss xmm0, dword [edx + eax*4]
mov dword [esp + 0x48], edi
movss dword [edx + eax*4], xmm0
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x54]
sub dword [esp + 0x68], 1
mov dword [esp + 0x2c], eax
jne 0x4e2110
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0xc]
mov eax, dword [edi + 0x4c]
add eax, dword [esp + 0x1c]
push eax
mov eax, dword [edi + 0x54]
add eax, dword [esp + 0x20]
push eax
push dword [edi + 0xa8]
call fcn.004fd6f0
mov eax, dword [edi]
add esp, 0xc
mov dword [esp + 0x7c], 0
test eax, eax
jle 0x4e2283
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
nop dword [eax]
mov edx, dword [edi]
add edx, dword [esp + 0x28]
mov ecx, dword [edi + 0x3c]
add edx, esi
mov eax, dword [edi + 0x4c]
inc esi
movss xmm0, dword [ecx + edx*4]
subss xmm0, dword [eax + edx*4]
mov eax, dword [esp + 0x68]
movss dword [eax + ecx], xmm0
add eax, 4
mov dword [esp + 0x68], eax
mov eax, dword [edi]
cmp esi, eax
jl 0x4e2250
mov esi, dword [esp + 0xc]
mov ecx, dword [edi + 0x3c]
xorps xmm3, xmm3
add ecx, dword [esp + 0x1c]
xorps xmm2, xmm2
mov dword [esp + 0x4c], eax
mov edx, ecx
sar dword [esp + 0x4c], 1
je 0x4e22cb
mov eax, dword [esp + 0x4c]
movss xmm0, dword [ecx]
mulss xmm0, dword [edx]
movss xmm1, dword [ecx + 4]
add ecx, 8
mulss xmm1, dword [edx + 4]
add edx, 8
addss xmm0, xmm3
addss xmm1, xmm0
addss xmm2, xmm1
sub eax, 1
jne 0x4e22a0
mov eax, dword [edi]
addss xmm2, dword [0x51cc78]
xor ecx, ecx
mov dword [esp + 0x4c], ecx
addss xmm2, dword [esp + 0x3c]
movaps xmm6, xmm2
movss dword [esp + 0x3c], xmm6
test eax, eax
jle 0x4e2349
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x68], eax
nop dword [eax + eax]
mov esi, dword [edi]
imul esi, dword [esp + 0x44]
mov edx, dword [esp + 0x28]
add edx, dword [edi]
add edx, dword [esp + 0x4c]
mov eax, dword [edi + 0x4c]
add esi, ecx
mov ecx, dword [edi + 0x48]
movss xmm0, dword [ecx + esi*4]
subss xmm0, dword [eax + edx*4]
mov edx, dword [esp + 0x68]
mov eax, dword [edi + 0x3c]
mov ecx, dword [esp + 0x4c]
inc ecx
mov dword [esp + 0x4c], ecx
movss dword [edx + eax], xmm0
add edx, 4
mov eax, dword [edi]
mov dword [esp + 0x68], edx
cmp ecx, eax
jl 0x4e2300
mov esi, dword [esp + 0xc]
mov ecx, dword [edi + 0x3c]
movaps xmm2, xmm3
add ecx, dword [esp + 0x1c]
sar eax, 1
mov edx, ecx
je 0x4e2389
nop dword [eax]
movss xmm0, dword [edx]
mulss xmm0, dword [ecx]
movss xmm1, dword [edx + 4]
add edx, 8
mulss xmm1, dword [ecx + 4]
add ecx, 8
addss xmm0, xmm3
addss xmm1, xmm0
addss xmm2, xmm1
sub eax, 1
jne 0x4e2360
movss xmm5, dword [esp + 0x24]
lea ecx, [esi*4]
mov eax, dword [esp + 0x70]
addss xmm2, xmm5
add dword [esp + 0x40], eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
inc edx
add dword [esp + 0x28], esi
add eax, ecx
movaps xmm0, xmm2
mov dword [esp + 0x44], edx
movss dword [esp + 0x24], xmm0
mov dword [esp + 0x1c], eax
cmp edx, dword [esp + 0x14]
jl 0x4e20a2
mov edx, dword [esp + 0x14]
movss xmm3, dword [esp + 0x20]
movaps xmm7, xmm6
movss xmm1, dword [0x546a6c]
subss xmm3, xmm0
movss xmm0, dword [edi + 0x68]
mulss xmm0, dword [0x546a70]
movss xmm2, dword [0x546a60]
movaps xmm5, xmm3
mulss xmm7, xmm1
mulss xmm5, xmm1
movaps xmm4, xmm3
mulss xmm4, xmm2
addss xmm5, xmm0
mulss xmm6, xmm2
movss xmm0, dword [edi + 0x6c]
mulss xmm0, dword [0x546a88]
movss dword [edi + 0x68], xmm5
addss xmm4, xmm0
movss xmm0, dword [esp + 0x20]
mulss xmm0, xmm1
movaps xmm1, xmm3
mulss xmm7, xmm0
movss xmm0, dword [edi + 0x70]
mulss xmm0, dword [0x546a68]
movss dword [edi + 0x6c], xmm4
addss xmm7, xmm0
movss xmm0, dword [esp + 0x20]
mulss xmm0, xmm2
mulss xmm6, xmm0
movss xmm0, dword [edi + 0x74]
mulss xmm0, dword [0x546a84]
movss dword [edi + 0x70], xmm7
addss xmm6, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm3
movss dword [edi + 0x74], xmm6
jbe 0x4e2489
xorps xmm1, xmmword [0x545570]
movss xmm2, dword [esp + 0x3c]
movaps xmm0, xmm3
mulss xmm2, dword [esp + 0x20]
mulss xmm0, xmm1
comiss xmm0, xmm2
ja 0x4e271f
xorps xmm0, xmm0
comiss xmm0, xmm5
movaps xmm0, xmm5
jbe 0x4e24b7
xorps xmm0, xmmword [0x545570]
movaps xmm1, xmm5
mulss xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [0x545554]
comiss xmm1, xmm0
ja 0x4e271f
xorps xmm0, xmm0
comiss xmm0, xmm4
movaps xmm0, xmm4
jbe 0x4e24e4
xorps xmm0, xmmword [0x545570]
movaps xmm1, xmm4
mulss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, dword [0x546a64]
comiss xmm1, xmm0
ja 0x4e271f
movss xmm1, dword [0x545570]
xorps xmm0, xmm0
comiss xmm0, xmm3
movaps xmm0, xmm3
jbe 0x4e2515
xorps xmm0, xmm1
xorps xmm3, xmm1
xor eax, eax
movss xmm1, dword [0x546abc]
mulss xmm3, xmm0
movaps xmm0, xmm5
mulss xmm2, xmm1
comiss xmm3, xmm2
movss xmm2, dword [0x545570]
xorps xmm3, xmm3
xorps xmm0, xmm2
seta al
comiss xmm3, xmm5
jbe 0x4e2549
movaps xmm5, xmm0
mulss xmm0, xmm5
mov ecx, 1
mulss xmm7, xmm1
comiss xmm0, xmm7
movaps xmm0, xmm4
xorps xmm0, xmm2
cmova eax, ecx
comiss xmm3, xmm4
jbe 0x4e256a
movaps xmm4, xmm0
mulss xmm0, xmm4
mulss xmm6, xmm1
comiss xmm0, xmm6
ja 0x4e257f
test eax, eax
je 0x4e285a
mov eax, dword [esp + 0x10]
imul eax, edx
xor edx, edx
imul eax, dword [esp + 0x18]
imul eax, esi
mov dword [esp + 0x68], eax
cmp eax, 4
jl 0x4e25eb
add eax, 0xfffffffd
mov dword [esp + 0x7c], eax
mov esi, eax
mov eax, dword [edi + 0x64]
mov ecx, dword [edi + 0x60]
mov eax, dword [eax + edx*4]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0x64]
mov ecx, dword [edi + 0x60]
mov eax, dword [eax + edx*4 + 4]
mov dword [ecx + edx*4 + 4], eax
mov eax, dword [edi + 0x64]
mov ecx, dword [edi + 0x60]
mov eax, dword [eax + edx*4 + 8]
mov dword [ecx + edx*4 + 8], eax
mov eax, dword [edi + 0x64]
mov ecx, dword [edi + 0x60]
mov eax, dword [eax + edx*4 + 0xc]
mov dword [ecx + edx*4 + 0xc], eax
add edx, 4
cmp edx, esi
jl 0x4e25a6
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x68]
cmp edx, eax
jge 0x4e2608
mov esi, dword [esp + 0x68]
mov eax, dword [edi + 0x64]
mov ecx, dword [edi + 0x60]
mov eax, dword [eax + edx*4]
mov dword [ecx + edx*4], eax
inc edx
cmp edx, esi
jl 0x4e25f3
mov esi, dword [esp + 0xc]
cmp dword [esp + 0x14], 0
mov dword [esp + 0x48], 0
jle 0x4e26f2
mov edx, dword [edi]
lea eax, [esi*4]
xor ecx, ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x7c], 0
mov eax, edx
test edx, edx
jle 0x4e2665
mov esi, dword [esp + 0x7c]
mov edx, dword [edi]
mov eax, dword [edi + 0x3c]
add edx, ecx
mov ecx, dword [edi + 0x4c]
add edx, esi
inc esi
mov eax, dword [eax + edx*4]
mov dword [ecx + edx*4], eax
mov eax, dword [edi]
mov ecx, dword [esp + 0x30]
cmp esi, eax
jl 0x4e2644
mov esi, dword [esp + 0xc]
xor ecx, ecx
mov edx, eax
mov dword [esp + 0x4c], ecx
test eax, eax
jle 0x4e26c9
mov eax, dword [esp + 0x44]
mov dword [esp + 0x68], eax
nop dword [eax]
mov esi, dword [edi]
imul esi, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
add edx, dword [edi]
add edx, dword [esp + 0x4c]
mov eax, dword [edi + 0x4c]
add esi, ecx
mov ecx, dword [edi + 0x48]
movss xmm0, dword [ecx + esi*4]
subss xmm0, dword [eax + edx*4]
mov edx, dword [esp + 0x68]
mov eax, dword [edi + 0x3c]
mov ecx, dword [esp + 0x4c]
inc ecx
mov dword [esp + 0x4c], ecx
movss dword [edx + eax], xmm0
add edx, 4
mov dword [esp + 0x68], edx
mov edx, dword [edi]
cmp ecx, edx
jl 0x4e2680
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
add ecx, esi
mov esi, dword [esp + 0x78]
inc eax
add dword [esp + 0x44], esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], ecx
cmp eax, dword [esp + 0x14]
jl 0x4e2632
movss xmm0, dword [esp + 0x20]
movss dword [esp + 0x24], xmm0
mov dword [edi + 0x6c], 0
mov dword [edi + 0x68], 0
mov dword [edi + 0x74], 0
mov dword [edi + 0x70], 0
jmp 0x4e285a
mov eax, dword [esp + 0x10]
imul eax, edx
xor edx, edx
mov dword [edi + 0x6c], 0
mov dword [edi + 0x68], 0
mov dword [edi + 0x74], 0
mov dword [edi + 0x70], 0
imul eax, dword [esp + 0x18]
imul eax, esi
mov dword [esp + 0x68], eax
cmp eax, 4
jl 0x4e27a7
add eax, 0xfffffffd
mov dword [esp + 0x7c], eax
mov esi, eax
mov eax, dword [edi + 0x60]
mov ecx, dword [edi + 0x64]
mov eax, dword [eax + edx*4]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0x60]
mov ecx, dword [edi + 0x64]
mov eax, dword [eax + edx*4 + 4]
mov dword [ecx + edx*4 + 4], eax
mov eax, dword [edi + 0x60]
mov ecx, dword [edi + 0x64]
mov eax, dword [eax + edx*4 + 8]
mov dword [ecx + edx*4 + 8], eax
mov eax, dword [edi + 0x60]
mov ecx, dword [edi + 0x64]
mov eax, dword [eax + edx*4 + 0xc]
mov dword [ecx + edx*4 + 0xc], eax
add edx, 4
cmp edx, esi
jl 0x4e2762
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x68]
cmp edx, eax
jge 0x4e27c5
mov esi, dword [esp + 0x68]
nop
mov eax, dword [edi + 0x60]
mov ecx, dword [edi + 0x64]
mov eax, dword [eax + edx*4]
mov dword [ecx + edx*4], eax
inc edx
cmp edx, esi
jl 0x4e27b0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x4e285e
xor ecx, ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x4c], ecx
mov edx, eax
nop dword [eax]
xor eax, eax
mov dword [esp + 0x30], eax
cmp dword [edi], eax
jle 0x4e284b
nop
mov esi, dword [edi]
mov dword [esp + 0x7c], esi
lea edi, [ecx + esi]
mov esi, dword [esp + 0x30]
add edi, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xa0]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x4c]
movss xmm1, dword [ecx + esi*4]
mulss xmm1, dword [eax + edi*4]
mov eax, esi
add eax, dword [esp + 0x7c]
movss xmm0, dword [ecx + eax*4]
mov eax, esi
mulss xmm0, dword [edx + edi*4]
inc eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x30], eax
addss xmm1, xmm0
movss dword [edx + edi*4], xmm1
mov edi, dword [ebp + 8]
cmp eax, dword [edi]
jl 0x4e27f0
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x68]
add ecx, esi
sub edx, 1
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x68], edx
jne 0x4e27e0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], 0
xorps xmm3, xmm3
movss dword [esp + 0x3c], xmm3
xorps xmm4, xmm4
movss dword [esp + 0x30], xmm4
xorps xmm5, xmm5
movss dword [esp + 0x40], xmm5
xorps xmm6, xmm6
test eax, eax
jle 0x4e2ce2
lea eax, [esi - 1]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x48], eax
xor ecx, ecx
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x44], eax
mov edx, dword [edi]
xor eax, eax
mov dword [esp + 0x68], eax
test edx, edx
jle 0x4e29e6
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x64], ecx
mov ecx, dword [ebp + 0xc]
sub ecx, dword [ebp + 0x14]
mov dword [esp + 0x7c], ecx
nop word [eax + eax]
mov ecx, dword [edi + 0x48]
mov esi, edx
imul esi, dword [esp + 0x28]
add edx, dword [esp + 0x1c]
add edx, eax
add esi, eax
mov eax, dword [edi + 0x3c]
movss xmm1, dword [ecx + esi*4]
subss xmm1, dword [eax + edx*4]
mov eax, dword [edi + 0xb4]
mov edx, 0xffff8300
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x64]
movss xmm0, dword [eax + ecx*4]
mulss xmm0, dword [edi + 0xb8]
mov eax, dword [esp + 0x7c]
addss xmm1, xmm0
movzx eax, word [eax + esi]
movss dword [esp + 0x78], xmm1
cmp ax, dx
jle 0x4e2930
mov edx, 0x7d00
cmp ax, dx
jl 0x4e293d
cmp dword [edi + 0x14], 0
jne 0x4e293d
mov dword [edi + 0x14], 1
movss xmm0, dword [0x546ad0]
comiss xmm0, xmm1
jbe 0x4e2954
mov eax, 0xffff8000
jmp 0x4e29a1
comiss xmm1, dword [0x546acc]
jbe 0x4e2964
mov eax, 0x7fff
jmp 0x4e29a1
cvtps2pd xmm0, xmm1
sub esp, 8
addsd xmm0, qword [0x515288]
movsd qword [esp + 0x78], xmm0
fld qword [esp + 0x78]
fstp qword [esp]
call fcn.0050ab22
movss xmm1, dword [esp + 0x80]
add esp, 8
mov ecx, dword [esp + 0x28]
fstp qword [esp + 0x70]
cvttsd2si eax, qword [esp + 0x70]
movzx eax, ax
mov edx, dword [esp + 0x14]
mov word [esi], ax
mov eax, dword [edi + 0xb4]
lea esi, [esi + edx*2]
mov dword [esp + 0x64], esi
movss dword [eax + ecx*4], xmm1
mov eax, dword [esp + 0x68]
mov edx, dword [edi]
inc eax
mov dword [esp + 0x68], eax
cmp eax, edx
jl 0x4e28d0
movss xmm3, dword [esp + 0x3c]
xorps xmm6, xmm6
movss xmm4, dword [esp + 0x30]
movss xmm5, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
xor eax, eax
mov dword [esp + 0x4c], eax
test edx, edx
jle 0x4e2a23
mov esi, ecx
mov ecx, dword [edi]
lea esi, [esi + 4]
mov edx, dword [edi + 0x3c]
add ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x4c]
mov eax, dword [esi + edx - 4]
mov dword [edx + ecx*4], eax
mov eax, dword [edi + 0x3c]
mov dword [esi + eax - 4], 0
mov eax, dword [esp + 0x4c]
mov edx, dword [edi]
inc eax
mov dword [esp + 0x4c], eax
cmp eax, edx
jl 0x4e29f2
mov eax, dword [esp + 0x1c]
mov esi, edx
mov ecx, dword [edi + 0x4c]
add eax, edx
shl eax, 2
movaps xmm2, xmm6
add ecx, eax
add eax, dword [edi + 0x3c]
sar esi, 1
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x4c], esi
je 0x4e2a7b
mov edx, esi
nop word [eax + eax]
movss xmm0, dword [eax]
mulss xmm0, dword [ecx]
movss xmm1, dword [eax + 4]
add eax, 8
mulss xmm1, dword [ecx + 4]
add ecx, 8
addss xmm0, xmm6
addss xmm1, xmm0
addss xmm2, xmm1
sub edx, 1
jne 0x4e2a50
mov edx, dword [edi]
mov esi, dword [esp + 0x4c]
addss xmm2, xmm5
mov ecx, dword [esp + 0x7c]
test esi, esi
mov dword [esp + 0x68], esi
mov eax, ecx
mov esi, dword [esp + 0xc]
movss dword [esp + 0x40], xmm2
movaps xmm2, xmm6
je 0x4e2acd
mov edx, dword [esp + 0x68]
movss xmm0, dword [eax]
mulss xmm0, dword [ecx]
movss xmm1, dword [eax + 4]
add eax, 8
mulss xmm1, dword [ecx + 4]
add ecx, 8
addss xmm0, xmm6
addss xmm1, xmm0
addss xmm2, xmm1
sub edx, 1
jne 0x4e2aa2
mov edx, dword [edi]
imul edx, dword [esp + 0x28]
addss xmm2, xmm4
mov eax, dword [edi + 0x48]
movaps xmm5, xmm2
movaps xmm2, xmm6
movss dword [esp + 0x30], xmm5
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x4c]
mov ecx, eax
test edx, edx
je 0x4e2b1b
movss xmm0, dword [ecx]
mulss xmm0, dword [eax]
movss xmm1, dword [ecx + 4]
add ecx, 8
mulss xmm1, dword [eax + 4]
add eax, 8
addss xmm0, xmm6
addss xmm1, xmm0
addss xmm2, xmm1
sub edx, 1
jne 0x4e2af2
mov eax, dword [esp + 0x1c]
addss xmm2, xmm3
lea ecx, [eax*4]
mov eax, dword [edi + 0x58]
add eax, ecx
movss dword [esp + 0x3c], xmm2
push eax
mov eax, dword [edi + 0x3c]
add eax, ecx
push eax
push dword [edi + 0xa8]
call fcn.004fd5f0
xor edx, edx
add esp, 0xc
cmp dword [edi], edx
jle 0x4e2b6a
mov esi, dword [esp + 0x1c]
mov eax, dword [edi + 0x4c]
lea ecx, [esi + edx]
inc edx
mov dword [eax + ecx*4], 0
cmp edx, dword [edi]
jl 0x4e2b54
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
mov eax, dword [edi + 0x54]
lea ecx, [edx*4]
add eax, ecx
push eax
mov eax, dword [edi + 0x4c]
add eax, ecx
push eax
push dword [edi + 0xa8]
call fcn.004fd5f0
mov edx, dword [edi + 0x58]
add esp, 0xc
add edx, dword [esp + 0x2c]
mov eax, dword [edi + 0x84]
mov dword [esp + 0x68], eax
movss xmm0, dword [edx]
mulss xmm0, xmm0
addss xmm0, dword [eax]
movss dword [eax], xmm0
mov eax, 1
mov ecx, eax
cmp dword [esp + 0x48], eax
jle 0x4e2bf0
mov esi, dword [esp + 0x68]
movss xmm1, dword [edx + eax*4 + 4]
movss xmm0, dword [edx + eax*4]
add eax, 2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
addss xmm1, dword [esi + ecx*4]
movss dword [esi + ecx*4], xmm1
inc ecx
cmp eax, dword [esp + 0x48]
jl 0x4e2bc1
mov esi, dword [esp + 0xc]
movss xmm0, dword [edx + eax*4]
mov eax, dword [esp + 0x68]
mulss xmm0, xmm0
addss xmm0, dword [eax + ecx*4]
movss dword [eax + ecx*4], xmm0
mov edx, dword [edi + 0x88]
mov eax, dword [edi + 0x54]
mov edi, dword [esp + 0x1c]
lea ecx, [edi*4]
add eax, ecx
lea edi, [esi - 1]
mov dword [esp + 0x68], eax
movss xmm0, dword [eax]
mov eax, 1
mulss xmm0, xmm0
mov ecx, eax
addss xmm0, dword [edx]
movss dword [edx], xmm0
cmp edi, eax
jle 0x4e2c7f
mov esi, dword [esp + 0x68]
nop word [eax + eax]
movss xmm1, dword [esi + eax*4 + 4]
movss xmm0, dword [esi + eax*4]
add eax, 2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
addss xmm1, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm1
inc ecx
cmp eax, dword [esp + 0x48]
jl 0x4e2c50
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x68]
xorps xmm6, xmm6
add dword [esp + 0x44], 2
add dword [esp + 0x1c], esi
movss xmm3, dword [esp + 0x3c]
movss xmm0, dword [edi + eax*4]
lea eax, [esi*4]
add dword [esp + 0x2c], eax
movss xmm4, dword [esp + 0x30]
movss xmm5, dword [esp + 0x40]
mov edi, dword [ebp + 8]
mulss xmm0, xmm0
addss xmm0, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm0
mov ecx, dword [esp + 0x28]
inc ecx
cmp ecx, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x2c]
jl 0x4e28a8
comiss xmm4, xmm6
jb 0x4e2d68
movss xmm7, dword [esp + 0x34]
comiss xmm7, xmm6
movss xmm5, dword [esp + 0x24]
jb 0x4e2d74
comiss xmm5, xmm6
jb 0x4e2d74
movss xmm2, dword [esp + 0x20]
movd xmm1, esi
cvtdq2pd xmm1, xmm1
cvtps2pd xmm0, xmm2
mulsd xmm1, qword [0x526fd0]
comisd xmm1, xmm0
jbe 0x4e2d74
cvtps2pd xmm0, xmm4
comisd xmm1, xmm0
jbe 0x4e2d74
cvtps2pd xmm0, xmm7
comisd xmm1, xmm0
jbe 0x4e2d74
movd xmm1, esi
cvtdq2ps xmm1, xmm1
movaps xmm0, xmm1
mulss xmm0, dword [0x546ac4]
addss xmm0, xmm3
comiss xmm2, xmm0
jbe 0x4e2d5c
inc dword [edi + 0x18]
jmp 0x4e2da4
mov dword [edi + 0x18], 0
jmp 0x4e2de3
movss xmm5, dword [esp + 0x24]
movss xmm7, dword [esp + 0x34]
mov eax, dword [edi]
xor ecx, ecx
imul eax, dword [esp + 0x14]
add dword [edi + 0x18], 0x32
mov edx, dword [edi + 0x18]
test eax, eax
jle 0x4e2da7
mov esi, dword [ebp + 0x14]
mov edx, dword [esp + 0x14]
nop
xor eax, eax
mov word [esi + ecx*2], ax
inc ecx
mov eax, dword [edi]
imul eax, edx
cmp ecx, eax
jl 0x4e2d90
mov esi, dword [esp + 0xc]
mov edx, dword [edi + 0x18]
cmp edx, 0x32
jl 0x4e2ddc
call fcn.004468c0
cmp eax, 5
jl 0x4e2dcd
push str.The_echo_canceller_started_acting_funny_and_got_slapped__reset_._It_swears_it_will_behave_now.
push str.warning:__s
push str.speex
call fcn.00446820
add esp, 0xc
push edi
call fcn.004e4010
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movd xmm1, esi
cvtdq2ps xmm1, xmm1
movaps xmm0, xmm1
mulss xmm0, dword [0x515f4c]
comiss xmm5, xmm0
ja 0x4e2df9
movss dword [esp + 0x24], xmm0
cmp dword [esp + 0x10], 0
jle 0x4e2f04
lea eax, [esi - 1]
mov dword [esp + 0x68], eax
xor eax, eax
mov dword [esp + 0x4c], eax
mov edx, dword [edi]
movaps xmm2, xmm6
lea ecx, [eax + edx]
sar edx, 1
mov eax, dword [edi + 0x40]
lea eax, [eax + ecx*4]
mov ecx, eax
je 0x4e2e59
nop dword [eax]
movss xmm0, dword [ecx]
mulss xmm0, dword [eax]
movss xmm1, dword [ecx + 4]
add ecx, 8
mulss xmm1, dword [eax + 4]
add eax, 8
addss xmm0, xmm6
addss xmm1, xmm0
addss xmm2, xmm1
sub edx, 1
jne 0x4e2e30
mov eax, dword [edi + 0x44]
addss xmm2, xmm7
mov ecx, dword [esp + 0x4c]
movss xmm0, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
mov edx, dword [edi + 0x8c]
mulss xmm0, xmm0
mov dword [esp + 0x64], eax
mov eax, 1
movaps xmm7, xmm2
mov ecx, eax
addss xmm0, dword [edx]
movss dword [edx], xmm0
cmp dword [esp + 0x68], eax
jle 0x4e2ecf
mov esi, dword [esp + 0x64]
nop word [eax + eax]
movss xmm1, dword [esi + eax*4 + 4]
movss xmm0, dword [esi + eax*4]
add eax, 2
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
addss xmm0, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm0
inc ecx
cmp eax, dword [esp + 0x68]
jl 0x4e2ea0
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x64]
movss xmm0, dword [edi + eax*4]
mov eax, dword [esp + 0x4c]
mov edi, dword [ebp + 8]
add eax, esi
sub dword [esp + 0x10], 1
mulss xmm0, xmm0
mov dword [esp + 0x4c], eax
addss xmm0, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm0
jne 0x4e2e11
movss dword [esp + 0x34], xmm7
mov edx, dword [edi]
movss xmm4, dword [0x51cc74]
test edx, edx
js 0x4e3012
movss xmm2, dword [esp + 0x80]
xor esi, esi
movss xmm3, dword [esp + 0x84]
nop word [eax + eax]
mov ecx, dword [edi + 0x78]
mov eax, dword [edi + 0x8c]
movss xmm0, dword [ecx + esi*4]
movss xmm1, dword [eax + esi*4]
mulss xmm0, xmm2
mulss xmm1, xmm3
addss xmm0, xmm4
addss xmm1, xmm0
movss dword [ecx + esi*4], xmm1
inc esi
mov edx, dword [edi]
cmp esi, edx
jle 0x4e2f30
mov esi, dword [esp + 0xc]
test edx, edx
js 0x4e3012
nop dword [eax + eax]
mov eax, dword [edi + 0x88]
movaps xmm2, xmm4
mov ecx, dword [edi + 0x94]
movss xmm1, dword [eax + edx*4]
mov eax, dword [edi + 0x84]
subss xmm1, dword [ecx + edx*4]
movss xmm3, dword [eax + edx*4]
mov eax, dword [edi + 0x90]
movaps xmm0, xmm3
subss xmm0, dword [eax + edx*4]
mulss xmm0, xmm1
mulss xmm1, xmm1
addss xmm0, dword [esp + 0x38]
addss xmm1, dword [esp + 0x50]
movss dword [esp + 0x38], xmm0
movaps xmm0, xmm4
movss dword [esp + 0x50], xmm1
movss xmm1, dword [edi + 0x28]
subss xmm0, xmm1
mulss xmm1, xmm3
mulss xmm0, dword [eax + edx*4]
addss xmm0, xmm1
movss dword [eax + edx*4], xmm0
subss xmm2, dword [edi + 0x28]
mov eax, dword [edi + 0x88]
mov ecx, dword [edi + 0x94]
movss xmm0, dword [eax + edx*4]
mulss xmm2, dword [ecx + edx*4]
mulss xmm0, dword [edi + 0x28]
addss xmm2, xmm0
movss dword [ecx + edx*4], xmm2
sub edx, 1
jns 0x4e2f70
movss xmm0, dword [esp + 0x50]
cvtps2pd xmm0, xmm0
call fcn.0050ab2e
movss xmm6, dword [esp + 0x24]
xorps xmm2, xmm2
movss xmm3, dword [edi + 0x30]
movss xmm5, dword [esp + 0x30]
movss xmm4, dword [esp + 0x38]
cvtsd2ss xmm2, xmm0
movss xmm0, dword [edi + 0x2c]
mulss xmm3, xmm6
mulss xmm0, xmm5
movss xmm7, dword [0x51cc74]
divss xmm4, xmm2
minss xmm3, xmm0
movaps xmm1, xmm7
divss xmm3, xmm6
subss xmm1, xmm3
mulss xmm4, xmm3
mulss xmm3, xmm2
movaps xmm0, xmm1
mulss xmm1, dword [edi + 0x9c]
mulss xmm0, dword [edi + 0x98]
addss xmm3, xmm1
addss xmm4, xmm0
comiss xmm7, xmm3
movss dword [edi + 0x98], xmm4
movss dword [edi + 0x9c], xmm3
jbe 0x4e30ab
mov dword [edi + 0x9c], 0x3f800000
movaps xmm3, xmm7
movaps xmm0, xmm3
mulss xmm0, dword [0x546a54]
comiss xmm0, xmm4
jbe 0x4e30c6
movaps xmm4, xmm0
movss dword [edi + 0x98], xmm4
comiss xmm4, xmm3
jbe 0x4e30d6
movss dword [edi + 0x98], xmm3
movaps xmm4, xmm3
divss xmm4, xmm3
comiss xmm4, dword [0x546ac8]
jbe 0x4e30eb
movss xmm4, dword [0x546108]
cmp dword [edi + 0x10], 0
movaps xmm0, xmm5
movss xmm3, dword [esp + 0x40]
mulss xmm0, xmm6
movss dword [edi + 0x38], xmm4
mulss xmm4, xmm5
addss xmm0, xmm7
mulss xmm3, xmm3
movss xmm7, dword [esp + 0x34]
cvtps2pd xmm1, xmm4
divss xmm3, xmm0
mulsd xmm1, qword [0x546ab0]
cvtps2pd xmm0, xmm7
cvtps2pd xmm2, xmm6
mulsd xmm0, qword [0x546a78]
movss dword [esp + 0x38], xmm4
movss xmm4, dword [0x545554]
addsd xmm1, xmm0
divsd xmm1, xmm2
cvtpd2ps xmm0, xmm1
maxss xmm3, xmm0
minss xmm4, xmm3
jne 0x4e3189
movd xmm1, dword [esp + 0x18]
movss xmm0, dword [edi + 0x34]
cvtdq2ps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x4e3292
mulss xmm5, dword [0x546a58]
movss xmm0, dword [esp + 0x38]
comiss xmm0, xmm5
jbe 0x4e3292
mov dword [edi + 0x10], 1
mov eax, dword [edi]
xor ecx, ecx
test eax, eax
js 0x4e322b
movsd xmm5, qword [0x546a98]
movsd xmm6, qword [0x515288]
movss xmm7, dword [0x51cc78]
nop dword [eax]
mov eax, dword [edi + 0x88]
movss xmm2, dword [eax + ecx*4]
mov eax, dword [edi + 0x84]
mulss xmm2, dword [edi + 0x38]
movss xmm3, dword [eax + ecx*4]
addss xmm3, dword [0x51cc74]
cvtps2pd xmm0, xmm2
cvtps2pd xmm1, xmm3
mulsd xmm1, xmm6
comisd xmm0, xmm1
jbe 0x4e31e7
cvtpd2ps xmm2, xmm1
mov eax, dword [edi + 0x78]
movaps xmm0, xmm3
mulss xmm0, xmm4
cvtps2pd xmm1, xmm0
cvtps2pd xmm0, xmm2
mulsd xmm1, xmm5
mulsd xmm0, qword [0x546aa8]
addsd xmm1, xmm0
movss xmm0, dword [eax + ecx*4]
addss xmm0, xmm7
mov eax, dword [edi + 0x7c]
cvtpd2ps xmm1, xmm1
mulss xmm0, xmm3
divss xmm1, xmm0
movss dword [eax + ecx*4], xmm1
inc ecx
mov eax, dword [edi]
cmp ecx, eax
jle 0x4e31b0
xor edx, edx
test eax, eax
jle 0x4e3245
mov eax, dword [edi]
mov ecx, dword [edi + 0x50]
add eax, edx
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
inc edx
mov eax, dword [edi]
cmp edx, eax
jl 0x4e3231
cmp dword [edi + 0x10], 0
je 0x4e328c
xor edx, edx
test eax, eax
jle 0x4e328c
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x14]
sub eax, esi
mov dword [ebp + 0xc], eax
movsx ecx, word [eax + esi]
lea esi, [esi + 2]
movsx eax, word [esi - 2]
sub ecx, eax
mov eax, dword [edi + 0x50]
movd xmm0, ecx
mov ecx, dword [edi]
cvtdq2ps xmm0, xmm0
add ecx, edx
inc edx
movss dword [eax + ecx*4], xmm0
mov eax, dword [ebp + 0xc]
cmp edx, dword [edi]
jl 0x4e3264
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x545568]
comiss xmm7, xmm0
jbe 0x4e32cc
mulsd xmm2, qword [0x546a90]
movaps xmm3, xmm7
mulss xmm3, dword [0x546a64]
cvtps2pd xmm0, xmm3
comisd xmm0, xmm2
jbe 0x4e32c6
cvtpd2ps xmm3, xmm2
divss xmm3, xmm6
jmp 0x4e32cf
xorps xmm3, xmm3
xor ecx, ecx
cmp dword [edi], ecx
jl 0x4e3301
movss xmm7, dword [0x51cc78]
mov eax, dword [edi + 0x78]
movaps xmm1, xmm3
movss xmm0, dword [eax + ecx*4]
addss xmm0, xmm7
mov eax, dword [edi + 0x7c]
divss xmm1, xmm0
movss dword [eax + ecx*4], xmm1
inc ecx
cmp ecx, dword [edi]
jle 0x4e32e1
addss xmm3, dword [edi + 0x34]
mov eax, dword [edi]
movss dword [edi + 0x34], xmm3
jmp 0x4e322b