Function at 0x1401f8fd0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
cmp byte [rcx + 0x11], 0
mov rbp, qword [rcx + 8]
mov dword [rsp + 0x88], edx
mov r12, rcx
mov dword [rsp + 0x90], r8d
je 0x1401f900a
add dword [rcx + 0x14], 1
cmp byte [rcx + 0x12], 0
je 0x1401f917b
cmp dword [rsp + 0x88], 2
je 0x1401f918e
mov r14, qword [rbp]
mov eax, dword [r14 + 0x30]
mov dword [rsp + 0x28], eax
test eax, eax
jne 0x1401f9156
mov eax, dword [r14 + 0x80]
cmp eax, dword [rsp + 0x90]
jle 0x1401f9121
xor edx, edx
cmp dword [rsp + 0x88], 1
setne dl
add edx, dword [rsp + 0x90]
mov dword [rsp + 0x2c], edx
cmp eax, edx
jle 0x1401f90cb
movsxd rdx, edx
lea rsi, [rdx*8]
mov rdi, rdx
sub rsi, rdx
shl rsi, 3
nop dword [rax]
mov rdx, qword [r14 + 0x78]
mov r13, qword [rdx + rsi + 0x10]
test r13, r13
je 0x1401f90c0
mov r8d, dword [r13 + 8]
test r8d, r8d
je 0x1401f90b1
lea r15, [r13 + 0x10]
lea rbx, [r13 + 0x200]
nop word [rax + rax]
mov rcx, qword [r15]
add r15, 8
call sym.sqlite3BitvecDestroy
cmp r15, rbx
jne 0x1401f90a0
mov rcx, r13
call sym.sqlite3_free
mov eax, dword [r14 + 0x80]
add edi, 1
add rsi, 0x38
cmp edi, eax
jl 0x1401f9078
mov eax, dword [rsp + 0x2c]
cmp dword [rsp + 0x88], 1
mov dword [r14 + 0x80], eax
je 0x1401f91e4
cmp qword [r14 + 0x128], 0
je 0x1401f922f
movsxd rax, dword [rsp + 0x2c]
xor edx, edx
test eax, eax
je 0x1401f9111
lea rdx, [rax*8]
sub rdx, rax
mov rax, qword [r14 + 0x78]
lea rdx, [rax + rdx*8 - 0x38]
mov rcx, r14
call sym.pagerPlaybackSavepoint
test eax, eax
jne 0x1401f9262
mov edx, dword [rsp + 0x90]
test edx, edx
js 0x1401f91b8
mov eax, dword [rbp + 0x40]
test eax, eax
je 0x1401f91c9
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 0x1c]
bswap eax
test eax, eax
jne 0x1401f9153
mov rax, qword [rbp]
mov eax, dword [rax + 0x20]
mov dword [rbp + 0x40], eax
cmp byte [r12 + 0x11], 0
je 0x1401f9166
sub dword [r12 + 0x14], 1
je 0x1401f91da
mov eax, dword [rsp + 0x28]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call sym.btreeLockCarefully
cmp dword [rsp + 0x88], 2
jne 0x1401f9018
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x1401f9018
xor r8d, r8d
xor edx, edx
call sym.saveCursorsOnList
mov dword [rsp + 0x28], eax
test eax, eax
jne 0x1401f9156
jmp 0x1401f9018
test byte [rbp + 0x28], 0x10
je 0x1401f9130
mov dword [rbp + 0x40], 0
mov rcx, rbp
call sym.newDatabase.part.0
mov dword [rsp + 0x28], eax
jmp 0x1401f913b
mov rcx, r12
call sym.unlockBtreeMutex
jmp 0x1401f9166
movsxd rdx, dword [rsp + 0x2c]
lea rax, [rdx*8]
sub rax, rdx
mov rdx, qword [r14 + 0x78]
lea rbx, [rdx + rax*8]
mov ecx, dword [rbx + 0x20]
test ecx, ecx
je 0x1401f9121
mov rcx, qword [r14 + 0x58]
mov rdx, qword [rcx]
test rdx, rdx
je 0x1401f9121
lea r8, [0x14033e0e0]
mov eax, dword [rbx + 0x1c]
cmp rdx, r8
je 0x1401f9242
mov dword [r14 + 0x3c], eax
jmp 0x1401f9121
mov rax, qword [r14 + 0x50]
cmp qword [rax], 0
jne 0x1401f90f2
jmp 0x1401f9121
mov rsi, qword [r14 + 0xc8]
lea rdx, [rsi + 4]
imul rdx, rax
call sym.memjrnlTruncate
mov edx, dword [rbx + 0x1c]
mov dword [r14 + 0x3c], edx
jmp 0x1401f9119
mov dword [rsp + 0x28], eax
jmp 0x1401f9156