Function at 0x587f16
Capabilities:
Encode data using xor

Disassembly:
mov bh, 0x42
and al, 0xc9
push esp
sub byte [edi], al
cmp eax, 0x9ec96e09
ror dword [esi - 0x62fcdddc], 0x89
imul edi, ebp, 0x47b36572
salc
or dword [edi], 0x1134939c
dec esp
and al, byte [eax + ebp + 0x17bbdd0b]
pop esi
je 0x587f35
adc dword [edx - 0x7c], ecx
sub byte [ebx], cl
fnstsw word [ebx - 0xb8ba1e9]
jmp 0x587f62
xchg esi, eax
lds esi, [esi - 0x4e874b70]
push ebp
add byte [eax], al
inc eax
pop ds
adc dl, ah
add cl, byte [0x126cfd8e]
inc esp
adc dh, bl
inc esp
loop 0x587f60
push ds
rcr dword [edi], 0x1b
mov byte [0x9addd8dd], al
add bh, byte [edi]
jg 0x587f9b
add byte [eax + 0x29fd2aa2], 0x62
and al, 0x4e
bound esp, qword [esi + ecx*2]
dec eax
mov byte [0x278014c], al
in al, 0x1f
mov dl, 0xca
push ecx
cmp dh, byte [ebx + edx*8 + 0x2357a25c]
xchg byte [edx - 0x3c], dh
stosb byte es:[edi], al
in al, 0x93
jne 0x587fec
stosd dword es:[edi], eax
sub dword [esi + esi*8 + 0x1cb0a93b], 0x3169fc6b
jecxz 0x587fc0
test eax, 0xfc6b1cb0
imul esi, dword [ecx], 0x3db71ce3
mov bh, 0x3d
inc edi
loope 0x587ff4
add dh, byte [esi + edi*2 + 0x6997d93c]
jo 0x587f4d
aaa
salc
inc esp
std
xor byte [edx + 0xe], ah
adc byte [ecx - 0x70], al
or ch, byte [edi + 0x53c4b397]
xchg edi, eax
mov bl, 0xc4
push ebx
fdivrp st(3)
inc eax
aad 0xc4
sub esi, dword [eax + 0x566794b4]
loope 0x587fd1
xchg ebp, eax
xchg ebp, eax
pop eax
jns 0x587f79
xor dword [esp + edx*2 + 0x7f23683f], ecx
adc bl, byte [ebp + 0x15]
aam 5
in al, 0xcd
invalid
stc
or bh, byte [ebp + 0x4a]
push 0x5a6c647a
pop edx
add ecx, dword [esi + eax - 0x25]
jecxz 0x587fb2
ror dword [ecx], cl
sar ch, cl
cmpsb byte [esi], byte es:[edi]
add byte ss:[esi + 0x658d3b00], ah
mov edi, 0x1ca4f122
or ebx, dword [eax]
cld
or dword [ecx], 0x36
mov word [edx], es
push ecx
popfd
add byte [eax - 0x15], cl
out dx, eax
sbb eax, 0x11e2fd23
cld
loopne 0x5880a0
xchg ebp, eax
cmp eax, dword [esi]
sub al, 0xc9
mov esp, 0x454e9fb3
xor eax, 0x743ef306
js 0x587fcf
aam 0x21
sal byte [edx + eax*8], cl
je 0x58804d
sub eax, 0x985e5a38
pop esi
in eax, 0xb1
ret
xchg edi, eax
fdiv qword [ebx + 0x53add660]
dec eax
dec esi
fidiv dword [ebp + 0x49]
cmpsb byte [esi], byte es:[edi]
bound ebp, qword [edi]
push 0xffffffffffffff8c
lds edx, [ebx]
mov ecx, 0x6de28616
in al, dx
les esi, [ebx - 0x61]
mov esp, 0xd4b7c987
mov word [ebx + 0xc5c736d], ds
xchg esp, eax
jae 0x5880cf
or al, 0x94
mov eax, dword [0x2d7d026d]
insd dword es:[edi], dx
add bh, byte [ebp + 0x2d]
mov bl, 0xad
mov bl, 0xad
add esp, eax
ljmp 0x4be2
xor eax, dword [esi - 0x16]
cld
pop esp
ficom word [edx + eax*2 - 0x3d9a3842]
jp 0x588076
aad 0x5b
jnp 0x58810a
fdiv qword [esi]
adc eax, 0xb36cb2e5
pop ebp
lodsb al, byte [esi]
in eax, dx
in eax, 0x1f
xor eax, dword [0x451ab2fb]
stosd dword es:[edi], eax
mov ah, 0x67
jnp 0x588071
scasd eax, dword es:[edi]
test eax, 0x8e0b5790
mov dh, dl
xchg edx, eax
stosd dword es:[edi], eax
scasd eax, dword es:[edi]
mov cs, word [edx - 0x50546d0e]
pop eax
mov ah, 0x79
insd dword es:[edi], dx
salc
push es
adc bl, byte [0xe31d544a]
cld
movsd dword es:[edi], dword [esi]
jb 0x58807c
cli
xor dword [edi - 0x71], esi
hlt
movsb byte es:[edi], byte [esi]
jne 0x588160
sahf
mov ebp, 0x96728834
sub dl, byte [esi]
push esp
popfd
test byte [ebx], bh
fstp xword [0xc2030264]
jb 0x58817f
pop edx
xchg esi, eax
adc byte [edi + 0x702231c6], dl
jecxz 0x588150
rol byte [edx + ecx*4 - 0x766786d9], cl
pop ecx
add dl, byte [ebx]
push eax
aaa
xchg dword gs:[eax*8 + 0x3560a3a1], esp
jecxz 0x588176
outsb dx, byte [esi]
imul eax, dword [ecx + 0x85fabef], 0x55
test eax, 0x6ca2390c
jg 0x58810e
cmc
jg 0x5881b9
xchg dword [edx - 0x2d703636], eax
mov byte [0xd28fc9ca], al
les edi, [ecx + 0x242b0971]
add edi, dword [edi + 0x4d76935e]
sub esp, dword [ebx + eax]
mov edi, 0x4d76935e
hlt
push esi
pop esp
pop edi
cld
pop ss
mov fs, word [ebx]
sub edx, ebx
push ss
add bh, byte [ecx + 0xe]
jns 0x58818f
ret 0xcc45
invalid
les esi, [edi + 0x6805e60]
pushal
std
bound esi, qword [edi + esi*4 + 0x61]
out 0xd0, al
lds esi, [ebp + 0x54]
jge 0x588157
mov ebp, 0x94fa6bed
xchg esp, eax
jb 0x5881e7
jecxz 0x5881d0
jae 0x588174
lodsd eax, dword [esi]
cmp ebp, ebp
sub bh, ah
invalid
xor ah, byte [esi - 0x46]
jnp 0x588269
les esp, [ebp - 0x79]
adc ecx, dword [ebx - 0x51547ad0]
enter 0xfffffffffffff4ba, 0xffffffffffffffc0
pop esp
adc esi, dword [eax]
daa
invalid
xor byte [edi - 0x79938769], ah
mov al, byte [0xc04fa09f]
inc ebp
dec ecx
imul esi, dword [eax + 0x4c890076], 0x64
mov edi, 0x7233d60b
mov dl, 0x30
push 0x1d6ab978
invalid