Function at 0x817bc4
Capabilities:
Encode data using xor

Disassembly:
sub eax, 0xd9d81509
or ecx, ebp
fcom st(5)
or ebp, edi
fadd st(1)
or ecx, esi
fdivr st(5)
or ebp, eax
fsubr st(1)
or bl, cl
test dword [ecx - 0x247edb56], esp
in al, 0xbb
int3
pop es
inc edi
into
ja 0x817b5c
xchg ebx, eax
les esp, [edi - 0x14]
das
add byte [edi], bl
shl dword [ebx], 1
add byte [ebx], cl
sal dword [edi], 0x6b
mov esp, 0x29d805a9
or dword [ecx], ebx
fsub dword [0xd1d8ed09]
or ecx, esp
fmul st(5)
or ebp, esi
fdivr st(1)
or cl, cl
shl dword [esi - 0x2f], cl
fst qword [eax]
loope 0x817b4f
inc esp
inc ecx
popfd
mov esi, dr7
out 0x41, eax
push cs
aas
add bl, ch
jmp 0x817bce
add byte [edx + 7], bl
add byte [eax], al
jmp 0x817bce
pushal
call 0x817bd4
pop ebp
sub ebp, 0x10
sub ebp, 0x417bc4
jmp 0x817bea
mov eax, 0x417bc4
add eax, ebp
add eax, 0x4c
mov ecx, 0x5f5
mov edx, 0x8e88eb68
add eax, 0x68ba0000
jmp 0x817b88
xor byte [eax], dl
inc eax
dec ecx
jne 0x817c01
jmp 0x817c14
jecxz 0x817bbb
jecxz 0x817bf9
push esp
push 0xa9e96868
nop
push 0xa56b6868
shr byte [edi + 0x68], 1
push 0x6840d268
test eax, 0x68686890
imul esp, dword [ebp + 0x68686fd0], 0x68
rol byte [eax + 0x68], cl
push 0x6b8a9f68
mov al, byte [0x6864e9e3]
push 0xe5ad6b68
or al, 0x4c
jecxz 0x817c1d
push 0xad6b6868
in eax, 0xc
dec esp
xchg esp, eax
loope 0x817cac
dec esp
cmp byte [eax], al
js 0x817c0b
push 0xdb00
movsd dword es:[edi], dword [esi]
pop edx
push 0x4c4469
xor byte [esi + 0x6d805706], al
push 0x40816868
push 0xe33d6868
test bl, ah
in eax, dx
pushal
push 0xfde36868
push 0xe5e36868
js 0x817cd9
push 0x6a81a968
pop ecx
push 0xffffffffffffffeb
stosb byte es:[edi], al
insb byte es:[edi], dx
and dword [edi - 0x13], esp
pushfd
xchg edi, eax
xchg edi, eax
xchg edi, eax
xor eax, 0xe36864aa
in al, 0x4c
insb byte es:[edi], dx
push 0x78006868
invalid
dec esp
sub byte [ebp + 0x68], 0x68
push 0x686a2d81
push 0x9784e33d
jecxz 0x817c32
xchg edi, eax
sbb eax, 0x601d9764
adc byte [eax], 0x68
push 0x60d5e368
push 0x99e96868
imul eax, esi, 0xffffffdf
jmp 0xc6eca363
loopne 0x817cfc
push 0xe30e6868
je 0x817d34
call 0xece8fd7b
jb 0x817d52
push 0x8193e868
in al, dx
jns 0x817d5b
push 0x93e90e68
xchg edi, eax
dec ebp
in al, dx
jge 0x817d66
push 0xa4812968
xchg edi, eax
xchg edi, eax
xchg edi, eax
inc ecx
and al, 0x51
imul ebp, ebx, 0x80eb6da9
insb byte es:[edi], dx
adc ebp, 0x41979797
inc ecx
cmp al, 0x51
push 0xffffffffffffffeb
test eax, 0x6c82eb6e
jmp 0x817ca1
jmp 0x817ca0
push 0x3e84e33d
aas
aas
cmp eax, 0xe3641de3
adc eax, 0xe8da9460
loop 0x817db0
jmp 0x68e9e6f5
imul ebp, dword [eax + 0x68], 0xe96fe068
scasd eax, dword es:[edi]
push 0xafe96fe0
imul ebp, dword [eax + 0x68], 0x686ad368
push 0x67ba6a68
in eax, dx
push 0xba6a6868
mov edx, 0x686ded67
in eax, dx
insd dword es:[edi], dx
push 0x7ee26868
jp 0x817d1c
push 0x2e7ee268
jp 0x817d1c
jmp 0x817d15
xchg edi, eax
xchg edi, eax
xchg edi, eax
push 0xffffffffffffffba
in eax, dx
insd dword es:[edi], dx
push 0x7ee26868
jp 0x817d2f
mov edx, 0x6802eb67
push 0x6aa85b68
mov edx, 0x686ded67
push 0x2e7ee268
jp 0x817d44
jmp 0x817d7a
push 0xba6aa85b
in eax, dx
insd dword es:[edi], dx
push 0x7ee26868
jp 0x817d44
push 0x7a2e7ee2
mov edx, 0x6942eb67
push 0x67ba6a68
in eax, dx
insd dword es:[edi], dx
push 0x7ee26868
jp 0x817d57
jmp 0x817dcf
jnp 0x817d47
push 0xffffffffffffffba
in eax, dx
insd dword es:[edi], dx
push 0x7ee26868
jp 0x817d66
jnp 0x817d56
push 0xffffffffffffffba
in eax, dx
in eax, dx
insd dword es:[edi], dx
push 0x7ee26868
jp 0x817d75
jnp 0x817d65
push 0xffffffffffffffba
in eax, dx
in eax, dx
insd dword es:[edi], dx
push 0x7ee26868
jp 0x817d84
jnp 0x817d74
in al, dx
outsb dx, byte [esi]
push 0xb7e36868
inc ebx
mov al, 0xe2
imul esp, eax, 0x6f
das
shr dword [edx + 0x68], cl
push 0x97188168
xchg edi, eax
xchg edi, eax
shr byte [ecx + 0x68], 1
push 0x67ba6a68
in eax, dx
insd dword es:[edi], dx
push 0x7ee26868
jp 0x817db1
jnp 0x817da1
push 0xffffffffffffffba
in eax, dx
insd dword es:[edi], dx
push 0x7ee26868
jp 0x817dc0
ljmp 0xab43:0x979797b6