Function at 0x5a53c6
Capabilities:
Encode data using xor

Disassembly:
rcr byte [esi + 0x6d], 0xc5
xor ebx, 0x82e6f28b
lds eax, [ecx - 0x190d740d]
xor ch, 0xec
cmc
in al, dx
jle 0x5a5445
pushal
test byte [eax + 0x35], 0xa0
xor eax, 0x214330d9
adc byte [esi - 0x5f], al
inc edx
jne 0x5a53c9
add dword [edi + 0x25357761], edx
mov bh, 0x67
cwde
mov esp, 0xe1c681d7
cmp dword [esi], 0x22
nop
std
mov ecx, 0xc9b0506e
xlatb
add esi, 0x263c83e1
and dl, byte [eax + 0x506eb9fd]
mov al, 0xc9
xchg dword [ebx - 0xf], esp
add byte [ecx - 0x75], 0x40
rcl esp, cl
lodsb al, byte [esi]
fidiv dword [bx + di - 0x5d]
fidiv dword [ecx - 0x5d]
add al, 0xd0
mov ah, 0x14
and eax, 0x616e77d7
aaa
jl 0x5a5458
xor eax, dword ss:[ebx]
or edx, dword [ecx + 0x55]
mov cl, 0x46
mov cl, 0xe1
xchg eax, ebp
and dl, byte [esi - 0x4f18de69]
js 0x5a5415
js 0x5a541d
xchg ebp, eax
xchg edi, eax
jo 0x5a5466
fdiv dword [eax + 0x54]
and al, 0x4c
jne 0x5a54ac
or ch, byte [eax + 0x1c]
inc ecx
jg 0x5a5408
aaa
xlatb
dec esp
mov ah, 0xe
loopne 0x5a53ee
test al, 1
popfd
xchg ebx, eax
lahf
invalid
add dword [ebp + 0x24f09f93], ebx
invalid
in al, 0x3b
and dword [eax], edx
adc byte gs:[eax + 0x20], dh
jo 0x5a5476
adc ch, byte [ecx + 0x6419b451]
mov bl, 0x90
push ecx
mov ah, 0x19
mov bl, 0x90
invalid
jmp 0xbfe904af
and byte [ebp - 0x18], dl
adc bl, dh
pop esp
movsd dword es:[edi], dword [esi]
push ebp
call 0xa5b7478c
sbb ebx, ecx
or byte [edx], dh
lodsd eax, dword [esi]
lodsb al, byte [esi]
xor byte [eax - 0x937583e], al
enter 0xffffffffffffe044, 0xffffffffffffff8e
test al, 0x44
loopne 0x5a541a
js 0x5a5475
push es
jne 0x5a54ba
dec ebp
inc eax
inc esi
push es
sal dword [edx], 0xf0
and dword [edi], ecx
cmp edi, edx
xor byte [0xc3d1ea30], dh
int1
xchg dh, dh
mov ch, 0x8a
xor eax, 0xc7c062b9
mov cl, 0xb6
test byte ss:[esi + 0x23], dh
je 0x5a544e
sar dword [eax], 0xca
jb 0x5a5454
adc dword [ecx + 0x1cca2e50], 0x6b8dfb03
les edi, [ecx + 0x43c5e157]
jo 0x5a5487
xchg ecx, eax
push eax
retf 0x31c
pop ecx
sbb eax, dword [ecx + esi*8 - 0xb]
xor dword [0x7d964d21], edx
xchg byte [edx], bl
aad 0x50
push eax
inc esp
pushal
sbb al, 0xf5
in al, dx
add eax, 0xa5e134ab
and dword [ebp + 0x6b1d9df1], 0xe0c0e2aa
jle 0x5a5518
loopne 0x5a556f
cmp bl, byte es:[edx - 0x5dafec8b]
cmp bl, byte [edx - 0x5dafec8b]
fadd qword [ecx - 0x29]
pop ebp
and dword [0x60b1f5ae], ebx
sar dword [esi - 0x51], 0x81
or eax, dword [ebp + 0x1f]
sub byte [ebx], 0xb0
push ss
or dword [edx], 0x61526bbb
mov dl, 0xb7
mul dword [eax + 0x69]
movsd dword es:[edi], dword [esi]
pop edx
inc esp
neg dword [edi]
jo 0x5a555c
mov ch, 0xd1
jo 0x5a5545
invalid
xor byte [ecx + edx*8 + 0x34], ah
movsd dword es:[edi], dword [esi]
aam 0xe2
dec ebp
in eax, dx
xchg edx, eax
mov cl, 0x6d
xchg byte [esi], al
aaa
inc ebx
je 0x5a54ef
adc dword [ecx - 0x2b], edi
push eax
adc eax, 0xffffffc8
ror al, 1
fyl2x
lds edx, [ecx + 0x23]
mov esp, 0xf2dd6cad
mov eax, 0x9f91fc80
inc ecx
fnclex
push ecx
loop 0x5a55c2
xor dword [ecx + ecx*8 + 0x5fca2f10], eax
dec esi
dec edx
call 0x18a760f
sal ecx, 1
loopne 0x5a55d4
invalid
outsb dx, byte [esi]
and ebp, esp
mov bh, byte [esi]
xchg esi, eax
test ch, ch
cmp eax, 0xb18581d0
xor al, 0x7d
inc edi
sub dword [ecx + 0xa], edx
push cs
cmp al, byte [eax + 0x612d2814]
int1
nop
neg dword [ebx - 0xd]
movsd dword es:[edi], dword [esi]
pop es
frstor dword [edx - 0x70]
fstp dword [edi + 0x14e5b5]
adc dword gs:[eax + 0x63], 0xd90b7b71
dec ebp
xor byte [ecx + 0x305c65e5], 0xe3
das
jecxz 0x5a55f3
jle 0x5a5589
jns 0x5a55f2
inc esp
add byte [esi], dh
xchg ecx, eax
or dl, al
mov es, word [ecx]
add al, byte [eax + edi*2 + 0x40416f73]
outsd dx, dword [esi]
inc ecx
inc eax
pushal
and esi, dword [ebx]
and al, byte [ebx - 0x34eb4f35]
inc eax
sub byte [eax], 0xc3
ret 0xa18d
aas
push ebx
invalid