Function at 0x5015f2
Capabilities:
Encode data using xor

Disassembly:
fmul qword [edx]
push esi
out dx, eax
xor byte [edx + esi*8 - 0x1acc9af0], bl
xor esp, ebp
fcmovnu st(0), st(2)
salc
fcmovbe st(0), st(6)
mov ch, 0xb9
dec ecx
push cs
cmp byte [0xf54bad7a], bh
sbb esp, dword [eax]
scasb al, byte es:[edi]
jnp 0x5015fa
std
arpl word [esi + 0x1c6ee683], cx
inc ebx
out 0x6e, al
sbb al, 0x43
mov esi, 0x7985206b
jnp 0x50168f
aas
mov al, byte [0x8142c817]
and ebp, 0xcb68efbf
pushal
loop 0x501615
inc esi
in al, dx
bound eax, qword [ebx + 0x5d06a8c7]
movsd dword es:[edi], dword [esi]
adc eax, 0x7779fe38
pop ecx
mov ecx, 0x5bb9038b
xor dword [ebx + 0x16], ebp
jnp 0x5016c0
push 0x2d
imul ebp, esi, 0xf554533
cmpsb byte [esi], byte es:[edi]
xchg ecx, eax
das
cmp al, ch
ja 0x50165b
jl 0x5015fe
aad 0xc5
mov dword [0x5dab5bbb], eax
mov al, 0xfd
ret 0x9690
out 0x85, al
ret
jae 0x501698
xor eax, 0x3ca1af29
invalid
mov al, byte es:[0xed0b497f]
inc ebx
add edx, dword gs:[ebx - 0x655f556d]
dec eax
mov es, word [ecx + 0x24c13653]
mov eax, dword [0x79984a88]
shr dword [eax], 0x66
int1
xchg ebx, eax
xchg ebx, eax
stosb byte es:[edi], al
mov al, byte [0x818e489a]
push ebx
shl dword ss:[ecx], 0x88
dec edx
cwde
jns 0x50166b
sub byte [esi - 0xf], ah
enter 0xffffffffffffd80a, 0x78
int3
inc edi
jg 0x501677
pop esi
sub esp, edx
mov al, byte [ebx - 0x69bf8e4c]
sar byte [ebx - 0x5fbea647], 1
adc byte [ebp - 0x44a46d87], al
dec eax
wait
jl 0x501701
aas
jne 0x501726
pop ecx
inc edx
add al, 0xe6
stosd dword es:[edi], eax
das
or al, 0xf0
or al, 0x81
sub byte [ebx - 0x4bc5d0f9], dh
xor esi, dword [ecx + 0x1e92f311]
hlt
shl byte [ecx], cl
xchg esp, eax
pop ebp
jge 0x501784
cmp byte [ebp - 0x610d494f], 0x20
movsd dword es:[edi], dword [esi]
outsb dx, byte [si]
movsb byte es:[edi], byte [esi]
adc byte [edi], cl
fiadd dword [ebx - 0x342c2e16]
or al, byte [esi]
push ds
mov al, 0xd7
sar byte [ebx + 0x56], 0x4b
int1
popal
salc
invalid
cwde
push eax
lodsb al, byte [esi]
mov dh, 0xc2
mov esi, 0x8fdc9f04
stosd dword es:[edi], eax
push edx
xchg ebp, eax
adc bl, al
mov dword [0x26710818], eax
sub byte [ecx + 0x36], al
add ecx, dword [edi - 0x4b40aed0]
invalid
cmpsb byte [esi], byte es:[edi]
sbb byte [ecx], 0x80
cmp dword [ecx], 0x677bc0eb
fisub dword [eax - 0x3e]
pop edx
mov ah, 0x4f
test byte [eax], dh
aam 0xde
rol dword [eax + 0x16826094], 1
aam 0xff
insb byte es:[edi], dx
mov al, 0x4b
mov al, byte [0x776180f9]
push es
jb 0x501801
fsubr qword [eax]
mov al, 0x38
in al, 0xc8
adc cl, byte [edx - 0x30]
add al, 0xbf
call 0x83af7a99
loop 0x5017ef
jecxz 0x5017f0
pop eax
js 0x501743
int1
daa
test byte [eax - 0x3e2750b6], cl
sub bh, al
sbb dword [edx + 0x2e], ecx
fadd dword [esi + 0x63]
mov byte [0x262dd13b], al
not dl
insb byte es:[edi], dx
cmp edx, ecx
sub eax, 0x6cd2f626
in eax, 0xe5
jbe 0x501863
push eax
mov al, byte [0x5d55bd62]
int 0x57
xor byte [ebx + 0x3e], bh
pop ebx
nop
or dword [edi + 0x1109c1cc], esi
int 0xa1
or ebx, dword [eax]
and al, 0x2c
mov ebx, dword [esi + 1]
and eax, dword [edi + ebx*2 - 0x5d69d1c5]
lodsb al, byte [esi]
stosd dword es:[edi], eax
dec ebx
loop 0x501866
daa
mov cl, 0xc3
dec edx
cwde
mov byte [eax], bl
add ebp, dword [ecx + 0x2b]
jecxz 0x501839
adc edi, esi
aaa
ret
nop
cmc
push 0x4c894cd8
dec ebx
pop edi
fild word [ecx]
stc
mov cl, 0x58
lcall 0xf10a, 0xdf3aa0d1
retf 0x34cf
jne 0x501806
mov ah, bh
cld
adc eax, 0xf8c5c178
movsd dword es:[edi], dword [esi]
loope 0x501892
adc byte [ebx], ch
or bh, ch
jo 0x501814
jns 0x501882
popal
invalid
sbb edi, dword [ecx]
pop eax
test bl, al
adc eax, 0x63d31c18
ret 0xa874
fild dword [ecx + esi + 0x10]
dec ebx
fild word [eax - 0x56280fc9]
std
mov ah, 0xfe
lds edx, [esi - 0x58]
inc ebx
inc ebp
pop ds
shl byte [eax], 0x4d
loope 0x5018d6
inc eax
arpl word [edx + 0x632a2149], ax
jmp 0x5018ef
sbb al, byte [eax]
retf
pop esi
cmp bh, bh
ret 0xb2e5