Function at 0x450e90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x58
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [esp + 0x14], ecx
cmp dword [esi + 0x40], 0
jne 0x451d83
mov eax, dword [ebp + 0x10]
mov ecx, esi
movsd xmm0, qword [eax + 0x58]
movsd qword [esp + 0x40], xmm0
call fcn.00488450
movsd xmm0, qword [eax + 0x220]
movsd qword [esp + 0x50], xmm0
call fcn.00488450
mov ecx, dword [0x5d8004]
movsd xmm0, qword [eax + 0x228]
mov eax, dword [ecx]
movsd qword [esp + 0x58], xmm0
mov eax, dword [eax + 0x28]
call eax
mov edi, eax
xorps xmm1, xmm1
mov eax, dword [ebp + 0x14]
mov dword [esp + 0xc], edi
movsd qword [0x5d8090], xmm1
movsd xmm0, qword [eax + 0x18]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x451220
cmp dword [esi + 8], 0
jne 0x451220
mov eax, dword [0x5d4b2c]
xor ecx, ecx
mov edx, 4
mov dword [0x5d87b4], 0
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
add esp, 4
mov dword [0x5d87a8], eax
cmp dword [0x5d4b2c], 0
mov edx, 8
jle 0x450fa7
xor esi, esi
nop dword [eax]
xor ecx, ecx
mov eax, edi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov ecx, dword [0x5d87a8]
add esp, 4
mov edx, eax
mov dword [ecx + esi*4], edx
test edi, edi
jle 0x450f99
lea ecx, [edi*8]
mov edi, edx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0xc]
inc esi
mov edx, 8
cmp esi, dword [0x5d4b2c]
jl 0x450f60
xor ecx, ecx
mov eax, edi
mov esi, 8
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87c8], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87cc], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87e0], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87d0], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87b8], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87d4], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87ac], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
add esp, 4
mov dword [0x5d87dc], eax
xor ecx, ecx
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87f0], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87ec], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87b0], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87c4], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87bc], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87f4], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov dword [0x5d87c0], eax
xor ecx, ecx
add esp, 4
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
add esp, 4
mov dword [0x5d87e4], eax
xor ecx, ecx
mov eax, edi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
add esp, 4
mov dword [0x5d87e8], eax
push 0xc
call fcn.0051fae4
add esp, 4
mov dword [0x5d87d8], eax
xor esi, esi
nop dword [eax + eax]
xor ecx, ecx
mov eax, edi
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov ecx, dword [0x5d87d8]
add esp, 4
mov dword [esi + ecx], eax
add esi, 4
cmp esi, 0xc
jl 0x451190
xor ecx, ecx
mov eax, edi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov esi, dword [ebp + 0xc]
add esp, 4
mov dword [0x5d87b4], eax
test edi, edi
jle 0x451220
xor esi, esi
xor ecx, ecx
mov eax, edi
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051fae4
mov ecx, dword [0x5d87b4]
add esp, 4
mov dword [ecx + esi*4], eax
inc esi
cmp esi, edi
jl 0x4511e5
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], esi
jmp 0x451235
mov eax, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], esi
test edi, edi
jle 0x451415
mov ecx, dword [0x5d8004]
push esi
push 4
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
push esi
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + esi*4]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x24], eax
call fcn.00488470
mov edi, dword [0x5d87b8]
push esi
movsd xmm0, qword [eax + 0x18]
movsd qword [edi + esi*8], xmm0
call fcn.00488470
push esi
movsd xmm0, qword [eax + 0x40]
mov eax, dword [0x5d87d4]
movsd qword [eax + esi*8], xmm0
call fcn.00488490
movsd xmm2, qword [0x5baa20]
movaps xmm1, xmm0
divsd xmm1, xmm2
mov edx, dword [0x5d87c8]
push esi
movsd qword [edx + esi*8], xmm1
call fcn.00488470
movsd xmm0, qword [0x5ba2b0]
subsd xmm0, qword [edi + esi*8]
mulsd xmm0, xmm1
mulsd xmm0, qword [eax + 0x38]
mov eax, dword [0x5d87ac]
movsd qword [eax + esi*8], xmm0
mov eax, dword [0x5d87cc]
test esi, esi
jne 0x4512e6
movsd xmm0, qword [edx]
mulsd xmm0, qword [0x5ba138]
movsd qword [eax], xmm0
jmp 0x451304
movsd xmm0, qword [edx + esi*8 - 8]
addsd xmm0, qword [edx + esi*8]
mulsd xmm0, qword [0x5ba138]
addsd xmm0, qword [eax + esi*8 - 8]
movsd qword [eax + esi*8], xmm0
mov eax, dword [ebp + 0x14]
xorps xmm3, xmm3
mov edx, dword [0x5d87a8]
movsd xmm0, qword [eax + 0x18]
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jp 0x45133b
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x1c]
movsd xmm0, qword [eax + edi*8]
divsd xmm0, xmm2
mov eax, dword [esp + 0x18]
mov eax, dword [edx + eax*4]
movsd qword [eax + esi*8], xmm0
mov eax, dword [esp + 0x18]
mov edi, dword [0x5d87dc]
mov ecx, dword [esp + 0x1c]
mov esi, dword [edx + eax*4]
mov eax, dword [esp + 0x10]
mov edx, dword [ebp + 8]
push eax
movsd xmm0, qword [esi + eax*8]
movsd qword [edi + eax*8], xmm0
movsd xmm1, qword [edx + ecx*8]
divsd xmm1, xmm2
mov edx, dword [0x5d87f0]
mov ecx, dword [ebp + 0xc]
movsd qword [edx + eax*8], xmm1
mulsd xmm1, xmm2
call fcn.004884b0
divsd xmm1, xmm0
mov ecx, dword [esp + 0x10]
mov eax, dword [0x5d87e0]
push ecx
movsd qword [eax + ecx*8], xmm1
movsd xmm1, qword [edi + ecx*8]
mov ecx, dword [ebp + 0xc]
mulsd xmm1, xmm2
call fcn.004884b0
divsd xmm1, xmm0
mov ecx, dword [esp + 0x10]
mov eax, dword [0x5d87d0]
mov edx, dword [0x5d87f0]
movsd qword [eax + ecx*8], xmm1
movsd xmm0, qword [edx + ecx*8]
mov eax, dword [0x5d87e4]
movsd qword [esi + ecx*8], xmm0
mov esi, ecx
xorps xmm0, xmm0
movsd qword [eax + esi*8], xmm3
movsd xmm1, qword [edi + esi*8]
comisd xmm1, xmmword [0x5b9b68]
jbe 0x4513f7
mov ecx, dword [ebp + 8]
mov edi, dword [esp + 0x20]
movsd xmm0, qword [ecx + edi*8]
divsd xmm0, xmm1
movsd qword [eax + esi*8], xmm0
mov ecx, dword [0x5d87f4]
mov edi, dword [esp + 0xc]
movsd qword [ecx + esi*8], xmm0
inc esi
mov dword [esp + 0x10], esi
cmp esi, edi
jl 0x451235
jmp 0x451426
mov ecx, dword [0x5d87f4]
mov eax, dword [0x5d87e4]
mov edx, dword [0x5d87f0]
xor esi, esi
mov byte [esp + 0xb], 0
mov dword [esp + 0x1c], esi
cmp esi, 0x32
jge 0x451550
push edi
push dword [0x5d87e8]
lea esi, [esp + 0x48]
push dword [0x5d87d8]
push esi
push ecx
mov ecx, dword [esp + 0x28]
push eax
push edx
push dword [0x5d87dc]
push dword [0x5d87d0]
push dword [0x5d87e0]
push dword [0x5d87d4]
push dword [0x5d87b8]
push dword [0x5d87ac]
push dword [0x5d87cc]
call fcn.00450710
test al, al
je 0x4514c1
mov ecx, dword [0x5d87d8]
push edi
push dword [0x5d87b4]
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.0044fd70
mov esi, dword [0x5d87c0]
add esp, 0xc
mov edx, dword [0x5d87e8]
mov ecx, dword [0x5d87b4]
push edi
push esi
call fcn.004501f0
add esp, 8
jmp 0x4514e4
mov esi, dword [0x5d87c0]
test edi, edi
jle 0x4514df
lea ecx, [edi*8]
mov edi, esi
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0xc]
mov byte [esp + 0xb], 1
mov ecx, dword [0x5d87f4]
xorps xmm1, xmm1
test edi, edi
jle 0x45152a
movsd xmm2, qword [0x5bae60]
mov eax, ecx
sub eax, esi
mov ecx, edi
nop
movsd xmm0, qword [eax + esi]
subsd xmm0, qword [esi]
movsd qword [eax + esi], xmm0
movsd xmm0, qword [esi]
add esi, 8
andps xmm0, xmm2
maxsd xmm0, xmm1
movaps xmm1, xmm0
sub ecx, 1
jne 0x451500
mov ecx, dword [0x5d87f4]
mov esi, dword [esp + 0x1c]
inc esi
comisd xmm1, xmmword [0x5b9d08]
mov dword [esp + 0x1c], esi
jbe 0x45154d
mov eax, dword [0x5d87e4]
mov edx, dword [0x5d87f0]
jmp 0x451431
cmp esi, 0x32
jne 0x451607
mov edx, dword [0x5d87e4]
xor eax, eax
mov dword [esp + 0x14], eax
cmp edi, 4
jl 0x4515de
mov dword [esp + 0x18], edx
lea esi, [edx + 0x18]
mov edx, dword [esp + 0xc]
lea eax, [ecx + 8]
sub dword [esp + 0x18], ecx
mov edi, dword [esp + 0x18]
lea edx, [edx - 4]
shr edx, 2
inc edx
mov dword [esp + 0x1c], edx
shl edx, 2
mov dword [esp + 0x14], edx
mov edx, dword [0x5d87e4]
nop word [eax + eax]
sub dword [esp + 0x1c], 1
lea eax, [eax + 0x20]
movsd xmm0, qword [esi - 0x18]
lea esi, [esi + 0x20]
movsd qword [eax - 0x28], xmm0
movsd xmm0, qword [edi + eax - 0x20]
movsd qword [eax - 0x20], xmm0
movsd xmm0, qword [esi - 0x28]
movsd qword [eax - 0x18], xmm0
movsd xmm0, qword [esi - 0x20]
movsd qword [eax - 0x10], xmm0
jne 0x4515a0
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
cmp eax, edi
jge 0x451602
mov esi, edx
lea eax, [ecx + eax*8]
mov edx, edi
sub esi, ecx
sub edx, dword [esp + 0x14]
nop
movsd xmm0, qword [eax + esi]
lea eax, [eax + 8]
movsd qword [eax - 8], xmm0
sub edx, 1
jne 0x4515f0
mov byte [esp + 0xb], 1
test edi, edi
jle 0x451721
mov eax, dword [0x5d87e4]
sub ecx, eax
mov esi, dword [0x5d87e0]
mov edx, dword [0x5d87b0]
sub esi, eax
mov dword [esp + 0x14], esi
sub edx, eax
mov esi, dword [0x5d87c4]
mov dword [esp + 0x24], ecx
sub esi, eax
mov ecx, dword [0x5d87d0]
sub ecx, eax
mov dword [esp + 0x10], esi
mov esi, dword [0x5d87ec]
mov dword [esp + 0x2c], ecx
sub esi, eax
mov ecx, dword [0x5d87b8]
sub ecx, eax
mov dword [esp + 0x28], esi
mov esi, dword [0x5d87d4]
mov dword [esp + 0x20], ecx
sub esi, eax
mov ecx, dword [0x5d87bc]
sub ecx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], edi
mov ecx, eax
call fcn.0040b780
movsd qword [edx + eax], xmm0
call fcn.0040b820
mov edi, dword [esp + 0x20]
lea ecx, [esp + 0x48]
add esi, eax
movsd qword [esp + 0x48], xmm0
add edi, eax
mov edx, esi
add eax, dword [esp + 0x14]
push ecx
push eax
mov ecx, edi
call fcn.0044f750
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
movsd qword [ecx + eax], xmm0
mov ecx, dword [esp + 0x2c]
add ecx, eax
call fcn.0040b780
mov edx, dword [esp + 0x30]
movsd qword [edx + eax], xmm0
call fcn.0040b820
add eax, dword [esp + 0x34]
lea ecx, [esp + 0x50]
push ecx
push eax
mov edx, esi
movsd qword [esp + 0x58], xmm0
mov ecx, edi
call fcn.0044f750
mov eax, dword [esp + 0x28]
add esp, 0x10
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
movsd qword [ecx + eax], xmm0
add eax, 8
sub dword [esp + 0x1c], 1
mov dword [esp + 0x18], eax
jne 0x451682
mov edi, dword [esp + 0xc]
mov ecx, dword [ebp + 0xc]
call fcn.00488520
mov edx, dword [0x5d87f0]
mov ecx, dword [0x5d87e4]
movsd xmm0, qword [eax + 0x28]
mov eax, dword [0x5d87b8]
movsd xmm1, qword [edx]
movsd qword [esp + 0x48], xmm0
movsd xmm0, qword [0x5ba2b0]
subsd xmm0, qword [eax]
mov eax, dword [0x5d87c8]
mulsd xmm0, qword [eax]
mov eax, dword [ebp + 0x10]
add eax, 0x58
push eax
lea eax, [esp + 0x4c]
addsd xmm0, xmm1
push eax
lea eax, [esp + 0x58]
push eax
divsd xmm1, xmm0
movsd qword [esp + 0x44], xmm1
call fcn.00451da0
mov ecx, dword [ebp + 0xc]
add esp, 0xc
movsd qword [esp + 0x50], xmm0
call fcn.004888d0
cmp byte [esp + 0xb], 0
movsd xmm0, qword [esp + 0x50]
mulsd xmm0, qword [esp + 0x38]
mov eax, dword [ebp + 0x18]
mov edx, dword [0x5d87ec]
movsd qword [eax], xmm0
jne 0x451928
cmp edi, 1
jle 0x451928
mov eax, dword [0x5d87c4]
mov esi, dword [0x5d87bc]
mov ecx, dword [0x5d87c8]
add ecx, 8
movsd xmm4, qword [0x5ba138]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
sub esi, eax
mov dword [esp + 0x34], esi
mov esi, dword [0x5d87b0]
mov ecx, esi
sub dword [esp + 0x18], esi
sub ecx, eax
mov dword [esp + 0x30], ecx
mov ecx, dword [0x5d87c8]
mov dword [esp + 0x10], ecx
mov ecx, edx
sub dword [esp + 0x10], eax
sub ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, esi
mov esi, dword [0x5d87c8]
sub ecx, esi
mov dword [esp + 0x38], ecx
mov ecx, edx
mov edx, dword [ebp + 0x18]
sub ecx, esi
sub edx, esi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1c]
dec edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], edi
nop
mov esi, dword [esp + 0x38]
movaps xmm1, xmm4
add esi, ecx
mov ecx, dword [esp + 0x34]
movsd xmm0, qword [eax + ecx]
mov eax, dword [esp + 0x18]
mulsd xmm0, qword [esi + eax]
call fcn.00577600
mov eax, dword [esp + 0x14]
movsd xmm1, qword [0x5ba138]
lea edi, [eax + 8]
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [eax]
mulsd xmm0, qword [edi]
call fcn.00577600
mov eax, dword [esp + 0x14]
movaps xmm2, xmm0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
movsd xmm4, qword [0x5ba138]
mulsd xmm2, qword [0x5bac48]
movsd xmm1, qword [eax + edx]
addsd xmm1, qword [ecx]
mov edx, dword [esp + 0x28]
movsd xmm3, qword [esp + 0x50]
mulsd xmm3, xmm4
mulsd xmm1, xmm4
divsd xmm2, xmm1
movsd xmm1, qword [esi]
mov esi, dword [esp + 0x30]
subsd xmm1, qword [eax + esi]
mov esi, dword [esp + 0x2c]
mulsd xmm2, xmm1
movsd qword [ecx + esi], xmm2
movsd xmm1, qword [ecx + edx]
mov edx, dword [esp + 0x24]
subsd xmm1, qword [eax + edx]
mov edx, dword [esp + 0x10]
movsd xmm0, qword [eax + edx]
mov eax, edi
addsd xmm0, qword [ecx]
mov dword [esp + 0x14], eax
mulsd xmm0, xmm4
divsd xmm3, xmm0
mulsd xmm1, xmm3
subsd xmm2, xmm1
movsd qword [ecx + esi], xmm2
add ecx, 8
sub dword [esp + 0x20], 1
mov dword [esp + 0x1c], ecx
jne 0x451840
mov edx, dword [0x5d87ec]
cmp byte [esp + 0xb], 0
mov esi, dword [esp + 0xc]
mov eax, dword [0x5d87f0]
movsd xmm1, qword [0x5ba2b0]
movsd xmm0, qword [eax + esi*8 - 8]
mov eax, dword [0x5d87b8]
subsd xmm1, qword [eax + esi*8 - 8]
mov eax, dword [0x5d87c8]
mulsd xmm1, qword [eax + esi*8 - 8]
mov eax, dword [0x5d87c4]
addsd xmm1, xmm0
divsd xmm0, xmm1
mulsd xmm0, qword [eax + esi*8]
mov eax, dword [ebp + 0x18]
mulsd xmm0, qword [esp + 0x58]
movsd qword [eax + esi*8], xmm0
jne 0x451bbf
xor ecx, ecx
test esi, esi
jle 0x451bbf
mov edi, dword [0x5d87ac]
movaps xmm2, xmmword [0x5bae70]
mov dword [esp + 0x10], edi
cmp esi, 8
jb 0x451b4e
mov edi, dword [ebp + 0x10]
lea eax, [eax + esi*8]
add eax, 8
mov dword [esp + 0x18], eax
lea eax, [esi*2 - 1]
lea eax, [eax + 1]
movsd xmm3, qword [edi + 0x58]
mov edi, dword [ebp + 0x18]
unpcklpd xmm3, xmm3
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], eax
lea eax, [esi - 1]
lea eax, [edi + eax*8]
cmp dword [esp + 0x18], eax
ja 0x4519e8
cmp dword [esp + 0x14], edi
jae 0x451b4e
mov eax, dword [0x5d87b0]
lea eax, [eax + esi*8]
add eax, 0xfffffff8
cmp dword [esp + 0x18], eax
ja 0x451a09
mov eax, dword [esp + 0x14]
cmp eax, dword [0x5d87b0]
jae 0x451b4e
lea eax, [esi - 1]
lea eax, [edx + eax*8]
cmp dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
ja 0x451a21
cmp eax, edx
jae 0x451b4e
mov edx, dword [ebp + 0x10]
add edx, 0x58
cmp dword [esp + 0x18], edx
ja 0x451a35
cmp eax, edx
jae 0x451b4e
mov eax, esi
and eax, 0x80000007
jns 0x451a43
dec eax
or eax, 0xfffffff8
inc eax
mov edx, esi
sub edx, eax
mov eax, dword [0x5d87b0]
mov dword [esp + 0x34], edx
add eax, 0x10
lea edx, [edi + 0x20]
mov edi, dword [ebp + 0x18]
lea edi, [edi + esi*8]
mov esi, dword [0x5d87ec]
sub esi, dword [0x5d87b0]
add edi, 0x18
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x10]
sub esi, dword [0x5d87b0]
mov dword [esp + 0x1c], esi
mov esi, dword [0x5d87ec]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x10]
sub dword [esp + 0x18], esi
mov esi, dword [0x5d87ec]
nop word [eax + eax]
movups xmm1, xmmword [esi + ecx*8]
mov esi, dword [esp + 0x38]
movups xmm0, xmmword [eax - 0x10]
subpd xmm1, xmm0
movups xmm0, xmmword [edx - 0x20]
xorps xmm0, xmm2
mulpd xmm1, xmm0
movups xmm0, xmmword [eax]
divpd xmm1, xmm3
movups xmmword [edi - 0x10], xmm1
movups xmm1, xmmword [esi + eax]
mov esi, dword [esp + 0x1c]
subpd xmm1, xmm0
movups xmm0, xmmword [esi + eax]
mov esi, dword [esp + 0x18]
xorps xmm0, xmm2
mulpd xmm1, xmm0
movups xmm0, xmmword [eax + 0x10]
divpd xmm1, xmm3
movups xmmword [edi], xmm1
movups xmm1, xmmword [edx + esi]
mov esi, dword [0x5d87ec]
subpd xmm1, xmm0
movups xmm0, xmmword [edx]
xorps xmm0, xmm2
mulpd xmm1, xmm0
movups xmm0, xmmword [eax + 0x20]
add eax, 0x40
divpd xmm1, xmm3
movups xmmword [edi + 0x10], xmm1
movups xmm1, xmmword [esi + ecx*8 + 0x30]
add ecx, 8
subpd xmm1, xmm0
movups xmm0, xmmword [edx + 0x10]
add edx, 0x40
xorps xmm0, xmm2
mulpd xmm1, xmm0
divpd xmm1, xmm3
movups xmmword [edi + 0x20], xmm1
add edi, 0x40
cmp ecx, dword [esp + 0x34]
jl 0x451aa0
mov esi, dword [esp + 0xc]
mov dword [esp + 0x38], ecx
cmp ecx, esi
jge 0x451bbf
mov edx, dword [0x5d87b0]
lea eax, [esi + 1]
mov esi, dword [ebp + 0x18]
add eax, ecx
lea edx, [edx + ecx*8]
lea edi, [esi + eax*8]
mov esi, dword [0x5d87b0]
sub dword [esp + 0x10], esi
mov eax, dword [0x5d87ec]
sub eax, esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x18], esi
sub dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov esi, dword [ebp + 0x10]
nop word [eax + eax]
movsd xmm1, qword [eax + edx]
subsd xmm1, qword [edx]
movsd xmm0, qword [ecx + edx]
add edx, 8
xorps xmm0, xmm2
mulsd xmm1, xmm0
divsd xmm1, qword [esi + 0x58]
movsd qword [edi], xmm1
add edi, 8
sub dword [esp + 0x18], 1
jne 0x451b90
mov esi, dword [esp + 0xc]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
movsd xmm1, qword [ecx + 0x28]
subsd xmm1, qword [ecx + 0x58]
movsd xmm0, qword [eax + 0x18]
subsd xmm1, qword [0x5b9bf0]
comisd xmm0, xmm1
jb 0x451d83
mov ecx, dword [0x5d8004]
call fcn.004bd570
mov ecx, dword [ebp + 0xc]
dec eax
cmp dword [ecx + 8], eax
jne 0x451d83
xor edi, edi
cmp dword [0x5d4b2c], edi
jle 0x451c29
nop dword [eax + eax]
mov eax, dword [0x5d87a8]
push dword [eax + edi*4]
call fcn.0051fadf
inc edi
add esp, 4
cmp edi, dword [0x5d4b2c]
jl 0x451c10
push dword [0x5d87a8]
call fcn.0051fadf
add esp, 4
push dword [0x5d87c8]
call fcn.0051fadf
add esp, 4
push dword [0x5d87cc]
call fcn.0051fadf
add esp, 4
push dword [0x5d87b8]
call fcn.0051fadf
add esp, 4
push dword [0x5d87e0]
call fcn.0051fadf
add esp, 4
push dword [0x5d87d0]
call fcn.0051fadf
add esp, 4
push dword [0x5d87d4]
call fcn.0051fadf
add esp, 4
push dword [0x5d87ac]
call fcn.0051fadf
add esp, 4
push dword [0x5d87dc]
call fcn.0051fadf
add esp, 4
push dword [0x5d87f0]
call fcn.0051fadf
add esp, 4
push dword [0x5d87e4]
call fcn.0051fadf
add esp, 4
push dword [0x5d87ec]
call fcn.0051fadf
add esp, 4
push dword [0x5d87b0]
call fcn.0051fadf
add esp, 4
push dword [0x5d87c4]
call fcn.0051fadf
add esp, 4
push dword [0x5d87bc]
call fcn.0051fadf
add esp, 4
push dword [0x5d87f4]
call fcn.0051fadf
add esp, 4
push dword [0x5d87c0]
call fcn.0051fadf
add esp, 4
push dword [0x5d87e8]
call fcn.0051fadf
add esp, 4
xor edi, edi
nop word [eax + eax]
mov eax, dword [0x5d87d8]
push dword [edi + eax]
call fcn.0051fadf
add edi, 4
add esp, 4
cmp edi, 0xc
jl 0x451d30
push dword [0x5d87d8]
call fcn.0051fadf
add esp, 4
xor edi, edi
test esi, esi
jle 0x451d75
nop dword [eax]
mov eax, dword [0x5d87b4]
push dword [eax + edi*4]
call fcn.0051fadf
inc edi
add esp, 4
cmp edi, esi
jl 0x451d60
push dword [0x5d87b4]
call fcn.0051fadf
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x14