Function at 0x805d48
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x805d4e
pop ebp
sub ebp, 6
sub ebp, 0x405d48
jmp 0x805dac
jmp 0x805db5
mov eax, 0x405d48
add eax, ebp
add eax, 0x93
mov ecx, 0x649
mov edx, 0x3831ff6e
xor byte [eax], dl
inc eax
dec ecx
jne 0x805dcc
jmp 0x805ddf
add al, 0x2e
push es
outsb dx, byte [esi]
jle 0x805e53
outsb dx, byte [esi]
push es
outsb dx, byte [esi]
mov byte [0x9eef6e42], al
js 0x805e3b
and al, 0x81
out dx, eax
sahf
js 0x805e41
and al, 0x81
pop ebp
scasb al, byte es:[edi]
xchg ecx, eax
sti
outsb dx, byte [esi]
mov edi, 0xe53e6e58
mov dword [0x6e52e7e5], eax
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
hlt
imul ebp, dword [esi + 0x6e], 0x6e
xchg dword [esi + 0x6e], eax
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
cmp edi, dword [edx]
xor esp, ebp
jmp 0x805eb0
in eax, 0xe3
jle 0x805ec5
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 0x805dff
pushfd
sub dword [ebx - 0x6310f4c6], eax
sub dword [ebx - 0x43a2f4c6], eax
in eax, dx
xchg byte [ebx + 0x26], ch
popal
ljmp 0xe661
outsb dx, byte [esi]
outsb dx, byte [esi]
popal
out 0x26, al
outsb dx, byte [esi]
outsb dx, byte [esi]
outsb dx, byte [esi]
or ch, ah
jb 0x805f28
out dx, al
xchg ebp, eax
xchg byte [ecx - 0x16], ah
je 0x805f46
outsb dx, byte [esi]
outsb dx, byte [esi]
out dx, al
xchg ebp, eax
xchg dword [ecx - 0x16], esp
jg 0x805f4f
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 0x805f70
jl 0x805f06
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 0x805f2e
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