Function at 0x100fe9a
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x28
xor eax, eax
inc eax
push esi
push edi
mov edi, ecx
push 0
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp - 4]
push ecx
lea ecx, [ebp - 0x28]
push ecx
push 8
push eax
mov ecx, edi
call fcn.01050c70
mov esi, eax
test esi, esi
jne 0x100fede
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
cmp edx, dword [ebp + 8]
je 0x101013f
push 2
pop eax
jmp 0x100fea9
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret 0x10
cmp ecx, dword [ebp - 4]
jne 0x100fed9
cmp dword [ebp + 0xc], 0
mov ecx, dword [ebp - 4]
je 0x10a1c3b
cmp ecx, dword [ebp + 0xc]
je 0x100fed9
jmp 0x10a1c3b
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, bh
adc bh, byte [ebp - 8]
inc byte [edi]
add byte [eax], al
clc
adc bh, byte [ebp - 8]
inc byte [edi]
add byte [eax], al
loopne 0x10a1d24
jge 0x10a1d0c
inc byte [edi]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
aas
inc ecx
push esi
outsd dx, dword [esi]
jne 0x10a1d9b
pop edi
outsd dx, dword [esi]
pop di
jb 0x10a1d8e
outsb dx, byte [esi]
inc eax
jae 0x10a1da7
inc eax
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
sub byte [esi + 0x7fef87e], dl
inc byte [edi]
add byte [eax], al
pop esp
xchg esi, eax
jle 0x10a1d94
clc
inc byte [edi]
add byte [eax], al
mov al, byte [0xfef87e96]
pop es
inc byte [edi]
add byte [eax], al
in al, dx
add ah, ch
xchg esi, eax
jle 0x10a1da4
inc byte [edi]
add byte [eax], al
inc eax
xchg edi, eax
jle 0x10a1dac
inc byte [edi]
add byte [eax], al
test byte [edi + 0x7fef87e], dl
add byte [eax], al
les edx, [edi + 0x7fef87e]
add byte [eax], al
and byte [eax + 0x7fef87e], bl
add byte [eax], al
sbb byte [eax + 0x7fef87e], 0
add al, dl
cwde
jle 0x10a1dd4
inc byte [edi]
add byte [eax], al
rcr byte [eax + 0x7fef87e], 1
inc byte [edi]
add byte [eax], al
xor al, 0x99
jle 0x10a1ddc
inc byte [edi]
add byte [eax], al
nop
cdq
jle 0x10a1de4
inc byte [edi]
add byte [eax], al
add byte [edx + 0x7fef87e], bl
add byte [eax], al
pop eax
lcall 0, 0x7fef87e
mov eax, 0xfef87e9a
pop es
inc byte [edi]
add byte [eax], al
sbb al, 0x9b
jle 0x10a1e04
inc byte [edi]
add byte [eax], al
mov word [ebx + 0x7fef87e], ds
add byte [eax], al
fcomp qword [ebx + 0x7fef87e]
inc byte [edi]
add byte [eax], al
cmp al, 0x9c
jle 0x10a1e1c
inc byte [edi]
add byte [eax], al
cwde
pushfd
jle 0x10a1e24
inc byte [edi]
add byte [eax], al
or byte [ebp + 0x7fef87e], bl
inc byte [edi]
add byte [eax], al
pushal
popfd
jle 0x10a1e34
inc byte [edi]
add byte [eax], al
mov esp, 0xfef87e9d
pop es
add byte [eax], al
and byte [esi + 0x7fef87e], bl
inc byte [edi]
add byte [eax], al
nop
sahf
jle 0x10a1e4c
inc byte [edi]
add byte [eax], al
loopne 0x10a1df8
jle 0x10a1e54
inc byte [edi]
add byte [eax], al
inc esp
lahf
jle 0x10a1e5c
inc byte [edi]
add byte [eax], al
mov al, byte [0xfef87e9f]
pop es
add byte [eax], al
adc byte [eax + 0x7fef87e], ah
add byte [eax], al
push 0xfef87ea0
pop es
add byte [eax], al
enter 0x7ea0, 0xfffffffffffffff8
inc byte [edi]
add byte [eax], al
sub al, 0xa1
jle 0x10a1e84
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1e8c
inc byte [edi]
add byte [eax], al
pushfd
mov eax, dword [0x7fef87e]
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1e9c
inc byte [edi]
add byte [eax], al
fsub qword [ebx + 0x7fef87e]
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1eac
inc byte [edi]
add byte [eax], al
sbb byte [esi + 0x7fef87e], ah
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1ebc
inc byte [edi]
add byte [eax], al
push esp
test al, 0x7e
clc
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1ecc
inc byte [edi]
add byte [eax], al
pushfd
mov eax, dword [0x7fef87e]
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1edc
inc byte [edi]
add byte [eax], al
fsub qword [ebx + 0x7fef87e]
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1eec
inc byte [edi]
add byte [eax], al
sbb byte [esi + 0x7fef87e], ah
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1efc
inc byte [edi]
add byte [eax], al
push esp
test al, 0x7e
clc
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1f0c
inc byte [edi]
add byte [eax], al
pushfd
mov eax, dword [0x7fef87e]
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1f1c
inc byte [edi]
add byte [eax], al
fsub qword [ebx + 0x7fef87e]
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1f2c
inc byte [edi]
add byte [eax], al
sbb byte [esi + 0x7fef87e], ah
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1f3c
inc byte [edi]
add byte [eax], al
push esp
test al, 0x7e
clc
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1f4c
inc byte [edi]
add byte [eax], al
pushfd
mov eax, dword [0x7fef87e]
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1f5c
inc byte [edi]
add byte [eax], al
fsub qword [ebx + 0x7fef87e]
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1f6c
inc byte [edi]
add byte [eax], al
sbb byte [esi + 0x7fef87e], ah
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1f7c
inc byte [edi]
add byte [eax], al
push esp
test al, 0x7e
clc
jle 0x10a1f84
inc byte [edi]
add byte [eax], al
dec esp
pop ds
jg 0x10a1f8c
inc byte [edi]
add byte [eax], al
pushfd
stosb byte es:[edi], al
jle 0x10a1f94
inc byte [edi]
add byte [eax], al
enter 0x7eaa, 0xfffffffffffffff8
inc byte [edi]
add byte [eax], al
cld
stosb byte es:[edi], al
jle 0x10a1fa4
inc byte [edi]
add byte [eax], al
push esp
stosd dword es:[edi], eax
jle 0x10a1fac
inc byte [edi]
add byte [eax], al
mov al, byte [0xfef87eac]
pop es
add byte [eax], al
adc byte [esi + 0x7fef87e], ch
inc byte [edi]
add byte [eax], al
je 0x10a1f78
scasb al, byte es:[edi]
jle 0x10a1fc4
inc byte [edi]
add byte [eax], al
cld
scasb al, byte es:[edi]
jle 0x10a1fcc
inc byte [edi]
add byte [eax], al
jo 0x10a1f8a
jle 0x10a1fd4
inc byte [edi]
add byte [eax], al
or al, 0xb2
jle 0x10a1fdc
inc byte [edi]
add byte [eax], al
mov dl, 0x7e
clc
inc byte [edi]
add byte [eax], al
loopne 0x10a1fa4
jle 0x10a1fec
inc byte [edi]
add byte [eax], al
mov bl, 0x7e
clc
inc byte [edi]
add byte [eax], al
or al, 0xb4
jle 0x10a1ffc
inc byte [edi]
add byte [eax], al
mov al, 0xb5
jle 0x10a2004
inc byte [edi]
add byte [eax], al
js 0x10a1fc9
jle 0x10a200c
inc byte [edi]
add byte [eax], al
xor byte [eax + 0x7fef87e], bh
add byte [eax], al
adc byte [ecx + 0x7fef87e], bh
add byte [eax], al
fdivr dword [edx + 0x7fef87e]
add byte [eax], al
les edi, [esi + edi*2 + 0x7fef8]
add byte [eax - 0x41], al
jle 0x10a2034
inc byte [edi]
add byte [eax], al
inc eax
mov edi, 0x7fef87e
inc byte [edi]
add byte [eax], al
les edi, [esi + edi*2 + 0x7fef8]
add byte [eax - 0x41], al
jle 0x10a2044
inc byte [edi]
add byte [eax], al
inc eax
mov edi, 0x7fef87e