Function at 0x140030178
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x18
mov rcx, rdx
mov rdx, r8
cmp r8, 0x20
ja 0x1400301af
cmp rdx, 0x10
ja 0x1400301ca
add rsp, 0x18
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x140030448
cmp rdx, 0x40
ja 0x1400301e0
add rsp, 0x18
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400305b4
nop
add rsp, 0x18
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x140030528
movabs r11, 0xb492b66fbe98f273
movabs rbp, 0x9ddfea08eb382d69
mov r8, rdx
mov rdi, qword [rcx + rdx - 0x28]
mov r9, qword [rcx + rdx - 0x10]
mov r10, qword [rcx + rdx - 0x38]
mov r14, qword [rcx + rdx - 0x30]
mov r12, rcx
lea rcx, [r10 + r9]
mov rsi, qword [r12 + rdx - 0x18]
lea rbx, [r14 + rdx]
xor rbx, rsi
imul rbx, rbp
mov rax, rsi
xor rax, rbx
shr rbx, 0x2f
xor rbx, rax
imul rbx, rbp
mov rdx, rbx
shr rdx, 0x2f
xor rdx, rbx
imul rdx, rbp
mov rbp, qword [r12 + r8 - 0x40]
add rbp, r8
lea rax, [rdi + rbp]
add rax, rdx
rol rax, 0x2b
add r10, r14
add r10, rbp
mov rbx, r10
rol rbx, 0x14
add rbx, rbp
add rbx, rax
add r10, rdi
mov rbp, qword [r12 + r8 - 0x20]
add rbp, rcx
mov r14, qword [r12 + r8 - 8]
add rbp, r11
lea r15, [r14 + rdi]
add r15, rbp
rol r15, 0x2b
add rsi, r9
add rsi, rbp
mov rax, rsi
rol rax, 0x14
add rax, rbp
add rax, r15
imul rdi, r11
mov qword [rsp], r12
add rdi, qword [r12]
add rsi, r14
dec r8
and r8, 0xffffffffffffffc0
mov qword [rsp + 8], r8
xor r15d, r15d
mov r8, qword [rsp]
mov r13, rdx
add rdi, r10
add rdi, rcx
mov r14, qword [r8 + r15 + 8]
mov r12, qword [r8 + r15 + 0x10]
add rdi, r14
rol rdi, 0x1b
add rcx, rbx
mov rdx, qword [r8 + r15 + 0x30]
mov qword [rsp + 0x10], rdx
add rcx, rdx
rol rcx, 0x16
movabs rdx, 0xb492b66fbe98f273
imul rdi, rdx
mov r11, rcx
imul r11, rdx
mov rbp, rdx
mov rdx, rdi
xor rdx, rax
mov r9, qword [r8 + r15 + 0x28]
add r10, r9
mov rcx, r10
add rcx, r11
add r13, rsi
imul rbx, rbp
mov r11, rbp
mov rbp, qword [r8 + r15 + 0x18]
add rbx, qword [r8 + r15]
add rsi, rbp
add rsi, rdx
add rsi, rbx
rol rsi, 0x2b
add r14, r12
add r14, rbx
mov rdi, r14
rol rdi, 0x14
add rbx, rdi
add rbx, rsi
rol r13, 0x1f
mov r10, r14
mov rdi, r13
imul rdi, r11
add r10, rbp
add r12, rcx
add rax, rdi
add rax, qword [r8 + r15 + 0x20]
mov rbp, qword [r8 + r15 + 0x38]
add r12, rbp
add r12, rax
add r9, qword [rsp + 0x10]
add r9, rax
mov rsi, r9
rol rsi, 0x14
add rax, rsi
rol r12, 0x2b
add rax, r12
mov rsi, r9
add rsi, rbp
add r15, 0x40
cmp qword [rsp + 8], r15
jne 0x1400302ba
xor rbx, rax
movabs r9, 0x9ddfea08eb382d69
imul rbx, r9
mov rbp, rbx
shr rbp, 0x2f
xor rbp, rax
xor rbp, rbx
imul rbp, r9
mov rax, rbp
shr rax, 0x2f
xor rax, rbp
imul rax, r9
add rax, rdi
xor r10, rsi
imul r10, r9
mov rbp, r10
shr rbp, 0x2f
xor rbp, rsi
xor rbp, r10
imul rbp, r9
mov rbx, rbp
shr rbx, 0x2f
xor rbx, rbp
imul rbx, r9
mov rbp, rcx
shr rbp, 0x2f
xor rbp, rcx
movabs rcx, 0xb492b66fbe98f273
imul rbp, rcx
add rbp, rdx
add rbp, rbx
xor rbp, rax
imul rbp, r9
xor rax, rbp
shr rbp, 0x2f
xor rbp, rax
imul rbp, r9
mov rax, rbp
shr rax, 0x2f
xor rax, rbp
imul rax, r9
add rsp, 0x18
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8, rcx
cmp rdx, 9
jb 0x140030493
mov r9, qword [r8 + rdx - 8]
lea rax, [r9 + rdx]
mov ecx, edx
ror rax, cl
mov rcx, qword [r8]
xor rcx, rax
movabs rdx, 0x9ddfea08eb382d69
imul rcx, rdx
xor rax, rcx
shr rcx, 0x2f
xor rcx, rax
imul rcx, rdx
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, rdx
xor rax, r9
ret
cmp rdx, 4
jb 0x1400304d5
mov ecx, dword [r8]
mov eax, dword [r8 + rdx - 4]
shl ecx, 3
add rcx, rdx
xor rcx, rax
movabs rdx, 0x9ddfea08eb382d69
imul rcx, rdx
xor rax, rcx
shr rcx, 0x2f
xor rcx, rax
imul rcx, rdx
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, rdx
ret
movabs rax, 0x9ae16a3b2f90404f
test rdx, rdx
je 0x140030527
movzx r9d, byte [r8]
mov rcx, rdx
shr rcx, 1
movzx ecx, byte [r8 + rcx]
movzx r8d, byte [rdx + r8 - 1]
shl rcx, 8
or rcx, r9
lea r8, [rdx + r8*4]
imul rcx, rax
movabs rdx, 0xc949d7c7509e6557
imul rdx, r8
xor rdx, rcx
mov rcx, rdx
shr rcx, 0x2f
xor rcx, rdx
imul rax, rcx
ret
movabs rax, 0xb492b66fbe98f273
imul rax, qword [rcx]
mov r9, qword [rcx + 8]
movabs r8, 0x9ae16a3b2f90404f
imul r8, qword [rcx + rdx - 8]
movabs r10, 0xc3a5c85c97cb3127
imul r10, qword [rcx + rdx - 0x10]
movabs rcx, 0xc949d7c7509e6557
xor rcx, r9
rol rcx, 0x2c
add rdx, rax
add rcx, rdx
sub rcx, r8
sub rax, r9
rol rax, 0x15
rol r8, 0x22
add r8, rax
add r8, r10
xor r8, rcx
movabs rdx, 0x9ddfea08eb382d69
imul r8, rdx
xor rcx, r8
shr r8, 0x2f
xor r8, rcx
imul r8, rdx
mov rax, r8
shr rax, 0x2f
xor rax, r8
imul rax, rdx
ret