Function at 0x100dcf10
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x12c
mov eax, dword [0x10259b00]
xor eax, esp
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x134]
mov edx, dword [esp + 0x13c]
mov ecx, dword [esp + 0x138]
push esi
mov esi, dword [esp + 0x134]
mov dword [esp + 0xc], edx
xor edx, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
movsd xmm6, qword [esi]
cmp dword [eax], edx
jbe 0x100dd21c
movsd xmm4, qword [0x1017ea00]
lea eax, [ecx + 8]
movsd xmm7, qword [0x101735a0]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x34]
sub eax, esi
mov dword [esp + 0x28], edx
push edi
lea edi, [esi - 0x10]
mov dword [esp + 0x18], eax
sub ecx, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], ecx
movsd xmm2, qword [edi + 0x18]
xor ecx, ecx
xorps xmm2, xmm4
test edx, edx
je 0x100dd0a6
cmp edx, 4
jb 0x100dd018
mov esi, edx
mov eax, edi
and esi, 0xfffffffc
lea edi, [esp + 0x30]
xorps xmm5, xmm5
xorps xmm3, xmm3
nop word [eax + eax]
movups xmm0, xmmword [edi + ecx*8]
movsd xmm1, qword [eax + 0x10]
movhpd xmm1, qword [eax + 8]
mulpd xmm1, xmm0
movups xmm0, xmmword [esp + ecx*8 + 0x40]
add ecx, 4
subpd xmm5, xmm1
movsd xmm1, qword [eax]
movhpd xmm1, qword [eax - 8]
sub eax, 0x20
mulpd xmm1, xmm0
subpd xmm3, xmm1
cmp ecx, esi
jb 0x100dcfc0
addpd xmm3, xmm5
movaps xmm0, xmm3
unpckhpd xmm0, xmm3
addsd xmm3, xmm0
addsd xmm2, xmm3
cmp ecx, edx
jae 0x100dd0a6
mov esi, dword [esp + 0x138]
mov eax, edx
sub eax, ecx
cmp eax, 4
jb 0x100dd07b
add eax, 0xfffffffe
lea edi, [edx - 3]
lea eax, [esi + eax*8]
nop word [eax + eax]
movsd xmm0, qword [esp + ecx*8 + 0x30]
mulsd xmm0, qword [eax + 0x10]
subsd xmm2, xmm0
movsd xmm0, qword [esp + ecx*8 + 0x38]
mulsd xmm0, qword [eax + 8]
subsd xmm2, xmm0
movsd xmm0, qword [esp + ecx*8 + 0x40]
mulsd xmm0, qword [eax]
subsd xmm2, xmm0
movsd xmm0, qword [esp + ecx*8 + 0x48]
mulsd xmm0, qword [eax - 8]
add ecx, 4
sub eax, 0x20
mov esi, ecx
subsd xmm2, xmm0
cmp ecx, edi
jb 0x100dd030
cmp esi, edx
jae 0x100dd0a6
mov esi, dword [esp + 0x138]
mov eax, edx
sub eax, ecx
lea eax, [esi + eax*8]
nop dword [eax]
movsd xmm0, qword [esp + ecx*8 + 0x30]
inc ecx
mulsd xmm0, qword [eax]
sub eax, 8
subsd xmm2, xmm0
cmp ecx, edx
jb 0x100dd090
divsd xmm2, xmm6
mov eax, dword [esp + 0x1c]
mov esi, edx
shr esi, 1
mov ecx, dword [esp + 0x24]
movsd qword [eax + ecx], xmm2
mov eax, 0
je 0x100dd0fb
add ecx, dword [esp + 0x18]
nop word [eax + eax]
movsd xmm1, qword [esp + eax*8 + 0x30]
movaps xmm0, xmm2
mulsd xmm0, qword [ecx]
addsd xmm0, xmm1
mulsd xmm1, xmm2
movsd qword [esp + eax*8 + 0x30], xmm0
inc eax
addsd xmm1, qword [ecx]
movsd qword [ecx], xmm1
sub ecx, 8
cmp eax, esi
jb 0x100dd0d0
test dl, 1
je 0x100dd113
movaps xmm0, xmm2
addsd xmm0, xmm7
mulsd xmm0, qword [esp + eax*8 + 0x30]
movsd qword [esp + eax*8 + 0x30], xmm0
mulsd xmm2, xmm2
lea edi, [edx + 1]
xor ecx, ecx
movaps xmm0, xmm7
subsd xmm0, xmm2
mulsd xmm6, xmm0
cmp edi, 4
jb 0x100dd189
mov eax, dword [esp + 0x28]
lea esi, [edx - 3]
movsd xmm0, qword [esp + ecx*8 + 0x30]
lea eax, [eax + 0x10]
xorps xmm0, xmm4
cvtsd2ss xmm0, xmm0
movss dword [eax - 0x18], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x38]
xorps xmm0, xmm4
cvtsd2ss xmm0, xmm0
movss dword [eax - 0x14], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x40]
xorps xmm0, xmm4
cvtsd2ss xmm0, xmm0
movss dword [eax - 0x10], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x48]
add ecx, 4
xorps xmm0, xmm4
cvtsd2ss xmm0, xmm0
movss dword [eax - 0xc], xmm0
cmp ecx, esi
jbe 0x100dd133
cmp ecx, edx
ja 0x100dd1bc
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
add eax, ecx
lea eax, [esi + eax*4]
mov esi, dword [esp + 0x2c]
nop word [eax + eax]
movsd xmm0, qword [esp + ecx*8 + 0x30]
lea eax, [eax + 4]
xorps xmm0, xmm4
inc ecx
cvtsd2ss xmm0, xmm0
movss dword [eax - 4], xmm0
cmp ecx, edx
jbe 0x100dd1a0
jmp 0x100dd1c0
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
xorps xmm0, xmm0
ucomisd xmm6, xmm0
movsd qword [eax + edx*8], xmm6
lahf
test ah, 0x44
mov eax, dword [esp + 0x20]
jnp 0x100dd219
sub dword [esp + 0x28], 0xffffff80
mov edx, edi
mov edi, dword [esp + 0x24]
add esi, 0x20
add edi, 8
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x138]
mov dword [esp + 0x24], edi
cmp edx, dword [eax]
jb 0x100dcf92
pop edi
pop esi
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.1009fd88
add esp, 0x12c
ret
mov dword [eax], edi
pop edi
mov ecx, dword [esp + 0x12c]
pop esi
xor ecx, esp
call fcn.1009fd88
add esp, 0x12c
ret