Function at 0x10837f4
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push esi
mov esi, ecx
mov eax, dword [esi + 0x48]
test eax, eax
je 0x1083876
call fcn.01299031
mov cl, 0x5b
add eax, 0x42627020
mov al, byte [0x9042626c]
loope 0x1083811
add byte [eax - 0x75], al
dec esi
dec eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax]
push ecx
push 0x1005b78
push eax
call dword [edx + 0x10]
call fcn.0137441f
out 0xa7, eax
inc esi
pushal
movsb byte es:[edi], byte [esi]
pop ecx
inc ecx
push eax
and dword [eax], eax
add byte [eax - 0x60], dl
pop ecx
inc ecx
invalid
call fcn.011f8030
mov edi, 0xd8900573
pop edi
inc edx
inc eax
fcomp qword [edi + 0x42]
nop
and byte [eax], al
add al, dl
call fcn.011f3f3c
test byte [ecx], bh
inc edx
and byte [eax - 0x2fafbdc7], al
in al, 8
loopne 0x10838d7
add byte [eax], al
add al, ch
into
loopne 0x10838a8
add byte [ebx + 0x50300000], cl
and eax, 0x254c4042
inc edx
jo 0x10838c2
xor byte [eax + 0x25], dl
inc edx
inc eax
dec esp
and eax, 0xa107042
or al, byte [eax]
call fcn.010d1973
inc eax
or cl, byte [edx]
add al, ch
mov ecx, 0x400004e0
add byte [eax], al
jo 0x10838ab
cmc
inc ecx
add al, ch
cmc
inc ecx
ror byte [ebx - 0x172ff1ae], 1
call 0x8cd87abc
push edx
push cs
shr al, 1
movsb byte es:[edi], byte [esi]
loopne 0x10838d2
add byte [edi], al
add byte [eax], al
and byte [eax], ch
nop
inc ecx
add byte [eax + edx*4], ah
and al, 0x90
inc ecx
add byte [edx - 0x2b], al
and byte [eax - 0x4145d18], dh
call dword [ebx + esi*2 + 0x41]
adc byte [edx + 0xed02227], 0
add al, ah
push eax
jae 0x1083934
sub al, 0x7a
loopne 0x10838fc
add byte [eax], dh
add byte [eax], al
adc byte [ecx + ecx*2], cl
inc ecx
adc byte [eax], cl
dec ecx
inc ecx
pushal
mov bh, 0xd0
push eax
call fcn.0137441f
mov ch, 0xa1
push ecx
and byte [eax + 0x2e], ah
inc ecx
adc byte [esi], cl
add byte [eax], al
sbb byte [esi + ebp + 0x41], 0xd0
cmp dword [esi + 0x30], 0
je 0x1083a5a
call fcn.011f8030
stosb byte es:[edi], al
push eax
or dword [eax], esp
xor byte [edx], dh
inc edx
xor byte [edx + esi], dh
inc edx
nop
add byte es:[eax], al
mov al, byte [0x73f4ee8]
add byte [eax], bl
add byte [eax], al
pop eax
rol dword [ecx + 0x60], 1
xchg ecx, eax
cmpsd dword [esi], dword es:[edi]
mov esp, cr3
rol dword [ecx + 0x60], 1
call fcn.011f8030
pop ebp
in eax, 0x16
push eax
adc al, 0xbe
inc ecx
adc byte [eax], bl
mov esi, 0x1f5c041
add byte [eax - 0x18], al
pop es
loopne 0x108396f
add bh, dh
add byte [eax], al
and byte [eax - 0x7bcfbf48], cl
mov eax, 0x77d7b040
cmp esp, eax
call fcn.01200ea5
test al, 0xb6
inc eax
ror byte [ecx - 0x5b4fc45e], 1
mov dh, 0x40
mov al, byte [0xa00000fe]
mov ecx, dword [esi + 0x30]
mov eax, dword [esi + 0x28]
mov edx, dword [eax]
push ecx
push 0x1002ba8
push eax
call dword [edx + 0x10]
call fcn.011f8030
clc
push ecx
or byte [eax + 0x10424574], dl
js 0x10839f7
inc edx
invalid
mov ecx, dword [esi + 0x30]
mov eax, dword [esi + 0x28]
mov edx, dword [eax]
push ecx
push 0x1002a10
push eax
call dword [edx + 0x10]
call fcn.01299031
sar edx, 0xe
nop
add ch, ah
inc ecx
add ah, bh
in al, 0x41
pushal
int3
call fcn.010f7890
inc esi
add al, 0
ror al, 1
arpl word [edx - 0x50], ax
call 0xcd383fa9
arpl word [edx + 0x30], ax
call fcn.0136ac47
ror ecx, 0x1e
inc eax
push esp
scasd eax, dword es:[edi]
inc ecx
inc eax
push eax
scasd eax, dword es:[edi]
inc ecx
sar byte [0xe8a00000], 0xea
fiadd word [eax + eax]
adc byte [eax], al
add al, ah
push esp
sub eax, dword [ecx + 0x40]
push eax
sub eax, dword [ecx + 0x10]
and ch, ah
sub byte [eax - 0x18], ah
test eax, 0xbb002e71
pop eax
sub esi, dword [eax + 0x304104a8]
movsb byte es:[edi], byte [esi]
add al, 0x41
add byte [ecx], ah
add byte [eax], al
adc al, ch
jge 0x1083af6
pop ss
add byte [eax], cl
sub al, 0x90
mov bh, bh
inc eax
mov al, byte [0x5040ff8c]
inc byte [ecx]
add byte [eax + 0x347e83], dh
je 0x1083b9c
add byte [eax], al
call fcn.010f7890
pop eax
add byte [eax], al
nop
cwde
daa
inc edx
push eax
invalid
inc edx
loopne 0x1083acb
test ah, al
add al, 0
xor byte [0x69c2084], cl
inc edx
pushal
pop ss
add byte [eax], al
inc eax
sbb al, byte [esi]
or eax, 0x5535e8e0
and dword [eax], eax
or byte [ecx], bl
or eax, 0x42033c20
loopne 0x1083ae0
xor eax, 0x8002155
sbb dword [0x42033c20], ecx
sar byte [eax], 1
add eax, dword [edx - 0x20]
add byte es:[eax], al
shr al, 0x1f
inc ebp
pop ss
add byte [ebx + 0x5030281a], bh
add al, al
call fcn.011f8030
mov ebx, 0x5030281a
cmp eax, 0x3d54b041
inc ecx
xor dh, bh
add dword [eax], eax
jo 0x1083b0a
push ss
add al, 0x17
add ah, bh
sub eax, dword [ecx - 0x10]
clc
sub eax, dword [ecx - 0x80]
push cs
ljmp 0x2000
call fcn.011f3f3c
push 0x648040c0
rol byte [eax], 0x65
sar byte [edx], 1
mov al, 0xc8
add byte [eax], al
mov al, byte [0xc35ec033]