Function at 0x805c2c
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x805c32
pop ebp
sub ebp, 6
sub ebp, 0x405c2c
jmp 0x805c90
jmp 0x805c99
mov eax, 0x405c2c
add eax, ebp
add eax, 0x93
mov ecx, 0x637
mov edx, 0x152ba76e
xor byte [eax], dl
inc eax
dec ecx
jne 0x805cb0
jmp 0x805cc3
add al, 0x2e
push es
outsb dx, byte [esi]
jle 0x805d37
outsb dx, byte [esi]
push es
outsb dx, byte [esi]
mov byte [0x9eef6e42], al
sbb eax, 0xefcf11a0
sahf
sbb eax, 0x5dcf11a0
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
pop ss
pop edx
outsb dx, byte [si]
push es
fisttp qword [ecx + 0x59]
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 edi, dword [edx]
xor esp, ebp
jmp 0x805d94
in eax, 0xe3
jle 0x805da9
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 0x805ce3
mov esp, 0x266b86ed
popal
ljmp 0xe661
out dx, al
xchg ebp, eax
xchg byte [ecx - 0x16], ah
je 0x805e1e
outsb dx, byte [esi]
outsb dx, byte [esi]
out dx, al
xchg ebp, eax
xchg dword [ecx - 0x16], esp
jg 0x805e27
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 0x805e48
jl 0x805dde
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 0x805e06
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