Function at 0x140001c92
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov r12, rcx
mov rsi, rdx
cmp rdx, 0x10
jle 0x140001cce
lea rcx, [0x1400302c0]
call fcn.140023aa0
mov al, byte [rax]
cmp rsi, 0x20
jle 0x140001ddf
jmp 0x140001dd3
cmp rdx, 7
jg 0x140001cdc
cmp rdx, 3
jg 0x140001d3d
jmp 0x140001d29
lea rcx, [0x1400302c0]
call fcn.140023aa0
cmp byte [rax], 0
jne 0x140002124
movabs rax, 0x9ae16a3b2f90404f
lea r8, [rsi + rsi]
mov rcx, qword [r12 + rsi - 8]
add r8, rax
add rax, qword [r12]
mov rdx, rax
ror rdx, 0x19
add rdx, rcx
rol rcx, 0x1b
imul rcx, r8
imul rdx, r8
add rcx, rax
jmp 0x14000210c
movabs r13, 0x9ae16a3b2f90404f
test rdx, rdx
jg 0x140001d75
jmp 0x140002127
lea rcx, [0x1400302c0]
call fcn.140023aa0
cmp byte [rax], 0
jne 0x140002124
mov eax, dword [r12]
lea r8, [rsi + rsi]
mov edx, dword [r12 + rsi - 4]
lea rcx, [rsi + rax*8]
movabs rax, 0x9ae16a3b2f90404f
add r8, rax
jmp 0x14000210c
mov rax, rdx
movzx ebx, byte [rcx + rdx - 1]
sar rax, 1
movzx edi, byte [rcx + rax]
movzx eax, byte [rcx]
lea rcx, [0x1400302c0]
shl edi, 8
add edi, eax
call fcn.140023aa0
cmp byte [rax], 0
jne 0x140002124
movabs rdx, 0xc3a5c85c97cb3127
imul rdi, r13
lea eax, [rbx*4]
add rax, rsi
imul rax, rdx
xor rax, rdi
mov rdx, rax
shr rdx, 0x2f
xor rax, rdx
imul r13, rax
jmp 0x140002127
cmp rsi, 0x40
jle 0x140001eb1
jmp 0x140001e3c
test al, al
jne 0x140002124
mov r10, qword [r12 + 8]
mov r9, qword [r12 + rsi - 8]
lea r8, [rsi + rsi]
movabs rcx, 0x9ae16a3b2f90404f
movabs rax, 0xb492b66fbe98f273
imul rax, qword [r12]
add r8, rcx
imul r9, r8
lea rdx, [r10 + rcx]
ror rdx, 0x12
imul rcx, qword [r12 + rsi - 0x10]
add rdx, rax
add rax, r10
rol rax, 0x15
add rdx, r9
ror r9, 0x1e
add rcx, rax
jmp 0x140001f53
test al, al
jne 0x140002124
lea r10, [rsp + 0x60]
mov edx, 0x10
xor ebp, ebp
movabs rbx, 0x1529cba0ca458ff
mov rcx, r10
lea r14, [rsp + 0x70]
movabs rdi, 0x226bb95b4e64b6d4
movabs r15, 0xb492b66fbe98f273
call fcn.140001c85
mov rcx, r14
call fcn.140001c85
lea rax, [rsi - 1]
add rbx, qword [r12]
movabs rsi, 0x134a747f856d0526
mov qword [rsp + 0x38], rax
mov r13, qword [rsp + 0x38]
and rax, 0xffffffffffffffc0
mov qword [rsp + 0x40], rax
lea rax, [r13 - 0x3f]
jmp 0x140001f5b
test al, al
jne 0x140002124
mov r10, qword [r12]
mov r11, qword [r12 + rsi - 8]
lea r8, [rsi + rsi]
movabs rdx, 0x9ae16a3b2f90404f
mov r9, qword [r12 + rsi - 0x10]
add r8, rdx
mov rax, qword [r12 + 8]
imul r10, rdx
imul r11, r8
imul r9, rdx
add rdx, rax
lea rcx, [r10 + rax]
ror rdx, 0x12
rol rcx, 0x15
add rdx, r10
add r9, rcx
mov rcx, r11
add rdx, r11
ror rcx, 0x1e
add r9, rcx
mov rcx, r9
call fcn.140001978
mov r11, qword [r12 + 0x18]
add r9, qword [r12 + rsi - 0x20]
mov rcx, rax
mov rax, qword [r12 + 0x10]
imul r9, r8
add rcx, qword [r12 + rsi - 0x18]
imul rcx, r8
lea rdx, [r10 + r11]
imul rax, r8
ror rdx, 0x12
add rdx, rax
lea r10, [rax + r11]
add rdx, r9
rol r10, 0x15
ror r9, 0x1e
add r9, r10
add rcx, r9
jmp 0x14000210c
mov rcx, qword [rsp + 0x60]
mov r9, qword [rsp + 0x68]
mov r8, rbp
mov qword [rsp + 0x58], rax
mov r11, qword [rsp + 0x78]
mov qword [rsp + 0x48], r10
lea rdx, [rdi + rcx]
add rdx, qword [r12 + rbp + 8]
add rdi, r9
add rdi, qword [r12 + rbp + 0x30]
add rdx, rbx
mov rbx, rsi
rol rdi, 0x16
add rcx, qword [r12 + rbp + 0x28]
rol rdx, 0x1b
imul rdi, r15
mov qword [rsp + 0x50], r11
imul rdx, r15
imul r9, r15
add rdi, rcx
mov rcx, r10
mov rsi, rdx
mov rdx, qword [rsp + 0x70]
xor rsi, r11
add rbx, rdx
add rdx, rsi
mov qword [rsp + 0x20], rdx
mov rdx, r12
rol rbx, 0x1f
imul rbx, r15
call fcn.140014557
mov rdx, qword [r12 + rbp + 0x10]
mov r11, qword [rsp + 0x50]
mov rcx, r14
lea r8, [rbp + 0x20]
add rbp, 0x40
add rdx, rdi
lea r9, [r11 + rbx]
mov qword [rsp + 0x20], rdx
mov rdx, r12
call fcn.140014557
cmp qword [rsp + 0x40], rbp
mov r10, qword [rsp + 0x48]
mov rax, qword [rsp + 0x58]
jne 0x140001f5b
mov rcx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x60]
lea rbp, [rsi + rsi]
and ebp, 0x1fe
mov r9, qword [rsp + 0x68]
mov r11, qword [r12 + r13 - 0xf]
and ecx, 0x3f
add rcx, qword [rsp + 0x70]
add rbp, r15
mov r15, qword [rsp + 0x78]
add r8, rcx
add r11, r9
add r11, rdi
imul r9, rbp
lea rdx, [rbx + r8]
add rdx, qword [r12 + r13 - 0x37]
add rdx, rdi
lea rdi, [r15 + r15*8]
add rcx, r8
rol r11, 0x16
rol rdx, 0x1b
imul r11, rbp
lea r8, [r8 + r8*8]
add rsi, rcx
imul rdx, rbp
add r8, qword [r12 + r13 - 0x17]
rol rsi, 0x1f
imul rsi, rbp
lea rbx, [r8 + r11]
mov r8, rax
xor rdi, rdx
mov rdx, r12
add rcx, rdi
mov qword [rsp + 0x20], rcx
mov rcx, r10
call fcn.140014557
mov rax, qword [r12 + r13 - 0x2f]
mov rdx, r12
mov rcx, r14
lea r9, [r15 + rsi]
lea r8, [r13 - 0x1f]
add rax, rbx
mov qword [rsp + 0x20], rax
call fcn.140014557
mov rdx, qword [rsp + 0x70]
mov r8, rbp
mov r9, rbx
mov rcx, qword [rsp + 0x60]
shr r9, 0x2f
xor r9, rbx
call fcn.140001978
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
mov r10, rax
call fcn.140001978
lea rdx, [rsi + rax]
movabs rax, 0xc3a5c85c97cb3127
imul r9, rax
lea rcx, [r9 + rdi]
add rcx, r10
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.140001978
xor r13d, r13d
mov rax, r13
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret