Function at 0x408610
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov edi, 1
mov ebx, 2
xor edx, edx
mov eax, dword [esp + 0x44]
jmp 0x408633
inc edi
inc ebx
inc edx
mov ch, byte [eax + edx]
movzx esi, ch
lea ebp, [esi - 9]
cmp ebp, 5
jb 0x408630
cmp esi, 0x20
je 0x408630
mov byte [esp + 7], ch
add ch, 0xd5
test ch, 0xfd
mov ecx, 0
sete cl
add ecx, eax
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov esi, 0xffffffff
jmp 0x408679
mov ebp, esi
mov ecx, dword [esp + 0x14]
inc ecx
mov esi, ebp
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
add ecx, ebp
movzx eax, byte [edi + ecx - 1]
lea ebp, [eax - 0x30]
cmp ebp, 0xa
jb 0x408670
mov dword [esp + 0x20], eax
cmp eax, 0x2e
jne 0x4086a1
mov ebp, dword [esp + 0x14]
test esi, esi
js 0x408672
mov dword [esp + 0x1c], ecx
xor eax, eax
test esi, esi
setns ch
mov ebp, dword [esp + 0x14]
jns 0x4086b4
mov esi, ebp
add edx, dword [esp + 0x10]
mov al, ch
mov ecx, eax
sub ebp, eax
cmp ebp, 0x10
mov eax, dword [esp + 0x44]
jl 0x4086d5
add esi, 0xfffffff1
mov ebp, 0xf
mov dword [esp + 0x18], esi
jmp 0x4086fe
test ebp, ebp
je 0x408749
neg ecx
mov eax, esi
not eax
and eax, ebp
mov dword [esp], eax
mov eax, dword [esp + 0x14]
not eax
sub eax, ecx
and eax, esi
sub eax, dword [esp]
mov dword [esp + 0x18], eax
cmp ebp, 9
jle 0x4087b9
mov esi, dword [esp + 0x10]
lea ecx, [esi + edi]
movzx eax, byte [esi + edi - 1]
cmp al, 0x2e
jne 0x408718
movzx eax, byte [ecx]
add esi, ebx
mov dword [esp], esi
jmp 0x40871b
mov dword [esp], ecx
movsx esi, al
lea ecx, [esi - 0x30]
cmp ebp, 0xb
jb 0x4088fb
mov dword [esp + 8], ecx
mov eax, dword [esp]
movzx ecx, byte [eax]
cmp cl, 0x2e
jne 0x40875f
movzx ecx, byte [eax + 1]
mov byte [esp + 0xf], cl
add eax, 2
mov dword [esp], eax
jmp 0x408767
mov edx, dword [esp + 0x48]
test edx, edx
movzx ecx, byte [esp + 7]
je 0x408758
mov dword [edx], eax
fldz
jmp 0x408a48
inc eax
mov dword [esp], eax
mov byte [esp + 0xf], cl
mov ecx, dword [esp + 8]
mov eax, ecx
and eax, 0xfffffff5
mov dword [esp + 0x24], eax
and esi, 0xa
mov eax, esi
xor eax, 0xa
imul eax, dword [esp + 0x24]
or ecx, 0xa
imul ecx, esi
movsx esi, byte [esp + 0xf]
add ecx, eax
add ecx, esi
add ecx, 0xffffffd0
cmp ebp, 0xb
je 0x4088fb
mov esi, ecx
mov eax, dword [esp]
movzx ecx, byte [eax]
cmp cl, 0x2e
jne 0x4087d5
movzx ecx, byte [eax + 1]
mov byte [esp + 8], cl
add eax, 2
mov dword [esp], eax
jmp 0x4087dd
fldz
mov dword [esp], edx
fld st(0)
test ebp, ebp
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
jg 0x40890a
jmp 0x408945
inc eax
mov dword [esp], eax
mov byte [esp + 8], cl
mov ecx, esi
and ecx, 0xfffffff5
mov eax, esi
and eax, 0xa
or esi, 0xa
imul esi, eax
xor eax, 0xa
imul eax, ecx
movsx ecx, byte [esp + 8]
mov dword [esp + 8], ecx
mov ecx, esi
add ecx, eax
mov eax, dword [esp + 8]
add ecx, eax
add ecx, 0xffffffd0
cmp ebp, 0xd
jb 0x4088fb
mov esi, ecx
mov eax, dword [esp]
movzx ecx, byte [eax]
cmp cl, 0x2e
jne 0x40882f
movzx ecx, byte [eax + 1]
mov byte [esp + 8], cl
add eax, 2
mov dword [esp], eax
jmp 0x408837
inc eax
mov dword [esp], eax
mov byte [esp + 8], cl
mov ecx, esi
and ecx, 0xfffffff5
mov eax, esi
and eax, 0xa
or esi, 0xa
imul esi, eax
xor eax, 0xa
imul eax, ecx
movsx ecx, byte [esp + 8]
mov dword [esp + 8], ecx
mov ecx, esi
add ecx, eax
mov eax, dword [esp + 8]
add ecx, eax
add ecx, 0xffffffd0
cmp ebp, 0xd
je 0x4088fb
mov esi, ecx
mov eax, dword [esp]
movzx ecx, byte [eax]
cmp cl, 0x2e
jne 0x408889
movzx ecx, byte [eax + 1]
mov byte [esp + 8], cl
add eax, 2
mov dword [esp], eax
jmp 0x408891
inc eax
mov dword [esp], eax
mov byte [esp + 8], cl
mov ecx, esi
and ecx, 0xfffffff5
mov eax, esi
and eax, 0xa
or esi, 0xa
imul esi, eax
xor eax, 0xa
imul eax, ecx
movsx ecx, byte [esp + 8]
mov dword [esp + 8], ecx
mov ecx, esi
add ecx, eax
mov eax, dword [esp + 8]
add ecx, eax
add ecx, 0xffffffd0
cmp ebp, 0xf
jb 0x4088fb
mov esi, ecx
mov ecx, dword [esp]
movzx eax, byte [ecx]
cmp al, 0x2e
jne 0x4088d7
movzx eax, byte [ecx + 1]
add ecx, 2
jmp 0x4088d8
inc ecx
mov dword [esp], ecx
mov ecx, esi
and esi, 0xfffffff5
mov ebp, ecx
and ebp, 0xa
or ecx, 0xa
imul ecx, ebp
xor ebp, 0xa
imul ebp, esi
movsx eax, al
add ecx, ebp
add ecx, eax
add ecx, 0xffffffd0
mov dword [esp + 0x2c], ecx
mov ebp, 9
fild dword [esp + 0x2c]
fldz
fstp st(0)
xor eax, eax
jmp 0x40892c
mov ch, byte [esi + 1]
add esi, 2
mov dword [esp], esi
lea eax, [eax + eax*4]
movsx esi, ch
lea eax, [esi + eax*2]
add eax, 0xffffffd0
dec ebp
mov esi, dword [esp + 0x20]
jle 0x408939
mov esi, dword [esp]
mov ch, byte [esi]
cmp ch, 0x2e
je 0x408910
inc esi
jmp 0x408916
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
fxch st(1)
fmul dword [str._knN]
faddp st(1)
or esi, 0x20
cmp esi, 0x65
jne 0x40896e
mov ch, byte [edi + eax]
mov al, ch
add al, 0xd5
test al, 0xfd
mov esi, dword [esp + 0x14]
je 0x408976
mov eax, dword [esp + 0x10]
add eax, edi
jmp 0x40897c
add edx, dword [esp + 0x14]
xor ebp, ebp
jmp 0x4089cd
mov eax, dword [esp + 0x10]
add eax, ebx
lea edx, [eax + esi]
movzx ebx, byte [eax + esi]
lea esi, [ebx - 0x30]
xor ebp, ebp
cmp esi, 9
ja 0x4089c6
xor ebp, ebp
nop
mov esi, ebp
and esi, 0xfffffff5
mov edi, ebp
and edi, 0xa
or ebp, 0xa
imul ebp, edi
xor edi, 0xa
imul edi, esi
add ebp, edi
movsx esi, bl
add esi, 0xffffffd0
mov edi, ebp
and edi, esi
xor esi, ebp
lea ebp, [esi + edi*2]
movzx ebx, byte [edx + 1]
inc edx
mov esi, ebx
add esi, 0xffffffd0
cmp esi, 0xa
jb 0x408990
cmp ch, 0x2d
jne 0x4089cd
neg ebp
movzx ecx, byte [esp + 7]
add ebp, dword [esp + 0x18]
mov esi, ebp
sar esi, 0x1f
mov eax, ebp
xor eax, esi
sub eax, esi
cmp eax, 0x200
jl 0x4089ff
mov eax, 0x1ff
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x4089fb
mov dword [esi], 0x22
fldz
jmp 0x408a05
fld1
test ebp, ebp
je 0x408a26
fstp st(0)
fld1
mov esi, 0x43c250
jmp 0x408a1e
mov ebx, eax
sar ebx, 1
add esi, 8
cmp eax, 2
mov eax, ebx
jb 0x408a26
test al, 1
je 0x408a10
fmul qword [esi]
jmp 0x408a10
fld st(1)
fmul st(1)
test ebp, ebp
jns 0x408a3a
fstp st(0)
fdivp st(1)
fldz
fldz
fxch st(1)
fxch st(2)
fstp st(2)
fstp st(0)
mov eax, dword [esp + 0x48]
test eax, eax
je 0x408a48
mov dword [eax], edx
fld st(0)
fchs
cmp cl, 0x2d
je 0x408a57
fstp st(0)
fldz
fxch st(1)
fstp st(1)
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret