Function at 0x581638
Capabilities:
Encode data using xor

Disassembly:
inc ebp
das
adc edx, esi
push ebx
aad 0x76
mov bl, 0x54
int3
loope 0x58167d
adc eax, 0x9e4aedd2
sbb byte [ebx], 0xd1
pop esi
adc dword [esi + 0x69fa2143], edx
xor dword [edi], edi
xchg edx, eax
mov dword cs:[0xa199203b], eax
pop ds
ja 0x581666
shl esi, 1
jae 0x5815e7
lea ebx, [ebp + 0x54]
pop ebp
push esp
fiadd word ds:[edi - 0x4f]
and al, 0x7b
xlatb
cdq
bound esp, qword [eax + 0x6a]
xor ecx, dword [ebx + 0x38d00ebe]
lds ebx, [esi - 0x23cd1e13]
bound eax, qword [esi]
pushal
push 0x33
mov edi, dword [esi - 0x3ac72ff2]
sahf
in eax, dx
loope 0x5816a5
fsub qword [edx + 6]
je 0x581659
add eax, 0x48245c9d
inc ebp
mov al, byte [0x114d42e1]
dec ebx
lcall 0xe989, 0xa1ee82bb
pop ds
sal byte [eax], 1
mov ah, 0xfa
cli
or eax, 0xca10fd1d
inc esp
mov ebx, 0x769e3e26
jge 0x581706
adc dword [ebx - 0x66], ecx
mov ebx, 0x89a1ee82
jmp 0xb488e6ae
adc dh, byte [esi - 0x2076957f]
xchg esp, ebx
mov edi, 0x36d8721e
fdivr qword [edi + 0x36d8721e]
or byte [esi + 0x742f4cb6], ah
inc eax
stc
and bh, bl
adc byte [esi - 0xb1e1387], bh
jo 0x5816c9
hlt
or ebp, dword [edi + 0x6d0a9510]
scasd eax, dword es:[edi]
adc byte [ebp - 0x579192f6], dl
outsb dx, byte [esi]
insd dword es:[edi], dx
outsb dx, byte [esi]
test al, 0x6e
movsd dword es:[edi], dword [esi]
push ds
ror byte [eax], 1
loope 0x581682
or cl, ah
mov dh, 0x19
and dl, byte [ebx - 0x5e54394d]
leave
jl 0x5816c9
sbb dword [edx], esp
xchg ebx, eax
mov bl, 0xc6
stosd dword es:[edi], eax
mov eax, dword [0x28f37cc9]
out dx, eax
sub bh, ch
jle 0x5816c2
loope 0x5816bb
ret
subps xmm3, xmmword [edi + 0x49ea3108]
jbe 0x5816c4
out 0xc5, al
jo 0x581734
cmpsb byte [esi], byte es:[edi]
xor ecx, ecx
adc eax, 0xf294ecfe
jae 0x5816bd
mov bl, 0xa6
cmpsd dword [esi], dword es:[edi]
mov word [ecx - 0x10b34bb0], cs
push edi
leave
out dx, al
dec ebp
cmp dh, al
sbb ch, byte [edx + 0x5d]
xchg ecx, eax
jg 0x5816e2
inc eax
invalid
adc dword [edi + 0x35], ebp
cmpsb byte [esi], byte es:[edi]
stosb byte es:[edi], al
jne 0x5817a0
cmc
pushal
sahf
insb byte es:[edi], dx
push dword [eax - 0x5f959ba2]
insd dword es:[edi], dx
sub dword [esi - 0x5c], 0xb71ae2bd
scasd eax, dword es:[edi]
add ecx, dword [ecx - 0x408601cc]
adc edi, dword [ebp + 0x7e]
mov al, byte [0x91655774]
cli
scasb al, byte es:[edi]
cmp eax, 0xa390b481
xchg dword [ecx - 0x1c223433], esi
scasb al, byte es:[edi]
xor dword [ecx - 0x30], ecx
movsd dword es:[edi], dword [esi]
xor edi, esi
fcmovnu st(0), st(7)
sub dword [esi + 0x3a02ad10], ebx
cdq
pop dword [eax - 0x77f1abf6]
invalid
mov bl, 0x56
and dh, 0xc6
outsb dx, byte [esi]
out 0xa4, eax
inc edx
mov byte [0xc64bbf01], al
sbb byte ds:[ecx + edx*4 - 0x34], bh
add al, 0x24
loope 0x5817eb
int1
insb byte es:[edi], dx
mov esp, 0x636f417f
and eax, 0x5152a14e
arpl word [ecx + 0x52a14ee0], ax
push ecx
loopne 0x581810
mov eax, dword [0xe4265152]
ror byte cs:[esi], 0x87
in al, 0x2e
ror byte [esi], 0x87
push ds
cli
imul eax, dword [eax + ebx - 0x74a9527c], 0xa5eae651
mov ah, 0x9e
adc ebp, eax
mov ch, 0x9e
invalid
push cs
sal dword [ebx + edx - 0x19c2c1da], 1
push esp
sbb ah, cl
mov esp, 0x77d387bb
or al, 0x2e
or al, 0xf6
aaa
or dword [ebx - 0x7f55dc81], esi
outsd dx, dword [esi]
int1
shl esp, cl
dec ebx
inc ecx
in eax, dx
stosd dword es:[edi], eax
in al, 0xce
stosb byte es:[edi], al
fiadd dword [esi + ebp*8 + 0x60]
sahf
jno 0x5817c0
xchg ecx, eax
lodsd eax, dword [esi]
aam 0x89
sub dword [eax], esi
cmp eax, 0x520f6341
push eax
loop 0x5817be
push edi
adc ah, bl
inc edx
cmpsb byte [esi], byte es:[edi]
sar dword cs:[edi - 0x501eeb91], cl
push ecx
ljmp 0xa561