Function at 0x51f580
Capabilities:
Encode data using xor

Disassembly:
or dword [ebp + 0x39], edx
pop esp
nop
xchg esp, eax
mov edx, 0x9f7e7062
inc ebx
cwde
jmp 0x51f295
pop ebx
inc ebx
outsd dx, dword [esi]
jb 0x51f2de
xchg edi, eax
movsb byte es:[edi], byte [esi]
mov byte [0x975981d5], al
inc edx
jmp 0x3cfb00cf
pushfd
jne 0x51f31d
or eax, 0x5ac6a53f
mov dh, 0xf4
cmp ecx, esi
ljmp 0xffad
lodsb al, byte [esi]
push edx
cmp byte [eax], ah
or ch, 0xd8
mov eax, 0xeb81e4c2
mov al, byte [0x89ae7953]
xor byte [0xfc2ae659], ah
test eax, 0xafb57b4d
rcl byte [edx]
adc eax, 0x600d1d5b
xchg esi, eax
jle 0x51f3c2
jmp 0xd433417
mov edi, 0x9e7e80b9
jp 0x51f381
jbe 0x51f3a5
pushfd
dec edx
xor al, 0x73
mov dword [0x42c36d27], eax
ljmp 0x8e57
push edi
mov gs, word [ebx + ebp*2]
out 0xbd, eax
sti
dec ebx
enter 0xffffffffffff8282, 0xffffffffffffffec
fcom qword [esi]
add byte fs:[ebx + 0x33], dl
add ebp, dword [edi + 0x24]
xchg ebp, eax
stosb byte es:[edi], al
mov byte [ebx], bl
jo 0x51f488
mov dword [0x995f784c], eax
mov ch, 0
loopne 0x51f3a6
das
adc bh, cl
or byte [edx], ch
wait
push 0xe0196a31
lodsd eax, dword [esi]
fistp dword [edx - 0x3f]
sal byte [esi + 0x52], 1
push cs
insb byte es:[edi], dx
pushal
mov ebx, 0xf41bb81d
sbb eax, esi
xchg esi, eax
xchg ecx, eax
jae 0x51f3c2
xor al, byte [esi - 0x1e1a15a8]
sub dword [ebx], ebp
sub esi, dword [edi + 0x1c]
ja 0x51f460
and al, 0x73
cmc
out dx, al
and eax, 0xaf26af87
adc al, 0x1c
push ecx
jl 0x51f40b
mov ecx, 0xbb894861
jp 0x51f3df
popal
dec eax
mov dword [ebx + 0x68e4877a], edi
in al, 0x68
jp 0x51f3f6
jg 0x51f450
jb 0x51f40f
wait
movsd dword es:[edi], dword [esi]
xor al, 0x20
xlatb
invalid
push ebx
and ecx, dword gs:[ecx + ecx*4 + 0x38]
invalid
into
wait
adc bl, dh
dec ebp
mov eax, 0x89f7667d
std
pop ebx
inc eax
push ecx
xchg esi, eax
adc byte [eax - 0x1bc67811], ch
push eax
jge 0x51f441
jae 0x51f442
scasd eax, dword es:[edi]
inc ecx
sub eax, 0xeb5e6a43
mov bh, 0xb7
add al, 5
mov al, 0xde
loop 0x51f4d2
ficomp word [ebp + 0x78]
std
xor dword [esi], edi
mov ah, byte [ebx + esi*2 + 0x6448a57a]
xchg esi, eax
out 0x8a, al
movsb byte es:[edi], byte [esi]
jae 0x51f53a
movsd dword es:[edi], dword [esi]
dec eax
xchg esi, eax
jne 0x51f46b
jl 0x51f451
insd dword es:[edi], dx
cmpsb byte [esi], byte es:[edi]
bound esi, qword fs:[esi + 0x44]
sub edx, dword [ecx - 0x50]
inc eax
mov word [ebx + 0x3f9eeb8d], ds
cwde
pop esi
cmp al, 0x83
aam 0xe4
lahf
push es
fnsave dword [ecx - 0x7f]
invalid
jns 0x51f4bb
inc esp
lahf
sub eax, 0x7a887589
cwde
push 0xc
xor ch, byte [ecx + 0x25]
and dword [eax - 0x7dc11805], esi
pop esi
adc eax, 0xa2b7186c
mov eax, dword [0x1675f145]
sub eax, 0x53cd2a2b
push ebx
sub al, 0x82
pop edx
movntq qword [esi + 0x677bd765], mm3
sahf
xlatb
jnp 0x51f5a6
xor edx, ecx
dec ebp
push 0x51b98f7a
xchg ebp, eax
outsd dx, dword [esi]
push eax
popal
mov al, byte [0xc174d409]
dec esi
pop esi
je 0x51f534
jle 0x51f510
pop edi
insd dword es:[edi], dx
lea ecx, [edi - 0x758ed09a]
mov cs, word [ebx + 0x16]
mov esi, 0x6acc9dc0
xor eax, dword [edx + 0x1702cf64]
ror dword [ecx + 0x4f], cl
xchg ecx, eax
outsd dx, dword [esi]
xchg bh, al
imul esi, edi, 0x5f
dec ebx
push eax
je 0x51f530
inc esp
cdq
jbe 0x51f59b
cmovs edi, dword [edx]
aas
ror dword [ecx], 0x74
fdivr dword [ebp - 0x7a]
imul esp, dword [ebp + 0x5365299], 0x335d2440
dec ecx
mov bh, 0xa4
movsb byte es:[edi], byte [esi]