Function at 0x5d9aa1
Capabilities:
Encode data using xor

Disassembly:
xchg ebx, eax
cdq
fnstcw word fs:[eax + 0xa]
mov edi, 0x4195c49b
lea esp, [edx + 0x4d]
add dword [ebp + 0x6e], ebx
xchg ebx, eax
mov edx, 0x3759806a
fsubr qword [edi + edx + 0x266ce57e]
add ah, byte [eax]
mov al, byte [0x635cb622]
out 0x37, al
loope 0x5d9b0c
add bl, byte es:[ebp + 0x71]
movsd dword es:[edi], dword [esi]
xor dword [esi - 0x10], edx
adc edx, esi
push ebp
invalid
xchg dword [ebx - 0x1a], esp
aaa
loope 0x5d9b64
add bl, byte es:[ebp + 0x47]
xchg ebp, eax
xchg ecx, eax
push ebx
outsb dx, byte [esi]
daa
mov dh, 0x5c
arpl si, sp
aaa
loope 0x5d9b84
add bl, byte es:[ebp - 0x70]
mov edi, 0xcd581ac0
mov ss, word [ebx + 0x6e]
daa
adc dword [edx + 0x5a7e176c], 0x4102266e
and dword fs:[edx], eax
pop ebp
outsb dx, byte [esi]
ljmp 0x5d02
pop ebp
or dword [edi], ecx
add al, byte [eax]
lcall 0xdceb, 0xc76e5d0c
xchg esp, eax
cmp esp, ecx
int3
pop ebp
outsb dx, byte [esi]
xchg ebp, eax
inc ecx
or dword [eax - 0x4a], esp
or al, 0x5d
outsb dx, byte [esi]
pop ss
jge 0x5d9b1a
outsb dx, byte [esi]
add al, al
leave
add bl, byte es:[ebp + 0x5d]
xchg ebp, eax
xchg ecx, eax
push ebx
outsb dx, byte [esi]
daa
jle 0x5d9bbd
daa
cmp dword [ebx - 0x7fd891ab], ebx
push ss
jecxz 0x5d9bd1
in eax, dx
pop ds
or byte [ebx - 0x47717beb], 1
aas
outsd dx, dword [esi]
daa
xchg esp, eax
mov byte [esi + 0x76], ah
cmp al, 0x5d
invalid
outsb dx, byte [esi]
cdq
les esi, [eax - 0x1ec819a0]
lahf
add bl, byte es:[ebp + 0x5d]
push ebp
cmp dword [edi + ebp], eax
cmp byte [ecx + 0x2bfd49b], 0x2b
wait
aam 0xbf
add ch, byte [ebx]
jae 0x5d9bfe
xchg esp, eax
push esp
lodsd eax, dword [si]
adc al, 0x5d
outsb dx, byte [esi]
mov dword [esp + ebx + 0x5ce095de], 0x55f3266e
sbb al, 0xde
xchg ebp, eax
loopne 0x5d9c41
outsb dx, byte [esi]
push ebp
lock sbb dword [edx], eax
sub edx, edi
xor al, 0xac
outsb dx, byte [esi]
daa
loop 0x5d9bd0
lodsb al, byte [esi]
pop ss
jge 0x5d9bb1
outsb dx, byte [esi]
add dl, byte es:[esi - 0x10]
sbb dword [ecx], ebx
jns 0x5d9be0
add bl, byte es:[esi - 0x60]
sbb al, byte [ecx]
pop ebp
outsb dx, byte [esi]
sbb dword es:[eax + 0x5602266e], esp
lock sbb dword [ecx], ebx
add dl, byte [esi - 0x10]
sbb dword [ecx], ebx
inc ebp
fisub word [esi]
add bh, al
pop ebx
push ebp
or eax, 0x20e055f
int3
les eax, [ebp + ebx*2 - 0x5324029a]
pop ss
jle 0x5d9c0f
insb byte es:[edi], dx
add al, byte es:[edx]
mov al, byte [0xd09cbf0e]
xchg ebp, eax
inc ecx
lea esp, [ebx - 0x66]
rcl byte [ebp - 0x659c72bf]
add dword [ebp + 0x6e], ebx
xchg ebx, eax
les eax, [ebp + ebx*2 - 0x1205029a]
pop ebp
cld
into
fist word [ebp + 0x266e5cde]
mov edi, 0x6a1128f4
xlatb
xchg esp, eax
push esi
les ebx, [esi + ebp*2 + 0x17]
jge 0x5d9c2f
insb byte es:[edi], dx
add al, byte es:[edx]
ja 0x5d9cc9
sal bl, 0x70
xchg ebx, eax
jmp 0xa0ae244
jnp 0x5d9d2c
bound esi, qword [edx]
sub eax, 0x155507fd
xor ch, byte [0x155507fd]
pop eax
outsb dx, byte [esi]
add al, byte es:[edx]
mov al, byte [0xd0f4bf0e]
cdq
in al, dx
mov al, 0x5a
std
add dword [edi + 0x62], esi
or byte [ebp + 0x44], dh
push ebp
adc dword [ecx], ecx
das
mov edx, 0xbfd49bc0
lahf
pushal
out 0x25, al
xor bl, byte [ebp + 0x6e]
daa
xchg esp, eax
push esp
outsb dx, byte [esi]
movsd dword es:[edi], dword [esi]
or eax, 0x2bbe365d
in al, 0xd2
mov dword [esp + ebx + 0x5cd18ade], 0x1f3266e
cwde
push ds
rcr byte [ebp + 0x5a], 0xa5
cmp dword [edx], eax
pop ecx
or dl, byte [edi]
cmp al, 0x8e
mov ebp, 0xbb7658ec
lahf
push esi
jno 0x5d9cc8
or eax, ecx
outsd dx, dword [esi]
jmp dword [0xeb803bb6]
fld xword [edi + edx + 0x266e9d7e]
add bl, byte [esi - 0x60]
xor cl, byte [eax]
pop ebp
outsb dx, byte [esi]
loope 0x5d9d3e
mov al, byte [0xe3168032]
in eax, dx
xor al, byte [eax - 0x12d91cea]
pop ds
or byte [ebx - 0x6c7177eb], 0xc4
test byte [ebp - 0x42], bl
sub eax, 0xb61e8820
pushfd
loopne 0x5d9cf0
les esi, [eax + 0x57c5be5a]
idiv byte [ecx + ebp*8 - 0x5201e4c]
nop
outsd dx, dword [esi]
sal dword [edi], cl
outsb dx, byte [esi]
xchg dword [edi*2 - 0x7a7521a1], edx
pop esp
outsb dx, byte [esi]
int1
add dword [edx - 0x233640f2], ebx
imul edi, dword [eax - 0x7b], 0x5d021045
pop ebp
outsb dx, byte [esi]
cdq
js 0x5d9da4
pop ds
cwde
and dh, byte [esi - 0x42f42767]
push esp
pushfd
mov edi, 0x25e6609f
xor bl, byte [ebp + 0x6e]
daa
xchg esp, eax
pop eax
lahf
daa
stosb byte es:[edi], al
hlt
lea esp, [edx + 0x5e]
add dword [ebp + 0x6e], ebx
mov edi, 0xe63c5dc0
cmc
int 0x73
clc
loop 0x5d9d84
pop ebx
mov ebx, 0x171df031
mov dh, 0x56
outsb dx, byte [esi]
add ah, byte es:[eax]
sbb al, 0x93
mov ss, word [eax + 0x30da5c5]
mov byte [0xe0d48716], al
cmp esp, ecx
loop 0x5d9df9
add bl, byte [ebp - 0x2b]
ljmp 0xdfe9
pop ebp
aad 0xea
loop 0x5d9db2
and ebp, dword [esi - 0x17]
fbld tbyte [ebp - 0x67]
add bl, byte [ebp + 0x6e]
leave
jp 0x5d9d80
jl 0x5d9e0d
add bl, byte [ebp + 0x6e]
cmp dword [edx], edi
pop ebp
outsb dx, byte [esi]
inc ebx
wait
jl 0x5d9e04
add bl, byte [ebp + 0x6e]
mov cl, 0xb6
wait
jl 0x5d9dd4
dec eax
pushal
outsb dx, byte [esi]
invalid
cld
pop es
push ebp
add eax, 0x2266e58
fisubr dword [edi - 0x2d20e514]
cmp ebx, esp
scasd eax, dword es:[edi]
in al, dx
sbb bl, bh
shl byte [esi], cl
cmp ebx, esp
loope 0x5d9e3d
add bl, byte [ebp + 0x67]
dec ecx
add dword [ebp + 0x6e], ebx
xchg ebx, eax
les eax, [ebp + ebx*2 - 0x77dfd242]
loop 0x5d9de3
pushfd
loopne 0x5d9dbe
jmp 0xb69c0bc8
lds edx, [ebp + 0x45]
pop ds
mov al, byte [0xac9bbbe6]
xchg ebx, eax
jmp 0x32a101d4