Function at 0x537e0d
Capabilities:
Encode data using xor

Disassembly:
inc esp
in al, dx
xlatb
dec ebx
xor ebp, ebx
mov ecx, 0x3d8e84c8
loop 0x537e4b
rol byte [edi], 0xb8
xor dword [ecx], esi
xchg esp, eax
nop
inc ebx
push edi
loop 0x537e10
push ds
sar dword [ebx - 0x56dd19a8], 0x29
dec edx
push edx
push 0x4d
add byte [edi], 0x70
loope 0x537eaa
xchg bh, bl
lodsb al, byte [esi]
rol dword [esi + ebx*4], 0xa6
mov edi, 0x5265fb3
fbstp tbyte [ebp - 0x6e938c0e]
inc edx
fnsave dword [edi]
aaa
dec ebx
push esi
or byte [ecx + 0x79], bl
xor al, 0xb3
test al, 0x5f
dec edi
mov esp, 0x30a6fd0a
shl byte es:[ebx], 1
cmc
lcall 0xafcd, 0x2c04cb44
int 0xaf
sub byte [edi + ecx*2 - 0x530244a2], bh
cmpsd dword [esi], dword es:[edi]
xor byte [ebx + eax*8], bl
je 0x537ea1
aad 0xba
inc ebp
jg 0x537e64
or ebx, dword [edx + 0x2927e8b8]
int1
invalid
pop ebp
inc ecx
in eax, dx
sti
and al, byte [ecx - 0x30]
out dx, al
jg 0x537efc
push ecx
jmp 0x9b4e0ebd
add edx, dword [ebp + 0x1d]
sgdt [ecx]
inc dword [esp + eax]
add eax, dword [edx]
pop es
xor byte [eax], 0x16
push es
add edx, dword [ebp + 0x1d]
and eax, 0x4ff0101
or al, 0x30
or al, byte [esi]
or byte [ebx], ch
push es
add dword [0x8030705], eax
xor byte [0x1d550306], bl
push cs
add al, 0x16
add al, 0x14
cwd
std
jl 0x537f46
sahf
add dl, byte [esi + 0x213a7c77]
mov al, 0x41
stosb byte es:[edi], al
rcr dl, cl
dec edi
sar cl, 1
xor byte [esi + eax + 3], cl
push ebp
sbb eax, 0x30450420
inc ebx
xor byte [ecx + 6], al
and byte [eax*2 + 0x41304330], al
push es
or dword [ebx], ebp
push es
add dword [ecx + eax], eax
mov al, byte [0x301e0132]
xor al, 0x30
xor al, byte [esi]
or byte [ebx], ch
push es
add dword [0x1020705], eax
push ss
push 0x73707474
cmp ch, byte [edi]
das
ja 0x537fe9
ja 0x537fa2
insb byte es:[di], dx
outsd dx, dword [esi]
bound esp, qword [ecx + 0x6c]
jae 0x537fe5
outsb dx, byte [si]
arpl word cs:[edi + 0x6d], bp
das
jb 0x537fea
jo 0x537ff6
jae 0x537ff2
je 0x537ffa
jb 0x538006
das
xor byte [ecx], cl
push es
add edx, dword [ebp + 0x1d]
adc eax, dword [edx + eax]
xor byte [eax], al
xor byte [ecx + 0x2b080690], al
push es
add dword [0x1010705], eax
add al, 0x81
xor dword [eax], 0xffffff81
xor byte [eax], 0x39
push es
or byte [ebx], ch
add eax, 0x4010107
add dword [ebx + 0x30808130], 0x2b080639
push es
add dword [0x1300705], eax
xchg byte [0x70747468], ch
cmp ch, byte [edi]
das
outsd dx, dword [esi]
arpl word [ebx + 0x70], si
insb byte es:[di], dx
outsd dx, dword [esi]
bound esp, qword [ecx + 0x6c]
jae 0x538037
outsb dx, byte [si]
arpl word cs:[edi + 0x6d], bp
das
arpl word [ecx + 0x2f], sp
jae 0x53804f
jae 0x53803e
arpl word [ecx + 0x73], sp
push 0x34383361
xor al, 0x30
inc ebx
push es
or byte [ebx], ch
push es
add dword [0x2300705], eax
xchg byte [edi], dh
push 0x3a707474
add al, byte [esi + 0x74746837]
je 0x53806c
jo 0x538034
das
das
jae 0x538063
arpl word [ebp + 0x72], si
insb byte es:[di], dx
outsd dx, dword [esi]
bound esp, qword [ecx + 0x6c]
jae 0x538074
outsb dx, byte [si]
arpl word cs:[edi + 0x6d], bp
das
arpl word [ecx + 0x63], sp
jb 0x53808c
das
jae 0x538090
jae 0x53807f
arpl word [ecx + 0x73], sp
push 0x34383361
xor al, 0x2e
arpl word [edx + 0x74], si
xor byte [edi], bl
push es
add edx, dword [ebp + 0x1d]
and eax, dword [eax + ebx]
xor byte [esi], dl
sbb byte [eax], dh
push ss
adc byte [edx + ebp*8], 0x16
invalid
jecxz 0x53800b
push edi
inc ebp
cmp dword [ebx], esi
movsb byte es:[edi], byte [esi]
invalid
push es
add edx, dword [ebp + 0x1d]
pop ds
add al, 0x3a
xor byte [eax], bh
xor byte [esi], dh
mov al, byte [0x8632a034]
xor byte [eax + 0x74], ch
je 0x5380d4
jo 0x53809f
cmp ch, byte [edi]
das
das
arpl word [edx + 0x6c], si
insb byte es:[di], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
bound esp, qword [ecx + 0x6c]
jae 0x5380dc
outsb dx, byte [si]
outsb dx, byte [esi]
arpl word cs:[edi + 0x6d], bp
das
arpl word [ecx + 0x2f], sp
jae 0x5380f4
je 0x5380f4
jae 0x5380e3
popal
arpl word [ecx + 0x73], sp
push 0x34383361
xor al, 0x2e
arpl word [edx + 0x6c], si
arpl word cs:[edx + 0x6c], si
xor byte [0x862a0906], cl
dec eax
xchg bh, dh
or eax, 0x50b0101
add byte [ebx], al
add byte [edx], 1
add byte [ebx + 0x4cb1be13], ah
add eax, dword [edx - 0x5cfffefe]
adc edi, dword [esi + 0x16774cb1]
mov ebp, 0xf351c337
jle 0x538137
push ebx