Function at 0x1896c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x34
mov esi, 1
mov ebp, 2
xor eax, eax
mov ebx, dword [esp + 0x48]
jmp 0x1896e3
inc esi
inc ebp
inc eax
mov ch, byte [ebx + eax]
movzx edx, ch
lea edi, [edx - 9]
cmp edi, 5
jb 0x1896e0
cmp edx, 0x20
je 0x1896e0
mov byte [esp + 0xb], ch
add ch, 0xd5
xor edx, edx
test ch, 0xfd
sete dl
add edx, ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], 0xffffffff
xor edi, edi
jmp 0x189729
mov edx, dword [esp + 0xc]
inc edi
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x18]
lea ebx, [edx + edi]
movzx ecx, byte [eax + ebx]
lea edx, [ecx - 0x30]
cmp edx, 0xa
jb 0x189720
mov dword [esp + 0x24], ebx
cmp cl, 0x2e
jne 0x18974e
mov edx, edi
cmp dword [esp + 0xc], 0
js 0x189724
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], ecx
xor edx, edx
cmp dword [esp + 0xc], 0
setns dl
mov dword [esp + 0x14], edx
jns 0x18976a
mov dword [esp + 0xc], edi
mov ebx, edi
sub ebx, dword [esp + 0x14]
mov esi, ebx
cmp ebx, 0xf
movzx ecx, byte [esp + 0xb]
mov edx, dword [esp + 0x48]
jl 0x189785
mov esi, 0xf
test esi, esi
je 0x1897e5
cmp esi, 9
mov dword [esp + 0x1c], edi
jle 0x189807
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
lea edi, [edx + ecx]
mov ch, byte [edx + ecx - 1]
cmp ch, 0x2e
jne 0x1897ab
mov ch, byte [edi]
lea edi, [edx + ebp]
movsx ebx, ch
lea ecx, [ebx - 0x30]
mov dword [esp + 4], ecx
mov ecx, esi
mov edx, esi
not edx
lea esi, [edx + esi*2]
cmp esi, 0xa
jl 0x18997d
mov dword [esp + 0x10], esi
mov dword [esp], ecx
movzx ecx, byte [edi]
cmp cl, 0x2e
jne 0x189820
movzx ecx, byte [edi + 1]
mov byte [esp + 0xa], cl
add edi, 2
mov esi, ebx
jmp 0x189827
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x1897ef
mov dword [eax], edx
fldz
fld st(0)
fchs
cmp cl, 0x2d
je 0x189800
fstp st(0)
fldz
fxch st(1)
fstp st(1)
jmp 0x189b37
fldz
test ebx, ebx
jle 0x189819
mov edx, dword [esp + 0x18]
lea edi, [edx + eax]
jmp 0x18998e
fld st(0)
jmp 0x1899e8
inc edi
mov esi, ebx
mov byte [esp + 0xa], cl
mov ebx, dword [esp + 4]
mov edx, ebx
and edx, 0xfffffff5
and esi, 0xa
mov ecx, esi
xor ecx, 0xa
imul ecx, edx
or ebx, 0xa
imul ebx, esi
movsx edx, byte [esp + 0xa]
add ebx, ecx
add ebx, edx
add ebx, 0xffffffd0
mov dword [esp + 4], ebx
mov esi, dword [esp + 0x10]
add esi, esi
sub esi, dword [esp]
cmp esi, 0xa
jl 0x18997d
movzx edx, byte [edi]
cmp dl, 0x2e
jne 0x189874
movzx edx, byte [edi + 1]
add edi, 2
jmp 0x189875
inc edi
mov dword [esp], edi
mov ebx, dword [esp + 4]
mov edi, ebx
and edi, 0xfffffff5
mov ecx, ebx
and ecx, 0xa
or ebx, 0xa
imul ebx, ecx
xor ecx, 0xa
imul ecx, edi
movsx edx, dl
add ebx, ecx
add ebx, edx
add ebx, 0xffffffd0
mov dword [esp + 4], ebx
mov edx, esi
not edx
lea edx, [edx + esi*2]
cmp edx, 0xa
jl 0x18997a
mov edi, dword [esp]
movzx ecx, byte [edi]
cmp cl, 0x2e
jne 0x1898cb
movzx ecx, byte [edi + 1]
mov byte [esp + 0x10], cl
add edi, 2
mov dword [esp], edi
jmp 0x1898d3
inc edi
mov dword [esp], edi
mov byte [esp + 0x10], cl
mov ebx, dword [esp + 4]
mov edi, ebx
and edi, 0xfffffff5
mov ecx, ebx
and ecx, 0xa
or ebx, 0xa
imul ebx, ecx
xor ecx, 0xa
imul ecx, edi
movsx edi, byte [esp + 0x10]
add ebx, ecx
add ebx, edi
add ebx, 0xffffffd0
mov dword [esp + 4], ebx
add edx, edx
sub edx, esi
cmp edx, 0xa
jl 0x18997a
mov edi, dword [esp]
movzx ecx, byte [edi]
cmp cl, 0x2e
jne 0x189921
movzx ecx, byte [edi + 1]
mov byte [esp + 0x10], cl
add edi, 2
mov dword [esp], edi
jmp 0x189929
inc edi
mov dword [esp], edi
mov byte [esp + 0x10], cl
mov ebx, dword [esp + 4]
mov edi, ebx
and edi, 0xfffffff5
mov ecx, ebx
and ecx, 0xa
or ebx, 0xa
imul ebx, ecx
xor ecx, 0xa
imul ecx, edi
movsx edi, byte [esp + 0x10]
add ebx, ecx
add ebx, edi
add ebx, 0xffffffd0
mov dword [esp + 4], ebx
mov edi, edx
not edi
lea edx, [edi + edx*2]
cmp edx, 0xa
jl 0x18997a
mov ecx, dword [esp]
movzx edx, byte [ecx]
cmp dl, 0x2e
jne 0x189b3f
movzx edx, byte [ecx + 1]
add ecx, 2
jmp 0x189b40
mov edi, dword [esp]
mov ecx, dword [esp + 4]
mov dword [esp + 0x30], ecx
mov esi, 9
fild dword [esp + 0x30]
inc esi
xor ebx, ebx
jmp 0x1899d6
mov ch, byte [edi + 1]
add edi, 2
mov dword [esp], edi
mov edx, ebx
and edx, 0xa
mov edi, ebx
or ebx, 0xa
imul ebx, edx
xor edx, 0xa
and edi, 0xfffffff5
imul edi, edx
movsx edx, ch
add ebx, edi
add ebx, edx
add ebx, 0xffffffd0
mov ecx, esi
dec ecx
mov esi, ecx
cmp ecx, 1
mov edi, dword [esp]
jle 0x1899e0
mov ch, byte [edi]
cmp ch, 0x2e
je 0x1899a0
inc edi
jmp 0x1899a6
mov dword [esp + 0x2c], ebx
fild dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
fxch st(1)
fmul dword [str._knN]
neg edx
faddp st(1)
mov ecx, dword [esp + 0x28]
or ecx, 0x20
cmp ecx, 0x65
mov dword [esp + 0x14], edx
jne 0x189a27
movzx eax, byte [eax + ebx + 1]
mov edx, eax
add dl, 0xd5
test dl, 0xfd
je 0x189a31
add edi, esi
jmp 0x189a33
add eax, dword [esp + 0x1c]
add edi, eax
xor edx, edx
jmp 0x189a7b
add edi, ebp
mov edx, edi
mov ebx, dword [esp + 0x1c]
lea ebp, [edi + ebx]
mov edi, ebx
movzx ebx, byte [edx + ebx]
lea esi, [ebx - 0x30]
xor edx, edx
cmp esi, 9
ja 0x189a73
xor edx, edx
nop
nop
add edx, edx
lea edx, [edx + edx*4]
movsx esi, bl
add esi, 0xffffffd0
mov edi, esi
and edi, edx
xor esi, edx
lea edx, [esi + edi*2]
movzx ebx, byte [ebp + 1]
inc ebp
mov esi, ebx
add esi, 0xffffffd0
cmp esi, 0xa
jb 0x189a50
mov edi, ebp
cmp al, 0x2d
jne 0x189a7b
neg edx
mov ebp, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
lea eax, [ecx + ebx]
cmp eax, 0x10
jge 0x189a94
mov eax, 0xf
add ebp, edx
add ebp, eax
mov eax, ebp
sub eax, ebx
sub eax, ecx
add eax, 0xfffffff1
mov esi, eax
sar esi, 0x1f
mov edx, eax
xor edx, esi
sub edx, esi
cmp edx, 0x200
jb 0x189acb
mov edx, 0x1ff
mov esi, dword [esp + 0x50]
test esi, esi
je 0x189ac7
mov dword [esi], 0x22
fldz
jmp 0x189ad9
sub ebx, ebp
lea esi, [ebx + ecx]
add esi, 0xf
fld1
test esi, esi
je 0x189b09
fstp st(0)
fld1
mov esi, 0x1be4e0
mov ebp, edi
jmp 0x189b00
mov ebx, edx
shr ebx, 1
add esi, 8
cmp edx, 2
mov edx, ebx
mov edi, ebp
jb 0x189b09
test dl, 1
je 0x189af0
fmul qword [esi]
jmp 0x189af0
fld st(1)
fmul st(1)
test eax, eax
jns 0x189b1d
fstp st(0)
fdivp st(1)
fldz
fldz
fxch st(1)
fxch st(2)
fstp st(2)
fstp st(0)
mov eax, dword [esp + 0x4c]
test eax, eax
movzx ecx, byte [esp + 0xb]
je 0x189b30
mov dword [eax], edi
cmp cl, 0x2d
jne 0x189b37
fchs
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
inc ecx
mov dword [esp], ecx
mov ebx, dword [esp + 4]
mov edi, ebx
and edi, 0xfffffff5
mov ecx, ebx
and ecx, 0xa
or ebx, 0xa
imul ebx, ecx
xor ecx, 0xa
imul ecx, edi
mov edi, dword [esp]
movsx edx, dl
add ebx, ecx
add ebx, edx
add ebx, 0xffffffd0
mov dword [esp + 4], ebx
jmp 0x18997d