Function at 0x10bbfba
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x13912f4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x18]
push ebx
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x14], eax
xor eax, eax
push esi
push edi
mov word [ebp - 0x10], ax
lea edi, [ebp - 0xe]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor edi, edi
cmp dword [ebp + 0xc], edi
mov dword [ebp - 0x18], ecx
jl 0x10bc1d4
test byte [ebp + 8], 2
mov esi, 0x10049e8
je 0x10bc0a3
call fcn.0103bfc7
in al, 0xb0
pushal
inc byte [ecx]
add byte [eax - 0x18], ah
mov al, 0x36
rcl bh, 0x8c
or ah, byte [eax - 0x20c43475]
jne 0x10bc076
call fcn.0103c38b
loopne 0x10bc07c
mov al, 0x16
add byte [eax], al
pushal
cmp ch, byte [ebx + 0x55dc3010]
jo 0x10bc01e
and ch, cl
sbb eax, 0x3619e000
adc byte [0xdc800000], ah
sbb dword [esi], esi
rcr bl, 1
xchg ecx, eax
sub dl, byte [eax + 0x28baf9e8]
add byte [ebx - 0x66], ah
mov al, 0x40
pop es
add byte [eax], al
xor byte [eax + edi*8 - 0x74f2fcb], ch
xor eax, 0x327e800
clc
call dword [esp + edx*8]
xor eax, 0xe10
adc byte [ebp - 0x2c], ah
sub eax, 0x35d410f0
or byte [ebx + 0x310e8ce], 0xf8
dec dword [eax + 0x7a50369e]
add byte [eax], al
xor byte [ecx], bl
int3
call fcn.0103c38b
mov byte [esi + 0x7a5036], bl
sahf
push eax
jp 0x10bc081
add byte [eax], dh
sbb esp, ecx
or esp, eax
test byte [esi + 0x458b9036], bl
in al, dx
cmp eax, edi
jne 0x10bc094
mov eax, esi
push edi
push ecx
push eax
push 0x400003f8
push 4
call fcn.010409b8
call fcn.0110c578
cwde
inc ebp
inc eax
adc eax, 0x9c000000
inc ebp
xor byte ss:[eax + 0x36], ah
adc eax, eax
test byte [ebp + 8], 1
je 0x10bc433
call fcn.0103bfc7
hlt
call fcn.012e6715
movsd dword es:[edi], dword [esi]
and al, byte [eax]
or al, 0xd9
xor eax, 0xc2d0
and ch, 0x9e
sub eax, 0x35d90850
sar byte [ebx], 0xcf
je 0x10bc25e
call fcn.0103bc4e
cld
inc eax
add byte [eax], 0
xor al, bh
nop
int 0xb7
sub byte [eax], ah
mov eax, ecx
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, di
jne 0x10bc207
sub eax, edx
sar eax, 1
cmp eax, 5
jbe 0x10bc233
mov eax, dword [ebp - 0x18]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, di
jne 0x10bc220
sub eax, edx
sar eax, 1
add eax, 0xfffffffb
jmp 0x10bc235
xor eax, eax
call fcn.01347b48
aam 0xe3
inc ecx
and byte [ebx], 0
add byte [eax], dl
loopne 0x10bc2a1
push eax
in al, 0x5d
loopne 0x10bc1d6
dec ebp
call 0x598c7bb
inc ecx
push eax
push 6
lea eax, [ebp - 0x10]
push eax
call fcn.0108e2fe
test byte [ebp + 8], 2
mov esi, 0x10049e8
je 0x10bc350
call fcn.0103c773
xor eax, dword [ecx]
add byte [eax + 0x60368cb4], al
xor dh, dh
or eax, 0x368cb840
invalid
add byte [eax], al
invalid
test byte [ebp + 8], 1
je 0x10bc433
call fcn.01298d5a
pushal
sub eax, 0x119036
add al, dh
pop esp
sub eax, 0x9bcf6036
sub eax, esi
call fcn.01347b48
add bh, ah
mov dh, 0x80
push cs
add byte [eax], al
mov al, byte [0x1035d620]
and al, 0xd6
xor eax, 0xf8c5e8d0
idiv edi
jo 0x10bc360
xor eax, 0x8d80
mov al, 0x6c
aad 0x35
sar byte [eax], 0xc7
sub eax, 0xec90a1d0
add dword ss:[0x136ec90], edi
je 0x10bc433
mov edx, dword [eax + 0x3c]
mov ecx, 0x1000008
and edx, ecx
cmp edx, ecx
jne 0x10bc433
call fcn.012e6715
aam 0x37
rcl byte ss:[eax + eax], 0
xor byte [eax - 0x2f4fd754], al
aaa
push eax
mov ecx, dword [ebp - 0x18]
cmp ecx, edi
jne 0x10bc3ff
call fcn.010906e8
popfd
mov cs, word [ebx]
pushal
add al, 0xa1
lock add byte ss:[ecx + 0x16f036], ah
add byte [eax - 0x2bd0418], al
push edx
retf 0xf033
cmp dword [ebp - 0x14], edi
je 0x10bc407
mov esi, dword [ebp - 0x14]
call fcn.0103bc4e
test al, 0x9c
adc byte ss:[esi], dl
add byte [eax], al
shl byte [esp + ebx*4 - 0x57fca], 1
or esp, dword [eax]
push ecx
push esi
push dword [ebp + 0xc]
push 0x1007b40
push 0x1f
push dword [eax + 0x34]
push dword [eax + 0x30]
call fcn.010b4771
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0103e3fb
call fcn.012e6715
sub byte [ebx + 0x1f5f036], al
add byte [eax - 0xff1bbe7], ah
and al, 0x83
inc eax
leave
ret 0x14