Function at 0x1400358a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov r12, rdx
mov rbp, rcx
mov rsi, qword [rbp + 0x18]
cmp rsi, 0xffffffffffffffff
je 0x1400358f9
mov r8, rbp
add r8, 8
mov rdi, qword [rbp + 8]
mov rbx, rdi
add rbx, 1
mov rax, rbx
shr rax, 3
imul r14, rax, 7
cmp rdi, 8
cmovb r14, rdi
mov rax, r14
shr rax, 1
cmp rsi, rax
jb 0x140035d02
jmp 0x140035908
mov ecx, 1
call fcn.14007fe70
jmp 0x1400360fa
mov rax, rsi
sub rax, r14
cmova r14, rsi
cmp r14, 7
jb 0x140035929
movabs rax, 0x1ffffffffffffffe
cmp r14, rax
ja 0x140035979
jmp 0x140035943
mov qword [rsp + 0x28], r12
mov r15d, 8
mov eax, 4
cmp r14, 3
cmovb r15, rax
jmp 0x140035988
mov qword [rsp + 0x28], r12
shl r14, 3
add r14, 8
mov ecx, 7
mov rax, r14
xor edx, edx
div rcx
add rax, 0xffffffffffffffff
bsr rcx, rax
xor rcx, 0x3f
mov r15, 0xffffffffffffffff
shr r15, cl
add r15, 1
jmp 0x140035988
mov ecx, 1
call fcn.14007fe70
jmp 0x1400360fa
mov ecx, 0x38
mov rax, r15
mul rcx
mov r12, rax
seto al
cmp r12, 0xfffffffffffffff0
seta cl
or al, cl
test al, 1
jne 0x1400359d5
add r12, 0xf
and r12, 0xfffffffffffffff0
mov r13, r15
add r13, 0x10
mov rax, r12
add rax, r13
setb al
jb 0x1400359d5
mov r14, r12
add r14, r13
movabs rax, 0x7ffffffffffffff0
cmp r14, rax
jbe 0x1400359de
mov cl, 1
call fcn.14007fe70
jmp 0x140035a10
mov qword [rsp + 0x58], r8
mov al, byte [0x1400c66b0]
mov rcx, r14
mov edx, 0x10
call fcn.140044c10
mov rcx, rax
cmp rcx, 0
jne 0x140035a67
mov cl, 1
mov edx, 0x10
mov r8, r14
call fcn.14007fe80
jmp 0x140035a10
mov ecx, dword [0x1400c5788]
add ecx, dword [0x1400c578c]
and ecx, 0x92d09fe0
sub ecx, 0x48e427d4
add ecx, 0xe6f26132
cmp ecx, 0xbce87868
jae 0x14003610e
jmp 0x140035a3c
mov ecx, dword [0x1400c5790]
add ecx, dword [0x1400c5794]
imul ecx, ecx, 0xe86ff3c5
and ecx, 0x2b8921
sub ecx, 0x6e8d34ed
cmp ecx, 0xc88e0288
ja 0x140035a3c
jmp 0x1400360fa
mov rdx, r15
add rdx, 0xffffffffffffffff
mov qword [rsp + 0x60], rdx
mov rax, r15
shr rax, 3
imul r14, rax, 7
cmp r15, 9
cmovb r14, rdx
add rcx, r12
mov edx, 0xff
mov r8, r13
mov r15, rcx
call fcn.14009f490
mov rcx, qword [rsp + 0x60]
mov r13, qword [rbp]
cmp rsi, 0
mov rax, qword [rsp + 0x58]
je 0x140035c2b
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x38], rbp
movaps xmm0, xmmword [r13]
pmovmskb r15d, xmm0
xor r15w, 0xffff
mov rax, r13
add rax, 0xffffffffffffffc8
mov qword [rsp + 0x70], rax
xor r12d, r12d
mov rbp, r13
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x68], r13
mov r14, rcx
cmp r15w, 0
je 0x140035afa
jmp 0x140035b20
jmp 0x140035b03
xor r15w, 0xffff
jmp 0x140035b20
mov rax, rbp
add rbp, 0x10
movaps xmm0, xmmword [rax + 0x10]
pmovmskb r15d, xmm0
add r12, 0x10
cmp r15w, 0xffff
je 0x140035b03
jmp 0x140035afc
tzcnt eax, r15d
mov ecx, r15d
dec ecx
and ecx, r15d
mov r15w, cx
mov r13, r12
add r13, rax
dec rsi
mov rax, r13
neg rax
imul rax, rax, 0x38
mov rdx, qword [rsp + 0x70]
add rdx, rax
mov rcx, qword [rsp + 0x28]
call fcn.14003a750
mov rcx, rax
and rcx, r14
mov r10, qword [rsp + 0x48]
movups xmm0, xmmword [r10 + rcx]
pmovmskb edx, xmm0
cmp dx, 0
je 0x140035b72
jmp 0x140035b9a
xor r9d, r9d
xor r8d, r8d
jmp 0x140035b7a
add r8, 0x10
lea rcx, [r9 + rcx + 0x10]
and rcx, r14
movups xmm0, xmmword [r10 + rcx]
pmovmskb edx, xmm0
cmp dx, 0
mov r9, r8
je 0x140035b7a
jmp 0x140035b9a
tzcnt edx, edx
movzx edx, dx
add rcx, rdx
and rcx, r14
cmp byte [r10 + rcx], 0xff
jle 0x140035bbd
movaps xmm0, xmmword [r10]
pmovmskb ecx, xmm0
tzcnt ecx, ecx
movzx ecx, cx
shr rax, 0x39
mov rdx, rcx
add rdx, 0xfffffffffffffff0
and rdx, r14
mov byte [r10 + rcx], al
mov byte [r10 + rdx + 0x10], al
xor r13, 0xffffffffffffffff
imul rax, r13, 0x38
mov r13, qword [rsp + 0x68]
mov rdx, r13
add rdx, rax
xor rcx, 0xffffffffffffffff
imul rax, rcx, 0x38
mov rcx, r10
add rcx, rax
mov r8d, 0x38
call fcn.14009edf0
cmp rsi, 0
mov rax, qword [rsp + 0x58]
jne 0x140035af1
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
mov r15, qword [rsp + 0x48]
mov rcx, r14
mov r14, qword [rsp + 0xa8]
jmp 0x140035c2b
sub r14, rsi
mov qword [rbp], r15
mov qword [rax], rcx
mov qword [rbp + 0x10], r14
movabs rax, 0x8000000000000001
cmp rdi, 0
je 0x1400360fa
mov ecx, 0x38
mov rax, rbx
mul rcx
mov rsi, rax
seto al
add rsi, 0xf
and rsi, 0xfffffffffffffff0
add rdi, 0x11
mov r14, rsi
add r14, rdi
movabs rax, 0x8000000000000001
cmp r14, 0
je 0x1400360fa
mov eax, dword [0x1400c5798]
sub eax, dword [0x1400c579c]
xor eax, 0x3d2f7b2b
add eax, 0x2de1fd73
add eax, 0x8e7bbb23
cmp eax, 0x4a97dfe7
jbe 0x14003611b
jmp 0x140035cac
mov eax, dword [0x1400c57a0]
add eax, dword [0x1400c57a4]
mov ecx, 0xae240946
xor edx, edx
div ecx
mov ecx, 0x5c8394bd
xor edx, edx
div ecx
mov ebx, eax
xor ebx, 0x71aa594a
xor eax, eax
sub rax, rsi
mov rcx, r13
add rcx, rax
mov rdx, r14
mov r8d, 0x10
call fcn.140044c20
cmp ebx, 0xb2a37ed7
ja 0x140035cac
movabs rax, 0x8000000000000001
jmp 0x1400360fa
mov r15, qword [rbp]
mov r8, rbx
shr r8, 4
mov rax, rbx
and rax, 0xf
cmp rax, 0
setne al
and al, 1
movzx eax, al
mov rcx, r8
add rcx, rax
cmp rcx, 0
je 0x140035d77
add r8, rax
mov rdx, rcx
and rdx, 1
xor eax, eax
cmp r8, 1
je 0x140035d54
movabs rax, 0x1ffffffffffffffe
and rcx, rax
xor eax, eax
xor r8d, r8d
jmp 0x140035d7f
jmp 0x140035d54
cmp rdx, 0
je 0x140035d77
movaps xmm0, xmmword [r15 + rax]
xorps xmm1, xmm1
pcmpgtb xmm1, xmm0
movaps xmm0, xmmword [0x1400a6660]
por xmm1, xmm0
movdqa xmmword [r15 + rax], xmm1
cmp rbx, 0x10
jb 0x140035dd6
jmp 0x140035dc7
mov r9, rax
or r9, 0x10
movaps xmm0, xmmword [r15 + rax]
xorps xmm1, xmm1
xorps xmm2, xmm2
pcmpgtb xmm2, xmm0
movaps xmm0, xmmword [0x1400a6660]
por xmm2, xmm0
movaps xmmword [r15 + rax], xmm2
add rax, 0x20
movaps xmm2, xmmword [r15 + r9]
pcmpgtb xmm1, xmm2
por xmm1, xmm0
movdqa xmmword [r15 + r9], xmm1
add r8, 2
cmp r8, rcx
je 0x140035d52
jmp 0x140035d7f
mov rax, r15
add rax, rbx
movups xmm0, xmmword [r15]
movups xmmword [rax], xmm0
jmp 0x140035df4
mov rcx, r15
add rcx, 0x10
mov rdx, r15
mov r8, rbx
call fcn.14009edf0
xor eax, eax
cmp rdi, 0xffffffffffffffff
je 0x1400360e9
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rbp
mov rax, r15
add rax, 0xffffffffffffffc8
mov qword [rsp + 0xb0], rax
xor edx, edx
mov r13, rdx
imul rax, r13, 0xffffffffffffffc8
mov rcx, rax
add rcx, 0xffffffffffffffc8
mov r12, r15
add r12, rcx
mov rsi, r15
add rsi, rax
add rdx, 1
mov rbp, r15
add rbp, r13
cmp byte [r15 + r13], 0x80
jne 0x1400360d1
mov qword [rsp + 0x50], rdx
mov rax, r13
xor rax, 0xffffffffffffffff
imul rax, rax, 0x38
mov rbx, r15
add rbx, rax
xor eax, eax
sub rax, r13
imul rax, rax, 0x38
mov rdx, qword [rsp + 0xb0]
add rdx, rax
mov rax, rbx
add rax, 8
mov qword [rsp + 0xa0], rax
mov rax, rbx
add rax, 0x10
mov qword [rsp + 0x98], rax
mov rax, rbx
add rax, 0x18
mov qword [rsp + 0x90], rax
mov rax, rbx
add rax, 0x20
mov qword [rsp + 0x88], rax
mov rax, rbx
add rax, 0x28
mov qword [rsp + 0x80], rax
mov rax, rbx
add rax, 0x30
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x40], rdx
jmp 0x140035ed4
mov rdx, qword [rsp + 0x40]
jmp 0x140035ed2
jmp 0x140035ed4
mov rcx, qword [rsp + 0x28]
call fcn.14003a750
mov rcx, rax
and rcx, rdi
movups xmm0, xmmword [r15 + rcx]
pmovmskb r8d, xmm0
cmp r8w, 0
mov rdx, rcx
jne 0x140035f25
xor r10d, r10d
mov rdx, rcx
xor r9d, r9d
jmp 0x140035f03
add r9, 0x10
lea rdx, [r10 + rdx + 0x10]
and rdx, rdi
movups xmm0, xmmword [r15 + rdx]
pmovmskb r8d, xmm0
cmp r8w, 0
mov r10, r9
je 0x140035f03
jmp 0x140035f25
tzcnt r8d, r8d
movzx r8d, r8w
add rdx, r8
and rdx, rdi
cmp byte [r15 + rdx], 0xff
jle 0x140035f4a
movaps xmm0, xmmword [r15]
pmovmskb edx, xmm0
tzcnt edx, edx
movzx edx, dx
mov r8, r13
sub r8, rcx
mov r9, rdx
sub r9, rcx
xor r9, r8
and r9, rdi
cmp r9, 0x10
jb 0x140036058
mov rcx, rdx
xor rcx, 0xffffffffffffffff
imul r8, rcx, 0x38
mov rcx, r15
add rcx, r8
mov r8b, byte [r15 + rdx]
shr rax, 0x39
mov r9, rdx
add r9, 0xfffffffffffffff0
and r9, rdi
mov byte [r15 + rdx], al
mov byte [r15 + r9 + 0x10], al
cmp r8b, 0xff
je 0x1400360aa
imul rax, rdx, 0xffffffffffffffc8
mov rdx, r15
add rdx, rax
cmp r12, rdx
setb al
cmp rcx, rsi
setb dl
and al, dl
test al, 1
jne 0x140035fba
jmp 0x140035fc1
xor eax, eax
jmp 0x140036075
mov rax, qword [rbx]
mov rdx, qword [rcx]
mov qword [rbx], rdx
mov qword [rcx], rax
mov r8, qword [rsp + 0xa0]
mov rax, qword [r8]
mov rdx, qword [rcx + 8]
mov qword [r8], rdx
mov qword [rcx + 8], rax
mov r8, qword [rsp + 0x98]
mov rax, qword [r8]
mov rdx, qword [rcx + 0x10]
mov qword [r8], rdx
mov qword [rcx + 0x10], rax
mov r8, qword [rsp + 0x90]
mov rax, qword [r8]
mov rdx, qword [rcx + 0x18]
mov qword [r8], rdx
mov qword [rcx + 0x18], rax
mov r8, qword [rsp + 0x88]
mov rax, qword [r8]
mov rdx, qword [rcx + 0x20]
mov qword [r8], rdx
mov qword [rcx + 0x20], rax
mov r8, qword [rsp + 0x80]
mov rax, qword [r8]
mov rdx, qword [rcx + 0x28]
mov qword [r8], rdx
mov qword [rcx + 0x28], rax
mov r8, qword [rsp + 0x78]
mov rax, qword [r8]
mov rdx, qword [rcx + 0x30]
mov qword [r8], rdx
mov qword [rcx + 0x30], rax
mov rdx, qword [rsp + 0x40]
jmp 0x140035ed2
shr rax, 0x39
mov rcx, r13
add rcx, 0xfffffffffffffff0
and rcx, rdi
mov byte [rbp], al
mov byte [r15 + rcx + 0x10], al
mov rdx, qword [rsp + 0x50]
jmp 0x1400360d1
mov dl, byte [rbx + rax]
mov r8b, byte [rcx + rax]
mov byte [rbx + rax], r8b
mov byte [rcx + rax], dl
mov rdx, rax
or rdx, 1
mov r8b, byte [rbx + rdx]
mov r9b, byte [rcx + rdx]
mov byte [rbx + rdx], r9b
mov byte [rcx + rdx], r8b
add rax, 2
cmp rax, 0x38
je 0x140035ecb
jmp 0x140036075
mov rax, r13
add rax, 0xfffffffffffffff0
and rax, rdi
mov byte [rbp], 0xff
mov byte [r15 + rax + 0x10], 0xff
mov rdx, rbx
mov r8d, 0x38
call fcn.14009edf0
mov rdx, qword [rsp + 0x50]
cmp r13, rdi
jne 0x140035e14
mov rax, r14
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
jmp 0x1400360e9
sub rax, rsi
mov qword [rbp + 0x10], rax
movabs rax, 0x8000000000000001
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
in al, dx
rep movsb byte [rdi], byte [rsi]
jmp 0x14003616a
invalid
mov dl, 0xea
add byte [rax], al