Function at 0xcd8ff0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x30
mov eax, dword [ebp + 8]
jmp 0xcd9011
inc eax
movzx ecx, byte [eax]
movzx edx, cl
lea esi, [edx - 9]
cmp esi, 5
jb 0xcd9010
cmp edx, 0x20
je 0xcd9010
mov dword [esp + 0xc], eax
mov edx, ecx
add dl, 0xd5
xor eax, eax
test dl, 0xfd
sete al
mov dword [esp + 8], eax
xor esi, esi
mov edi, 0xffffffff
jmp 0xcd9055
mov edx, edi
inc esi
mov edi, edx
mov eax, dword [esp + 8]
lea ebx, [eax + esi]
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + ebx]
lea edx, [eax - 0x30]
cmp edx, 0xa
jb 0xcd9050
mov dword [esp + 0x18], ebx
cmp al, 0x2e
jne 0xcd907a
mov edx, esi
test edi, edi
js 0xcd9052
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
add dword [esp + 8], eax
xor edx, edx
test edi, edi
cmovs edi, esi
setns dl
mov ebx, esi
sub ebx, edx
cmp ebx, 0x10
mov byte [esp + 7], cl
jl 0xcd90b8
mov dword [esp + 0x10], esi
mov eax, edi
xor eax, 0xfffffff0
and edi, 0xfffffff0
lea edi, [eax + edi*2]
inc edi
mov dword [esp + 0x14], edi
mov ebx, 0xf
jmp 0xcd90d7
test ebx, ebx
je 0xcd922e
neg edx
sub edi, edx
mov dword [esp + 0x10], esi
sub edi, esi
cmp ebx, 0xa
mov dword [esp + 0x14], edi
jl 0xcd9247
inc ebx
xor edx, edx
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x18]
jmp 0xcd9108
mov ch, byte [eax + 1]
add eax, 2
lea edx, [edx + edx*4]
movsx ecx, ch
lea edx, [ecx + edx*2]
add edx, 0xffffffd0
dec ebx
cmp ebx, 0xa
jle 0xcd9112
mov ch, byte [eax]
cmp ch, 0x2e
je 0xcd90f0
inc eax
jmp 0xcd90f6
cvtsi2sd xmm0, edx
mov ebx, 9
inc ebx
xor edx, edx
jmp 0xcd9138
mov ch, byte [eax + 1]
add eax, 2
lea edx, [edx + edx*4]
movsx ecx, ch
lea edx, [ecx + edx*2]
add edx, 0xffffffd0
dec ebx
cmp ebx, 1
jle 0xcd9142
mov ch, byte [eax]
cmp ch, 0x2e
je 0xcd9120
inc eax
jmp 0xcd9126
xorps xmm1, xmm1
cvtsi2sd xmm1, edx
mov eax, dword [esp + 0x1c]
or eax, 0x20
cmp eax, 0x65
jne 0xcd91bb
mov ecx, dword [esp + 0xc]
lea ebx, [ecx + edi]
movzx edx, byte [ecx + edi + 1]
mov eax, edx
add al, 0xd5
and al, 0xfd
cmp al, 1
adc ebx, 1
movzx eax, byte [ebx]
lea ecx, [eax - 0x30]
xor esi, esi
cmp ecx, 9
ja 0xcd91af
xor esi, esi
nop dword [eax + eax]
mov edi, esi
or edi, 0xa
mov ecx, esi
and ecx, 0xa
imul edi, ecx
xor ecx, 0xa
and esi, 0xfffffff5
imul esi, ecx
movsx eax, al
add eax, edi
add esi, eax
add esi, 0xffffffd0
movzx eax, byte [ebx + 1]
inc ebx
mov ecx, eax
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0xcd9180
mov eax, esi
neg eax
cmp dl, 0x2d
cmovne eax, esi
jmp 0xcd91c5
mov ebx, dword [esp + 8]
add ebx, dword [esp + 0x10]
xor eax, eax
add eax, dword [esp + 0x14]
mulsd xmm0, qword [0xd0d4d0]
mov edx, eax
neg edx
cmovs edx, eax
cmp edx, 0x200
movzx ecx, byte [esp + 7]
jl 0xcd91f9
mov edx, 0x1ff
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0xcd91fd
mov dword [ecx], 0x22
jmp 0xcd91fd
test eax, eax
je 0xcd9264
movsd xmm2, qword [0xd0d4d8]
mov esi, 0xd0d4e0
jmp 0xcd9223
mov ecx, edx
sar ecx, 1
add esi, 8
cmp edx, 2
mov edx, ecx
movzx ecx, byte [esp + 7]
jb 0xcd926c
test dl, 1
je 0xcd9210
mulsd xmm2, qword [esi]
jmp 0xcd9210
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0xcd923a
mov eax, dword [ebp + 8]
mov dword [ecx], eax
cmp byte [esp + 7], 0x2d
je 0xcd9296
xorpd xmm0, xmm0
jmp 0xcd929e
xorpd xmm0, xmm0
mov eax, dword [esp + 8]
xorpd xmm1, xmm1
test ebx, ebx
mov edi, dword [esp + 0x18]
jg 0xcd911b
jmp 0xcd9149
movsd xmm2, qword [0xd0d4d8]
addsd xmm0, xmm1
test eax, eax
js 0xcd927a
mulsd xmm0, xmm2
jmp 0xcd927e
divsd xmm0, xmm2
mov eax, dword [ebp + 0xc]
test eax, eax
je 0xcd9287
mov dword [eax], ebx
cmp cl, 0x2d
jne 0xcd929e
xorpd xmm0, xmmword [0xd0c670]
jmp 0xcd929e
movsd xmm0, qword [0xd0d4c8]
movsd qword [esp + 0x20], xmm0
fld qword [esp + 0x20]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret