Function at 0x1019b950
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x44
movd xmm0, dword [esp + 0x50]
movsd xmm1, qword [0x10366140]
cvtdq2pd xmm0, xmm0
push esi
mov esi, dword [esp + 0x54]
mov eax, esi
sar eax, 2
mov dword [esp + 0x44], eax
shl eax, 3
push edi
divsd xmm1, xmm0
push eax
mov dword [esp + 0x40], eax
movsd qword [esp + 0x24], xmm1
call fcn.102d6fbe
push dword [esp + 0x40]
mov edi, eax
mov dword [esp + 0x3c], edi
call fcn.102d6fbe
movd xmm0, dword [esp + 0x60]
add esp, 8
movsd xmm1, qword [0x10336168]
cvtdq2pd xmm0, xmm0
mov dword [esp + 0x40], eax
divsd xmm1, xmm0
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 8], xmm1
call fcn.102df500
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esp + 0x20]
call fcn.102df6c0
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x20]
mulsd xmm0, qword [0x103361f0]
movsd qword [esp + 0x20], xmm0
call fcn.102df500
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [esp + 0x20]
call fcn.102df6c0
cmp dword [esp + 0x48], 0
movapd xmm5, xmm0
movsd xmm4, qword [esp + 0x28]
movapd xmm7, xmm5
movsd qword [esp + 0x20], xmm5
movapd xmm6, xmm4
jle 0x1019badc
mov edx, dword [esp + 0x54]
mov eax, esi
movsd xmm4, qword [esp + 0x18]
mov esi, edx
movsd xmm5, qword [esp + 0x10]
sub esi, 8
sar eax, 1
mov ecx, edi
lea eax, [esi + eax*8]
mov esi, dword [esp + 0x40]
sub esi, edi
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x58]
movsd xmm3, qword [edx]
add edx, 0x10
movsd xmm2, qword [eax]
sub eax, 0x10
xorpd xmm3, xmmword [0x103592e0]
movapd xmm0, xmm2
movapd xmm1, xmm3
mulsd xmm0, xmm7
mulsd xmm1, xmm6
mulsd xmm3, xmm7
mulsd xmm2, xmm6
subsd xmm1, xmm0
movapd xmm0, xmm7
mulsd xmm0, xmm5
addsd xmm3, xmm2
mulsd xmm7, xmm4
movsd qword [edi + ecx], xmm1
movapd xmm1, xmm6
mulsd xmm6, xmm4
mulsd xmm1, xmm5
movsd qword [ecx], xmm3
add ecx, 8
dec dword [esp + 0x38]
subsd xmm6, xmm0
addsd xmm7, xmm1
jne 0x1019ba64
movsd xmm4, qword [esp + 0x28]
movsd xmm5, qword [esp + 0x20]
mov edi, dword [esp + 0x34]
cmp esi, 0x100
je 0x1019baf0
cmp esi, 0x800
jne 0x1019bb0f
push 9
jmp 0x1019baf2
push 6
push edi
push dword [esp + 0x48]
push dword [esp + 0x5c]
call fcn.101971e0
movsd xmm5, qword [esp + 0x30]
add esp, 0x10
movsd xmm4, qword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x48], ecx
jle 0x1019bc61
mov ecx, dword [esp + 0x3c]
mov eax, esi
sar eax, 3
mov esi, edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x54]
mov edx, eax
sub edx, ecx
movsd xmm6, qword [0x103592e0]
lea edi, [ecx + eax]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
sar eax, 1
add eax, dword [esp + 0x48]
lea eax, [ecx + eax*8]
sub ecx, 8
mov dword [esp + 0x44], eax
lea eax, [edi - 8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x58]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x44]
add ecx, 0xfffffff8
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x40]
sub ecx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x2c]
lea ebx, [ebx]
mov eax, dword [esp + 0x24]
movsd xmm2, qword [esi]
movapd xmm0, xmm2
mulsd xmm2, xmm4
movsd xmm1, qword [esi + eax]
movapd xmm3, xmm1
mov eax, dword [esp + 0x58]
mulsd xmm3, xmm4
mulsd xmm0, xmm5
mulsd xmm1, xmm5
subsd xmm3, xmm0
addsd xmm2, xmm1
mulsd xmm3, qword [esp + 8]
mulsd xmm2, qword [esp + 8]
movsd qword [eax], xmm3
mov eax, dword [esp + 0x44]
cmp ecx, dword [esp + 0x30]
jge 0x1019bbe1
movsd qword [eax], xmm3
jmp 0x1019bbe9
xorpd xmm3, xmm6
movsd qword [edx], xmm3
movsd qword [edi], xmm2
cmp ecx, dword [esp + 0x30]
jge 0x1019bbfd
mov eax, dword [esp + 0x3c]
xorpd xmm2, xmm6
jmp 0x1019bc01
mov eax, dword [esp + 0x38]
movsd xmm3, qword [esp + 0x10]
movapd xmm1, xmm4
mulsd xmm4, qword [esp + 0x18]
movapd xmm0, xmm5
inc ecx
sub dword [esp + 0x58], 0x10
mulsd xmm5, qword [esp + 0x18]
add esi, 8
sub dword [esp + 0x3c], 0x10
add edx, 0x10
sub dword [esp + 0x38], 0x10
add edi, 0x10
movsd qword [eax], xmm2
mov eax, dword [esp + 0x44]
mulsd xmm0, xmm3
add eax, 0x10
mov dword [esp + 0x44], eax
mulsd xmm1, xmm3
subsd xmm4, xmm0
addsd xmm5, xmm1
cmp ecx, dword [esp + 0x48]
jl 0x1019bb90
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x1019bc72
push eax
call fcn.102d6d32
add esp, 4
test edi, edi
je 0x1019bc7f
push edi
call fcn.102d6d32
add esp, 4
pop edi
pop esi
add esp, 0x44
ret