Function at 0x51cec7
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [edi + ebp*2 - 0x9488c30]
bswap ebp
lea esi, [ebp + ebp - 0x66621cef]
call fcn.005bea06
mov dword [ecx + ebx], esp
call [edi]
adc al, 0x1e
mov byte [ebp + 0x33111745], ah
jne 0x51cefb
nop
loopne 0x51cf63
clc
push es
sal byte [ebx - 0x71], 1
mov esp, 0x2a167a81
mov cl, 0x7d
popal
mov ebx, 0x2df1c2ac
pushfd
lds eax, [esi + 0x1fcccd97]
add ebp, edi
retf
mov bl, 0x6d
jns 0x51cf92
sti
push ebp
jle 0x51cfc9
pop eax
rcr byte [edx], 0xc3
into
invalid
invalid
mov bl, 0x24
invalid
adc byte [ecx - 0x7e79cf5d], dh
movsb byte es:[edi], byte [esi]
inc edi
pop ss
pushfd
sbb edx, edi
sub dword [esp + ebx + 0x15fd3ba0], 0x12cdad39
int 0x12
dec esi
push cs
pop eax
jbe 0x51cfa0
cwde
push 0x3922a771
js 0x51d016
mov ah, 9
jg 0x51d025
sbb dword [ebp - 0x3b], esp
mov dword [edi + 0x35fec255], ecx
add al, 0xcb
mov dword [0xcc34], eax
adc byte [eax], al
mov eax, dword [0x91968ea8]
xchg esi, eax
xchg ecx, eax
scasd eax, dword es:[edi]
stc
sub al, 0xc0
cmpsb byte [esi], byte es:[edi]
pushal
mov edx, 0x2b17a1f0
in eax, dx
push ds
xchg dword [ebp + 0x7f019dd], edi
mov word [eax], ss
imul edx, dword [ecx + 0x321e17bc], 0xa4807329
sbb dword [edi + esi*8 + 0x1e], esi
dec eax
and byte [ecx + ebx + 0x481ef774], 0x7d
jge 0x51d086
outsb dx, byte [esi]
mov byte [eax + 0x7a], bh
sbb dword [ebp + 0x75], edi
jb 0x51cfb4
jmp 0x51d067
adc al, 0x7c
jp 0x51cff0
and al, 0x7b
or eax, 0x931fb164
sbb dword [eax], 0x11d048e4
jge 0x51d017
loopne 0x51d051
or cl, byte [edi - 3]
test eax, 0xaecdd99a
in eax, dx
arpl word [edi - 0x5f530a8c], bx
add edx, dword [esi + 0x39]
les ebx, [ebp - 0x153cf640]
jp 0x51d0ae
or ebx, eax
ljmp 0x68ec
retf 0xec73
in al, dx
push 0x45d104cd
stosd dword es:[edi], eax
mov dl, 0x47
jne 0x51d00f
invalid
pop esp
imul edx, dword [edx], 0x2b
enter 0xffffffffffffc681, 0xffffffffffffffb5
pop esi
mov cl, 0xc1
ret 0xe0e4
jle 0x51d0da
pop ecx
pushfd
jns 0x51d0b1
cli
or dword [0x1a396cbb], ebx
int3
jno 0x51d058
cmp ah, byte [ecx - 0xf7f208a]
mov eax, dword [0xf080df76]
jg 0x51d0fe
push ss
sar byte [eax + 0x31], 0x87
ffree st(7)
mov eax, dword [0xd6c0ed11]
stosd dword es:[edi], eax
mov esp, 0x8c3d4fc9
into
cmp byte [esi + 0x8a6aa19], bl
sub dword [ebp - 0x5b874d2f], ebp
dec eax
and al, 0x48
mov dword [0xa1a7a93f], eax
adc bh, byte [edi]
xchg edi, eax
cmpsb byte [esi], byte es:[edi]
test esi, eax
scasd eax, dword es:[edi]
cld
adc esi, esi
test al, 0x8b
mov al, 0x63
int3
lds ecx, [ebx + ebx*4 + 0xd1c7a2f]
pop ds
jge 0x51d16f
jp 0x51d11c
or eax, 0xb76b7d1f
dec esi
mov bh, 0x4e
je 0x51d0fa
and dword [esi + 0x73], edi
test dword [edx + 0x141b17eb], eax
fist dword [eax]
insb byte es:[edi], dx
scasb al, byte es:[edi]
mov bl, byte [ecx]
cmc
adc al, 0xdb
adc byte [esi + ebp*4 - 0x76], ch
sbb ebp, esi
cmp byte [edx - 0x48327de2], bh
int 0xb7
push ss
cvtdq2ps xmm0, xmmword [edi - 0x291e87ef]
sbb cl, ah
ja 0x51d110
pop ds
xchg esi, eax
aam 0x73
jnp 0x51d138
inc edx
inc ebx
jl 0x51d1b3
clc
adc dh, byte [ebp - 0x1a]
outsb dx, byte [esi]
and dh, byte [edx - 0x6f]
invalid
out dx, al
jae 0x51d118
pop ecx
push esp
and ch, byte [eax + eax*8 - 0x4854ed3e]
push ebx
unpcklps xmm4, xmmword [edi]
lds edi, [edi]
adc edx, dword [eax + 0x7f]
outsb dx, byte [esi]
sbb cl, cl
jmp 0x4b0feeeb
inc esp
xor byte [edx], dh
sbb ebx, ebp
cmpsb byte [esi], byte es:[edi]
add bl, byte [edx + ebp*4]
aaa
pop ds
mov dword [0xa42fa13a], eax
dec ebp
sbb edi, dword [esi - 0x53]
aam 0x8d
dec esi
stosb byte es:[edi], al
mov dword [0x3dcedb2e], eax
mov eax, 0x24ac9eb
mov edx, 0x8a94d3c0
invalid