Function at 0x650ad0
Capabilities:
Encode data using xor

Disassembly:
pushfd
push ebp
pushal
mov dword [esp + 0x24], 0x650094
pushfd
mov byte [esp + 8], 0xa1
call fcn.00650ed0
add byte [eax], al
push edi
jb 0x64f85e
je 0x64f85c
push eax
jb 0x64f863
jbe 0x64f85d
je 0x64f863
push eax
jb 0x64f870
imul bp, word [ebp + 0x53], 0x7274
imul ebp, dword [esi + 0x67], 0x41
push edx
jae 0x64f888
insd dword es:[edi], dx
push esp
push 0x64616572
add byte [eax], al
add byte [edx + 0x69], al
je 0x64f864
insb byte es:[edi], dx
je 0x64f825
add byte [eax], al
inc edi
je 0x64f882
imul ebp, dword [esi + 0x64], 0x4344776f
add byte [eax], al
add byte [ebx + 0x68], dl
insb byte es:[edi], dx
insb byte es:[edi], dx
inc ebp
js 0x64f8a2
arpl word [ebp + 0x74], si
inc ecx
add byte [ebp + 0xf082464], cl
mov cs, word [ebp + 0x6800000a]
clc
mov ebx, 0xfce9005c
stosb byte es:[edi], al
invalid
mov fs, word [edi - 0x4b77976e]
daa
cmpsd dword [esi], dword es:[edi]
xchg edx, eax
push 0xc227b488
ret 0x703f
aas
jo 0x64f8e6
inc ecx
test al, 0x69
leave
enter 0x1d8f, 0x22
outsd dx, dword [esi]
int1
pushfd
mov edi, 0x47129900
pop ss
lcall 0x1057, 0x8aca3536
std
dec dword [edi*4 - 0x1a568383]
mov ebp, 0xe5a97c7d
adc eax, ebp
dec esi
dec esp
jne 0x64f8b1
call 0x24da44db
mov al, byte [0xcf5a52d4]
add al, 0xb9
in eax, dx
salc
adc eax, 0xd7569738
test byte [edi], ch
jno 0x64f8bd
xchg edi, eax
jno 0x64f894
int1
dec esi
clc
add ebp, dword [esi]
or esi, esp
inc esi
invalid
mov eax, dword [0x8fe01534]
mov esi, 0x8c789ab
das
bound ebx, qword [ecx]
xor al, cl
jmp 0x64f90e
sbb dword [eax], esi
enter 0x4ceb, 0x13
fisttp dword [edx]
add byte [eax + edx*2 + 0x74], cl
outsd dx, dword [esi]
dec esp
push eax
je 0x64f93a
inc esp
push eax
add byte [ebp - 0x17d7db9c], cl
lea esp, [esp + 0x28]
call fcn.005cd093
invalid
jne 0x64f8c7
idiv edi
add byte [eax], al
push edx
inc esi
insb byte es:[edi], dx
jne 0x64f958
push 0x79654b
dec ebx
jns 0x64f8ea
add byte [eax], al
inc edi
je 0x64f93d
outsb dx, byte gs:[esi]
jne 0x64f8f4
add byte [eax], al
dec ebp
outsd dx, dword [esi]
jbe 0x64f95f
push esp
outsd dx, dword [esi]
inc ebp
js fcn.0064f8ff
outsb dx, byte [esi]
jne 0x64f95a
je 0x64f978
insd dword es:[edi], dx
add byte [ebp - 0xd4284ca], bh
fst qword [edx - 0x63]
iretd
js 0x64f975
xor ecx, edx
hlt
retf 0x8ef4
insd dword es:[edi], dx
dec ebx
xchg edi, eax
fisubr word [ebx]
xor eax, 0x2a524734
pop edi
and edi, dword [ebp + 0x53]
inc edi
push edx
sub bl, byte [edi + 0x23]
jge 0x64f9b9
movsd dword es:[edi], dword [esi]
mov esp, 0xe423f8a3
cmp bl, dh
imul eax, dword [ebp + 0x34], 0x43
mov al, byte [0xae37e2e1]
aaa
scasb al, byte es:[edi]
stosd dword es:[edi], eax
mov bl, 0xc5
int3
add byte [eax], al
add byte [ecx + 0x6e], ch
je 0x64fa20
popal
jb 0x64f9c6
add byte [eax], al
insb byte es:[edi], dx
jae 0x64fa3f
jb 0x64fa30
jo 0x64fa48
outsb dx, byte [esi]
inc ecx
add byte [eax + 0x10], ah
ror byte [eax - 0x39afdbd4], 4
and al, 0x1f
pop ds
jne 0x64fa9a
mov cl, 0x29
das
invalid
in eax, 6
push ss
pop ebx
outsd dx, dword [esi]
je 0x64f9e7
loope 0x64fa4c
xor bh, byte [edx + ebx*2 - 0x1a]
jne 0x64f9dc
jne 0x64f9dc
cmpsd dword [esi], dword es:[edi]
jg 0x64fa1e
mov esp, 0x17671703
pop ss
and esi, dword [edi + 0x70]
mov ss, dx
push esi
inc ecx
inc esi
ja 0x64fab7
stosd dword es:[edi], eax
lodsd eax, dword [esi]
fcmovnb st(0), st(7)
or al, 0x31
test al, 0xce
invalid
invalid
arpl word [ebp + 0x2f], bp
add byte [ecx - 9], dh
bound ebx, qword [ebp + 0x58]
or dl, byte [edx + ecx*2 - 0x71]
push esi
movsd dword es:[edi], dword [esi]
scasd eax, dword es:[edi]
mov esp, 0x4706ecb7
nop
popfd
cmpsb byte [esi], byte es:[edi]
scasd eax, dword es:[edi]
fild word [esi]
mov edx, 0x3fc3e005
sub byte [edx], dh
pop ebp
dec di
mov bh, 0x47
scasb al, byte es:[edi]
pop ss
mov ch, 0x5e
bnd jbe 0x64fb55
sbb byte [edx + ebx], bh
outsb dx, byte [esi]
add dword [esi], ecx
or byte [ebx], cl
enter 0x7ed7, 0x45
xor edi, dword [ebp - 0x2d]
mov bh, 0xe1
loopne 0x64fb5c
invalid
test dword [edi], 0x5315709a
bound edx, qword [ecx + 0x3c]
push eax
push ecx
cmp al, 0x50
xchg ebp, eax
sbb eax, 0x829391f0
mov ch, 0x3b
mov word [esi + eax], cs
pop esp
invalid
clc
pushfd
sub al, al
mov dword [esp], esi
repne scasb al, byte es:[edi]
pushfd
lea esp, [esp + 0x14]
jne 0x64a8ab
mov cl, al
not ch
bts si, 7
setns cl
mov ecx, edi
or si, sp
sub ecx, ebx
inc si
rol si, 9
rcr si, cl
dec si
mov esi, esp
test al, 0xe6
sub edi, 4
call fcn.0056c6fc
jbe 0x64f7da
add al, 0xe8
pushal
mov esi, 0x860ffff1
cmp bh, ch
out dx, eax
invalid
pushfd
mov dword [esp], 0x650094
push 0x5b34bcdc
call fcn.0064a6a4
add byte [eax], al
inc esi
imul ebp, dword [esi + 0x64], 0x736f6c43
add byte gs:[ebp - 0x39], ah
or dword [edi - 0x7e], ecx
xor byte [ecx + 0x1f], 0x3b
mov esp, ss
rcr dword [edx], cl
push esi
lahf
fidiv word [ebx]
jle 0x65089f
pop ss
push esp
cmpsd dword [esi], dword es:[edi]
out 0xe9, eax
cld
pop ebp
nop
fldcw word [esi]
mov cl, 0xb1
sal dword [0xe0cd918d], 0x14
imul edx, dword [esi], 0xa55d4121
popfd
imul eax, esi, 0xbc9c8ba
sbb ebx, dword [ecx + ebp*2 - 0x6b]
popfd
or ch, dh
sub dword [ebx], eax
pop dword [eax - 0x4b]
inc esp
push edx
jg 0x650896
push es
and dh, byte [edx]
add dword [ebx - 0x1c16d241], 0xffffffe3
inc eax
test ah, cl
push dword [edi - 0x7b9b3650]
mov al, byte [0xd56674ed]
stc
jle 0x650939
xchg ecx, eax
mov dl, 0xb0
mov al, 0x9e
or dh, bh
leave
push ds
fdivr dword [eax - 0x37]
movhps xmm2, qword [esi]
and ebx, dword [ecx]
and eax, 0x7340393a
jg 0x6508ce
xchg esp, eax
loopne 0x65096e
mov eax, dword [0x9bbcc03]
ret 0x98a3
insb byte es:[edi], dx
insb byte es:[edi], dx
dec esi
js 0x6509e8
dec eax
outsd dx, dword [esi]
outsd dx, dword [esi]
imul eax, dword [ebp + 0x78], 0
add byte [eax], al
inc edi
imul esi, dword fs:[eax + 0x44], 0x74656c65
inc esi
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x6509d2
popal
insd dword es:[edi], dx
imul ebp, dword [ecx + edi*2], 0x15ce892b
inc ebx
pop esp
mov edx, 0xb56d2ac9
mov al, 8
dec esp
adc dh, 0x12
arpl word [eax - 0x367bb202], si
into
std
or dword [edx], edi
inc edx
mov bl, 0x78
sub eax, 0x53696328
invalid
cli
fisub word [ebx - 0x158d526d]
loopne 0x6509ec
dec esi
je 0x650a34
dec ebp
mov dword [ecx + ecx], eax
cmpsd dword [esi], dword es:[edi]
in al, dx
inc ebp
insb byte es:[edi], dx
pop esi
pop es
adc byte [eax + 0x61], 0xbe
adc edi, dword [esi + 0x2a]
or byte [ecx + eax*4 - 0x2a], bl
mov dh, ch
sbb ebx, dword [0x989ff814]
add word [esp + eax*2 + 0x232a2270], di
adc ah, byte [0x5040401c]
pop edx
arpl word [edi + 0x7e], bp
je 0x650a88
stosd dword es:[edi], eax
mov ebx, 0x13eac2cd
aas
xor dword [edx - 0x3c], 0xffffffeb
mov bh, 0x9b
jbe 0x650a76
add eax, 0x866104fc
in eax, dx
jmp 0x650a62
je 0x650a9b
push eax
jb 0x650aa8
arpl word [ebp + 0x73], sp
jae 0x650a8b
insd dword es:[edi], dx
outsd dx, dword [esi]
jb 0x650abc
add byte [eax], al
add byte [ebx + 0x68], al
popal
jb 0x650aa0
jo 0x650abd
jb 0x650a92
jne 0x650ab8
push di
add byte [ebx + 0x68], dh
insb byte es:[edi], dx
insb byte es:[edi], dx
xor esi, dword [edx]
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [eax], al
add byte [ebx + 0x65], dl
je 0x650aac
outsb dx, byte [esi]
dec edi
inc si
imul ebp, dword [ebp], 0xf4899c60
inc ecx
push ebx
je 0x650aed
popal
jb 0x650b02
jne 0x650b00
add byte [esi + 0x66], dl
mov ecx, ebp
and al, 4
aaa
inc edx
add eax, 0xf8c58600
cmc
invalid
add byte [edi + 0x65], al
je 0x650b04
inc edi
je 0x650b04
jne 0x650b35
jb 0x650b2a
outsb dx, byte [esi]
je 0x650b1c
push 0x64616572
dec ecx
add dh, dh
not al
not al
lodsb al, byte [esi]
clc
jmp 0x64f2c9
add byte [eax], al
push esi
invalid
jb 0x650b55
jne 0x650b44
insb byte es:[edi], dx
inc esi
jb 0x650b4c
add byte gs:[eax], al
add byte [eax], al
add byte [eax - 0x4fc3ffb0], dh
mov al, 0x50
add byte [eax + esi*4], bh
push eax
add byte [eax + 0x4004f37], bh
or esp, dword [ebp]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov edi, dword [ecx]
inc edx
and eax, ecx
sub eax, 0x4dc22140
stc
pop ds
jno 0x650b28
cmp edi, esi
repne outsd dx, dword [esi]
cdq
xor eax, 0x941b82b
and ecx, dword [esi + 0x741970db]
adc dword [edx + 0x16], ecx
push ss
mov esp, dword [ebx]
push esi
rcl byte [ebx + 0x40bf99dc], cl
sbb al, 0xb6
mov dh, 0xb3
hlt
mov bl, 0xf4
dec esi
inc esi
xor ah, ch
arpl ax, ax
mov ebx, 0x6e0a3129
jbe 0x650b36
ljmp 0xc4b7:0x1f459221
les eax, [ecx + 0x4dd76e55]
sbb byte [esi + esi*2], bh
push 0x20
sahf
ret