Function at 0x14003bb00
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x1d8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x150], 0xfffffffffffffffe
mov r14, rcx
test r9, r9
je 0x14003bb84
mov rsi, r9
js 0x14003bfa8
mov rdi, r8
mov rbx, rdx
mov ecx, 8
mov rdx, rsi
call fcn.140097090
mov qword [rbp + 0x148], rax
test rax, rax
je 0x14003bfb2
lea rcx, [rbp - 0x60]
mov r8d, 0x188
mov rdx, rbx
call fcn.140067c10
test sil, 7
je 0x14003bba5
movabs rax, 0x8000000000000000
mov qword [r14], rax
jmp 0x14003be6f
lea rcx, [rbp - 0x60]
mov r8d, 0x188
call fcn.140067c10
movabs rax, 0x8000000000000000
mov qword [r14], rax
jmp 0x14003be85
mov qword [rbp + 0x138], r14
mov qword [rbp + 0x130], rsi
shr rsi, 3
mov qword [rbp + 0x140], rsi
xor r15d, r15d
movabs rsi, 0x55005500550055
movabs rbx, 0x333300003333
movabs r14, 0xff000000ff
nop
mov rcx, rdi
call case.0x14004c80c.295
mov r12, rax
mov rcx, rdi
call case.0x14004c80c.295
mov qword [rbp + 0x128], rax
lea rcx, [rbp + 0x128]
call case.0x14004c80c.295
lea r13, [r15 + 1]
bswap rax
lea rcx, [rbp + 0xa0]
mov rdx, rax
call fcn.1400237a0
mov rcx, rax
shr rcx, 9
xor rcx, rax
and rcx, rsi
xor rax, rcx
shl rcx, 9
xor rcx, rax
mov rax, rcx
shr rax, 0x12
xor rax, rcx
and rax, rbx
mov rdx, rax
shl rdx, 0x12
or rdx, rax
xor rdx, rcx
mov rax, rdx
shr rax, 0x24
xor eax, edx
and eax, 0xf0f0f0f
mov rcx, rax
shl rcx, 0x24
or rcx, rax
xor rcx, rdx
mov rax, rcx
shr rax, 0x18
xor eax, ecx
and eax, 0xff00ff00
mov rdx, rax
shl rdx, 0x18
or rdx, rax
xor rdx, rcx
mov rax, rdx
shr rax, 0x18
xor rax, rdx
and rax, r14
mov rcx, rax
shl rcx, 0x18
or rcx, rax
xor rcx, rdx
mov rdx, qword [rbp + 0x20]
call fcn.140023510
mov rdx, qword [rbp + 0x28]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x30]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x38]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x40]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x48]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x50]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x58]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x60]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x68]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x70]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x78]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x80]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x88]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x90]
mov rcx, rax
call fcn.140023510
mov rdx, qword [rbp + 0x98]
mov rcx, rax
call fcn.140023510
rol rax, 0x20
mov rcx, rax
shr rcx, 0x18
xor rcx, rax
and rcx, r14
mov rdx, rcx
shl rdx, 0x18
xor rdx, rax
xor rcx, rdx
mov rax, rcx
shr rax, 0x18
xor edx, eax
and edx, 0xff00ff00
mov rax, rdx
shl rax, 0x18
or rax, rdx
xor rax, rcx
mov rcx, rax
shr rcx, 0x24
xor ecx, eax
and ecx, 0xf0f0f0f
mov rdx, rcx
shl rdx, 0x24
or rdx, rcx
xor rdx, rax
mov rax, rdx
shr rax, 0x12
xor rax, rdx
and rax, rbx
mov rcx, rax
shl rcx, 0x12
or rcx, rax
xor rcx, rdx
mov rax, rcx
shr rax, 9
xor rax, rcx
and rax, rsi
mov rdx, rax
shl rdx, 9
or rdx, rax
xor rdx, rcx
lea rcx, [rbp - 0x60]
call fcn.1400237a0
bswap rax
xor rax, qword [rbp + 0x120]
mov qword [rbp + 0x128], rax
mov rcx, qword [rbp + 0x148]
mov qword [rcx + r15*8], rax
mov qword [rbp + 0x120], r12
add rdi, 8
mov r15, r13
cmp qword [rbp + 0x140], r13
jne 0x14003bbe0
mov r10, qword [rbp + 0x130]
test r10, r10
je 0x14003be56
mov rax, qword [rbp + 0x148]
mov rcx, qword [rbp + 0x140]
movzx ecx, byte [rax + rcx*8 - 1]
lea eax, [rcx - 9]
cmp al, 0xf8
jae 0x14003be9a
movabs rax, 0x8000000000000000
mov rcx, qword [rbp + 0x138]
mov qword [rcx], rax
test r10, r10
je 0x14003be85
mov rcx, qword [0x1402d3850]
xor edx, edx
mov r8, qword [rbp + 0x148]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
add rsp, 0x1d8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movzx edx, cl
mov eax, 8
sub rax, rdx
cmp cl, 1
jne 0x14003beda
mov rcx, qword [rbp + 0x140]
dec rcx
lea rax, [rax + rcx*8]
cmp rax, r10
cmovae rax, r10
mov rcx, qword [rbp + 0x138]
mov qword [rcx], r10
mov rdx, qword [rbp + 0x148]
mov qword [rcx + 8], rdx
mov qword [rcx + 0x10], rax
jmp 0x14003be85
mov r8, qword [rbp + 0x148]
mov r9, qword [rbp + 0x140]
lea r8, [r8 + r9*8]
add r8, 0xfffffffffffffff8
cmp cl, byte [r8 + rax]
jne 0x14003be56
cmp cl, 2
je 0x14003beaa
mov r9d, 9
sub r9, rdx
cmp cl, byte [r8 + r9]
jne 0x14003be56
cmp cl, 3
je 0x14003beaa
mov r9d, 0xa
sub r9, rdx
cmp cl, byte [r8 + r9]
jne 0x14003be56
cmp cl, 4
je 0x14003beaa
mov r9d, 0xb
sub r9, rdx
cmp cl, byte [r8 + r9]
jne 0x14003be56
cmp cl, 5
je 0x14003beaa
mov r9d, 0xc
sub r9, rdx
cmp cl, byte [r8 + r9]
jne 0x14003be56
cmp cl, 6
je 0x14003beaa
mov r9d, 0xd
sub r9, rdx
cmp cl, byte [r8 + r9]
jne 0x14003be56
cmp cl, 7
je 0x14003beaa
cmp cl, 8
jne 0x14003be56
mov ecx, 0xe
sub rcx, rdx
cmp byte [r8 + rcx], 8
je 0x14003beaa
jmp 0x14003be56
xor ecx, ecx
mov rdx, rsi
call fcn.14025edc0
mov ecx, 1
mov rdx, rsi
call fcn.14025edc0
int3