Function at 0x40847a
Capabilities:
Encode data using xor

Disassembly:
je 0x4084e5
outsb dx, byte [esi]
jae 0x408481
or al, 7
pop es
mov dword [edx], ecx
pushal
add al, 0
add byte [eax], al
add dword [eax], edx
dec ebp
pushal
add al, 0
add byte [eax], al
add al, 0x79
add al, 4
jge 0x40849b
add eax, 0x8ca7200
add dword [eax + 7], eax
or byte [ecx], al
inc eax
pop es
mov al, 0x62
sbb byte [eax], al
add byte [eax], al
or al, 0
add byte [eax], al
adc byte [eax], al
add byte [eax], al
xchg esi, eax
inc ebx
add dword [eax], ebx
push edx
stosb byte es:[edi], al
in eax, dx
int 0xc1
or al, byte [eax]
add byte [eax], al
imul esi, dword [ebx + 0x44], 0x62617369
insb byte es:[edi], dx
add byte fs:[eax], al
inc ebx
add al, 0x95
push es
inc edi
add al, 0x65
add al, byte [ebx - 0x69]
nop
add eax, 0x2706208
inc ebx
add al, 0x65
or byte [ecx], al
or al, 0x91
pushal
add byte [eax], al
add byte [eax], al
add dword [esp + ecx*2], edx
dec esp
arpl word [esi], ax
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 [ecx + ebp], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, 0x29
add al, 1
and al, 0x52
xor bh, ch
pop ecx
xchg ebx, eax
pop ss
add byte [eax], al
add byte [ebx + 0x75], dl
jae 0x408581
and byte [ebx + 0x6f], al
insd dword es:[edi], dx
insd dword es:[edi], dx
jne 0x408582
imul esi, dword [ecx + edi*2 + 0x20], 0x6562614c
insb byte es:[edi], dx
add byte [ecx + eax*4], al
add al, 1
and byte [edx + 8], dl
add al, 0
add byte [eax], al
adc byte [eax], al
add byte [eax], al
add al, 0x41
add al, byte [ebx + 5]
or byte [edx + 0x70], ah
add al, byte [ebx + 1]
and byte [edx + 8], dl
add al, 0
add byte [eax], al
adc byte [eax], al
add byte [eax], al
add eax, 0x88b9200
inc edi
add eax, 0x887e200
inc ebx
add dword [eax], ebx
push edx
jb 0x4084f1
dec edi
inc esp
or al, 0
add byte [eax], al
jo 0x4085c6
insb byte es:[edi], dx
je 0x4085dd
inc edx
insb byte es:[edi], dx
popal
arpl word [ebx + 4], bp
inc ebp
add al, 4
dec ecx
add al, 1
sbb al, 0x52
or ah, byte gs:[edx + 0x13]
sbb al, 0xd
add byte [eax], al
add byte [ebx + 0x75], dh
jae 0x4085f8
jne 0x4085eb
jae 0x4085fc
jae 0x4085fc
sub eax, 0x6562616c
insb byte es:[edi], dx
add byte [eax], al
add byte [eax - 0x5a], ah
add eax, dword [eax]
add byte [0x1ad8100], al
and byte [edi], al
mov al, 0x62
or byte [eax], al
add byte [eax], al
add al, 0
add byte [eax], al
adc byte [eax], al
add byte [eax], al
add al, 0x21
pop es
inc ebx
add dword [edx + edx*2], ebx
invalid
insd dword es:[edi], dx
add byte gs:[eax], al
add byte [ebx + 4], al
mov dword [eax], ecx
pop es
pop ecx
pop es
add dword [eax], ebx
xchg ebp, eax
bound eax, qword [eax + eax]
add byte [eax], al
add al, byte [eax]
add byte [eax], al
adc byte [eax], al
add byte [eax], al
xchg esi, eax
inc ebx
add dword [eax - 0x6b], ecx
add byte [eax], dl
add byte [eax], al
add byte [esi - 0x6ab7febd], dl
bound ebx, qword [eax + eax]
add byte [eax], al
push cs
add byte [esi], cl
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [ecx], al
and byte [edx + 0x66], dl
push ds
sbb byte [edx], cl
cmp al, 0x12
add byte [eax], al
add byte [ecx + 0x6c], ah
adc al, byte [eax]
add byte [eax], al
popal
insb byte es:[edi], dx
ja 0x408665
jns 0x408679
inc ebp
js 0x40867d
jb 0x40867a
popal
insb byte es:[edi], dx
dec esp
imul ebp, dword [esi + 0x6b], 0x4470000
xor dword [esi], eax
inc ebx
xchg edx, eax
inc ebx
add al, 0x35
push es
add al, 0x39
push es
add al, 0xf1
push es
inc ebx
add al, 0x11
pop es
inc ebx
add eax, 0x2706208
inc ebx
add dword [edx + edx*2], ebx
ret 0xf600
jo 0x4086d7
jb 0x4086de
and byte [ecx + 0x20], ah
jb 0x4086d4
arpl word [ebp + 0x69], sp
jbe 0x4086d9
and byte fs:[ebx + 0x75], dh
bound ebp, qword [ebp + 0x69]
jae 0x4086f0
insd dword es:[edi], dx
imul esi, dword [ebx + 0x73], 0x6e6f69
add byte [eax], al
add dword [eax], esp
push edx
add dl, byte [edx + 0x11c1c8]
imul ebp, dword [edi + 0x6e], 0x1000000
and byte [edx + 0x66], dl
add dl, byte [edx + 0x11c1c8]
add byte [eax], al
push edx
jo 0x408702
jb 0x408709
and byte [ebx + 0x75], dh
bound ebp, qword [ebp + 0x69]
jae 0x408710
imul ebp, dword [edi + 0x6e], 0x1000000
inc eax
push edx
outsb dx, byte [esi]
cli
mov dword gs:[ecx + 0x34], eax
add byte [eax], al
add byte [ebp + 0x65], cl
outsb dx, byte [esi]
jne 0x4086d4
imul esi, dword [ebp + 0x6d], 0x206f7420
jb 0x408723
jo 0x40872f
jb 0x408736
and byte [ecx + 0x20], ah
jb 0x40872c
arpl word [ebp + 0x69], sp
jbe 0x408731
and byte fs:[ecx + 0x73], ah
imul esp, dword [eax], 0x6f
jb 0x4086f5
and byte [eax + 0x72], dh
jo 0x408749
imul esi, dword [esi + 0x61], 0x61206574
popal
je 0x408741
and byte [ecx + 0x6e], ah
outsb dx, byte [esi]
jae 0x408758
jb 0x4086e5
sbb al, 0x52
push edx
retf 0xe4c6
jo 0x408762
jb 0x408769
and byte [ebp + 0x65], ch
jae 0x40876d
popal
add byte gs:[bx + si], al
add dword [eax], ebp
push edx
push 0x5d97710a
sbb al, byte [eax]
add byte [eax], al
dec ebp
outsb dx, byte gs:[esi]
jne 0x408730
imul esi, dword [ebp + 0x6d], 0x206f7420
jb 0x40877f
jo 0x40878b
jb 0x408792
and byte [ecx + 0x20], ah
jo 0x408792
jae 0x408799
add byte [eax], al
add dword [eax], ebx
push edx
xchg byte fs:[ebx + 0xba9ae], cl
mov ebp, dword [esi + 0xba9]
or eax, dword [eax]
add byte [eax], al
add byte [eax], al
push edx
jo 0x4087a6
add byte [edx + 0x65], dl
jo 0x4087a6
outsd dx, dword [esi]
jb 0x4087ad
and byte [eax + 0x6f], dh
jae 0x4087b2
add byte [ecx], al
xor byte [edx + 0x6a], dl
cmp eax, 0x22b442
push edx
push 0xfffffffffffffff2
cmp eax, 0x22b442
add byte [eax], al
dec ebp
outsb dx, byte gs:[esi]
jne 0x408770
imul esi, dword [ebp + 0x6d], 0x206f7420
jb 0x4087bf
jo 0x4087cb
jb 0x4087d2
and byte [ecx + 0x20], ah
jo 0x4087d2
outsd dx, dword [esi]
jae 0x4087d9
and byte [edi + 0x72], ch
and byte [edx + 0x6c], ah
outsd dx, dword [esi]
add byte [bx + si], al
bound ebp, qword [edi + ebp*2 + 0x67]
add byte [eax], al
add dword [eax], ebx
push edx
push edx
sbb byte [edx + 0x64], dl
push edx
or bh, byte [0xb08]
add byte [edx + 0x65], dl
jo 0x4087ee
jb 0x4087f5
and byte [0x732431], ah
add dword [edi + eax], ecx
mov dword [edx], ecx
pushal
add byte [eax], al
add byte [eax], al
add dword [esp + ecx*2], ecx
or ah, byte [eax]
add byte [eax], al
add byte [ecx], al
or al, 0x4c
popal
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [edx + edx*2], edx
arpl word [edx - 0x11], dx
jmp [esi + eax]
add byte [eax], al
add byte [edx + 0x65], dh
jo 0x40881c
jb 0x408823
add byte [eax], al
pushal
add eax, dword [eax]
add byte [edi], al
in eax, dx
add dword [ecx], eax
adc byte [edi], al
popfd
or bl, byte [esp + eax]
xchg ebp, eax
add al, 0x95
add eax, 0x61
add byte [eax], al
add byte [eax], al
add byte [eax + edx + 0x41], al
push ss
inc esp
adc byte [ecx + 0x16], al
push 0x10000002
add byte [eax], dl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebp - 0x44e5fb00], al
adc byte [0x3251002], ah
adc byte [0x5251004], ah
adc byte [0x2bb1506], ah
add byte [ebp - 0x45d245e8], ch
add dword [eax], eax
add byte [eax], al
test dword [eax], eax
add eax, 0x2510bb1a
add dl, byte [eax]
and eax, 0x4251003
adc byte [0x6251005], ah
push es
adc eax, 0xad0002bb
sbb byte [edx + 0x1ba2d], bh
mov edx, 0x1ba2d
sbb byte [edx + 0x202ba2d], bh
invalid
mov edx, 0x2dc10e08
mov edx, 0x39f1009
adc al, al
sub eax, 0x18120aba
mov ecx, 0x140bb92d
sbb byte [eax + 0x160cb82d], bh
adc byte [edi + 0x2dc01203], bl
mov edx, 0xb918120a
sub eax, 0x18140bb9
mov eax, 0x160cb82d
mov edi, 0x180db82d
mov esi, 0x1a03b82d
mov ebp, 0x1c0eb82d
mov esp, 0x1e0fb82d
mov ebx, 0x2010b82d
mov edx, 0x2211b82d
mov ecx, 0x2412b82d
mov eax, 0x2613b82d
mov bh, 0x2d
mov eax, 0xe9182814
sub eax, 0x182a15b8
call 0x2c57409e
sbb bh, ah
sub eax, 0x182e17b8
out 0x2d, al
mov eax, 0xe5183018
sub eax, 0x183219b9
mov eax, 0x341ab82d
sbb ah, ah
sub eax, 0x18361bb8
jecxz 0x4088bf
mov eax, 0xe218381c
sub eax, 0x183a1dba
mov ecx, 0x3c1eb92d
and eax, 0x1fb92d03
and eax, 0x20b92d04
inc eax
sbb cl, ah
sub eax, 0x184221b9
loopne 0x4088e3
mov ecx, 0xdf184422
sub eax, 0x254623b9
add eax, 0x4824ba2d
and eax, 0x24ba2d05
dec eax
sbb dh, bl
sub eax, 0x184a25ba
invalid
lahf
add edx, dword [ecx]
sbb cl, bl
sub eax, 0x18542aba
fsubr dword [0x18562bba]
xlatb
sub eax, 0x18582cba
salc
adc eax, 0x180002bb
mov edx, 0x5a2dba2d
sbb byte [edx + 0x5c2eba2d], bh
sbb ch, dl
sub eax, 0x185e2fba
aam 0x2d
mov edx, 0xd3186030
sbb bl, dl
sub eax, 0x186231ba
shr byte [0x186432ba], cl
sar dword [ebp + 0x66], 1
and eax, 0x99e90b06
sbb dword [0xac0326ff], edx
xor ebx, dword [eax]
mov edx, 0x67e9ba62
sbb byte [edx - 0x45d2f760], bh
xor al, 0x69
mov word [ebx], es
push cs
sbb al, dl
or esi, esp
jns 0x4088e4
or byte [ebx], cl
cmc
cwde
add al, 0xb
jecxz 0x408969
iretd
insd dword es:[edi], dx
sbb dh, cl
pop ss
add eax, 0xba2dba18
xor eax, 0xa9b796b
or edx, eax
jns 0x408916
add eax, 0x1854d80b
int 0xb
loope 0x40891d
push cs
or eax, dword [ebx]
push esp
wait
or dword [ebx], ecx
clc
cdq
add eax, 0x1879f90b
int3