Function at 0x1400f7c50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
movaps xmmword [rsp + 0xd0], xmm6
mov r11, qword [rcx + 0x18]
mov rax, r11
inc rax
jne 0x1400f7c86
mov cl, 1
call fcn.1400dc6b0
mov r14, rax
jmp 0x1400f8597
mov rbx, r8
mov rdi, rdx
mov rsi, rcx
mov r13, qword [rcx + 8]
mov rcx, r13
cmp r13, 8
jb 0x1400f7cfd
mov ecx, r13d
and ecx, 1
lea rcx, [rcx*2]
add rcx, r13
shr rcx, 3
mov rdx, rcx
not rdx
mov r8, rdx
or r8, 0xfffffffffffffff8
lea r9, [rcx + r8]
add r9, 8
mov r10, rcx
and r10, 0xfffffffffffffff8
mov rcx, r8
not rcx
and edx, 7
imul rdx, r10
mov r10, r9
and r10, r8
or r8, r9
not r8
imul r8, r10
mov r10d, ecx
and r10d, r9d
or rcx, r9
imul rcx, r10
add rcx, rdx
add rcx, r8
mov rdx, rcx
shr rdx, 1
cmp rax, rdx
jbe 0x1400f7d3a
inc rcx
cmp rax, rcx
cmova rcx, rax
cmp rcx, 8
jae 0x1400f7e42
mov qword [rsp + 0x38], rdi
mov rbp, r11
xor eax, eax
cmp rcx, 4
setae al
lea r15, [rax*4 + 4]
jmp 0x1400f85f5
mov qword [rsp + 0x58], r11
mov r14, qword [rsi]
lea rdx, [r13 + 1]
mov qword [rsp + 0x48], rdx
shr rdx, 4
mov rax, 0xfffffffffffffffe
sub rax, r13
mov r8d, eax
not r8d
xor ecx, ecx
test r8b, 0xf
setne cl
add rcx, rdx
je 0x1400f7ddc
xor edx, edx
movdqa xmm0, xmmword [0x140101970]
nop word [rax + rax]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r14 + rdx]
por xmm1, xmm0
movdqa xmmword [r14 + rdx], xmm1
mov r8d, ecx
and r8d, 1
mov r9, rcx
not r9
or r9, 1
add r9, r8
add rcx, rcx
and rcx, 0xfffffffffffffffc
mov r8, r9
xor r8, rcx
and rcx, r9
add rcx, rcx
mov r9d, edx
and r9d, 0x10
mov r10d, edx
not r10d
or r10, 0xffffffffffffffef
or rdx, 0x10
and rdx, r10
lea rdx, [rdx + r9*2]
add rcx, r8
jne 0x1400f7d80
mov rcx, qword [rsp + 0x48]
cmp rcx, 0x10
jae 0x1400f7e7c
lea rcx, [r14 + 0x10]
mov rdx, rax
or rdx, 0xfffffffffffffffe
add rdx, r13
add rdx, 2
mov r8d, r13d
and r8d, 1
neg r8
and r8, rdx
mov rdx, qword [rsp + 0x48]
or rdx, 1
not eax
and eax, 1
neg rax
and rax, rdx
mov rdx, rax
and rdx, r8
xor rax, r8
lea r8, [rax + rdx*2]
mov rdx, r14
call fcn.1400f7010
mov rdx, qword [rsp + 0x48]
test rdx, rdx
jne 0x1400f7e87
jmp 0x1400f8545
mov rax, rcx
shr rax, 0x3d
je 0x1400f85b6
mov rbp, r11
mov cl, 1
call fcn.1400dc6b0
mov r14, rax
movabs rax, 0x8000000000000001
cmp r14, rax
jne 0x1400f8597
mov r15, rdx
mov qword [rsp + 0x38], rdi
jmp 0x1400f85f5
movdqu xmm0, xmmword [r14]
movdqu xmmword [r14 + rcx], xmm0
mov qword [rsp + 0x40], rsi
lea rax, [r14 - 0x30]
mov qword [rsp + 0x68], rax
movabs rax, 0x736f6d6570736575
xor rax, rdi
mov qword [rsp + 0x50], rax
lea rax, [rbx + rbx]
movabs rcx, 0xc8dee4c2dcc8deda
and rcx, rax
mov rdx, rbx
sub rdx, rcx
movabs rcx, 0x646f72616e646f6d
add rcx, rdx
mov qword [rsp + 0x30], rcx
lea rcx, [rdi + rdi]
movabs rdx, 0x270d313523351b3d
xor rdx, rcx
movabs r8, 0xd8f2cecadccae4c2
or r8, rcx
and r8, rdx
movabs rcx, 0x6c7967656e657261
add rcx, rdi
movabs rdx, 0x9386989a919a8d9e
sub rdx, rdi
and rdx, r8
not r8
and r8, rcx
sub r8, rdx
mov qword [rsp + 0x80], r8
movabs rcx, 0xe8cac8c4f2e8cae6
and rcx, rax
mov rax, rbx
sub rax, rcx
movabs rcx, 0x7465646279746573
add rcx, rax
mov qword [rsp + 0x78], rcx
xor ebp, ebp
xorps xmm6, xmm6
mov qword [rsp + 0x70], r13
jmp 0x1400f7fa0
shr rax, 0x39
mov rcx, r15
xor rcx, 0xffffffffffffffef
inc rcx
lea rdx, [r15 + r15]
mov r8, rdx
xor r8, 0x21
or rdx, 0xffffffffffffffde
and rdx, r8
mov r8, rdx
and r8, rcx
xor rdx, rcx
lea rcx, [rdx + r8*2]
mov rdx, rcx
not rdx
or rdx, r13
add rdx, rcx
mov byte [r14 + r15], al
mov byte [r14 + rdx + 0x11], al
mov rbp, qword [rsp + 0x60]
cmp r15, r13
je 0x1400f8535
mov r15, rbp
inc rbp
cmp byte [r14 + r15], 0x80
jne 0x1400f7f97
mov rcx, 0xfffffffffffffffe
sub rcx, r15
mov edx, ecx
not edx
or rcx, 0x30
mov rax, rcx
not rax
mov r8, rbp
and r8, 0xffffffffffffffcf
neg r8
add r8, r15
add r8, 0xffffffffffffffd1
mov r9, r8
and r9, rcx
or rcx, r8
not rcx
imul rcx, r9
mov r9, r8
and r9, rax
or rax, r8
imul rax, r9
add rax, rcx
mov ecx, ebp
or ecx, edx
and ecx, 0x30
mov qword [rsp + 0x60], rbp
or rbp, 0x30
imul rbp, rcx
mov rcx, rax
not rcx
and rcx, rbp
not rbp
and rbp, rax
sub rbp, rcx
add rbp, r14
mov rax, r15
neg rax
lea rax, [rax + rax*2]
shl rax, 4
add rax, qword [rsp + 0x68]
mov qword [rsp + 0x38], rax
nop word [rax + rax]
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], rbx
lea rax, [rsp + 0xb8]
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
lea rsi, [rsp + 0x88]
mov rcx, rsi
call fcn.14005ae80
mov byte [rsp + 0x2f], 0xff
mov r8d, 1
mov rcx, rsi
lea rdx, [rsp + 0x2f]
call fcn.14005ae80
mov r9, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
mov rax, qword [rsp + 0xb8]
shl rax, 0x38
or rax, qword [rsp + 0xc0]
mov r10, qword [rsp + 0xa0]
mov r11, rax
and r11, r10
add r11, r11
mov r8, rax
sub r8, r11
add r8, r10
mov r10, rcx
and r10, r9
xor r9, rcx
rol rcx, 0xd
lea r9, [r9 + r10*2]
xor rcx, r9
rol r9, 0x20
mov r10, r8
and r10, rdx
xor rdx, r8
lea rdx, [rdx + r10*2]
rol r8, 0x10
mov r10, rdx
and r10, r8
add r10, r10
sub r8, r10
add r8, rdx
mov r10, r8
and r10, r9
xor r9, r8
rol r8, 0x15
lea r10, [r9 + r10*2]
mov r9, r8
not r9
or r9, r10
add r9, r8
add r8, r10
add r9, r9
add r9, 2
mov r11, r8
not r11
and r11, r9
not r9
and r9, r8
sub r9, r11
add rdx, rcx
rol rcx, 0x11
mov r8, rdx
and r8, rcx
add rcx, rdx
add r8, r8
mov r11, rcx
not r11
and r11, r8
not r8
and r8, rcx
sub r8, r11
rol rdx, 0x20
xor rax, r10
add rax, r8
rol r8, 0xd
xor rdx, 0xff
mov r10, rax
and r10, r8
add r10, r10
mov rcx, rax
sub rcx, r10
rol rax, 0x20
add rcx, r8
add rdx, r9
rol r9, 0x10
xor r9, rdx
add rax, r9
rol r9, 0x15
mov r8, r9
and r8, rax
add r9, rax
add r8, r8
mov r10, r8
xor r10, r9
not r8
and r8, r9
add r8, r8
add rdx, rcx
rol rcx, 0x11
sub r8, r10
xor rcx, rdx
rol rdx, 0x20
mov r9, rcx
xor r9, rax
and rax, rcx
lea r9, [r9 + rax*2]
rol rcx, 0xd
mov rax, r9
and rax, rcx
add rcx, r9
add rax, rax
rol r9, 0x20
sub rcx, rax
mov rax, r8
and rax, rdx
xor rdx, r8
lea rdx, [rdx + rax*2]
rol r8, 0x10
mov rax, rdx
and rax, r8
add r8, rdx
add rax, rax
sub r8, rax
add r9, r8
rol r8, 0x15
mov rax, r8
and rax, r9
add r8, r9
add rax, rax
add rdx, rcx
rol rcx, 0x11
mov r10, rdx
and r10, rcx
add rcx, rdx
add r10, r10
rol rdx, 0x20
sub rcx, r10
add r9, rcx
rol rcx, 0xd
sub r8, rax
xor rcx, r9
rol r9, 0x20
add rdx, r8
rol r8, 0x10
mov r10, rdx
and r10, r8
add r10, r10
mov rax, rdx
sub rax, r10
add rax, r8
add r9, rax
rol rax, 0x15
add rdx, rcx
rol rcx, 0x11
xor rcx, rdx
rol rdx, 0x20
xor rcx, r9
mov r8, rcx
and r8, rdx
add rcx, rdx
add r8, r8
sub rcx, r8
xor rax, r9
xor rax, rcx
mov rcx, rax
not rcx
or rcx, r13
lea rdx, [rax + rcx]
add rcx, rax
inc rcx
movdqu xmm0, xmmword [r14 + rdx + 1]
pmovmskb edx, xmm0
mov r8, rcx
test edx, edx
jne 0x1400f8328
mov r9d, 0x10
mov r8, rcx
nop dword [rax + rax]
add r8, r9
and r8, r13
movdqu xmm0, xmmword [r14 + r8]
pmovmskb edx, xmm0
add r9, 0x10
test edx, edx
je 0x1400f8310
tzcnt edx, edx
add rdx, r8
and rdx, r13
cmp byte [r14 + rdx], 0
js 0x1400f8346
movdqa xmm0, xmmword [r14]
pmovmskb edx, xmm0
tzcnt edx, edx
mov r8, rdx
not r8
mov r9, r15
sub r9, rcx
lea r10, [rcx + rcx]
not r10
add r10, rcx
or r10, r8
add r10, rdx
add r10, r10
add r10, 2
lea r11, [rdx + rcx]
and rcx, rdx
add rcx, rcx
sub r11, rcx
mov rcx, r11
not rcx
and rcx, r10
add rcx, rcx
xor r11, r10
sub rcx, r11
mov r10, rcx
and r10, r9
add rcx, r9
add r10, r10
sub rcx, r10
and rcx, r13
cmp rcx, 0x10
jb 0x1400f7f50
mov r13, r15
mov rsi, rbx
lea r9, [rdx + rdx]
mov ecx, r9d
and ecx, 2
mov r10, rdx
xor r10, 1
add r10, rcx
mov rcx, r10
xor rcx, 0x30
mov r11, r10
or r11, 0xffffffffffffffcf
and rcx, r11
lea rbx, [r11 + 1]
mov r12, rcx
not r12
and r12, rbx
mov r15, 0xfffffffffffffffe
sub r15, r11
and r15, rcx
imul r15, r12
mov r11, rbx
and r11, rcx
or rcx, rbx
imul rcx, r11
mov r11, r10
xor r11, 0xffffffffffffffcf
or r10, 0x30
and r11, r10
imul r11, r10
sub r15, r11
add rcx, r14
add rcx, r15
movzx r10d, byte [r14 + rdx]
shr rax, 0x39
mov r11, rdx
or r11, 0x10
or r8, 0xffffffffffffffef
and r8, r11
not r9d
or r9, 0xffffffffffffffde
lea r9, [r9 + rdx*2]
sub r9, r8
inc r9
mov r11, qword [rsp + 0x70]
mov r8, r11
and r9, r11
mov byte [r14 + rdx], al
mov byte [r9 + r14 + 0x10], al
cmp r10b, 0xff
je 0x1400f84e0
xor eax, eax
mov rbx, rsi
mov r15, r13
mov r13, r8
nop word cs:[rax + rax]
movzx edx, byte [rbp + rax]
movzx r8d, byte [rcx + rax]
mov byte [rbp + rax], r8b
mov byte [rcx + rax], dl
mov edx, eax
and edx, 1
mov r8, rax
not r8
or r8, 0x3e
or rax, 1
and rax, r8
lea rax, [rax + rdx*2]
movzx edx, byte [rbp + rax]
movzx r8d, byte [rcx + rax]
mov byte [rbp + rax], r8b
mov byte [rcx + rax], dl
mov edx, eax
and edx, 1
mov r8, rax
not r8
or r8, 0x3e
or rax, 1
and rax, r8
lea rax, [rax + rdx*2]
cmp rax, 0x30
jb 0x1400f8470
jmp 0x1400f8040
mov r15, r13
mov rax, r13
xor rax, 0xffffffffffffffef
mov rdx, r13
add rdx, r13
not edx
or rdx, 0xffffffffffffffde
lea rax, [rax + r13*2]
add rax, rdx
add rax, 2
mov r13, r8
and rax, r8
mov byte [r14 + r15], 0xff
mov byte [rax + r14 + 0x10], 0xff
movdqu xmm0, xmmword [rbp]
movdqu xmm1, xmmword [rbp + 0x10]
movups xmm2, xmmword [rbp + 0x20]
movups xmmword [rcx + 0x20], xmm2
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmmword [rcx], xmm0
mov rbx, rsi
jmp 0x1400f7f92
cmp r13, 8
mov rsi, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
jb 0x1400f8572
shr rdx, 3
mov eax, edx
and eax, 7
mov rcx, rdx
or rdx, 7
imul rdx, rax
xor rax, 7
and rcx, 0xfffffffffffffff8
imul rcx, rax
mov rax, rcx
and rax, rdx
xor rdx, rcx
lea r13, [rdx + rax*2]
mov rax, r13
mov rcx, qword [rsp + 0x58]
xor rax, rcx
not rcx
and rcx, r13
add rcx, rcx
sub rcx, rax
mov qword [rsi + 0x10], rcx
movabs r14, 0x8000000000000001
mov rax, r14
movaps xmm6, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x38], rdi
mov rbp, r11
shl rcx, 3
movabs rdx, 0x2492492492492493
mov rax, rcx
mul rdx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 2
dec rcx
bsr rcx, rcx
not ecx
mov r15, 0xffffffffffffffff
shr r15, cl
inc r15
mov ecx, 0x30
mov rax, r15
mul rcx
jo 0x1400f7c77
mov r12, rax
lea rdi, [r15 + 0x10]
mov r14, rax
add r14, rdi
jb 0x1400f7c77
movabs rax, 0x7ffffffffffffff1
cmp r14, rax
jae 0x1400f7c77
test r14, r14
je 0x1400f8661
movzx eax, byte [0x14014fbb1]
mov edx, 0x10
mov rcx, r14
call fcn.140078bb0
test rax, rax
jne 0x1400f8666
mov edx, 0x10
mov cl, 1
mov r8, r14
call fcn.1400dc700
mov r14, rax
jmp 0x1400f8597
mov eax, 0x10
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x40], rsi
mov rcx, rax
mov qword [rsp + 0x30], rax
lea r14, [rax + r12]
lea rsi, [r15 - 1]
mov rbx, rsi
cmp rsi, 8
jb 0x1400f86e8
mov eax, esi
and eax, 1
lea rbx, [rsi + rax*2]
shr rbx, 3
mov rcx, rbx
not rcx
movabs rax, 0x1ffffffffffffff8
or rax, rcx
add rax, rbx
inc rax
mov edx, ebx
and edx, 7
and ecx, 7
mov r8, rcx
not r8
and r8, rax
mov r9d, eax
not r9d
and r9d, ecx
imul r9, r8
mov r8d, eax
and r8d, ecx
or rax, rcx
imul rax, r8
or rbx, 7
imul rbx, rdx
add rbx, rax
add rbx, r9
mov rax, rdi
xor rax, 1
mov rcx, r15
or rcx, 0xfffffffffffffffe
and rcx, rax
mov eax, esi
and eax, 1
neg rax
and rax, rcx
or rdi, 1
and r15d, 1
neg r15
and r15, rdi
add r15, rax
mov rcx, r14
mov dl, 0xff
mov r8, r15
call fcn.1400f7790
mov rax, rbx
xor rax, rbp
not rbp
and rbp, rbx
add rbp, rbp
sub rbp, rax
mov rax, qword [rsp + 0x40]
mov r15, qword [rax]
cmp r13, 0xffffffffffffffff
je 0x1400f8991
mov qword [rsp + 0x58], rbp
lea rdi, [r15 - 0x30]
mov rax, qword [rsp + 0x30]
add rax, r12
add rax, 0x11
mov qword [rsp + 0x30], rax
xor r12d, r12d
mov rdx, qword [rsp + 0x50]
jmp 0x1400f88b1
movdqa xmm0, xmmword [r14]
pmovmskb ecx, xmm0
tzcnt ecx, ecx
shr rax, 0x39
lea rdx, [rcx - 0xf]
mov r8d, 0xf
sub r8, rcx
or r8, rsi
mov r9, r8
and r9, rdx
xor r8, rdx
lea rdx, [r8 + r9*2]
lea r8d, [rdx + rdx]
and r8d, 0x20
mov r9, r8
sub r9, rdx
add r9, 0xffffffffffffffef
not r9
add r9, r8
mov byte [r14 + rcx], al
mov byte [r14 + r9], al
mov rdx, rbp
xor rdx, 0x30
mov r8, rbp
or r8, 0xffffffffffffffcf
and rdx, r8
mov rax, 0xfffffffffffffffe
sub rax, r12
mov r9d, eax
not r9d
lea r10, [r8 + 1]
mov r11, rdx
not r11
and r11, r10
mov rbx, 0xfffffffffffffffe
sub rbx, r8
and rbx, rdx
imul rbx, r11
mov r8, r10
and r8, rdx
or rdx, r10
imul rdx, r8
and r9d, 0x30
and rax, 0xffffffffffffffcf
inc rax
imul rax, r9
add rax, rdx
add rax, rbx
lea r9, [rcx + 1]
mov r8, r9
or r8, 0xffffffffffffffcf
mov r10, r8
not r10
mov rdx, 0xfffffffffffffffe
sub rdx, rcx
mov r11, rdx
or r11, 0xffffffffffffffcf
add rcx, r11
add rcx, 2
mov r11, rcx
and r11, r8
or r8, rcx
inc r8
imul r8, r11
mov r11d, r10d
and r11d, ecx
or r10, rcx
imul r10, r11
and r9d, 0x30
and rdx, 0xffffffffffffffcf
inc rdx
imul rdx, r9
sub rdx, r10
add rdx, r8
movdqu xmm0, xmmword [r15 + rax]
movdqu xmm1, xmmword [r15 + rax + 0x10]
movups xmm2, xmmword [r15 + rax + 0x20]
movups xmmword [r14 + rdx + 0x20], xmm2
movdqu xmmword [r14 + rdx + 0x10], xmm1
movdqu xmmword [r14 + rdx], xmm0
mov rdx, qword [rsp + 0x50]
cmp r12, r13
mov r12, rbp
je 0x1400f8972
lea rbp, [r12 + 1]
test byte [r15 + r12], 0x80
jne 0x1400f88a5
mov rax, r12
neg rax
lea rax, [rax + rax*2]
shl rax, 4
mov r8, qword [rdi + rax]
mov r9, qword [rdi + rax + 0x10]
mov rcx, qword [rsp + 0x38]
call fcn.14005a950
mov rcx, rax
and rcx, rsi
movdqu xmm0, xmmword [r14 + rcx]
pmovmskb r9d, xmm0
test r9d, r9d
jne 0x1400f8946
mov rdx, 0xffffffffffffffff
mov r8, qword [rsp + 0x30]
xor r10d, r10d
nop word cs:[rax + rax]
add rdx, 0xfffffffffffffff0
mov r11, rdx
sub r11, rcx
or r11, rsi
add r11, rcx
lea rcx, [r10 + r11]
add rcx, 0x11
movdqu xmm0, xmmword [r8 + r11]
pmovmskb r9d, xmm0
add r10, 0x10
add r8, 0x10
test r9d, r9d
je 0x1400f8910
sub r11, rdx
mov rcx, r11
tzcnt edx, r9d
add rdx, rcx
mov rcx, rdx
not rcx
or rcx, rsi
lea r8, [rdx + rcx]
cmp byte [r14 + r8 + 1], 0
jns 0x1400f8770
add rcx, rdx
inc rcx
jmp 0x1400f877d
mov rax, qword [rsp + 0x40]
mov qword [rax], r14
mov qword [rax + 8], rsi
mov rcx, qword [rsp + 0x58]
mov qword [rax + 0x10], rcx
test r13, r13
jne 0x1400f899c
jmp 0x1400f858d
mov qword [rax], r14
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rbp
mov eax, r13d
and eax, 1
mov rcx, r13
not rcx
or r13, 0xfffffffffffffffe
or rcx, 1
and rcx, r13
not rcx
lea r9, [rcx + rax*2]
mov ecx, 0x30
mov rax, r9
mul rcx
add r9, rax
movabs r14, 0x8000000000000001
add r9, 0x10
je 0x1400f8597
sub r15, rax
mov r8d, 0x10
mov rcx, r15
mov rdx, r9
call fcn.140078bc0
jmp 0x1400f8597