Function at 0x417bc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x30
mov ebx, dword [ebp + 8]
jmp 0x417be1
inc ebx
movzx ecx, byte [ebx]
movzx eax, cl
lea edx, [eax - 9]
cmp edx, 5
jb 0x417be0
cmp eax, 0x20
je 0x417be0
mov eax, ecx
add al, 0xd5
test al, 0xfd
mov eax, 0
sete al
mov dword [esp + 4], 0xffffffff
xor edi, edi
jmp 0x417c1b
mov esi, dword [esp + 4]
inc edi
mov dword [esp + 4], esi
mov eax, edx
mov edx, eax
lea esi, [eax + edi]
mov dword [esp + 0x1c], esi
movzx eax, byte [ebx + esi]
mov ch, al
add ch, 0xd0
cmp ch, 0xa
jb 0x417c10
mov dword [esp + 0x14], eax
cmp al, 0x2e
jne 0x417c54
mov esi, edi
mov eax, dword [esp + 4]
test eax, eax
js 0x417c14
mov dword [esp + 0xc], edi
mov esi, eax
mov eax, edx
add edx, ebx
mov dword [esp + 8], edx
jmp 0x417c6e
mov eax, edx
add edx, ebx
mov dword [esp + 8], edx
mov esi, edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edi
mov esi, dword [esp + 4]
test esi, esi
js 0x417c7b
mov edx, esi
mov esi, dword [esp + 0xc]
lea edi, [esi - 1]
mov dword [esp + 0x10], edx
cmp edi, 0x10
mov dword [esp + 0x18], eax
jl 0x417c90
add dword [esp + 0x10], 0xfffffff1
mov edi, 0xf
jmp 0x417ca1
test edi, edi
je 0x417cd9
sub dword [esp + 0x10], edi
cmp edi, 9
jle 0x417d34
mov esi, dword [esp + 8]
movzx edx, byte [esi]
cmp dl, 0x2e
jne 0x417cb6
movzx edx, byte [esi + 1]
add esi, 2
jmp 0x417cb7
inc esi
movsx edx, dl
add edx, 0xffffffd0
cmp edi, 0xb
jl 0x417df1
mov dword [esp + 4], edx
mov ch, byte [esi]
cmp ch, 0x2e
jne 0x417cff
mov ch, byte [esi + 1]
add esi, 2
jmp 0x417d00
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x417ce5
mov edx, dword [ebp + 8]
mov dword [eax], edx
xorpd xmm0, xmm0
cmp cl, 0x2d
jne 0x417f99
movsd xmm0, qword [0x45d930]
jmp 0x417f99
inc esi
mov edx, dword [esp + 4]
lea edx, [edx + edx*4]
mov dword [esp + 4], edx
movsx edx, ch
mov eax, dword [esp + 4]
lea edx, [edx + eax*2]
add edx, 0xffffffd0
cmp edi, 0xc
jl 0x417df1
mov dword [esp + 4], edx
mov ch, byte [esi]
cmp ch, 0x2e
jne 0x417d4d
mov ch, byte [esi + 1]
add esi, 2
jmp 0x417d4e
xorpd xmm0, xmm0
xorpd xmm1, xmm1
test edi, edi
mov esi, dword [esp + 8]
jg 0x417dfa
jmp 0x417e4d
inc esi
mov edx, dword [esp + 4]
lea edx, [edx + edx*4]
mov dword [esp + 4], edx
movsx edx, ch
mov eax, dword [esp + 4]
lea edx, [edx + eax*2]
add edx, 0xffffffd0
cmp edi, 0xd
jl 0x417df1
mov dword [esp + 4], edx
mov ch, byte [esi]
cmp ch, 0x2e
jne 0x417d82
mov ch, byte [esi + 1]
add esi, 2
jmp 0x417d83
inc esi
mov edx, dword [esp + 4]
lea edx, [edx + edx*4]
mov dword [esp + 4], edx
movsx edx, ch
mov eax, dword [esp + 4]
lea edx, [edx + eax*2]
add edx, 0xffffffd0
cmp edi, 0xe
jl 0x417df1
mov dword [esp + 4], edx
mov ch, byte [esi]
cmp ch, 0x2e
jne 0x417db3
mov ch, byte [esi + 1]
add esi, 2
jmp 0x417db4
inc esi
mov edx, dword [esp + 4]
lea edx, [edx + edx*4]
mov dword [esp + 4], edx
movsx edx, ch
mov eax, dword [esp + 4]
lea edx, [edx + eax*2]
add edx, 0xffffffd0
cmp edi, 0xf
jl 0x417df1
mov edi, edx
movzx edx, byte [esi]
cmp dl, 0x2e
jne 0x417de4
movzx edx, byte [esi + 1]
add esi, 2
jmp 0x417de5
inc esi
lea edi, [edi + edi*4]
movsx edx, dl
lea edx, [edx + edi*2]
add edx, 0xffffffd0
cvtsi2sd xmm0, edx
mov edi, 9
inc edi
xor edx, edx
jmp 0x417e3c
mov ch, byte [esi + 1]
add esi, 2
mov dword [esp + 8], esi
mov esi, edx
and esi, 0xa
mov eax, edx
or edx, 0xa
imul edx, esi
xor esi, 0xa
and eax, 0xfffffff5
imul eax, esi
add edx, eax
movsx eax, ch
add edx, eax
add edx, 0xffffffd0
mov eax, edi
dec eax
mov edi, eax
cmp eax, 1
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 8]
jle 0x417e46
mov ch, byte [esi]
cmp ch, 0x2e
je 0x417e00
inc esi
jmp 0x417e06
xorps xmm1, xmm1
cvtsi2sd xmm1, edx
add eax, ebx
mov esi, eax
mov eax, dword [esp + 0x14]
or eax, 0x20
cmp eax, 0x65
jne 0x417e83
mov edi, dword [esp + 0x1c]
movzx edx, byte [ebx + edi + 1]
cmp edx, 0x2b
mov eax, dword [esp + 0xc]
je 0x417e8d
cmp edx, 0x2d
jne 0x417e96
mov edx, eax
add eax, esi
add eax, 2
mov dl, 1
mov dword [esp + 4], edx
jmp 0x417ea2
add esi, dword [esp + 0xc]
mov edi, esi
xor esi, esi
jmp 0x417f01
mov edx, eax
add eax, esi
add eax, 2
jmp 0x417e9a
lea eax, [ebx + edi]
inc eax
mov dword [esp + 4], 0
mov esi, eax
mov ch, byte [eax]
mov bl, ch
add bl, 0xd0
xor edx, edx
cmp bl, 9
ja 0x417ef1
xor edx, edx
mov eax, esi
nop word cs:[eax + eax]
mov esi, edx
and esi, 0xfffffff5
mov edi, edx
and edi, 0xa
or edx, 0xa
imul edx, edi
xor edi, 0xa
imul edi, esi
movzx esi, ch
add esi, edx
lea edx, [edi + esi]
add edx, 0xffffffd0
mov ch, byte [eax + 1]
inc eax
mov bl, ch
add bl, 0xd0
cmp bl, 0xa
jb 0x417ec0
jmp 0x417ef3
mov eax, esi
mov edi, eax
mov esi, edx
neg esi
cmp byte [esp + 4], 0
cmove esi, edx
mulsd xmm0, qword [0x45d938]
mov eax, esi
mov edx, dword [esp + 0x10]
and eax, edx
xor esi, edx
lea eax, [esi + eax*2]
mov edx, eax
neg edx
cmovs edx, eax
cmp edx, 0x200
mov esi, dword [ebp + 0x10]
jl 0x417f39
mov edx, 0x1ff
test esi, esi
je 0x417f3d
mov dword [esi], 0x22
jmp 0x417f3d
test eax, eax
je 0x417f69
movsd xmm2, qword [0x45d940]
mov esi, 0x45d8e8
jmp 0x417f5e
mov ebx, edx
sar ebx, 1
add esi, 8
cmp edx, 2
mov edx, ebx
jb 0x417f71
test dl, 1
je 0x417f50
mulsd xmm2, qword [esi]
jmp 0x417f50
movsd xmm2, qword [0x45d940]
addsd xmm0, xmm1
test eax, eax
js 0x417f7f
mulsd xmm0, xmm2
jmp 0x417f83
divsd xmm0, xmm2
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x417f8c
mov dword [eax], edi
cmp cl, 0x2d
jne 0x417f99
xorpd xmm0, xmmword [0x45c5b0]
movsd qword [esp + 0x20], xmm0
fld qword [esp + 0x20]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret