Function at 0x805c7c
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x805c82
pop ebp
sub ebp, 6
sub ebp, 0x405c7c
jmp 0x805ce0
dec eax
fisub word [edx]
mov ebp, 0x77e2a302
mov byte [esi - 0x10], bh
shl dword [edi - 0x17], 1
add al, 0
add byte [eax], al
push 5
invalid
jmp 0x805ce9
mov eax, 0x405c7c
add eax, ebp
add eax, 0x93
mov ecx, 0x623
mov edx, 0x75e6c378
xor byte [eax], dl
inc eax
dec ecx
adc byte [eax + 0x49], al
jne 0x805d00
jmp 0x805d13
add byte [eax], al
add byte [edi + 0x3f], ch
popal
pushfd
adc bh, byte [eax]
adc byte [eax + 0x68], bh
js 0x805d92
adc byte [eax - 0x4c], bh
push esp
js 0x805d6b
mov eax, 0x78ed8728
test eax, 0xf328784e
mov ch, 0xf3
int1
int1
inc esp
js 0x805da8
js 0x805d2b
mov ecx, 0x78787880
jnp 0x805cee
sar byte [esi + 0x78], 0x78
js 0x805d01
push eax
js 0x805dba
js 0x805cd3
invalid
lcall 0x7874, 0xf9f3b07b
js 0x805dc5
jnp 0x805d0c
sub byte [eax], dl
mov dh, 0x4c
jno 0x805dcd
adc bl, dl
pop edi
dec edi
js 0x805dd4
push esp
pop esp
adc byte [eax + 0x78], bh
js 0x805dda
nop
jge 0x805ddd
js 0x805ddf
xchg ecx, eax
push edx
js 0x805de3
js 0x805d9a
cmc
adc al, 0x5c
js 0x805d65
std
jo 0x805ded
js 0x805def
in eax, dx
je 0x805df3
js 0x805df5
cmc
push 0xb9787878
xchg ecx, eax
jp 0x805dd0
jp 0x805d84
mov edx, 0xfd77317c
mov word [edi - 0x45da7879], es
je 0x805e0e
and eax, 0xf37874ba
hlt
hlt
js 0x805e14
js 0x805dae
mov dh, 0x4c
jno 0x805e1a
adc bl, dl
pop edi
dec edi
js 0x805e21
push esp
pop esp
sub dword [eax + 0x7878787d], edx
js 0x805e28
xchg ecx, eax
inc edi
jp 0x805e2c
js 0x805de3
sub al, 0x25
xchg dword [0x700d8774], ecx
and eax, 0x87740d87
je 0x805d43
or eax, 0x780a9070
nop
or bh, byte [eax + 0x78]
js 0x805db7
js 0x805e3b
lds esi, [eax + 0x78]
lds esi, [eax + 0x78]
jo 0x805e3f
js 0x805e40
js 0x805e41
js 0x805e15
dec ebx
mov cl, 0xf9
mov ah, byte [ecx]
insd dword es:[edi], dx
jae 0x805dc1
and dword [ebp + 0x73], ebp
invalid
stc
mov ah, byte [ecx]
insd dword es:[edi], dx
jae 0x805dc7
dec ebx
stosb byte es:[edi], al
sti
nop
jge 0x805e0d
ja 0x805ddb
js 0x805e5a
js 0x805e5b
ja 0x805dd5
lock xor byte [eax + 0x78], bh
xor byte [eax + 0x78], bh
js 0x805e08
inc ecx
clc
adc dword [eax + 0x7862fc77], 0x78
nop
ja 0x805dee
bound edi, qword [eax + 0x78]
js 0x805e6d
js 0x805def
adc dword [ecx + 0x7869fc77], 0x78
js 0x805e1e
stc
add dword [edi + 0x6dfc775d], 0x78
js 0x805e82
cmp dword [ecx - 0x7878784c], edx
xchg dword [edi + 0x41345187], eax
xchg dword [edi + 0x79413451], eax
push ecx
xor al, 0x41
jns 0x805e10
sti
mov ecx, 0x7c90fb7d
xchg ecx, eax
lds eax, [edi + 0x2c518787]
xchg dword [ecx + 0x2c], edx
push ecx
sub al, 0x41
inc ecx
jp 0x805e1f
mov ecx, 0x7c92fb7e
sti
jle 0x805e22
xchg edx, eax
jl 0x805e25
nop
jge 0x805dbe
xchg ecx, eax
rol dword [edi - 0x45da7879], cl
je 0x805ead
sub eax, 0x2f2e94f3
sub eax, 0xf3740df3
or eax, 0x7005f374
add eax, 0xf8ca8470
jo 0x805dc6
test dl, cl
clc
retf 0xf2f8
bnd jle 0x805e40
mov esi, 0x78787879
invalid
stosb byte es:[edi], al
ja 0x805e5a
jge 0x805ed7
js 0x805ed9
repne outsb dx, byte [esi]
push 0xffffffffffffffaa
ja 0x805e63
mov al, byte [0x7a878787]
stosb byte es:[edi], al
ja 0x805e6d
jge 0x805eea
js 0x805eec
repne outsb dx, byte [esi]
push 0xffffffffffffffaa
ja 0x805e76
adc bh, byte [eax + 0x78]
js 0x805ecb
mov eax, 0xfd77aa7a
stosb byte es:[edi], al
ja 0x805e82
jge 0x805eff
js 0x805f01
repne outsb dx, byte [esi]
push 0xffffffffffffffaa
ja 0x805e8b
push edx
jns 0x805f0b
js 0x805f0f
stosb byte es:[edi], al
ja 0x805e95
jge 0x805f12
js 0x805f14
repne outsb dx, byte [esi]
push 0xffffffffffffffaa
imul edi, dword [eax - 0x2885586], 0x7d
js 0x805f22
js 0x805e9e
outsb dx, byte [esi]
push 0xffffffffffffffaa
imul edi, dword [eax - 0x2885586], 0x7d
js 0x805f31
js 0x805ead
outsb dx, byte [esi]
push 0xffffffffffffffaa
imul edi, dword [eax - 0x2885586], 0x7d
js 0x805f40
js 0x805ebc
outsb dx, byte [esi]
push 0xffffffffffffffaa
imul edi, dword [eax + 0x787efc77], 0x78
js 0x805eca
cmpsd dword [esi], dword es:[edi]
push ebx
mov al, byte [0x7ff07bf2]
aas
jg 0x805f1e
ret
jns 0x805f64
js 0x805f66
jp 0x805e9a
stosb byte es:[edi], al
ja 0x805eef
jge 0x805f6c
js 0x805f6e
repne outsb dx, byte [esi]
push 0xffffffffffffffaa
imul edi, dword [eax - 0x2885586], 0x7d
js 0x805f7c
stosb byte es:[edi], al
ja 0x805efe
jge 0x805f7b
js 0x805f7d
js 0x805ef8
repne outsb dx, byte [esi]
outsb dx, byte [esi]
push 0xffffffffffffffaa
ja 0x805f06
cli
cmpsb byte [esi], byte es:[edi]
xchg dword [edi - 0x3c44ac79], eax
jns 0x805f8d
xchg dword [ebx - 0x45], edx
ret
js 0x805f8e
js 0x805f8f
js 0x805f8f
ja 0x805f16
std
dec esp
js 0x805f94
js 0x805edf
jns 0x805f98
js 0x805f9a
jp 0x805ece
stosb byte es:[edi], al
ja 0x805f23
jge 0x805fa0
js 0x805fa2
repne outsb dx, byte [esi]
push 0xffffffffffffffaa
imul esi, dword [ecx - 0x2885586], 0x7d
js 0x805fb0
jp 0x805edd
stosb byte es:[edi], al
ja 0x805f32
jge 0x805faf
js 0x805fb1
js 0x805f2c
repne outsb dx, byte [esi]
outsb dx, byte [esi]
push 0xffffffffffffffaa
ja 0x805f3a
cmpsb byte [esi], byte es:[edi]
xchg dword [edi - 0x700cd179], eax
push ebx
lea ecx, [ebx + 0x709126dc]
xchg dword [edi - 0x6746cf79], eax
jo 0x805f48
jle 0x805f96
pause
sar dword [ecx + 0x78], 0x78
js 0x805fda
stosb byte es:[edi], al
ja 0x805f60
jge 0x805fdd
js 0x805fde
js 0x805fdf
js 0x805f5a
repne outsb dx, byte [esi]
outsb dx, byte [esi]
push 0xffffffffffffffaa
imul esi, dword [ecx - 0x2885586], 0x7d
jp 0x805f1a
stosb byte es:[edi], al
ja 0x805f6f
jge 0x805fec
js 0x805fed
js 0x805fee
js 0x805f69
repne outsb dx, byte [esi]
outsb dx, byte [esi]
push 0xffffffffffffffaa
ja 0x805f77
cli
cmpsb byte [esi], byte es:[edi]
xchg dword [edi + 0x7880f987], eax
add eax, 0xa1f97878
xchg dword [edi - 0x7f067879], eax
stc
cmp byte [eax + 0x7d], 0x78
js 0x805f8d
js 0x80600e
js 0x80600b
stc
mov eax, dword [0x87878787]
xchg dword [edi - 0x77f0679], eax
js 0x806016
xchg ecx, edi
stc
cmp al, 0x78
js 0x806017
js 0x805f99
stc
test eax, 0x78787878
stc
js 0x80601c
js 0x805f9f
cmp al, 0x78
js 0x806023
stc
test eax, 0x78787878
js 0x806029
js 0x805fe0
invalid
invalid
jp 0x806048
js 0x80604a
pause
invalid
fsub qword [esi]
ret
ret
jns 0x806057
js 0x806058
js 0x806059
js 0x805f73
xchg ecx, eax
or eax, dword [esi + 0x53258787]
add eax, 0x27bff370
daa
popfd
popfd
and eax, 0x277870ba
xchg ecx, eax
jl 0x806071
js 0x806073
inc ebx
and al, 0xe7
movsb byte es:[edi], byte [esi]
rol byte [esp], 0x38
js 0x806080
mov ebp, 0x7bd1b8f9
js 0x806084
js 0x805fce
sal dword [ebp + 0x7b], 0x78
jne 0x80608a
jnp 0x806088
js 0x806089
js 0x805fd4
ret 0x9d99
cdq
popfd
aad 0xf5
dec eax
push 0xfd773138
mov es, word [edi + 0x7c918787]
js 0x80609c
js 0x80609d
js 0x805fdb
mov ch, 0x24
adc ah, byte [ebp - 0x55313131]
pop ecx
adc dl, byte [edi]
leave
cwde
cdq
cdq
pop eax
jo 0x805fd2
and al, 0x12
movsd dword es:[edi], dword [esi]
iretd
imul esi, dword [edx], 0xffffffc6
adc dl, byte [edi]
int 0x98
cdq
cdq
pop eax
jo 0x805fde
imul edi, dword [esi + eax*8], 0xffffffc7
adc al, byte [edi]
cmp al, 0xc6
invalid
pop es
movsd dword es:[edi], dword [esi]
cdq
cdq
cdq
retf 0x2696
cdq
cdq
cdq
lcall 0x9999, 0x9962184f
cdq
xchg esi, eax
sbb eax, 0x99999986
iretd
lcall 0x6b8d, 0xeb9a95e3
cmp eax, 0x5b18c7c6
xchg ebp, eax
lcall 0xc7c6, 0x3d6b8deb
sbb byte [ebx - 0x4f], bl
cdq
mov bh, 0x18
pop ebx
mov cl, 0x99
cdq
cdq
sal byte [eax + 0x4c], cl
int1
cdq
fstp dword [ecx + 0x5599f199]
cdq
cdq
int1
cdq
push ebp
mov ch, 0x99
iretd
movsd dword es:[edi], dword [esi]
adc ah, byte [0x999939ae]
cdq
lcall 0x9972, 0x18c2cf67
jb 0x806044
cdq
fstp dword [ecx + 0x1e99ce12]
pushal
adc ah, al
popfd
push ds
pushal
sbb byte [ebx - 0x67], ah
cdq
cdq
cdq
xchg esi, eax
sbb eax, 0x999999df
lcall 0x9999, 0x915e184f
cdq
sbb byte [eax - 0x6f], dh
cdq
cdq
cdq
sbb byte [eax - 0x67], ah
pushal
cdq
cdq
cdq
cdq
xchg esi, eax
sbb eax, 0x66666649
call dword [edx]
sahf
pop eax
jno 0x806079
sbb bh, byte [ecx - 0x6a]
sbb byte [ecx - 0x66], ah
cdq
cdq
cdq
xchg esi, eax
sbb al, 0x94
cdq
cdq
cdq
call dword [edx]
sahf
sbb byte [ecx + 0x66], bh
xchg esi, eax
cdq
cdq
lcall 0x1ad0, 0xd081985b
pop esi
wait
jo 0x806158
jo 0x8060a9
popfd
cdq
cdq
cdq
mov ecx, 0x2172181d
in eax, 0xc5
fstp dword [ecx + 0x59185c9a]
and al, 0x9d
cdq
cdq
and byte [eax - 0x68], ah
cdq
cdq
and esp, dword [edi - 0x56df3ef6]
mov ecx, ebx
rcl byte [esi + 0x66666f1c]
jo 0x8060d3
cdq
cdq
cdq
add bh, byte [edi]
pop ss
sub eax, 0x2c9bd92c
sbb edx, dword [eax - 0x585858d9]
movsb byte es:[edi], byte [esi]
pop ecx
and al, 0xd8
stosd dword es:[edi], eax
cmpsd dword [esi], dword es:[edi]
test al, 0x23
cmp al, 0xa7
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
xor byte [edi + ebx*8], ch
stosd dword es:[edi], eax
xor byte [ecx - 0x50cda709], ah
movsb byte es:[edi], byte [esi]
popal
neg dword [eax + 0x32]
scasd eax, dword es:[edi]
jbe 0x8060f1
cmpsd dword [esi], dword es:[edi]
pop edi
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
test al, 0x22
test eax, 0x30a7a7a7
sub al, 0xdf
stosd dword es:[edi], eax
xor byte [ecx - 0x4ccda709], ah
jbe 0x80610b
cmpsd dword [esi], dword es:[edi]
and al, 0xd8
stosd dword es:[edi], eax
cmpsd dword [esi], dword es:[edi]
test al, 0x23
into
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
and al, 0xd8
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
test al, 0x22
lodsd eax, dword [esi]
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
and al, 0xd8
mov bh, 0xa7
test al, 0x23
out dx, al
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
sub al, 0x72
and byte [edx + 0x2c], bl
fidiv dword [edi + 0x49a45a20]
and al, 0xda
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
test al, 0x23
xchg esp, eax
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
sub al, 0xea
cmpsd dword [esi], dword es:[edi]
div ebp
lodsb al, byte [esi]
outsb dx, byte [esi]
test al, 0x2e
mov eax, dword [0xf6a7a7a7]
dec esi
scasb al, byte es:[edi]
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
cmpsd dword [esi], dword es:[edi]
movsb byte es:[edi], byte [esi]
imul esp, dword [esi], 0xa7a7a566
cmpsd dword [esi], dword es:[edi]
div bh
pop eax
xor eax, 0xa79176ab
std
loop 0x80617d
jmp dword [esi]