Function at 0x50e15a
Capabilities:
Encode data using xor

Disassembly:
and dh, cl
jmp 0x50e1b6
popal
rol byte [eax - 0xd], 0x39
jecxz 0x50e22d
popfd
inc ecx
les eax, [ebx + 0x3296a68d]
sbb eax, ebx
or dword [ebp + 0x1b3296a6], 0xffffffc3
mov cl, 0x36
push 0x7ed69383
xchg byte [eax], bh
pop edx
sub bh, byte [0x841086a4]
cmpsb byte [esi], byte es:[edi]
loope 0x50e1ac
add dword [edx - 0x303ef31e], ebx
push ecx
mov esp, 0x20432cf5
iretd
scasb al, byte es:[edi]
mov dword [ecx + 0x1a], edi
retf 0xd7ae
mov al, byte [0x67f39eed]
test ch, 0x8c
or al, byte [edi - 0x21]
cld
dec eax
inc edi
lodsb al, byte [esi]
pop dword [ecx + 0x59]
div esp
push 0xc41
mov ebx, dword [ecx - 0x1a]
push 0x27f765ac
pushfd
cdq
push esp
or esi, dword [ebx - 3]
jnp 0x50e295
test dword [ecx + 0x63], 0x788580cd
push cs
int 0x80
test dword [eax + 0xe], edi
mov eax, dword [0x6979ba3c]
jnp 0x50e208
test byte [eax], al
xchg byte [eax - 0x13], dh
in ax, 0x5d
adc eax, 0x2c4739cc
adc edx, dword [eax + 0x5926d923]
and byte [ebp - 0x79], ch
mov cl, 0x92
fmul qword [esi - 0x25]
mov dword [0xd47b326f], eax
loop 0x50e259
test dword [ebx + 0x43], 0x53583933
cmpsb byte [esi], byte es:[edi]
or al, 0x63
jno 0x50e295
xchg ebp, eax
push ecx
enter 0x802, 0x68
cmp ebx, dword [edi - 0x63]
or ebp, dword [esi]
xor eax, 0xbebf7b79
or bh, al
inc eax
add ah, bl
sub eax, 0x36289bfa
in eax, dx
inc byte [ebp + 0x70]
mov byte es:[edi + eax*2 + 0x5e], bh
pop esi
or eax, 0x2fd27202
jge 0x50e312
or bl, al
stc
out dx, al
push 0xee1877a6
mov ah, 0x42
sti
mov esi, 0x3f622c09
pop eax
call 0x40f16fa0
add ah, byte [ebx]
adc byte [eax], 0xc6
cmp bl, byte [edi]
test byte [ecx], al
cmp eax, 0x58b6e7e6
jae 0x50e32a
shl dword [ebx + 0x6ccd3ebd], cl
xchg edi, eax
push es
invalid
mov esp, 0x1747faa6
scasd eax, dword es:[edi]
dec ebp
daa
pop edi
out 0x4e, eax
pop edx
pop ebp
clc
sbb eax, 0x350d0ae5
pop ebp
xor al, 4
lds edi, [0xc59f7366]
cmp eax, 0xc59f7366
jae 0x50e2b5
lds eax, [edi - 0x2b385c2d]
inc esp
mov byte [ebx - 0x1e], cl
fisub dword [esi + 0x3c43b200]
add byte [ebx - 0x171ff3b9], ah
xchg ebx, edx
mov dword [0x8844d4c7], eax
dec ebx
loop 0x50e2fb
cmpsb byte [esi], byte es:[edi]
add byte [edx - 0x5cffc3bd], dh
inc edi
or al, 0xe0
call 0xeab306c1
loopne 0x50e314
xchg ecx, eax
and esp, dword [edx - 0x16]
adc byte [eax - 0x26], al
jge 0x50e36a
fldcw word [ebx]
out dx, eax
std
fldenv [edx + 0x3b0ecc82]
fcmovnb st(0), st(3)
sbb dword [edi + 0x31ce92ee], eax
dec eax
int1
xchg edx, eax
bound edi, qword [esi]
xor dword [ebx + 0x7b4ddea1], 0x88945c9b
invalid
adc eax, 0xf8c25ecc
adc ebp, ebx
stc
add ebx, dword [edi + 0x1d]
cmp bl, byte [edx]
jle 0x50e3cf
mov dh, 0x63
sbb al, 0xca
fnstsw word [edx - 0xd9c4bb0]
clc
push es
mov eax, ecx
invalid
sti
lodsb al, byte [esi]
add eax, 0x1e634c83
arpl word [ecx - 0x239c4d6e], bx
inc ecx
jne 0x50e3b6
sub al, 0xa0
lahf
not dword [ebx]
movsb byte es:[edi], byte [esi]
xchg ebx, eax
pop eax
retf 0xd50a
push eax
sub dl, byte [0x67636614]
xchg ebp, eax
mov eax, dword [0x13b98c07]
in al, 0x70
xchg byte [ebx + 0x522be1be], ah
push esi
in al, dx
dec edx
invalid
jle 0x50e3d9
out 0x2b, al
lodsd eax, dword [esi]
in eax, dx
mov ah, 0xa0
jbe 0x50e38f
pop esp
jae 0x50e439
inc esp
stosb byte es:[edi], al
mov esp, 0x8e00b1f0
popfd
mov edi, 0xff2bb4e9
pop edi
mov bl, 0x33
ret
lodsd eax, dword [esi]
das
pop esi
fdivr st(4)
fisub dword [ebx - 0x5132b7bc]
arpl word [ebp + 0xd], ax
rcl dword [ebx], cl
cmc
scasd eax, dword es:[edi]
sbb eax, 0x4a8b213
int3
xchg ebx, eax
cmp ebx, dword [0x9b132783]
and dword [esi - 0x80], 0xfffffff9
and ebx, dword [esi + ecx*8]
and byte [ebx + 0x3412bc0a], 9
jge 0x50e41c
push ss
iretd