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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x88
movsd xmm1, qword [0x59c270]
xor edx, edx
push esi
push edi
mov edi, dword [ebp + 8]
movss xmm2, dword [0x56de4c]
movsd xmm3, qword [0x59c278]
movss dword [esp + 0x64], xmm2
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0x1c]
inc dword [edi + 0xc]
mov esi, dword [edi + 4]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x30], eax
movss dword [esp + 0x60], xmm2
divsd xmm1, xmm0
movaps xmm0, xmm2
movss dword [esp + 0x6c], xmm2
cvtpd2ps xmm1, xmm1
subss xmm0, xmm1
movss dword [esp + 0x8c], xmm1
movss dword [esp + 0x88], xmm0
cmp dword [esp + 0x40], edx
jle 0x4d9280
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
nop word [eax + eax]
movss xmm4, dword [edi + 0xbc]
movaps xmm0, xmm2
mov eax, dword [edi]
subss xmm0, xmm4
mov esi, dword [edi + 0xc0]
mov ecx, eax
imul ecx, edx
mov dword [esp + 8], eax
mov eax, dword [edi + 0x48]
cvtps2pd xmm2, xmm0
mov dword [esp + 0x3c], esi
lea eax, [eax + ecx*4]
xor ecx, ecx
movaps xmm0, xmm4
mov dword [esp + 0x10], eax
mulss xmm0, xmm4
cvtps2pd xmm1, xmm0
movaps xmm0, xmm2
mulsd xmm0, xmm3
mulsd xmm0, xmm2
addsd xmm1, xmm0
cvtpd2ps xmm5, xmm1
cmp dword [esp + 8], ecx
jle 0x4d9213
mov edi, dword [esp + 0xc]
nop word [eax + eax]
movsx eax, word [edi]
movd xmm3, eax
cvtdq2ps xmm3, xmm3
mov eax, dword [esp + 0x10]
movaps xmm1, xmm3
addss xmm1, dword [esi + edx*8]
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
mov esi, dword [esp + 0x40]
movss dword [eax + ecx*4], xmm2
inc ecx
lea edi, [edi + esi*2]
mov esi, dword [esp + 0x3c]
cmp ecx, dword [esp + 8]
jl 0x4d91b0
movsd xmm3, qword [0x59c278]
mov edi, dword [ebp + 8]
mov ecx, dword [edi]
xor esi, esi
test ecx, ecx
jle 0x4d9262
nop dword [eax + eax]
mov eax, dword [edi + 0x48]
movss xmm0, dword [edi + 0xb8]
imul ecx, edx
add ecx, esi
movss xmm2, dword [eax + ecx*4]
mov eax, dword [edi + 0xb0]
movaps xmm1, xmm2
mulss xmm0, dword [eax + edx*4]
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 ecx, dword [edi]
cmp esi, ecx
jl 0x4d9220
add dword [esp + 0xc], 2
inc edx
movss xmm2, dword [esp + 0x64]
cmp edx, dword [esp + 0x40]
jl 0x4d9150
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x48], ecx
test eax, eax
jle 0x4d9606
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], ecx
mov eax, dword [edi]
xor edx, edx
test eax, eax
jle 0x4d932f
mov ecx, dword [esp + 0x24]
mov esi, dword [ebp + 0x10]
mov dword [esp + 0xc], ecx
nop dword [eax]
add eax, dword [esp + 0x14]
mov ecx, dword [edi + 0x40]
add eax, edx
mov edi, dword [esp + 0xc]
add dword [esp + 0xc], 4
mov eax, dword [ecx + eax*4]
mov dword [ecx + edi], eax
movsx eax, word [esi]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x48]
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 + 0x14]
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 + 0x48]
movd xmm0, eax
mov eax, dword [edi + 0xac]
cvtdq2ps xmm0, xmm0
movss dword [eax + ecx*4], xmm0
mov ecx, dword [esp + 0x30]
mov eax, dword [edi]
lea esi, [esi + ecx*2]
mov ecx, dword [esp + 0x48]
cmp edx, eax
jl 0x4d92b0
mov esi, dword [esp + 0x1c]
add dword [esp + 0x14], esi
lea eax, [esi*4]
add dword [esp + 0x24], eax
inc ecx
add dword [ebp + 0x10], 2
mov dword [esp + 0x48], ecx
cmp ecx, dword [esp + 0x30]
jl 0x4d9296
mov eax, dword [esp + 0x50]
dec eax
mov dword [esp + 0x14], 0
xor edx, edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x18], edx
mov ecx, eax
mov dword [esp + 0x20], ecx
test ecx, ecx
js 0x4d94af
mov edx, dword [esp + 0x30]
imul edx, esi
mov eax, edx
neg edx
neg eax
shl edx, 2
mov dword [esp + 0x4c], eax
mov eax, ecx
imul eax, dword [esp + 0x30]
inc ecx
imul ecx, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
add eax, dword [esp + 0x14]
add ecx, dword [esp + 0x14]
imul eax, esi
imul ecx, esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], ecx
shl ecx, 2
lea edi, [eax*4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0xc], edi
mov edi, dword [ebp + 8]
xor ecx, ecx
cmp esi, 4
jl 0x4d943b
mov edx, dword [esp + 0x24]
lea eax, [esi - 4]
mov esi, dword [esp + 0xc]
shr eax, 2
inc eax
mov dword [esp + 8], eax
shl eax, 2
mov dword [esp + 0x3c], eax
nop word [eax + eax]
sub dword [esp + 8], 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 0x4d93f0
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
cmp ecx, esi
jl 0x4d943f
jmp 0x4d947c
test esi, esi
jle 0x4d9480
mov edx, dword [esp + 0x38]
add eax, ecx
add edx, ecx
shl eax, 2
shl edx, 2
sub esi, ecx
mov dword [esp + 8], esi
mov esi, eax
mov dword [esp + 0x10], eax
nop dword [eax]
sub dword [esp + 8], 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 0x4d9460
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x4c]
dec ecx
add dword [esp + 0x38], esi
add eax, esi
add dword [esp + 0xc], edx
add dword [esp + 0x24], edx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x48], eax
test ecx, ecx
jns 0x4d93c6
mov edx, dword [esp + 0x18]
mov eax, dword [edi + 0x44]
add eax, edx
push eax
mov eax, dword [edi + 0x40]
add eax, edx
push eax
push dword [edi + 0xa8]
call fcn.004f4dc0
mov eax, dword [esp + 0x20]
lea ecx, [esi*4]
mov edx, dword [esp + 0x24]
inc eax
add edx, ecx
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x3c]
add esp, 0xc
cmp eax, ecx
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x58]
jl 0x4d9368
lea eax, [esi - 1]
mov dword [esp + 0x24], ecx
mov dword [esp + 8], eax
xorps xmm3, xmm3
xor eax, eax
xorps xmm4, xmm4
mov dword [esp + 0xc], 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 0x4d9559
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 0x4d9530
mov eax, dword [edi + 0x44]
addss xmm4, xmm2
mov ecx, dword [esp + 0xc]
movss xmm0, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
mov edx, dword [edi + 0x8c]
mulss xmm0, xmm0
mov dword [esp + 0x2c], eax
mov eax, 1
mov ecx, eax
addss xmm0, dword [edx]
movss dword [edx], xmm0
cmp dword [esp + 8], eax
jle 0x4d95cf
mov esi, dword [esp + 0x2c]
nop dword [eax]
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 + 8]
jl 0x4d95a0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
movss xmm0, dword [edi + eax*4]
mov eax, dword [esp + 0xc]
mov edi, dword [ebp + 8]
add eax, esi
sub dword [esp + 0x24], 1
mulss xmm0, xmm0
mov dword [esp + 0xc], eax
addss xmm0, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm0
jne 0x4d9510
movss dword [esp + 0x48], xmm4
jmp 0x4d9612
xorps xmm7, xmm7
xorps xmm3, xmm3
movss dword [esp + 0x48], xmm7
mov ecx, dword [esp + 0x40]
movss dword [esp + 0x54], xmm3
mov dword [esp + 0x38], 0
test ecx, ecx
jle 0x4d98cd
mov edx, dword [esp + 0x30]
xor eax, eax
imul edx, dword [esp + 0x50]
xor ecx, ecx
mov dword [esp + 0x28], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 8], edx
imul edx, esi
shl edx, 2
mov dword [esp + 0x74], edx
mov edx, dword [edi + 0x54]
add edx, eax
mov eax, dword [edi + 0x64]
add eax, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x44]
mov dword [esp + 0xc], eax
test esi, esi
jle 0x4d967f
mov ecx, esi
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 8]
cmp dword [esp + 8], 0
jle 0x4d97cf
mov edi, dword [esp + 0x24]
lea eax, [esi - 1]
mov dword [esp + 0x2c], eax
mov ecx, edi
lea eax, [esi*4]
sub ecx, edx
mov dword [esp + 0x58], eax
mov eax, esi
mov esi, dword [esp + 0xc]
neg eax
shl eax, 2
mov dword [esp + 0x70], eax
mov eax, edx
sub eax, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x18]
nop dword [eax + eax]
cmp dword [esp + 0x2c], 1
movss xmm0, dword [esi]
mulss xmm0, dword [edi]
mov dword [esp + 0x5c], 1
addss xmm0, dword [edx]
movss dword [edx], xmm0
jle 0x4d9781
lea ecx, [edx + 4]
mov edx, edi
sub edx, esi
lea eax, [esi + 8]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x2c]
add edx, 0xfffffffe
shr edx, 1
inc edx
lea esi, [edx*2 + 1]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x10]
nop word [eax + eax]
mov edi, dword [esp + 0x20]
movss xmm0, dword [eax]
mulss xmm0, dword [eax + esi]
movss xmm1, dword [ecx + edi]
mulss xmm1, dword [eax - 4]
subss xmm1, xmm0
addss xmm1, dword [ecx]
movss dword [ecx], xmm1
movss xmm0, dword [ecx + edi]
add ecx, 8
movss xmm1, dword [eax - 4]
mulss xmm1, dword [eax + esi]
mov edi, dword [esp + 0x18]
mulss xmm0, dword [eax]
addss xmm1, xmm0
addss xmm1, dword [eax + edi]
movss dword [eax + edi], xmm1
add eax, 8
sub edx, 1
jne 0x4d9720
mov edx, dword [esp + 0x3c]
mov eax, edi
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x5c]
add eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
movss xmm0, dword [edi + ecx*4]
mulss xmm0, dword [esi + ecx*4]
add esi, dword [esp + 0x58]
add edi, dword [esp + 0x58]
mov dword [esp + 0xc], esi
addss xmm0, dword [edx + ecx*4]
mov dword [esp + 0x24], edi
movss dword [edx + ecx*4], xmm0
mov ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x58]
sub dword [esp + 0x4c], 1
mov dword [esp + 0x20], ecx
jne 0x4d96d0
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
mov eax, dword [edi + 0x3c]
add eax, dword [esp + 0x14]
push eax
mov eax, dword [edi + 0x54]
add eax, dword [esp + 0x18]
push eax
push dword [edi + 0xa8]
call fcn.004f4f80
mov ecx, dword [edi]
xor eax, eax
add esp, 0xc
mov dword [esp + 0xc], eax
test ecx, ecx
jle 0x4d9848
mov edx, dword [esp + 0x14]
mov dword [esp + 0x4c], edx
mov esi, dword [edi + 0x3c]
mov edx, ecx
imul edx, dword [esp + 0x38]
add ecx, dword [esp + 0x28]
add ecx, dword [esp + 0xc]
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 + 0x4c]
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movss dword [esi + ecx], xmm0
add ecx, 4
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi]
cmp eax, ecx
jl 0x4d9801
mov esi, dword [esp + 0x1c]
mov eax, dword [edi + 0x3c]
xorps xmm3, xmm3
add eax, dword [esp + 0x14]
xorps xmm2, xmm2
sar ecx, 1
mov edx, eax
je 0x4d9889
nop dword [eax + eax]
movss xmm0, dword [edx]
mulss xmm0, dword [eax]
movss xmm1, dword [edx + 4]
add edx, 8
mulss xmm1, dword [eax + 4]
add eax, 8
addss xmm0, xmm3
addss xmm1, xmm0
addss xmm2, xmm1
sub ecx, 1
jne 0x4d9860
mov eax, dword [esp + 0x74]
lea edx, [esi*4]
add dword [esp + 0x34], eax
addss xmm2, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
inc ecx
add dword [esp + 0x28], esi
add eax, edx
cmp ecx, dword [esp + 0x40]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x34]
movss dword [esp + 0x54], xmm2
mov dword [esp + 0x14], eax
jl 0x4d9657
mov ecx, dword [esp + 0x40]
cmp dword [edi + 0x10], 0
je 0x4d98f1
mov eax, dword [esp + 0x30]
push dword [edi + 0xa4]
imul eax, ecx
push eax
push dword [esp + 0x58]
push esi
push dword [edi + 0x60]
call fcn.004d8da0
add esp, 0x14
mov eax, dword [edi + 0x14]
movss xmm4, dword [0x59b180]
test eax, eax
jne 0x4d9c35
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x4d9e10
mov edx, dword [esp + 0x30]
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x2c], eax
imul edx, dword [esp + 0x50]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x10], edx
xor edx, edx
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x30], edx
jle 0x4d9c0f
mov eax, dword [esp + 0x50]
dec eax
mov dword [esp + 0x68], eax
nop word [eax + eax]
mov ecx, eax
mov dword [esp + 0x24], ecx
test ecx, ecx
js 0x4d9bf8
lea eax, [esi - 1]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30]
imul eax, esi
mov dword [esp + 0x80], eax
neg eax
shl eax, 2
mov dword [esp + 0x7c], eax
mov eax, ecx
imul eax, dword [esp + 0x30]
add eax, dword [esp + 0x34]
add eax, edx
imul eax, esi
mov dword [esp + 0x28], eax
shl eax, 2
mov dword [esp + 0x20], eax
lea eax, [ecx + 1]
imul eax, dword [esp + 0x30]
add eax, edx
imul eax, esi
shl eax, 2
mov dword [esp + 0x38], eax
nop dword [eax + eax]
mov eax, dword [edi + 0x5c]
mov esi, dword [esp + 0x24]
mov edx, dword [edi + 0x58]
add edx, dword [esp + 0x2c]
mov ecx, dword [edi + 0x44]
add ecx, dword [esp + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0xa4]
movss xmm1, dword [edx]
mulss xmm1, dword [ecx]
mov dword [esp + 0x58], edx
movss xmm3, dword [eax + esi*4]
mov eax, dword [edi + 0x7c]
movaps xmm0, xmm3
mov esi, dword [esp + 0x1c]
mov dword [esp + 8], eax
mov dword [esp + 0x5c], ecx
mulss xmm0, dword [eax]
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc], 1
mulss xmm1, xmm0
movss dword [eax], xmm1
mov eax, 1
mov dword [esp + 0x14], eax
cmp dword [esp + 0x4c], eax
jle 0x4d9add
lea eax, [edx + 8]
add ecx, 4
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x58]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x58]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x5c]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x4c]
add edx, 0xfffffffe
shr edx, 1
inc edx
lea esi, [edx*2 + 1]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 8]
movaps xmm2, xmm3
movss xmm1, dword [ecx]
mulss xmm1, dword [eax - 4]
mulss xmm2, dword [edi + esi*4]
mov edi, dword [esp + 0x74]
movss xmm0, dword [eax]
mov esi, dword [esp + 0x70]
mulss xmm0, dword [edi + eax]
addss xmm1, xmm0
mulss xmm1, xmm2
movss dword [ecx + esi], xmm1
movss xmm1, dword [edi + eax]
movss xmm0, dword [ecx]
xorps xmm1, xmm4
mulss xmm1, dword [eax - 4]
add ecx, 8
mov esi, dword [esp + 0x78]
mulss xmm0, dword [eax]
addss xmm1, xmm0
mulss xmm1, xmm2
movss dword [eax + esi], xmm1
add eax, 8
mov esi, dword [esp + 0x14]
inc esi
mov dword [esp + 0x14], esi
sub edx, 1
jne 0x4d9a60
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0xc]
movss xmm0, dword [edx + edi*4]
mov edx, edi
mov edi, dword [ebp + 8]
mulss xmm0, dword [ecx + edx*4]
mov ecx, dword [esp + 8]
mulss xmm3, dword [ecx + eax*4]
mov eax, dword [esp + 0x18]
mulss xmm0, xmm3
movss dword [eax + edx*4], xmm0
xor edx, edx
cmp esi, 4
jl 0x4d9b93
lea eax, [esi - 3]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x78], eax
nop dword [eax]
mov eax, dword [edi + 0x5c]
mov ecx, dword [edi + 0x60]
movss xmm0, dword [eax + edx*4]
addss xmm0, dword [ecx + esi]
movss dword [ecx + esi], xmm0
mov eax, dword [edi + 0x5c]
mov ecx, dword [edi + 0x60]
movss xmm0, dword [eax + edx*4 + 4]
addss xmm0, dword [ecx + esi + 4]
movss dword [ecx + esi + 4], xmm0
mov eax, dword [edi + 0x5c]
mov ecx, dword [edi + 0x60]
movss xmm0, dword [eax + edx*4 + 8]
addss xmm0, dword [esi + ecx + 8]
movss dword [esi + ecx + 8], xmm0
mov eax, dword [edi + 0x5c]
mov ecx, dword [edi + 0x60]
movss xmm0, dword [eax + edx*4 + 0xc]
add edx, 4
addss xmm0, dword [esi + ecx + 0xc]
movss dword [esi + ecx + 0xc], xmm0
add esi, 0x10
cmp edx, dword [esp + 0x78]
jl 0x4d9b20
mov esi, dword [esp + 0x1c]
cmp edx, esi
jl 0x4d9b97
jmp 0x4d9bc4
test esi, esi
jle 0x4d9bc4
mov esi, dword [esp + 0x28]
lea esi, [esi + edx]
shl esi, 2
mov eax, dword [edi + 0x5c]
mov ecx, dword [edi + 0x60]
movss xmm0, dword [eax + edx*4]
inc edx
addss xmm0, dword [ecx + esi]
movss dword [ecx + esi], xmm0
add esi, 4
cmp edx, dword [esp + 0x1c]
jl 0x4d9ba1
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x7c]
add dword [esp + 0x38], eax
add dword [esp + 0x20], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
dec ecx
sub eax, dword [esp + 0x80]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
test ecx, ecx
jns 0x4d99b0
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x68]
inc edx
mov dword [esp + 0x3c], edx
cmp edx, dword [esp + 0x30]
jl 0x4d9950
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
add ecx, dword [esp + 0x44]
lea edx, [esi*4]
add eax, edx
mov dword [esp + 0x34], ecx
sub dword [esp + 0x10], 1
mov dword [esp + 0x2c], eax
jne 0x4d9931
mov eax, dword [esp + 0x40]
jmp 0x4d9c45
dec eax
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x4d9e10
mov esi, dword [esp + 0x30]
xor ecx, ecx
mov edx, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], edx
xor eax, eax
mov dword [esp + 0x28], eax
test esi, esi
jle 0x4d9df7
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x50]
nop dword [eax + eax]
xor esi, esi
mov dword [esp + 0x20], esi
test edx, edx
jle 0x4d9dde
nop
test esi, esi
je 0x4d9c98
mov eax, dword [edi + 0xc]
lea ecx, [edx - 1]
cdq
idiv ecx
lea eax, [esi - 1]
cmp edx, eax
jne 0x4d9dc5
mov ecx, dword [esp + 0x20]
lea eax, [edi + 0x60]
add ecx, dword [esp + 0x34]
lea esi, [edi + 0x80]
imul ecx, dword [esp + 0x30]
lea edx, [edi + 0xa8]
push dword [esi]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
mov dword [esp + 0x18], edx
add ecx, dword [esp + 0x2c]
imul ecx, dword [esp + 0x20]
lea eax, [eax + ecx*4]
push eax
push dword [edx]
call fcn.004f4f80
mov edi, dword [ebp + 8]
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov ecx, dword [edi]
cmp ecx, edx
jge 0x4d9d91
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, edx
sub eax, ecx
cmp eax, 4
jl 0x4d9d59
lea eax, [edx - 3]
mov edx, eax
nop word [eax + eax]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0
mov eax, dword [esi]
mov dword [eax + ecx*4 + 4], 0
mov eax, dword [esi]
mov dword [eax + ecx*4 + 8], 0
mov eax, dword [esi]
mov dword [eax + ecx*4 + 0xc], 0
add ecx, 4
cmp ecx, edx
jl 0x4d9d10
mov edx, dword [esp + 0x1c]
lea eax, [edi + 0x60]
mov dword [esp + 0x18], eax
lea esi, [edi + 0x80]
lea eax, [edi + 0xa8]
mov dword [esp + 0x14], eax
mov dword [esp + 0x44], esi
cmp ecx, edx
jge 0x4da545
mov edi, esi
nop word [eax + eax]
mov eax, dword [edi]
mov dword [eax + ecx*4], 0
inc ecx
cmp ecx, edx
jl 0x4d9d70
mov edi, dword [ebp + 8]
lea ecx, [edi + 0xa8]
lea esi, [edi + 0x80]
mov dword [esp + 0x14], ecx
lea eax, [edi + 0x60]
mov ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x34]
imul ecx, dword [esp + 0x30]
mov eax, dword [eax]
add ecx, dword [esp + 0x28]
imul ecx, edx
lea eax, [eax + ecx*4]
push eax
mov eax, dword [esp + 0x18]
push dword [esi]
push dword [eax]
call fcn.004f4dc0
mov edi, dword [ebp + 8]
add esp, 0xc
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x50]
inc esi
mov dword [esp + 0x20], esi
cmp esi, edx
jl 0x4d9c80
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
inc eax
mov dword [esp + 0x28], eax
cmp eax, ecx
jl 0x4d9c70
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
add ecx, dword [esp + 0x50]
sub edx, 1
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], edx
jne 0x4d9c55
mov esi, dword [esp + 0x1c]
xor ecx, ecx
cmp dword [edi], ecx
jl 0x4d9e4c
nop word [eax + 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 0x4d9e20
mov ecx, dword [esp + 0x40]
xorps xmm0, xmm0
movss dword [esp + 0x14], xmm0
xorps xmm7, xmm7
movss dword [esp + 0x38], xmm7
mov dword [esp + 0x24], 0
test ecx, ecx
jle 0x4da1d1
mov edx, dword [esp + 0x30]
xor eax, eax
imul edx, dword [esp + 0x50]
xor ecx, ecx
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], eax
mov dword [esp + 8], ecx
mov dword [esp + 0x10], edx
imul edx, esi
shl edx, 2
mov dword [esp + 0x7c], edx
nop dword [eax]
mov edx, dword [edi + 0x54]
add edx, eax
mov eax, dword [edi + 0x60]
add eax, ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x44]
mov dword [esp + 0x2c], eax
test esi, esi
jle 0x4d9ec8
mov ecx, esi
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 8]
cmp dword [esp + 0x10], 0
jle 0x4da022
mov edi, dword [esp + 0x2c]
lea eax, [esi - 1]
mov dword [esp + 0x3c], eax
lea eax, [esi*4]
mov dword [esp + 0x58], eax
mov eax, esi
mov esi, dword [esp + 0xc]
neg eax
shl eax, 2
mov ecx, esi
mov dword [esp + 0x80], eax
sub ecx, edx
mov eax, edx
mov dword [esp + 0x28], ecx
sub eax, edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
nop word [eax + eax]
cmp dword [esp + 0x3c], 1
movss xmm0, dword [edi]
mulss xmm0, dword [esi]
mov dword [esp + 0x4c], 1
addss xmm0, dword [edx]
movss dword [edx], xmm0
jle 0x4d9fd1
lea ecx, [edx + 4]
sub esi, edi
mov edx, dword [esp + 0x3c]
lea eax, [edi + 8]
add edx, 0xfffffffe
mov dword [esp + 0x44], esi
shr edx, 1
inc edx
lea esi, [edx*2 + 1]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x44]
nop dword [eax + eax]
mov edi, dword [esp + 0x28]
movss xmm0, dword [eax]
mulss xmm0, dword [esi + eax]
movss xmm1, dword [edi + ecx]
mulss xmm1, dword [eax - 4]
subss xmm1, xmm0
addss xmm1, dword [ecx]
movss dword [ecx], xmm1
movss xmm1, dword [edi + ecx]
add ecx, 8
movss xmm0, dword [eax - 4]
mulss xmm1, dword [eax]
mov edi, dword [esp + 0x18]
mulss xmm0, dword [esi + eax]
addss xmm1, xmm0
addss xmm1, dword [edi + eax]
movss dword [edi + eax], xmm1
add eax, 8
sub edx, 1
jne 0x4d9f70
mov edx, dword [esp + 0x68]
mov eax, edi
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x4c]
add eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
movss xmm0, dword [esi + ecx*4]
mulss xmm0, dword [edi + ecx*4]
add edi, dword [esp + 0x58]
add esi, dword [esp + 0x58]
mov dword [esp + 0x2c], edi
addss xmm0, dword [edx + ecx*4]
mov dword [esp + 0xc], esi
movss dword [edx + ecx*4], xmm0
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x58]
sub dword [esp + 0x5c], 1
mov dword [esp + 0x28], ecx
jne 0x4d9f20
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
mov eax, dword [edi + 0x4c]
add eax, dword [esp + 0x20]
push eax
mov eax, dword [edi + 0x54]
add eax, dword [esp + 0x24]
push eax
push dword [edi + 0xa8]
call fcn.004f4f80
mov eax, dword [edi]
add esp, 0xc
mov dword [esp + 0x44], 0
test eax, eax
jle 0x4da093
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x3c], ecx
nop word [eax + eax]
mov edx, dword [esp + 0x34]
mov ecx, dword [edi + 0x3c]
add edx, eax
mov eax, dword [edi + 0x4c]
add edx, esi
inc esi
movss xmm0, dword [ecx + edx*4]
subss xmm0, dword [eax + edx*4]
mov eax, dword [esp + 0x3c]
movss dword [ecx + eax], xmm0
add eax, 4
mov dword [esp + 0x3c], eax
mov eax, dword [edi]
cmp esi, eax
jl 0x4da060
mov esi, dword [esp + 0x1c]
mov ecx, dword [edi + 0x3c]
xorps xmm3, xmm3
add ecx, dword [esp + 0x20]
xorps xmm2, xmm2
sar eax, 1
mov edx, ecx
je 0x4da0d9
nop word [eax + 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 0x4da0b0
addss xmm2, dword [0x56de50]
movss xmm7, dword [esp + 0x38]
xor ecx, ecx
mov eax, dword [edi]
mov dword [esp + 0x2c], ecx
addss xmm7, xmm2
movss dword [esp + 0x38], xmm7
test eax, eax
jle 0x4da14e
mov edx, dword [esp + 0x20]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x34]
mov esi, eax
imul esi, dword [esp + 0x24]
add edx, eax
add edx, dword [esp + 0x2c]
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 + 0x3c]
mov eax, dword [edi + 0x3c]
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
movss dword [edx + eax], xmm0
add edx, 4
mov eax, dword [edi]
mov dword [esp + 0x3c], edx
cmp ecx, eax
jl 0x4da105
mov esi, dword [esp + 0x1c]
mov ecx, dword [edi + 0x3c]
movaps xmm2, xmm3
add ecx, dword [esp + 0x20]
sar eax, 1
mov edx, ecx
je 0x4da189
nop
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 0x4da160
movss xmm0, dword [esp + 0x14]
lea edx, [esi*4]
mov eax, dword [esp + 0x7c]
addss xmm0, xmm2
add dword [esp + 8], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
inc ecx
add dword [esp + 0x34], esi
add eax, edx
cmp ecx, dword [esp + 0x40]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 8]
movss dword [esp + 0x14], xmm0
mov dword [esp + 0x20], eax
jl 0x4d9ea0
mov ecx, dword [esp + 0x40]
movss xmm5, dword [esp + 0x54]
movaps xmm6, xmm7
movss xmm2, dword [0x59c244]
subss xmm5, xmm0
movss xmm0, dword [edi + 0x68]
mulss xmm0, dword [0x59c248]
movss xmm1, dword [0x59c238]
movss xmm3, dword [edi + 0x6c]
movaps xmm4, xmm5
mulss xmm3, dword [0x59c25c]
mulss xmm4, xmm2
mulss xmm6, xmm2
addss xmm4, xmm0
movaps xmm0, xmm5
mulss xmm0, xmm1
addss xmm3, xmm0
movss dword [edi + 0x68], xmm4
movss xmm0, dword [esp + 0x54]
mulss xmm0, xmm2
movaps xmm2, xmm7
mulss xmm2, xmm1
mulss xmm6, xmm0
movss xmm0, dword [edi + 0x70]
mulss xmm0, dword [0x59c240]
movss dword [edi + 0x6c], xmm3
addss xmm6, xmm0
movss xmm0, dword [esp + 0x54]
mulss xmm0, xmm1
movss xmm1, dword [0x59b180]
mulss xmm2, xmm0
movss xmm0, dword [edi + 0x74]
mulss xmm0, dword [0x59c258]
movss dword [edi + 0x70], xmm6
addss xmm2, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm5
movss dword [edi + 0x74], xmm2
movaps xmm0, xmm5
jbe 0x4da291
xorps xmm0, xmm1
mulss xmm7, dword [esp + 0x54]
mulss xmm0, xmm5
movss xmm5, dword [0x59b15c]
movss dword [esp + 0x38], xmm7
comiss xmm0, xmm7
movss xmm7, dword [0x59c23c]
movss dword [esp + 0x18], xmm5
movss dword [esp + 0x28], xmm7
ja 0x4da54e
xorps xmm0, xmm0
comiss xmm0, xmm4
movaps xmm0, xmm4
jbe 0x4da2d4
xorps xmm0, xmm1
movaps xmm1, xmm4
mulss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, xmm5
comiss xmm1, xmm0
ja 0x4da54e
xorps xmm0, xmm0
comiss xmm0, xmm3
movaps xmm0, xmm3
jbe 0x4da2fd
xorps xmm0, xmmword [0x59b180]
movaps xmm1, xmm3
mulss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm7
comiss xmm1, xmm0
ja 0x4da54e
movss xmm0, dword [esp + 0x54]
xorps xmm5, xmm5
movss xmm7, dword [esp + 0x14]
movaps xmm1, xmm0
subss xmm0, xmm7
xor eax, eax
subss xmm1, xmm7
comiss xmm5, xmm0
movss xmm5, dword [0x59b180]
jbe 0x4da340
xorps xmm1, xmm5
movss xmm0, dword [esp + 0x54]
mov edx, 1
movss xmm5, dword [esp + 0x38]
subss xmm0, xmm7
movss xmm7, dword [0x59b180]
xorps xmm0, xmm7
mulss xmm0, xmm1
movss xmm1, dword [0x59c28c]
mulss xmm5, xmm1
comiss xmm0, xmm5
xorps xmm5, xmm5
movaps xmm0, xmm4
cmova eax, edx
comiss xmm5, xmm4
jbe 0x4da384
xorps xmm0, xmm7
xorps xmm4, xmm7
mulss xmm6, xmm1
mulss xmm4, xmm0
movaps xmm0, xmm3
comiss xmm4, xmm6
cmova eax, edx
comiss xmm5, xmm3
jbe 0x4da3a0
xorps xmm0, xmm7
xorps xmm3, xmm7
mulss xmm2, xmm1
mulss xmm3, xmm0
comiss xmm3, xmm2
ja 0x4da3b8
test eax, eax
je 0x4da6a9
mov eax, dword [esp + 0x30]
xor edx, edx
imul eax, ecx
imul eax, dword [esp + 0x50]
imul eax, esi
mov dword [esp + 0x10], eax
cmp eax, 4
jl 0x4da429
add eax, 0xfffffffd
mov dword [esp + 0x44], eax
mov esi, eax
nop dword [eax + 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 0x4da3e0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
cmp edx, eax
jge 0x4da44a
mov esi, dword [esp + 0x10]
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 0x4da431
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x2c], 0
test ecx, ecx
jle 0x4da518
xor edx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], edx
mov eax, dword [edi]
mov dword [esp + 0x44], 0
test eax, eax
jle 0x4da495
mov esi, dword [esp + 0x44]
mov ecx, dword [edi + 0x4c]
add edx, eax
mov eax, dword [edi + 0x3c]
add edx, esi
inc esi
mov eax, dword [eax + edx*4]
mov dword [ecx + edx*4], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x14]
cmp esi, eax
jl 0x4da476
mov esi, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 8], ecx
test eax, eax
jle 0x4da4f0
mov esi, dword [esp + 0xc]
mov dword [esp + 0x10], esi
mov esi, eax
add edx, eax
imul esi, dword [esp + 0x2c]
add edx, dword [esp + 8]
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 + 0x10]
mov eax, dword [edi + 0x3c]
mov ecx, dword [esp + 8]
inc ecx
mov dword [esp + 8], ecx
movss dword [edx + eax], xmm0
add edx, 4
mov eax, dword [edi]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
cmp ecx, eax
jl 0x4da4a7
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
lea eax, [esi*4]
add dword [esp + 0xc], eax
inc ecx
add edx, esi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], edx
cmp ecx, dword [esp + 0x40]
jl 0x4da464
mov ecx, dword [esp + 0x40]
movss xmm0, dword [esp + 0x54]
movss dword [esp + 0x14], xmm0
mov dword [edi + 0x6c], 0
mov dword [edi + 0x68], 0
mov dword [edi + 0x74], 0
mov dword [edi + 0x70], 0
jmp 0x4da6a9
mov eax, dword [esp + 0x18]
jmp 0x4d9d94
mov eax, dword [esp + 0x30]
xor edx, edx
imul eax, ecx
mov dword [edi + 0x6c], 0
mov dword [edi + 0x68], 0
mov dword [edi + 0x74], 0
mov dword [edi + 0x70], 0
imul eax, dword [esp + 0x50]
imul eax, esi
mov dword [esp + 0x10], eax
cmp eax, 4
jl 0x4da5d9
add eax, 0xfffffffd
mov dword [esp + 0x44], eax
mov esi, eax
nop dword [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 0x4da590
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x40]
cmp edx, eax
jge 0x4da5fa
mov esi, dword [esp + 0x10]
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 0x4da5e1
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
test ecx, ecx
jle 0x4da6a6
xor edx, edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 8], edx
nop dword [eax]
mov ecx, dword [edi]
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jle 0x4da674
lea esi, [ecx + edx]
mov ecx, dword [edi + 0xa0]
mov edx, dword [edi + 0x3c]
add esi, eax
mov eax, dword [edi + 0x4c]
mov edi, dword [esp + 0x38]
movss xmm1, dword [ecx + edi*4]
mulss xmm1, dword [eax + esi*4]
mov eax, edi
add eax, dword [esp + 0x10]
movss xmm0, dword [ecx + eax*4]
mov eax, edi
mulss xmm0, dword [edx + esi*4]
inc eax
mov edi, dword [ebp + 8]
mov dword [esp + 0x38], eax
addss xmm1, xmm0
movss dword [edx + esi*4], xmm1
mov ecx, dword [edi]
mov edx, dword [esp + 8]
mov dword [esp + 0x10], ecx
cmp eax, ecx
jl 0x4da620
mov esi, dword [esp + 0x1c]
add edx, esi
sub dword [esp + 0x3c], 1
mov dword [esp + 8], edx
jne 0x4da610
xorps xmm0, xmm0
mov dword [esp + 0x34], 0
xorps xmm3, xmm3
movss dword [esp + 0xc], xmm0
xorps xmm2, xmm2
movss dword [esp + 0x24], xmm3
movss dword [esp + 0x20], xmm2
jmp 0x4da6d1
xorps xmm5, xmm5
movss dword [esp + 0xc], xmm5
movaps xmm3, xmm5
movss dword [esp + 0x24], xmm3
movaps xmm2, xmm5
movss dword [esp + 0x20], xmm2
mov dword [esp + 0x34], 0
test ecx, ecx
jle 0x4dab4b
lea eax, [esi - 1]
mov dword [esp + 0x18], 0
mov dword [esp + 0x38], eax
xor edx, edx
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
nop dword [eax]
mov ecx, dword [edi]
xor eax, eax
mov dword [esp + 8], eax
test ecx, ecx
jle 0x4da833
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0xc]
sub edx, dword [ebp + 0x14]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x3c], ecx
nop word [eax + eax]
mov esi, ecx
mov ecx, dword [edi + 0x48]
imul esi, edx
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x3c]
add edx, dword [esp + 8]
add esi, eax
mov eax, dword [edi + 0x3c]
movss xmm1, dword [ecx + esi*4]
mov ecx, 0xffff8300
subss xmm1, dword [eax + edx*4]
mov eax, dword [edi + 0xb4]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x10]
movss xmm0, dword [eax + edx*4]
mulss xmm0, dword [edi + 0xb8]
mov eax, dword [esp + 0x44]
addss xmm1, xmm0
movzx eax, word [eax + esi]
movss dword [esp + 0x68], xmm1
cmp ax, cx
jle 0x4da784
mov ecx, 0x7d00
cmp ax, cx
jl 0x4da791
cmp dword [edi + 0x14], 0
jne 0x4da791
mov dword [edi + 0x14], 1
movss xmm0, dword [0x59c2a4]
comiss xmm0, xmm1
jbe 0x4da7a5
mov eax, 0xffff8000
jmp 0x4da7fb
comiss xmm1, dword [0x59c2a0]
jbe 0x4da7b5
mov eax, 0x7fff
jmp 0x4da7fb
cvtps2pd xmm0, xmm1
sub esp, 8
addsd xmm0, qword [0x58d1c0]
movsd qword [esp + 0x88], xmm0
fld qword [esp + 0x88]
fstp qword [esp]
call fcn.0053bbc0
movss xmm1, dword [esp + 0x70]
add esp, 8
mov edx, dword [esp + 0x34]
fstp qword [esp + 0x80]
cvttsd2si eax, qword [esp + 0x80]
movzx eax, ax
mov word [esi], ax
mov eax, dword [edi + 0xb4]
movss dword [eax + edx*4], xmm1
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 8]
mov ecx, dword [edi]
inc eax
mov dword [esp + 8], eax
mov dword [esp + 0x3c], ecx
lea esi, [esi + edx*2]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], esi
cmp eax, ecx
jl 0x4da720
mov edx, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 8], eax
test ecx, ecx
jle 0x4da86f
mov esi, edx
nop
add ecx, dword [esp + 0x18]
lea esi, [esi + 4]
mov edx, dword [edi + 0x3c]
add ecx, dword [esp + 8]
mov eax, dword [edx + esi - 4]
mov dword [edx + ecx*4], eax
mov eax, dword [edi + 0x3c]
mov dword [esi + eax - 4], 0
mov eax, dword [esp + 8]
mov ecx, dword [edi]
inc eax
mov dword [esp + 8], eax
cmp eax, ecx
jl 0x4da840
mov eax, dword [esp + 0x18]
xorps xmm3, xmm3
mov esi, dword [edi + 0x3c]
add eax, ecx
mov edx, dword [edi + 0x4c]
xorps xmm2, xmm2
shl eax, 2
add esi, eax
add edx, eax
sar ecx, 1
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x1c]
je 0x4da8c9
mov eax, dword [esp + 0x44]
nop dword [eax + eax]
movss xmm0, dword [eax]
mulss xmm0, dword [edx]
movss xmm1, dword [eax + 4]
add eax, 8
mulss xmm1, dword [edx + 4]
add edx, 8
addss xmm0, xmm3
addss xmm1, xmm0
addss xmm2, xmm1
sub ecx, 1
jne 0x4da8a0
mov edx, dword [edi]
mov ecx, dword [esp + 0x18]
addss xmm2, dword [esp + 0xc]
mov eax, dword [edi + 0x4c]
add ecx, edx
sar edx, 1
lea eax, [eax + ecx*4]
movss dword [esp + 0xc], xmm2
mov ecx, eax
movaps xmm2, xmm3
je 0x4da96b
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 0x4da8f0
mov edx, dword [edi]
mov ecx, dword [esp + 0x34]
movss xmm0, dword [esp + 0x20]
mov eax, dword [edi + 0x48]
addss xmm0, xmm2
imul ecx, edx
movaps xmm2, xmm3
sar edx, 1
movss dword [esp + 0x20], xmm0
lea eax, [eax + ecx*4]
mov ecx, eax
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 0x4da940
jmp 0x4da97a
addss xmm2, dword [esp + 0x20]
movss dword [esp + 0x20], xmm2
movaps xmm2, xmm3
mov eax, dword [edi + 0x58]
add eax, dword [esp + 0x28]
addss xmm2, dword [esp + 0x24]
push eax
mov eax, dword [edi + 0x3c]
add eax, dword [esp + 0x2c]
push eax
push dword [edi + 0xa8]
movss dword [esp + 0x30], xmm2
call fcn.004f4dc0
xor edx, edx
add esp, 0xc
cmp dword [edi], edx
jle 0x4da9c6
mov esi, dword [esp + 0x18]
nop
mov eax, dword [edi + 0x4c]
lea ecx, [esi + edx]
inc edx
mov dword [eax + ecx*4], 0
cmp edx, dword [edi]
jl 0x4da9b0
mov esi, dword [esp + 0x1c]
mov eax, dword [edi + 0x54]
add eax, dword [esp + 0x28]
push eax
mov eax, dword [edi + 0x4c]
add eax, dword [esp + 0x2c]
push eax
push dword [edi + 0xa8]
call fcn.004f4dc0
mov edx, dword [edi + 0x58]
add esp, 0xc
add edx, dword [esp + 0x28]
mov eax, dword [edi + 0x84]
mov dword [esp + 0x10], 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 + 0x38], eax
jle 0x4daa4f
mov esi, dword [esp + 0x10]
nop word [eax + eax]
movss xmm1, dword [edx + eax*4 + 4]
movss xmm0, dword [edx + eax*4]
add eax, 2
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
addss xmm0, dword [esi + ecx*4]
movss dword [esi + ecx*4], xmm0
inc ecx
cmp eax, dword [esp + 0x38]
jl 0x4daa20
mov esi, dword [esp + 0x1c]
movss xmm0, dword [edx + eax*4]
mov eax, dword [esp + 0x10]
mulss xmm0, xmm0
addss xmm0, dword [eax + ecx*4]
movss dword [eax + ecx*4], xmm0
mov eax, dword [edi + 0x54]
add eax, dword [esp + 0x28]
mov edx, dword [edi + 0x88]
mov dword [esp + 0x10], eax
movss xmm0, dword [eax]
mov eax, 1
mov ecx, eax
mulss xmm0, xmm0
addss xmm0, dword [edx]
movss dword [edx], xmm0
cmp dword [esp + 0x38], eax
jle 0x4daacb
mov edi, dword [esp + 0x10]
nop dword [eax + eax]
movss xmm1, dword [edi + eax*4 + 4]
movss xmm0, dword [edi + 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 + 0x38]
jl 0x4daaa0
mov edi, dword [esp + 0x10]
add dword [esp + 0x2c], 2
add dword [esp + 0x18], esi
movss xmm0, dword [edi + eax*4]
lea eax, [esi*4]
add dword [esp + 0x28], eax
mov edi, dword [ebp + 8]
mulss xmm0, xmm0
addss xmm0, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm0
mov edx, dword [esp + 0x34]
inc edx
cmp edx, dword [esp + 0x40]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x28]
jl 0x4da6f0
movss xmm5, dword [0x59b15c]
movss xmm0, dword [esp + 0x20]
comiss xmm0, dword [0x56de48]
movss dword [esp + 0x18], xmm5
xorps xmm5, xmm5
jb 0x4dabb9
movss xmm2, dword [0x59c23c]
movss xmm3, dword [esp + 0x24]
movss dword [esp + 0x28], xmm2
movaps xmm2, xmm0
movss xmm7, dword [esp + 0x48]
comiss xmm7, xmm5
jb 0x4dabcd
movss xmm4, dword [esp + 0x14]
comiss xmm4, xmm5
jb 0x4dabd3
movss xmm6, dword [esp + 0x54]
movd xmm1, esi
cvtdq2pd xmm1, xmm1
cvtps2pd xmm0, xmm6
mulsd xmm1, qword [0x56ec78]
comisd xmm1, xmm0
jbe 0x4dabd3
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x4dabd3
cvtps2pd xmm0, xmm7
comisd xmm1, xmm0
jbe 0x4dabd3
movd xmm0, esi
lea edx, [edi + 0x18]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x59c298]
addss xmm0, xmm3
comiss xmm6, xmm0
jbe 0x4dac3c
inc dword [edx]
jmp 0x4dac07
movss xmm0, dword [0x59c23c]
movss xmm7, dword [esp + 0x48]
movss dword [esp + 0x28], xmm0
movss xmm4, dword [esp + 0x14]
mov eax, dword [edi]
lea edx, [edi + 0x18]
imul eax, dword [esp + 0x40]
xor ecx, ecx
add dword [edx], 0x32
test eax, eax
jle 0x4dac07
mov edx, dword [esp + 0x40]
mov esi, dword [ebp + 0x14]
nop dword [eax]
xor eax, eax
mov word [esi + ecx*2], ax
inc ecx
mov eax, dword [edi]
imul eax, edx
cmp ecx, eax
jl 0x4dabf0
mov esi, dword [esp + 0x1c]
lea edx, [edi + 0x18]
cmp dword [edx], 0x32
jl 0x4dac44
call fcn.00418190
cmp eax, 5
jl 0x4dac2d
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.004180a0
add esp, 0xc
push edi
call fcn.004dbf80
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [edx], 0
jmp 0x4dac07
cmp dword [esp + 0x30], 0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x59c290]
maxss xmm0, xmm4
movss dword [esp + 0x44], xmm0
jle 0x4dad64
lea eax, [esi - 1]
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 8], eax
mov edx, dword [edi]
movaps xmm2, xmm5
lea ecx, [eax + edx]
sar edx, 1
mov eax, dword [edi + 0x40]
lea eax, [eax + ecx*4]
mov ecx, eax
je 0x4dacb9
nop dword [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, xmm5
addss xmm1, xmm0
addss xmm2, xmm1
sub edx, 1
jne 0x4dac90
mov eax, dword [edi + 0x44]
addss xmm7, xmm2
mov ecx, dword [esp + 8]
movss xmm0, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
mov edx, dword [edi + 0x8c]
mulss xmm0, xmm0
mov dword [esp + 0x3c], eax
mov eax, 1
mov ecx, eax
addss xmm0, dword [edx]
movss dword [edx], xmm0
cmp dword [esp + 0x10], eax
jle 0x4dad2f
mov esi, dword [esp + 0x3c]
nop dword [eax]
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 + 0x10]
jl 0x4dad00
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x3c]
movss xmm0, dword [edi + eax*4]
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
add eax, esi
sub dword [esp + 0x30], 1
mulss xmm0, xmm0
mov dword [esp + 8], eax
addss xmm0, dword [edx + ecx*4]
movss dword [edx + ecx*4], xmm0
jne 0x4dac75
movss dword [esp + 0x48], xmm7
mov edx, dword [edi]
movss xmm4, dword [esp + 0x64]
mov dword [esp + 0x24], edx
test edx, edx
js 0x4dae75
movss xmm2, dword [esp + 0x88]
xor esi, esi
movss xmm3, dword [esp + 0x8c]
nop dword [eax]
mov ecx, dword [edi + 0x78]
movaps xmm0, xmm2
mov eax, dword [edi + 0x8c]
movaps xmm1, xmm3
mulss xmm0, dword [ecx + esi*4]
mulss xmm1, dword [eax + esi*4]
addss xmm0, xmm4
addss xmm1, xmm0
movss dword [ecx + esi*4], xmm1
inc esi
mov edx, dword [edi]
cmp esi, edx
jle 0x4dad90
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
test edx, edx
js 0x4dae75
nop dword [eax]
mov eax, dword [edi + 0x88]
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
mulss xmm3, dword [edi + 0x28]
subss xmm0, dword [eax + edx*4]
mulss xmm0, xmm1
mulss xmm1, xmm1
addss xmm0, dword [esp + 0x60]
addss xmm1, dword [esp + 0x6c]
movss dword [esp + 0x60], xmm0
movaps xmm0, xmm4
movss dword [esp + 0x6c], xmm1
movaps xmm1, xmm4
subss xmm1, dword [edi + 0x28]
mulss xmm1, dword [eax + edx*4]
addss xmm1, xmm3
movss dword [eax + edx*4], xmm1
subss xmm0, dword [edi + 0x28]
mov ecx, dword [edi + 0x94]
mov eax, dword [edi + 0x88]
movss xmm2, dword [edi + 0x28]
mulss xmm0, dword [ecx + edx*4]
mulss xmm2, dword [eax + edx*4]
addss xmm2, xmm0
movss dword [ecx + edx*4], xmm2
sub edx, 1
jns 0x4dadd0
mov eax, dword [edi]
mov dword [esp + 0x24], eax
movss xmm0, dword [esp + 0x6c]
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x4dae8d
sqrtsd xmm0, xmm0
jmp 0x4dae92
call fcn.0053bfa0
movss xmm4, dword [esp + 0x44]
xorps xmm2, xmm2
movss xmm6, dword [esp + 0x20]
movaps xmm3, xmm4
mulss xmm3, dword [edi + 0x30]
movss xmm5, dword [esp + 0x60]
cvtsd2ss xmm2, xmm0
movaps xmm0, xmm6
movss xmm7, dword [esp + 0x64]
mulss xmm0, dword [edi + 0x2c]
movaps xmm1, xmm7
divss xmm5, xmm2
minss xmm3, xmm0
divss xmm3, xmm4
subss xmm1, xmm3
mulss xmm5, xmm3
mulss xmm3, xmm2
movaps xmm0, xmm1
mulss xmm1, dword [edi + 0x9c]
mulss xmm0, dword [edi + 0x98]
addss xmm3, xmm1
addss xmm5, xmm0
comiss xmm7, xmm3
movss dword [edi + 0x98], xmm5
movss dword [edi + 0x9c], xmm3
jbe 0x4daf19
mov dword [edi + 0x9c], 0x3f800000
movaps xmm3, xmm7
movaps xmm0, xmm3
mulss xmm0, dword [0x59c22c]
comiss xmm0, xmm5
jbe 0x4daf34
movaps xmm5, xmm0
movss dword [edi + 0x98], xmm5
comiss xmm5, xmm3
jbe 0x4daf44
movss dword [edi + 0x98], xmm3
movaps xmm5, xmm3
divss xmm5, xmm3
comiss xmm5, dword [0x59c29c]
jbe 0x4daf59
movss xmm5, dword [0x59bd68]
movss xmm3, dword [esp + 0xc]
movaps xmm0, xmm6
mulss xmm0, xmm4
movss dword [edi + 0x38], xmm5
cmp dword [edi + 0x10], 0
addss xmm0, xmm7
mulss xmm5, xmm6
movss xmm7, dword [esp + 0x48]
mulss xmm3, xmm3
cvtps2pd xmm1, xmm5
divss xmm3, xmm0
mulsd xmm1, qword [0x59c280]
cvtps2pd xmm0, xmm7
cvtps2pd xmm2, xmm4
mulsd xmm0, qword [0x59c250]
movss dword [esp + 0x60], xmm5
movss xmm5, dword [esp + 0x18]
addsd xmm1, xmm0
divsd xmm1, xmm2
cvtpd2ps xmm0, xmm1
maxss xmm3, xmm0
minss xmm5, xmm3
jne 0x4daff5
movd xmm1, dword [esp + 0x50]
movss xmm0, dword [edi + 0x34]
cvtdq2ps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x4db104
mulss xmm6, dword [0x59c230]
movss xmm0, dword [esp + 0x60]
comiss xmm0, xmm6
jbe 0x4db104
mov dword [edi + 0x10], 1
mov edx, dword [esp + 0x24]
xor ecx, ecx
test edx, edx
js 0x4db09b
movsd xmm4, qword [0x59c268]
movss xmm6, dword [0x56de50]
movss xmm7, dword [esp + 0x64]
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, xmm7
cvtps2pd xmm0, xmm2
cvtps2pd xmm1, xmm3
mulsd xmm1, qword [0x58d1c0]
comisd xmm0, xmm1
jbe 0x4db057
cvtpd2ps xmm2, xmm1
mov eax, dword [edi + 0x78]
movaps xmm0, xmm3
mulss xmm0, xmm5
cvtps2pd xmm1, xmm0
cvtps2pd xmm0, xmm2
mulsd xmm1, xmm4
mulsd xmm0, qword [0x59c278]
addsd xmm1, xmm0
movss xmm0, dword [eax + ecx*4]
addss xmm0, xmm6
mov eax, dword [edi + 0x7c]
cvtpd2ps xmm1, xmm1
mulss xmm0, xmm3
divss xmm1, xmm0
movss dword [eax + ecx*4], xmm1
inc ecx
mov edx, dword [edi]
cmp ecx, edx
jle 0x4db020
xor esi, esi
test edx, edx
jle 0x4db0b4
mov ecx, dword [edi + 0x50]
lea eax, [edx + esi]
mov eax, dword [ecx + eax*4]
mov dword [ecx + esi*4], eax
inc esi
mov edx, dword [edi]
cmp esi, edx
jl 0x4db0a1
cmp dword [edi + 0x10], 0
je 0x4db0fe
xor esi, esi
test edx, edx
jle 0x4db0fe
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
sub ecx, eax
mov dword [ebp + 0xc], ecx
nop dword [eax + eax]
movsx ecx, word [ecx + eax]
movsx eax, word [eax]
sub ecx, eax
mov eax, dword [edi + 0x50]
movd xmm0, ecx
lea ecx, [edx + esi]
cvtdq2ps xmm0, xmm0
inc esi
movss dword [eax + ecx*4], xmm0
mov eax, dword [ebp + 0x14]
mov edx, dword [edi]
add eax, 2
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x14], eax
cmp esi, edx
jl 0x4db0d0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x59b170]
comiss xmm7, xmm0
jbe 0x4db13c
mulsd xmm2, qword [0x59c260]
movaps xmm3, xmm7
mulss xmm3, dword [esp + 0x28]
cvtps2pd xmm0, xmm3
comisd xmm0, xmm2
jbe 0x4db136
cvtpd2ps xmm3, xmm2
divss xmm3, xmm4
jmp 0x4db13f
xorps xmm3, xmm3
mov edx, dword [esp + 0x24]
xor ecx, ecx
test edx, edx
js 0x4db173
movss xmm6, dword [0x56de50]
mov eax, dword [edi + 0x78]
movaps xmm1, xmm3
movss xmm0, dword [eax + ecx*4]
addss xmm0, xmm6
mov eax, dword [edi + 0x7c]
divss xmm1, xmm0
movss dword [eax + ecx*4], xmm1
inc ecx
mov edx, dword [edi]
cmp ecx, edx
jle 0x4db151
addss xmm3, dword [edi + 0x34]
movss dword [edi + 0x34], xmm3
jmp 0x4db09b