Function at 0x51f24d
Capabilities:
Encode data using xor

Disassembly:
sal dword [edi], cl
jno 0x51f27f
pushfd
add eax, 0x83a880a7
inc edi
add dword [eax - 0x50220f96], ecx
lds esi, [eax + edi*8 + 0x1213e1da]
or eax, dword [edx - 0x26f66cc1]
pop edi
dec eax
invalid
jns 0x51f297
jl 0x51f21a
or dword [edx], esp
or bl, byte [0x8b2a11b1]
add dword [ecx + 0x5989c941], ebx
pop edi
xchg edi, eax
mov dh, 0xfa
mov edx, 0x67891dbf
salc
and edx, ebx
aaa
jge 0x51f2c7
cli
stosd dword es:[edi], eax
sub ecx, edi
cli
xor al, 0xbc
sbb dword [ebp - 0x67], 0x5f
pop edx
dec esi
nop
stosd dword es:[edi], eax
je 0x51f2ae
mov gs, word cs:[ecx + 0x39]
mov gs, word [ecx + 0x39]
outsd dx, dword [esi]
fisttp dword [esi + 0x28ceb755]
lahf
test eax, 0xf9d8fc59
xor eax, 0xb7085090
popal
add eax, dword [edx + 0x1789aa18]
sbb byte [eax], 0xaa
mov dword [edi], edx
sti
or dword [eax + ebx*4 - 0x27], ebx
or byte [edx], cl
pushal
hlt
sar ebx, 1
mov dh, 9
jl 0x51f2d9
push 0x6863bc25
scasd eax, dword es:[edi]
pop ecx
pop edx
test eax, 0xbd388782
cwde
sahf
sahf
mov eax, 0x3cd7a819
aad 0xc7
rcr edx, cl
mov ecx, 0x38251319
push ss
dec ecx
cmp dword [ecx + 0x4aafe4f4], ecx
xlatb
cmp al, 0xd5
invalid
dec edx
cmp eax, 0x50eb59e1
imul ebx, dword [edi], 0x1d
fcmovne st(0), st(2)
dec ebx
test dword [ebx], ebx
fld xword [eax]
out dx, eax
jecxz 0x51f364
pop es
ljmp 0x7804
pop esi
jl 0x51f376
insd dword es:[edi], dx
js 0x51f312
push ebp
mov byte [edi + ebp*8 + 8], ah
clc
outsb dx, byte [esi]
int1
mov ebp, dword [ecx + 0x17d7a65]
stc
add eax, 0x21155d11
daa
xor byte [ecx], 0x28
sbb byte [eax], cl
jns 0x51f365
pop ebp
adc eax, 0x31822721
sub byte [eax], bl
or byte [ecx + 0x48], bh
mov bl, 0x82
inc ecx
jb 0x51f363
fcomp qword [ecx]
invalid
xchg ebp, eax
jns 0x51f2fb
xchg ebp, eax
ja 0x51f370
fdivr dword [eax + 0x314a3909]
cmp ch, ch
dec edx
sbb dword [0x289d3a07], eax
salc
sub dh, dl
dec esp
sbb ecx, esp
inc ecx
wait
je 0x51f3f8
lcall 0x5e26, 0x79a30cea
lcall 0xf5a9, 0x79d2312d
iretd
clc
sub dword [edx], edx
pushal
fisttp qword [ebx + edi*4 + 0x48c96953]
dec eax
xchg edx, eax
retf 0x2861
pop ebp
lds edi, [edi + 0x36]
dec ebp
cmp ebx, dword [0xc0256e25]
daa
push edi
or eax, 0x1bc00371
jl 0x51f3ea
dec esi
sub ebx, ecx
xor al, ah
fdivr dword [edi - 0x38]
jg 0x51f3b4
in eax, 6
fld qword [ebp - 0x231f272b]
out 0x3c, al
arpl word [0x790cb1d3], ax
ja 0x51f467
sal dword [ecx + 0x6977790c], cl
aad 0x61
rcr dword [ebp + 0x31], 0xe5
punpckhwd mm7, qword [edi + ebp*8]
push ecx
push ebx
fisttp qword [edi + 0x167d19fd]
sbb bl, byte [eax + 0x5e]
sbb byte [0x1bca05f1], bh
js 0x51f3e7
imul ecx, dword [edi + 0x65d7df89], 0x5b03776c
stosd dword es:[edi], eax
jge 0x51f3d0
stosd dword es:[edi], eax
lahf
fmul st(3), st(0)
jmp [eax + 0x59e95149]
push es
in al, 0x48
neg byte [ecx + 0x29787df0]
or eax, ebp
inc esi
fcom dword [edi + 0x59]
div ebx
leave
jg 0x51f47b
in al, dx
inc edx
call 0x91e4bd30
test eax, 0x87e738d4
xor al, byte [esi - 0x5ed41575]
in al, dx
les edx, [0xd8ceab8a]
pop ss
call 0x1684b8d9
lodsb al, byte [esi]
fcmovbe st(0), st(2)
jg 0x51f4e7
lahf
shr byte [edi], 1
fcmovne st(0), st(0)
mov ch, 0
xchg edi, ebp
inc eax
idiv dword [ecx - 0x39]
sub ecx, esp
push eax
push eax
pop edx
aaa
mov ah, 0x39
pushfd
and eax, esp
int1
jge 0x51f534
test eax, 0xe9e65949
mov esi, 0xa990acb3
cdq
aad 0x78
aaa
push edi
hlt
cdq
cmpsb byte [esi], byte es:[edi]
sub al, 0xa9
or ch, cl
retf
pop eax
fcom dword [edx]
in eax, 0xdf
clc
jbe 0x51f4e3
jnp 0x51f593
int 0x94
add byte [esi - 0x59556a3a], cl
mov al, cl
or bl, ah
loop 0x51f5c1
imul esp, dword [ebx + esi*4 + 0x21891f3c], 0xe95e2fe4
int3
dec edx
cmp dword [esi], ecx
invalid
shr ecx, cl
leave
xor ecx, esp
xor eax, ebp
leave
xchg cl, ah
cwde
aas
neg cl
clc
stosd dword es:[edi], eax
lodsb al, byte [esi]
pop esi
mov bl, 0x89
jmp 0x107fa695