Function at 0x100bff9
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push esi
push edi
lea eax, [ebp - 8]
xor edi, edi
push eax
mov dword [ebp - 8], edi
call dword [0x748925a8]
mov esi, eax
cmp esi, edi
jl 0x100c06a
push dword [ebp - 8]
mov ecx, dword [ebp + 8]
call dword [0x748923c8]
mov esi, eax
cmp esi, edi
jl 0x100c06a
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 4]
push eax
push edi
push dword [ebp + 8]
mov dword [ebp - 8], edi
push edi
push dword [ebp + 0x10]
mov dword [ebp - 4], edi
call dword [0x74892320]
mov esi, eax
cmp esi, edi
jl 0x100c05f
push dword [ebp - 4]
mov ecx, dword [ebp + 8]
call dword [0x7489231c]
mov esi, eax
cmp esi, edi
jl 0x100c05f
mov dword [ebp - 4], edi
mov ecx, dword [ebp - 4]
cmp ecx, edi
jne 0x100ed02
mov ecx, dword [ebp - 8]
cmp ecx, edi
jne 0x100ed0f
pop edi
mov eax, esi
pop esi
leave
ret 0xc
test eax, 0xc063402a
jo 0x100ecdb
scasd eax, dword es:[edi]
loopne 0x100ed06
and byte [ebx], ch
mov al, byte [0xa02ba02a]
or al, 0xb
add dword [ebx], ecx
or eax, 0xe02f4024
and dword [eax], eax
test eax, 0xe06f0021
jno 0x100ecf8
and dword [eax], eax
outsd dx, dword [esi]
loopne 0x100ed68
add byte [ebp + 0x25802340], ah
inc eax
sub dword [eax], esp
movsd dword es:[edi], dword [esi]
inc eax
and eax, dword [eax + 0x20294025]
and eax, dword [eax]
or al, 0xb
add dword [ebx], ecx
or eax, 0xe02f0021
and dword [eax], eax
test eax, 0xc0774024
and al, 0x40
ja 0x100ecd3
insb byte es:[edi], dx
inc eax
cmpsd dword [esi], dword es:[edi]
shl byte [eax + eax*2], 0x2f
loopne 0x100ed3e
and byte [eax + eax*2], 0xc
or eax, dword [ecx]
or ecx, dword [0x8022e02f]
das
loopne 0x100ed25
loopne 0x100ed49
sub byte [edi], 0xe0
cli
mov al, byte [0x60e02f]
ja 0x100ecf2
movsb byte es:[edi], byte [esi]
inc eax
and eax, 0x22402540
and byte [eax + eax*2], 0xc
or eax, dword [ecx]
or ecx, dword [0x802a8022]
add dword [ebx], ecx
or eax, 0x802a8022
sub ah, al
sti
add byte [edx], ch
inc eax
bound esp, qword [eax]
jo 0x100ed4f
sub al, byte [eax + 0x62]
and byte [eax], dh
scasd eax, dword es:[edi]
loopne 0x100ed7c
mov al, byte [0xa02aa02a]
aas
loopne 0x100ed66
or eax, dword [ecx]
or ecx, dword [0xe0278022]
sub al, 0x80
mul eax
and al, 0x80
loopne 0x100eddf
sub byte [edi + 0x224022e0], 0xe0
and al, 0x20
sub al, al
or al, 0xb
add dword [ebx], ecx
or eax, 0xc0270021
and al, 0x40
test eax, 0xe0774024
insb byte es:[edi], dx
add byte [edi], ah
shl byte [eax + eax*2], 0xf7
shl byte [eax + eax*2], 0x77
loopne 0x100edf4
add byte [edi + 0x2a2022e0], ah
mov al, byte [0x6020a02f]
or al, 0xb
add dword [ebx], ecx
or eax, 0xc0270021
and al, byte [eax + 0x20e0f7]
ja 0x100ed64
insd dword es:[edi], dx
inc eax
cmpsd dword [esi], dword es:[edi]
shl byte [0x25c02740], 0x20
and al, ah
or al, 0xb
add dword [ebx], ecx
or eax, 0xe02f0021
sub byte [eax + 0x2400f7], ah
loopne 0x100ee36
and byte [eax + eax*4 + 0x20e02f], 0x24
sub byte [eax], 0x40
or al, 0xb
add dword [ebx], ecx
or eax, 0x80288020
movsb byte es:[edi], byte [esi]
sub byte [edi], 0xe0
and byte [eax], al
and al, 0x80
sub byte [eax + 0xc], al
or eax, dword [ecx]
or ecx, dword [0x80288020]
and eax, 0x23a0f0c0
loopne 0x100ee49
invalid
xor byte [ebp - 0x20], 0xa7
loopne 0x100ed88
and byte [0x252027e0], ah
loopne 0x100ee0a
and byte [ebx + ecx], cl
add dword [ebx], ecx
or eax, 0x4024c027
and eax, dword [eax - 0x1fd1bf0c]
push 0xffffffffffffffa0
je 0x100ee3d
xor ah, 0x40
loopne 0x100ee64
mov al, byte [0xa0aa4074]
and dword [eax], eax
das
loopne 0x100ee29
stosb byte es:[edi], al
mov al, byte [0xe02f0021]
and eax, 0xc202940
or eax, dword [ecx]
inc eax
sub dword [eax], esp
or al, 0xb
add dword [ebx], ecx
or eax, 0x2022e02e
or ecx, dword [0x2022e02e]
sub ah, byte [eax - 0x5fd59f0a]
jno 0x100ee18
outsd dx, dword [esi]
loopne 0x100edc3
and byte [edi], ch
loopne 0x100ee47
and byte [edi], ch
loopne 0x100ee4b
and byte [ebx + ecx], cl
add dword [ebx], ecx
or eax, 0xe02f0021
sub dword [eax], esp
test eax, 0x40748022
and dword [eax], eax
das
loopne 0x100ee57
and bh, dh
shl byte [edx], 0x80
je 0x100ee75
xor byte [eax + eax*2 + 0x6f], 0xe0
mov al, byte [0x25402740]
inc eax
outsd dx, dword [esi]
loopne 0x100edd8
inc eax
daa
inc eax
and eax, 0x20402740
ror byte [ebx + ecx], 1
or ecx, dword [0xe0338020]
daa
inc eax
and al, al
or al, 0xb
add dword [ebx], ecx
or eax, 0xe0338020
xor byte [ebx], 0xe0
loopne 0x100ee73
sub byte [eax - 0x5fdd1f0d], al
jnp 0x100ee32
xor bl, 0xe0
and ah, byte [eax - 0x5f951f85]
mov al, byte [0xa06ae07b]
push 0xffffffffffffffa0
stosd dword es:[edi], eax
loopne 0x100ee7f
sub byte [ebx], 0xe0
sub byte [eax + 0xb0ce037], al
add dword [ebx], ecx
or eax, 0xe02e4024
aaa
loopne 0x100ee6b
or eax, dword [ecx]
or ecx, dword [0xe02e4024]
inc eax
loopne 0x100ee5c
hlt
inc eax
loopne 0x100ee90
and al, 0x40
inc eax
jle 0x100ee4f
inc eax
scasd eax, dword es:[edi]
loopne 0x100ee94
and byte [eax], ah
and byte [edi], ah
daa
loopne 0x100ee98
and byte [edi], ch
loopne 0x100ee88
or eax, dword [ecx]
or ecx, dword [0xe05f0041]
or eax, 0xe05f0041
push ecx
add bh, dh
rcl byte [ecx + 0x40], 0x5f
push ecx
inc eax
pop edi
loopne 0x100ee7e
inc eax
xlatb
rcl byte [ebp + 0x40], 0x57
push ebp
inc eax
push edi
rcl byte [ebp + 0x40], 0x64
ror byte [ebx + ecx], 1
push ebp
inc eax
ror byte fs:[ebx + ecx], 1
or al, 0xb
add dword [ebx], ecx
or eax, 0x80ff4010
or ecx, dword [0x80ff4010]
push ebp
add byte [ebp - 0x20], bh
push ebp
inc eax
std
inc eax
adc al, byte [eax + 4]
add bh, bh
loopne 0x100eec5
add byte [eax + eax*4], ah
les esp, [eax + 0xc]
or eax, dword [ecx]
or ecx, dword [0xe02e0024]
and byte [eax - 0x3fd55f02], ah
outsb dx, byte [esi]
sal byte [eax - 0x60], 0xae
mov al, byte [0xc03fa022]
and al, 0x80
sub al, 0x80
or al, 0xb
add dword [ebx], ecx
or eax, 0x91c0f7
cmc
add byte [edi - 0x5b7f0d20], dl
invalid
movsb byte es:[edi], byte [esi]
mov al, byte [0x460d8]
jmp eax