Function at 0x5371d6
Capabilities:
Encode data using xor

Disassembly:
lodsb al, byte [esi]
jne 0x537181
dec esi
sub dword [eax + 0x24], ebx
mov dh, 0x38
lcall 0x4eb5, 0x1542cb2b
outsb dx, byte [esi]
aad 0x9a
xchg ebp, edi
sub ax, 0x9975
jbe 0x537193
sub eax, 0xd769975
or eax, 0xe17a4e9c
pushfd
dec esi
jp 0x53716b
les eax, [ecx + ecx*4 - 0x7b58d2fa]
mov ecx, 0xd4a8eca1
in al, dx
test al, 0xd4
fcmovbe st(0), st(7)
push eax
and byte [ecx + 0x34dfef76], 0x2d
fdivr dword [edi - 0x4b]
js 0x5371d9
mov eax, dword [0xf0b14138]
pop ds
lds ebp, [edi]
enter 0xffffffffffffd655, 0xffffffffffffff95
fld qword [ebp - 0x49]
mov ecx, ebx
test dl, ch
add al, 0x1e
push ds
add eax, 0x16d1e6be
sbb eax, ebp
mov ebx, 0xcf622ae1
and eax, 0x4259c36
jnp 0x537248
xchg edx, eax
jo 0x53724b
jp 0x537185
sbb al, 0xcf
and cl, bh
movsd dword es:[edi], dword [esi]
and edx, edx
mov bl, 0xf6
inc ebx
fmul st(2)
jns 0x53716f
add eax, 0xa68a2192
push ebp
and ebx, ebp
dec ebp
sbb ebx, dword [edx]
xor al, 0xb7
outsb dx, byte [esi]
clc
xor al, 0x53
outsb dx, byte [esi]
mov ebp, edx
mov byte [0xc86c429e], al
add edi, eax
mov eax, 0x7afbcee9
test dword [edx - 0x4f9387f8], ecx
test byte [ecx + 0x77], ch
push esi
jle 0x5371ed
cli
push 0x349186b7
xchg ecx, eax
mov eax, dword [0xb9c796f1]
mov bl, 0xea
dec ebp
jmp ecx
mov dword [0x3414636f], eax
jmp 0x5085a98d
add esp, dword [eax*8 - 0x1621d96f]
std
invalid
mov dh, 0x2b
aam 0xce
into
or byte [0xc8d1b00f], 0x16
sbb al, ah
fstp xword [eax - 0x37]
rol byte [edi - 0x74540429], 0xf6
jnp 0x5372c9
mov ah, byte [edx]
sbb al, 0xed
cmp edx, dword [eax]
neg dword [edx - 0x66]
pop esi
pop ss
mov byte [ebx - 0x3c], bl
sti
outsb dx, byte [esi]
xor byte [ecx - 0x35031b4c], bh
cmp ebp, ebp
xchg eax, ecx
mov dl, 0x4f
imul edx, edx, 0x60
sal dword [esi + 0x1d68655b], 1
jno 0x53721f
and al, 0x86
sti
test eax, 0xaa259817
dec ebp
or ch, byte [ecx - 0x21]
sbb al, 0xef
pop esi
test al, 0xe
stosd dword es:[edi], eax
js 0x537313
xor dl, byte [0x22bae3be]
pop ebx
in eax, 0x4b
loopne 0x5372e4
cmp al, ah
loopne 0x5372e5
jo 0x537238
sbb edi, eax
mov bh, 0x2a
pop ebp
rcr edx, 1
mov ecx, 0x4b9fb78b
fild dword [ecx - 0x77]
sub dword [eax], eax
adc eax, 0x8d438c4b
pop ebx
invalid
invalid
cld
ficomp dword cs:[edx - 0x33]
mul dword [ecx + 0x6c02538a]
movsb byte es:[edi], byte [esi]
mov dword [0xb3bef119], eax
xor eax, esi
les esi, [ecx - 0x64339f71]
mov ch, 0xe7
adc dh, ah
js 0x53737a
mov dl, 3
pop eax
aad 0x8d
lds ebp, [esp]
wait
lds eax, [esi]
popal
add dword [edi + 0x27], ebx
daa
push 0x81c36d62
push eax
push ss
and dword [edx + 0x47], 0xffffffc7
push edi
push ss
ja 0x537362
sub byte gs:[ecx], ch
fld dword [edi - 0x57]
add al, cl
invalid
xor eax, 0x284e8551
neg byte [ecx + edi]
mov byte [0xc2996704], al
sti
mov bh, 0xdc
aad 0x91
fmulp st(2)
fld dword [ebp - 0x242e4cca]
rcr ebx, 1
pop ebx
mov al, 0x18
dec esi
add dword [eax + 0x4e], ebx
push 0xfffffffffffffff4
push edx
dec edx
jnp 0x5373f3
ret
mov byte [esi], dh
mov dword [edx], esp
insd dword es:[edi], dx
salc
mov dl, 0xbd
pop edx
mov ah, 0x54
stosb byte es:[edi], al
pop ecx
mov dword [0xc53776c3], eax
xchg esi, eax
inc ebp
pop ds
aaa
wait
pop ss
clc
in eax, dx
wait
mov eax, dword [0xc2120b1e]
mov esp, ebp
dec ecx
cmc
mov fs, esp
aad 0x14
imul esi, dword [ecx], 0xffffff99
stosd dword es:[edi], eax
salc
or bh, 0xb0
mov eax, 0x68b74c9
fxch st(5)
call 0x11c960ac
pop ebp
jne 0x5373bb
loop 0x537385
fidiv dword [edi + eax*4]
sub al, 0x8c
int 0x5c
push ebx
mov ah, 0xaa
mov bh, 0x27
ficom word [ecx + 0x7a]
add eax, 0xb5be9805
outsb dx, byte [esi]
invalid