Function at 0x3008f30
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov ecx, dword [esp + 0x2c]
mov esi, ecx
jmp 0x3008f41
inc esi
movzx eax, byte [esi]
lea edx, [eax - 9]
cmp edx, 5
jb 0x3008f40
cmp eax, 0x20
je 0x3008f40
cmp eax, 0x2b
je 0x3008f63
cmp eax, 0x2d
jne 0x3008f64
inc esi
mov al, 1
mov dword [esp], eax
jmp 0x3008f6b
inc esi
mov dword [esp], 0
xor edi, edi
mov ebx, 0xffffffff
jmp 0x3008f85
mov eax, ebx
inc edi
mov ebx, eax
movzx edx, byte [esi + edi]
lea eax, [edx - 0x30]
cmp eax, 0xa
jb 0x3008f80
cmp dl, 0x2e
jne 0x3008f9c
mov eax, edi
test ebx, ebx
js 0x3008f82
mov dword [esp + 0xc], edx
mov dword [esp + 4], esi
xor eax, eax
test ebx, ebx
setns dl
jns 0x3008faf
mov ebx, edi
mov dword [esp + 8], ebx
mov al, dl
mov ebx, edi
sub ebx, eax
cmp ebx, 0x10
jl 0x3008fca
add dword [esp + 8], 0xfffffff1
mov ebx, 0xf
jmp 0x3008fe9
test ebx, ebx
je 0x30090cb
neg eax
mov ecx, dword [esp + 8]
sub ecx, eax
sub ecx, edi
mov dword [esp + 8], ecx
cmp ebx, 0xa
jl 0x30091d7
inc ebx
xor edx, edx
mov ecx, dword [esp + 4]
jmp 0x3009022
movzx eax, byte [ecx + 1]
add ecx, 2
lea edx, [edx + edx*4]
movsx eax, al
mov esi, eax
xor esi, 0xffffffcf
and eax, 0xffffffcf
lea edx, [esi + edx*2]
lea edx, [edx + eax*2]
inc edx
dec ebx
cmp ebx, 0xa
jle 0x300902c
movzx eax, byte [ecx]
cmp al, 0x2e
je 0x3009000
inc ecx
jmp 0x3009007
mov dword [esp + 0x14], edx
mov ebx, 9
fild dword [esp + 0x14]
fldz
fstp st(0)
inc ebx
xor edx, edx
jmp 0x300907d
movzx eax, byte [ecx + 1]
add ecx, 2
mov esi, edx
and esi, 0xa
mov ebp, edx
or edx, 0xa
imul edx, esi
xor esi, 0xa
and ebp, 0xfffffff5
imul ebp, esi
movsx eax, al
add edx, ebp
add edx, eax
add edx, 0xffffffd0
dec ebx
cmp ebx, 1
jle 0x3009087
movzx eax, byte [ecx]
cmp al, 0x2e
je 0x3009050
inc ecx
jmp 0x3009057
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fxch st(1)
fmul dword [str._knN]
faddp st(1)
mov eax, dword [esp + 0xc]
or eax, 0x20
cmp eax, 0x65
jne 0x30090c1
mov ebx, dword [esp + 4]
movzx eax, byte [ebx + edi + 1]
cmp eax, 0x2b
je 0x30090ee
cmp eax, 0x2d
jne 0x30090f5
add ebx, edi
add ebx, 2
mov cl, 1
jmp 0x30090fa
mov ebx, dword [esp + 4]
add ebx, edi
xor eax, eax
jmp 0x3009146
mov eax, dword [esp + 0x30]
test eax, eax
je 0x30090d5
mov dword [eax], ecx
fldz
fld st(0)
fchs
cmp byte [esp], 0
jne 0x30090e7
fstp st(0)
fldz
fxch st(1)
fstp st(1)
jmp 0x30091cf
add ebx, edi
add ebx, 2
jmp 0x30090f8
add ebx, edi
inc ebx
xor ecx, ecx
movzx edx, byte [ebx]
lea esi, [edx - 0x30]
xor eax, eax
cmp esi, 9
ja 0x3009140
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
and esi, 0xfffffff5
mov edi, eax
and edi, 0xa
or eax, 0xa
imul eax, edi
xor edi, 0xa
imul edi, esi
movsx edx, dl
add edx, eax
lea eax, [edi + edx]
add eax, 0xffffffd0
movzx edx, byte [ebx + 1]
inc ebx
mov esi, edx
add esi, 0xffffffd0
cmp esi, 0xa
jb 0x3009110
test cl, cl
je 0x3009146
neg eax
mov esi, dword [esp + 0x30]
add eax, dword [esp + 8]
mov edx, eax
sar edx, 0x1f
mov ecx, eax
xor ecx, edx
sub ecx, edx
cmp ecx, 0x200
jl 0x3009178
mov ecx, 0x1ff
mov edx, dword [esp + 0x34]
test edx, edx
je 0x3009174
mov dword [edx], 0x22
fldz
jmp 0x300917e
fld1
test eax, eax
je 0x30091a9
fstp st(0)
fld1
mov edx, 0x303e4e0
mov edi, ebx
jmp 0x30091a0
mov ebx, ecx
sar ebx, 1
add edx, 8
cmp ecx, 2
mov ecx, ebx
mov ebx, edi
jb 0x30091a9
test cl, 1
je 0x3009190
fmul qword [edx]
jmp 0x3009190
fld st(1)
fmul st(1)
test eax, eax
jns 0x30091bd
fstp st(0)
fdivp st(1)
fldz
fldz
fxch st(1)
fxch st(2)
fstp st(2)
fstp st(0)
test esi, esi
je 0x30091c7
mov dword [esi], ebx
cmp byte [esp], 0
je 0x30091cf
fchs
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
fldz
mov ecx, dword [esp + 4]
fld st(0)
test ebx, ebx
jg 0x300903b
jmp 0x300908f