Function at 0x8de044
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x8de04a
pop ebp
sub ebp, 6
sub ebp, 0x4de044
jmp 0x8de0a8
jmp 0x8de0b1
mov eax, 0x4de044
add eax, ebp
add eax, 0x93
mov ecx, 0x627
mov edx, 0xf63dbc6e
xor byte [eax], dl
inc eax
dec ecx
jne 0x8de0c8
jmp 0x8de0db
add al, 0x2e
push es
outsb dx, byte [esi]
jle 0x8de14f
outsb dx, byte [esi]
push es
outsb dx, byte [esi]
mov byte [0x9eef6e42], al
js 0x8de0fc
scasb al, byte es:[edi]
cmp ch, bh
sahf
js 0x8de102
scasb al, byte es:[edi]
cmp bl, byte [ebp - 0x52]
xchg ecx, eax
sti
push edx
dec edi
sub ch, byte [esi + 0x3e]
in eax, 0xa3
outsb dx, byte [esi]
in eax, 0xa3
in eax, 0xe7
push edx
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
out dx, eax
scasd eax, dword es:[edi]
xchg esi, eax
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
insd dword es:[edi], dx
mov dword [0x6e6e68d6], eax
outsb dx, byte [esi]
aam 0x46
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
cdq
mov word [ebp - 0x5a], gs
in eax, 0xef
bound ebp, qword [esi + 0x6e]
outsb dx, byte [esi]
insd dword es:[edi], dx
stosd dword es:[edi], eax
push es
push 0x5b
outsb dx, byte [si]
push es
lds ebp, cs:[edx]
outsb dx, byte [esi]
outsd dx, dword [esi]
inc edx
dec edx
push es
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
xchg byte [ebx + 0x6e], ch
outsb dx, byte [esi]
outsb dx, byte [esi]
xchg dword [esi + 0x6e], eax
outsb dx, byte [esi]
outsb dx, byte [esi]
cmp esp, ebp
and ch, 0xeb
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
in eax, 0xfb
bound ebp, qword [esi + 0x6e]
outsb dx, byte [esi]
in eax, 0xe3
jle 0x8de1c1
outsb dx, byte [esi]
outsb dx, byte [esi]
scasd eax, dword es:[edi]
xchg dword [edi + ebx*2 + 0x6c], ebp
in eax, dx
lodsb al, byte [esi]
push 0x27
popal
jmp 0x8de0fb
popal
out 0x26, al
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
or ch, ah
jb 0x8de222
out dx, al
xchg ebp, eax
xchg byte [ecx - 0x16], ah
je 0x8de240
outsb dx, byte [esi]
outsb dx, byte [esi]
out dx, al
xchg ebp, eax
xchg dword [ecx - 0x16], esp
jg 0x8de249
outsb dx, byte [esi]
outsb dx, byte [esi]
or bh, ch
xchg ebp, eax
xchg ecx, eax
dec ebx
popal
ljmp 0x872f
insb byte es:[edi], dx
in eax, dx
scasd eax, dword es:[edi]
push 0xed6a84ed
xchg byte [ebx - 0x79], ch
lds edx, [ecx - 0x53cc6e6f]
bound ebp, qword [esi + 0x3b]
in eax, 0x82
cmp byte [ecx], bh
cmp esp, ebp
sbb esp, dword [edx - 0x1b]
adc esp, dword [esi - 0x6e]
fsub st(6), st(0)
in al, 0x68
out dx, eax
test al, 0x6f
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
out 0x69, al
out dx, eax
test eax, 0x6e6e6e6f
aad 0x6c
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
insb byte es:[edi], dx
mov esp, 0x6e6beb61
outsb dx, byte [esi]
outsb dx, byte [esi]
in al, 0x78
sub byte [esp + edi*4 + 0x61], bh
js 0x8de26a
jl 0x8de200
popal
in eax, dx
mov dh, 0x91
xchg ecx, eax
xchg ecx, eax
insb byte es:[edi], dx
mov esp, 0x6e6beb61
outsb dx, byte [esi]
outsb dx, byte [esi]
in al, 0x78
sub byte [esp + edi*4 + 0x61], bh
in eax, dx
add al, 0x6e
outsb dx, byte [esi]
outsb dx, byte [esi]
pop ebp
scasb al, byte es:[edi]
insb byte es:[edi], dx
mov esp, 0x6e6beb61
outsb dx, byte [esi]
outsb dx, byte [esi]
in al, 0x78
sub byte [esp + edi*4 + 0x61], bh
jl 0x8de228
popal
in eax, dx
inc esp
outsd dx, dword [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
insb byte es:[edi], dx
mov esp, 0x6e6beb61
outsb dx, byte [esi]
outsb dx, byte [esi]
in al, 0x78
sub byte [esp + edi*4 + 0x7d], bh
scasb al, byte es:[edi]
insb byte es:[edi], dx
mov esp, 0x6e6beb61
outsb dx, byte [esi]
outsb dx, byte [esi]
in al, 0x78
sub byte [esp + edi*4 + 0x7d], bh
scasb al, byte es:[edi]
insb byte es:[edi], dx
mov esp, 0x6e6beb61
outsb dx, byte [esi]
outsb dx, byte [esi]
in al, 0x78
sub byte [esp + edi*4 + 0x7d], bh
scasb al, byte es:[edi]
insb byte es:[edi], dx
mov esp, 0x6e6beb61
outsb dx, byte [esi]
outsb dx, byte [esi]
in al, 0x78
sub byte [esp + edi*4 + 0x7d], bh
scasb al, byte es:[edi]
popal
ljmp 0xb1e5