Function at 0x1400649f0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
and rsp, 0xffffffffffffffe0
mov eax, 0xffffff53
test rcx, rcx
je 0x140064b14
mov r13d, r9d
mov r9, qword [rbp + 0xa0]
test r9, r9
je 0x140064b14
mov rdi, r8
mov rsi, rdx
mov r14, rcx
mov rbx, qword [rbp + 0xb0]
test r13d, r13d
je 0x140064a57
test rsi, rsi
je 0x140064b14
test rdi, rdi
je 0x140064b14
test rbx, rbx
je 0x140064b14
mov ecx, dword [rbp + 0xa8]
test ecx, ecx
je 0x140064b14
mov edx, dword [rbp + 0xb8]
add edx, 0xffffffef
cmp edx, 0xfffffff0
jb 0x140064b14
mov r15d, dword [rbp + 0xc8]
mov r12, qword [rbp + 0xc0]
cmp ecx, 0xc
jne 0x140064aad
mov eax, dword [r9 + 8]
mov dword [rsp + 0x68], eax
mov rax, qword [r9]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x6c], 0x1000000
jmp 0x140064ad0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x30], 0x10
mov rcx, r14
xor edx, edx
xor r8d, r8d
call fcn.1400636e0
lea rax, [rsp + 0x80]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
mov dword [rsp + 0x30], 0x10
mov rcx, r14
mov rdx, r12
mov r8d, r15d
mov r9, rdi
call fcn.1400636e0
lea rdx, [rsp + 0x60]
lea r8, [rsp + 0xa0]
mov rcx, r14
call fcn.140060a40
test eax, eax
je 0x140064b25
lea rsp, [rbp + 0x38]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movdqa xmm0, xmmword [rsp + 0x80]
pxor xmm0, xmmword [rsp + 0xa0]
movdqa xmmword [rsp + 0x80], xmm0
cmp r13d, 0x10
jb 0x140064d24
mov dword [rsp + 0x7c], r13d
mov ebx, r13d
shr ebx, 4
movzx r15d, byte [rsp + 0x6f]
movzx eax, byte [rsp + 0x6e]
mov dword [rsp + 0x5c], eax
movzx eax, byte [rsp + 0x6c]
mov byte [rsp + 0x3f], al
movzx r13d, byte [rsp + 0x6d]
inc r15b
xor r12d, r12d
jmp 0x140064ba6
mov rax, qword [rdi + r12]
xor rax, qword [rsp + 0x40]
mov qword [rsi + r12], rax
mov rax, qword [rdi + r12 + 8]
xor rax, qword [rsp + 0x48]
mov qword [rsi + r12 + 8], rax
inc r15b
add r12, 0x10
test ebx, ebx
je 0x140064d12
mov byte [rsp + 0x6f], r15b
test r15b, r15b
jne 0x140064bf0
mov eax, dword [rsp + 0x5c]
inc al
mov byte [rsp + 0x6e], al
jne 0x140064be2
inc r13b
mov byte [rsp + 0x6d], r13b
jne 0x140064bd8
movzx eax, byte [rsp + 0x3f]
inc al
mov byte [rsp + 0x3f], al
mov byte [rsp + 0x6c], al
xor r13d, r13d
mov dword [rsp + 0x5c], 0
jmp 0x140064bf0
mov dword [rsp + 0x5c], eax
nop word cs:[rax + rax]
mov rcx, r14
lea rdx, [rsp + 0x60]
lea r8, [rsp + 0x40]
call fcn.140060a40
test eax, eax
jne 0x140064b14
dec ebx
lea eax, [rsi + r12]
lea ecx, [rdi + r12]
or ecx, eax
test cl, 7
je 0x140064b7b
movzx eax, byte [rdi + r12]
xor al, byte [rsp + 0x40]
mov byte [rsi + r12], al
movzx eax, byte [rdi + r12 + 1]
xor al, byte [rsp + 0x41]
mov byte [rsi + r12 + 1], al
movzx eax, byte [rdi + r12 + 2]
xor al, byte [rsp + 0x42]
mov byte [rsi + r12 + 2], al
movzx eax, byte [rdi + r12 + 3]
xor al, byte [rsp + 0x43]
mov byte [rsi + r12 + 3], al
movzx eax, byte [rdi + r12 + 4]
xor al, byte [rsp + 0x44]
mov byte [rsi + r12 + 4], al
movzx eax, byte [rdi + r12 + 5]
xor al, byte [rsp + 0x45]
mov byte [rsi + r12 + 5], al
movzx eax, byte [rdi + r12 + 6]
xor al, byte [rsp + 0x46]
mov byte [rsi + r12 + 6], al
movzx eax, byte [rdi + r12 + 7]
xor al, byte [rsp + 0x47]
mov byte [rsi + r12 + 7], al
movzx eax, byte [rdi + r12 + 8]
xor al, byte [rsp + 0x48]
mov byte [rsi + r12 + 8], al
movzx eax, byte [rdi + r12 + 9]
xor al, byte [rsp + 0x49]
mov byte [rsi + r12 + 9], al
movzx eax, byte [rdi + r12 + 0xa]
xor al, byte [rsp + 0x4a]
mov byte [rsi + r12 + 0xa], al
movzx eax, byte [rdi + r12 + 0xb]
xor al, byte [rsp + 0x4b]
mov byte [rsi + r12 + 0xb], al
movzx eax, byte [rdi + r12 + 0xc]
xor al, byte [rsp + 0x4c]
mov byte [rsi + r12 + 0xc], al
movzx eax, byte [rdi + r12 + 0xd]
xor al, byte [rsp + 0x4d]
mov byte [rsi + r12 + 0xd], al
movzx eax, byte [rdi + r12 + 0xe]
xor al, byte [rsp + 0x4e]
mov byte [rsi + r12 + 0xe], al
movzx eax, byte [rdi + r12 + 0xf]
xor al, byte [rsp + 0x4f]
mov byte [rsi + r12 + 0xf], al
jmp 0x140064b97
add rsi, r12
add rdi, r12
mov rbx, qword [rbp + 0xb0]
mov r13d, dword [rsp + 0x7c]
and r13d, 0xf
mov r15d, dword [rbp + 0xb8]
je 0x140064eb6
inc byte [rsp + 0x6f]
jne 0x140064d4b
inc byte [rsp + 0x6e]
jne 0x140064d4b
inc byte [rsp + 0x6d]
jne 0x140064d4b
inc byte [rsp + 0x6c]
lea rdx, [rsp + 0x60]
lea r15, [rsp + 0x40]
mov rcx, r14
mov r8, r15
call fcn.140060a40
test eax, eax
jne 0x140064b14
mov r8d, r13d
mov eax, edi
or eax, r13d
test al, 7
je 0x140064e04
cmp r13d, 8
jb 0x140064d9c
lea rax, [rdi + r8]
cmp r15, rax
jae 0x140064e29
lea rax, [rsp + r8]
add rax, 0x40
cmp rdi, rax
jae 0x140064e29
xor eax, eax
mov r15d, dword [rbp + 0xb8]
mov rcx, rax
not rcx
add rcx, r8
mov rdx, r8
and rdx, 3
je 0x140064dc9
movzx r9d, byte [rdi + rax]
xor byte [rsp + rax + 0x40], r9b
inc rax
dec rdx
jne 0x140064db7
cmp rcx, 3
jb 0x140064ea9
movzx ecx, byte [rdi + rax]
xor byte [rsp + rax + 0x40], cl
movzx ecx, byte [rdi + rax + 1]
xor byte [rsp + rax + 0x41], cl
movzx ecx, byte [rdi + rax + 2]
xor byte [rsp + rax + 0x42], cl
movzx ecx, byte [rdi + rax + 3]
xor byte [rsp + rax + 0x43], cl
add rax, 4
cmp r8, rax
jne 0x140064dd3
jmp 0x140064ea9
cmp r13d, 8
mov r15d, dword [rbp + 0xb8]
jb 0x140064ea9
mov eax, r13d
shr eax, 3
lea rcx, [rax - 1]
cmp rcx, 3
jae 0x140064e55
xor ecx, ecx
jmp 0x140064e84
mov eax, r8d
and eax, 0xfffffff8
xor ecx, ecx
mov r15d, dword [rbp + 0xb8]
mov rdx, qword [rdi + rcx]
xor qword [rsp + rcx + 0x40], rdx
add rcx, 8
cmp rax, rcx
jne 0x140064e38
cmp rax, r8
jne 0x140064da5
jmp 0x140064ea9
xor ecx, ecx
mov rdx, qword [rdi + rcx*8]
xor qword [rsp + rcx*8 + 0x40], rdx
mov rdx, qword [rdi + rcx*8 + 8]
xor qword [rsp + rcx*8 + 0x48], rdx
mov rdx, qword [rdi + rcx*8 + 0x10]
xor qword [rsp + rcx*8 + 0x50], rdx
mov rdx, qword [rdi + rcx*8 + 0x18]
xor qword [rsp + rcx*8 + 0x58], rdx
add rcx, 4
jne 0x140064e57
cmp r13d, 8
jb 0x140064ea9
lea rdx, [rsp + rcx*8]
add rdx, 0x40
lea rcx, [rdi + rcx*8]
xor r9d, r9d
mov r10, qword [rcx + r9*8]
xor qword [rdx + r9*8], r10
inc r9
cmp rax, r9
jne 0x140064e99
lea rdx, [rsp + 0x40]
mov rcx, rsi
call sub.msvcrt.dll_memcpy
test r15d, r15d
jle 0x140064ecd
mov eax, r15d
cmp r15d, 8
jae 0x140064ed4
xor ecx, ecx
xor edx, edx
jmp 0x140064f60
xor eax, eax
jmp 0x140064b14
mov ecx, eax
and ecx, 0xfffffff8
pxor xmm1, xmm1
xor edx, edx
pxor xmm2, xmm2
pxor xmm0, xmm0
nop word [rax + rax]
movd xmm3, dword [rbx + rdx]
movq xmm4, qword [rsp + rdx + 0x80]
pxor xmm4, xmm3
mov r8d, dword [rsp + rdx + 0x84]
xor r8d, dword [rbx + rdx + 4]
movd xmm3, r8d
punpcklbw xmm4, xmm1
punpcklwd xmm4, xmm1
por xmm2, xmm4
punpcklbw xmm3, xmm1
punpcklwd xmm3, xmm1
por xmm0, xmm3
add rdx, 8
cmp rcx, rdx
jne 0x140064ef0
por xmm0, xmm2
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd edx, xmm0
cmp rcx, rax
je 0x140064f7c
nop word cs:[rax + rax]
movzx r8d, byte [rsp + rcx + 0x80]
xor r8b, byte [rbx + rcx]
movzx r8d, r8b
or edx, r8d
inc rcx
cmp rax, rcx
jne 0x140064f60
xor ecx, ecx
dec edx
mov eax, 0xffffff4c
cmovs eax, ecx
jmp 0x140064b14