Function at 0x14003f970
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xe0
mov r15, rcx
xor ebx, ebx
movzx r14d, byte [0x14017a203]
test r14b, r14b
je 0x14003fd2d
movzx eax, byte [0x14017a204]
test al, al
je 0x14003fd2d
cmp byte [0x14017a318], bl
je 0x14003fd2d
movabs rdi, 0x7fffffffffffffff
mov rax, rdi
mov rcx, qword [0x14017a2e0]
sub rax, rcx
mov rdx, qword [0x14017a300]
cmp rax, rdx
jb 0x14003fd53
lea r9, [0x14017a2d0]
cmp qword [0x14017a2e8], 0xf
cmova r9, qword [0x14017a2d0]
lea rsi, [0x14017a2f0]
mov rax, rsi
cmp qword [0x14017a308], 0xf
cmova rax, qword [0x14017a2f0]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea r8, [0x14017a2d0]
movzx edx, byte [rbp - 0x69]
lea rcx, [rbp - 0x61]
call fcn.140009380
lea r9, [rbp - 0x61]
mov r10, qword [rbp - 0x61]
mov r11, qword [rbp - 0x49]
cmp r11, 0xf
cmova r9, r10
mov ecx, ebx
mov edx, ebx
mov r8, qword [rbp - 0x51]
test r8, r8
je 0x14003fa81
nop dword [rax + rax]
movsx rax, byte [rdx + r9]
add rax, rcx
imul rcx, rax, 0x401
mov rax, rcx
shr rax, 6
xor rcx, rax
inc rdx
cmp rdx, r8
jb 0x14003fa60
lea rax, [rcx + rcx*8]
mov rcx, rax
shr rcx, 0xb
xor rcx, rax
imul rax, rcx, 0x8001
movabs r12, 0x5851f42d4c957f2d
test rax, rax
jne 0x14003faae
imul r8, r12
inc r8
jmp 0x14003fab1
mov r8, rax
mov rax, qword [r15]
mov qword [rax], r8
cmp r11, 0xf
jbe 0x14003faee
lea rdx, [r11 + 1]
mov rax, r10
cmp rdx, 0x1000
jb 0x14003fae6
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003fd59
mov rcx, r10
call fcn.1400c4e5c
mov rax, qword [0x14017a2e0]
sub rdi, rax
mov rcx, qword [0x14017a300]
cmp rdi, rcx
jb 0x14003fd5f
lea r9, [0x14017a2d0]
cmp qword [0x14017a2e8], 0xf
cmova r9, qword [0x14017a2d0]
cmp qword [0x14017a308], 0xf
cmova rsi, qword [0x14017a2f0]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rax
lea r8, [0x14017a2d0]
movzx edx, byte [rbp - 0x69]
lea rcx, [rbp - 0x11]
call fcn.140009380
nop
lea r9, [rbp - 0x11]
mov rdi, qword [rbp - 0x11]
mov rsi, qword [rbp + 7]
cmp rsi, 0xf
cmova r9, rdi
mov rcx, rbx
mov rdx, rbx
mov r8, qword [rbp - 1]
test r8, r8
je 0x14003fba1
nop word [rax + rax]
movsx rax, byte [rdx + r9]
add rax, rcx
imul rcx, rax, 0x401
mov rax, rcx
shr rax, 6
xor rcx, rax
inc rdx
cmp rdx, r8
jb 0x14003fb80
lea rax, [rcx + rcx*8]
mov rcx, rax
shr rcx, 0xb
xor rcx, rax
imul rax, rcx, 0x8001
test rax, rax
jne 0x14003fbc4
imul r8, r12
inc r8
jmp 0x14003fbc7
mov r8, rax
sub r8, qword [0x14017a310]
cmp byte [0x14017a318], 0
sete al
lea rcx, [0x14014f28c]
mov qword [rbp - 0x29], rcx
mov qword [rbp - 0x21], 5
mov byte [rbp + 0x1f], al
movabs rax, 0x5000000000000000
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x20], r8
movabs rax, 0x4000000000000001
mov qword [rbp + 0x17], rax
mov qword [rbp - 0x39], 2
lea rax, [rbp + 0xf]
mov qword [rbp - 0x31], rax
movaps xmm0, xmmword [rbp - 0x39]
movdqa xmmword [rbp - 0x39], xmm0
movaps xmm1, xmmword [rbp - 0x29]
movdqa xmmword [rbp - 0x29], xmm1
lea r8, [rbp - 0x39]
lea rdx, [rbp - 0x29]
lea rcx, [rbp - 0x61]
call fcn.140008620
lea r8, [rbp - 0x61]
cmp qword [rbp - 0x49], 0xf
cmova r8, qword [rbp - 0x61]
mov rcx, rbx
mov rdx, qword [rbp - 0x51]
test rdx, rdx
je 0x14003fc81
nop dword [rax + rax]
movsx rax, byte [r8 + rcx]
add rax, rbx
imul rbx, rax, 0x401
mov rax, rbx
shr rax, 6
xor rbx, rax
inc rcx
cmp rcx, rdx
jb 0x14003fc60
lea rax, [rbx + rbx*8]
mov rcx, rax
shr rcx, 0xb
xor rcx, rax
imul rax, rcx, 0x8001
test rax, rax
jne 0x14003fca4
imul rdx, r12
inc rdx
jmp 0x14003fca7
mov rdx, rax
mov rax, qword [r15]
mov qword [rax + 8], rdx
mov rdx, qword [rbp - 0x49]
cmp rdx, 0xf
jbe 0x14003fce9
inc rdx
mov rcx, qword [rbp - 0x61]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003fce4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003fd65
call fcn.1400c4e5c
movdqa xmm0, xmmword [0x140150640]
movdqu xmmword [rbp - 0x51], xmm0
mov byte [rbp - 0x61], 0
cmp rsi, 0xf
jbe 0x14003fd2d
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x14003fd25
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003fd4d
mov rcx, rdi
call fcn.1400c4e5c
movzx eax, r14b
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.1400d3b88
int3
call fcn.140001a20
int3
call fcn.1400d3b88
int3
call fcn.140001a20
nop
call fcn.1400d3b88
nop
int3