Function at 0x1400cbb40
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rdi
push r14
push r15
sub rsp, 0x38
mov r15, qword [rcx]
mov rdi, r8
mov rbx, rdx
mov r14, rcx
cmp byte [r15 + 0xa1], 0
jne 0x1400cbb84
lea rdx, [rcx + 8]
mov rcx, r15
call fcn.1400ed0d0
test eax, eax
je 0x1400cbb84
inc dword [r14 + 0x4c]
mov dword [r14 + 0x18], eax
add rsp, 0x38
pop r15
pop r14
pop rdi
pop rbx
ret
test rbx, rbx
jne 0x1400cbbaf
cmp dword [r15 + 0x28], ebx
jle 0x1400cbf64
cmp ebx, 1
je 0x1400cbba2
mov edx, ebx
mov rcx, r14
call fcn.140070210
inc ebx
cmp ebx, dword [r15 + 0x28]
jl 0x1400cbb93
jmp 0x1400cbf64
cmp dword [rdi + 8], 0
mov qword [rsp + 0x70], rsi
jne 0x1400cbeb4
mov rdx, rbx
mov rcx, r15
call fcn.1400de700
test eax, eax
js 0x1400cbbdc
mov edx, eax
mov rcx, r14
call fcn.140070210
jmp 0x1400cbf5f
mov rdx, rbx
mov rcx, r15
call fcn.1400f1b60
mov rdi, rax
test rax, rax
je 0x1400cbf5f
mov esi, dword [r15 + 0x28]
xor ebx, ebx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x30], r12
lea r12, [0x14024c050]
test esi, esi
jle 0x1400cbd33
mov rbp, qword [r15 + 0x20]
nop word [rax + rax]
mov eax, ebx
xor eax, 1
cmp ebx, 2
cmovae eax, ebx
shl rax, 5
mov r9, qword [rax + rbp + 0x18]
mov r10, qword [r9 + 0x30]
test r10, r10
je 0x1400cbc87
movzx ecx, byte [rdi]
xor eax, eax
mov r8, rdi
test cl, cl
je 0x1400cbc6f
nop dword [rax]
movzx ecx, cl
lea r8, [r8 + 1]
movzx edx, byte [rcx + r12]
lea ecx, [rax*8]
xor edx, ecx
movzx ecx, byte [r8]
xor eax, edx
test cl, cl
jne 0x1400cbc50
xor edx, edx
div dword [r9 + 0x20]
mov ecx, edx
shl rcx, 4
add rcx, r10
mov r10, qword [rcx + 8]
mov r11d, dword [rcx]
jmp 0x1400cbc8f
mov r10, qword [r9 + 0x28]
mov r11d, dword [r9 + 0x24]
test r11d, r11d
je 0x1400cbd03
mov r9, qword [r10 + 0x18]
dec r11d
test r9, r9
je 0x1400cbcfb
movzx r8d, byte [r9]
mov rdx, rdi
test r8b, r8b
je 0x1400cbce6
movzx ecx, r8b
sub r9, rdi
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx]
movzx r8d, cl
movzx ecx, cl
movzx eax, byte [rax + r12]
cmp byte [rcx + r12], al
jne 0x1400cbce6
movzx ecx, byte [r9 + rdx + 1]
inc rdx
movzx r8d, cl
test cl, cl
jne 0x1400cbcc0
movzx eax, byte [rdx]
movzx edx, byte [rax + r12]
movzx eax, r8b
movzx ecx, byte [rax + r12]
cmp ecx, edx
je 0x1400cbd28
mov r10, qword [r10]
test r11d, r11d
jne 0x1400cbc94
xor edx, edx
inc ebx
cmp ebx, esi
jl 0x1400cbc20
test rdx, rdx
je 0x1400cbd33
mov r8, rdx
mov rcx, r14
mov rdx, qword [rdx + 0x18]
call fcn.140070fd0
jmp 0x1400cbe9a
mov rdx, qword [r10 + 0x10]
test rdx, rdx
jne 0x1400cbd14
jmp 0x1400cbd05
mov rcx, qword [r14]
cmp byte [rcx + 0xa1], 0
jne 0x1400cbd59
lea rdx, [r14 + 8]
call fcn.1400ed0d0
test eax, eax
je 0x1400cbd59
inc dword [r14 + 0x4c]
mov dword [r14 + 0x18], eax
jmp 0x1400cbe9a
mov rax, qword [r14]
xor ebx, ebx
mov esi, dword [rax + 0x28]
test esi, esi
jle 0x1400cbe7c
mov rbp, qword [rax + 0x20]
nop dword [rax]
mov eax, ebx
xor eax, 1
cmp ebx, 2
cmovae eax, ebx
shl rax, 5
mov r9, qword [rax + rbp + 0x18]
mov r10, qword [r9 + 0x18]
test r10, r10
je 0x1400cbdd7
movzx ecx, byte [rdi]
xor eax, eax
mov r8, rdi
test cl, cl
je 0x1400cbdbf
nop dword [rax]
movzx ecx, cl
lea r8, [r8 + 1]
movzx edx, byte [rcx + r12]
lea ecx, [rax*8]
xor edx, ecx
movzx ecx, byte [r8]
xor eax, edx
test cl, cl
jne 0x1400cbda0
xor edx, edx
div dword [r9 + 8]
mov ecx, edx
shl rcx, 4
add rcx, r10
mov r10, qword [rcx + 8]
mov r11d, dword [rcx]
jmp 0x1400cbddf
mov r10, qword [r9 + 0x10]
mov r11d, dword [r9 + 0xc]
test r11d, r11d
je 0x1400cbe53
mov r9, qword [r10 + 0x18]
dec r11d
test r9, r9
je 0x1400cbe4b
movzx r8d, byte [r9]
mov rdx, rdi
test r8b, r8b
je 0x1400cbe36
movzx eax, r8b
sub r9, rdi
nop dword [rax]
nop word [rax + rax]
movzx ecx, al
movzx r8d, al
movzx eax, byte [rdx]
movzx eax, byte [rax + r12]
cmp byte [rcx + r12], al
jne 0x1400cbe36
movzx eax, byte [r9 + rdx + 1]
inc rdx
movzx r8d, al
test al, al
jne 0x1400cbe10
movzx eax, r8b
movzx ecx, byte [rax + r12]
movzx eax, byte [rdx]
movzx eax, byte [rax + r12]
cmp ecx, eax
je 0x1400cbe71
mov r10, qword [r10]
test r11d, r11d
jne 0x1400cbde4
xor edx, edx
inc ebx
cmp ebx, esi
jl 0x1400cbd70
test rdx, rdx
je 0x1400cbe7c
xor r8d, r8d
mov rcx, r14
call fcn.140070fd0
jmp 0x1400cbe9a
mov rdx, qword [r10 + 0x10]
test rdx, rdx
jne 0x1400cbe64
jmp 0x1400cbe55
mov r9, rdi
lea r8, str.no_such_table
lea rdx, [0x140253e9c]
mov rcx, r14
call fcn.1400d9350
mov byte [r14 + 0x1d], 1
mov rdx, rdi
mov rcx, r15
call fcn.1400d6010
mov r12, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x68]
jmp 0x1400cbf5f
mov rcx, qword [r14]
cmp byte [rcx + 0xa1], 0
je 0x1400cbed4
lea rdx, str.corrupt_database
mov rcx, r14
call fcn.1400d9350
jmp 0x1400cbf5f
mov rdx, rbx
call fcn.1400de700
test eax, eax
jns 0x1400cbef4
mov r8, rbx
lea rdx, str.unknown_database__T
mov rcx, r14
call fcn.1400d9350
jmp 0x1400cbf5f
mov ecx, eax
mov rdx, rdi
mov rax, qword [r15 + 0x20]
shl rcx, 5
mov rsi, qword [rcx + rax]
mov rcx, r15
call fcn.1400f1b60
mov rbx, rax
test rax, rax
je 0x1400cbf5f
mov r8, rsi
mov rdx, rax
mov rcx, r15
call fcn.1400df190
mov rcx, r14
test rax, rax
je 0x1400cbf34
mov rdx, qword [rax + 0x18]
mov r8, rax
jmp 0x1400cbf4f
mov r9, rsi
mov r8, rbx
xor edx, edx
call fcn.1400f0c70
test rax, rax
je 0x1400cbf54
xor r8d, r8d
mov rdx, rax
mov rcx, r14
call fcn.140070fd0
mov rdx, rbx
mov rcx, r15
call fcn.1400d6010
mov rsi, qword [rsp + 0x70]
mov rcx, r14
call fcn.1400ec180
test rax, rax
je 0x1400cbf8c
xor r9d, r9d
mov dword [rsp + 0x20], 0
xor r8d, r8d
mov edx, 0x90
mov rcx, rax
call fcn.1401089e0
add rsp, 0x38
pop r15
pop r14
pop rdi
pop rbx
ret