Function at 0x4172e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x30
mov edi, dword [ebp + 8]
jmp 0x417301
inc edi
movzx ecx, byte [edi]
movzx eax, cl
lea edx, [eax - 9]
cmp edx, 5
jb 0x417300
cmp eax, 0x20
je 0x417300
mov eax, ecx
add al, 0xd5
test al, 0xfd
mov eax, 0
sete al
mov ebx, 0xffffffff
xor esi, esi
mov dword [esp + 0x10], eax
jmp 0x417339
mov edx, ebx
inc esi
mov ebx, edx
mov eax, dword [esp + 0x10]
lea edx, [eax + esi]
mov dword [esp + 0x1c], edx
movzx eax, byte [edi + edx]
mov edx, eax
add dl, 0xd0
cmp dl, 0xa
jb 0x417330
cmp al, 0x2e
mov dword [esp + 0x18], eax
jne 0x417368
mov edx, esi
test ebx, ebx
js 0x417332
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x10]
add eax, edi
jmp 0x417378
mov eax, dword [esp + 0x10]
add eax, edi
mov edx, esi
mov dword [esp + 0xc], esi
test ebx, ebx
js 0x417381
mov edx, dword [esp + 0xc]
lea esi, [edx - 1]
mov edx, ebx
cmp esi, 0x13
jl 0x417394
add edx, 0xffffffee
mov esi, 0x12
mov dword [esp + 0x14], edx
jmp 0x4173b7
test esi, esi
je 0x417494
mov ebx, edx
mov edx, esi
not edx
and edx, ebx
add edx, edx
xor ebx, esi
sub edx, ebx
mov dword [esp + 0x14], edx
cmp esi, 0xa
jl 0x417589
mov byte [esp + 7], cl
xor ebx, ebx
jmp 0x4173ef
mov ch, byte [eax + 1]
add eax, 2
mov dword [esp + 8], eax
lea ebx, [ebx + ebx*4]
movsx eax, ch
mov edx, eax
or edx, 0xffffffcf
and eax, 0xffffffcf
lea edx, [edx + ebx*2]
lea ebx, [eax + edx]
inc ebx
mov eax, esi
not eax
lea esi, [eax + esi*2]
cmp esi, 9
mov eax, dword [esp + 8]
jle 0x4173f9
mov ch, byte [eax]
cmp ch, 0x2e
je 0x4173c0
inc eax
jmp 0x4173c6
cvtsi2sd xmm0, ebx
mov esi, 9
inc esi
xor ebx, ebx
jmp 0x417448
mov ch, byte [eax + 1]
add eax, 2
mov dword [esp + 8], eax
mov eax, ebx
and eax, 0xa
mov edx, ebx
or ebx, 0xa
imul ebx, eax
xor eax, 0xa
and edx, 0xfffffff5
imul edx, eax
add ebx, edx
movsx eax, ch
add ebx, eax
add ebx, 0xffffffd0
dec esi
cmp esi, 1
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 8]
jle 0x417452
mov ch, byte [eax]
cmp ch, 0x2e
je 0x417410
inc eax
jmp 0x417416
xorps xmm1, xmm1
cvtsi2sd xmm1, ebx
mov eax, dword [esp + 0x10]
add eax, edi
or edx, 0x20
cmp edx, 0x65
jne 0x417487
mov ebx, dword [esp + 0x1c]
movzx edx, byte [edi + ebx + 1]
cmp edx, 0x2b
mov esi, dword [esp + 0xc]
je 0x4174ba
cmp edx, 0x2d
jne 0x4174c1
add eax, esi
add eax, 2
mov cl, 1
jmp 0x4174c7
add eax, dword [esp + 0xc]
mov edi, eax
xor eax, eax
jmp 0x41751a
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4174a0
mov edx, dword [ebp + 8]
mov dword [eax], edx
xorpd xmm0, xmm0
cmp cl, 0x2d
jne 0x4175d6
movsd xmm0, qword [0x445928]
jmp 0x4175d6
add eax, esi
add eax, 2
jmp 0x4174c5
lea eax, [edi + ebx]
inc eax
xor ecx, ecx
mov edx, eax
movzx eax, byte [eax]
mov ah, al
add ah, 0xd0
xor esi, esi
cmp ah, 9
ja 0x41750f
xor esi, esi
nop word [eax + eax]
mov edi, esi
or edi, 0xa
mov ebx, esi
and ebx, 0xa
imul edi, ebx
xor ebx, 0xa
and esi, 0xfffffff5
imul esi, ebx
movzx eax, al
add esi, edi
add esi, eax
add esi, 0xffffffd0
movzx eax, byte [edx + 1]
inc edx
mov ah, al
add ah, 0xd0
cmp ah, 0xa
jb 0x4174e0
mov edi, edx
mov eax, esi
neg eax
test cl, cl
cmove eax, esi
mov esi, dword [ebp + 0x10]
add eax, dword [esp + 0x14]
mulsd xmm0, qword [0x445930]
mov edx, eax
neg edx
cmovs edx, eax
cmp edx, 0x200
jl 0x41754e
mov edx, 0x1ff
test esi, esi
je 0x417547
mov dword [esi], 0x22
movzx ecx, byte [esp + 7]
jmp 0x417557
test eax, eax
movzx ecx, byte [esp + 7]
je 0x4175a6
movsd xmm2, qword [0x445938]
mov esi, 0x4458e0
jmp 0x41757e
mov ebx, edx
sar ebx, 1
add esi, 8
cmp edx, 2
mov edx, ebx
jb 0x4175ae
test dl, 1
je 0x417570
mulsd xmm2, qword [esi]
jmp 0x417570
mov byte [esp + 7], cl
xorpd xmm0, xmm0
xorpd xmm1, xmm1
test esi, esi
mov edx, dword [esp + 0x18]
jg 0x417402
jmp 0x417459
movsd xmm2, qword [0x445938]
addsd xmm0, xmm1
test eax, eax
js 0x4175bc
mulsd xmm0, xmm2
jmp 0x4175c0
divsd xmm0, xmm2
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4175c9
mov dword [eax], edi
cmp cl, 0x2d
jne 0x4175d6
xorpd xmm0, xmmword [0x4445a0]
movsd qword [esp + 0x20], xmm0
fld qword [esp + 0x20]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret