Function at 0x8619e0
Capabilities:
Reference sql statements

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov ebp, dword [rcx + 0x40]
test ebp, ebp
mov rbx, rcx
mov dword [rsp + 0x3c], edx
mov r13, r8
mov r12, r9
je 0x861a15
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rcx + 0x20]
test rcx, rcx
je 0x861d30
mov r8, r12
mov edx, 1
xor esi, esi
call sym.sqlite3_bind_int64
mov rcx, qword [rbx + 0x20]
xor r15d, r15d
call dbg.sqlite3_step
cmp eax, 0x64
je 0x861ce0
mov rcx, qword [rbx + 0x20]
call dbg.sqlite3_reset
mov r10d, dword [rbx + 0x40]
test r10d, r10d
je 0x861bd0
test r15, r15
je 0x861a04
cmp esi, 3
jle 0x861c80
test r13, r13
je 0x861d91
movzx eax, byte [r15 + 2]
movzx edx, byte [r15 + 3]
shl eax, 8
lea edi, [rax + rdx]
mov edx, dword [rbx + 0x1c]
mov ecx, edi
mov dword [rsp + 0x58], edi
lea eax, [rdx + 1]
imul ecx, eax
lea ecx, [rcx*8 + 3]
cmp ecx, esi
jge 0x861d71
test edi, edi
je 0x861c95
mov ecx, dword [rsp + 0x3c]
mov qword [rsp + 0x50], r15
lea esi, [rcx - 1]
mov dword [rsp + 0x5c], esi
imul eax, ebp
mov rsi, qword [rsp + 0x50]
xor edi, edi
test edx, edx
lea eax, [rax*8 + 4]
cdqe
lea r15, [rsi + rax]
mov r14, qword [r15]
lea rax, [r15 + 8]
mov qword [rsp + 0x48], rax
bswap r14
mov qword [rsp + 0x40], r14
jg 0x861b67
jmp 0x861c30
cmp r14d, esi
setg al
test al, al
jne 0x861b9d
test r13, r13
je 0x861b5a
mov ecx, dword [rbx + 0x18]
mov eax, dword [r13 + rdi*8]
mov edx, dword [r13 + rdi*8 + 4]
test ecx, ecx
bswap eax
bswap edx
jne 0x861c10
movd xmm0, eax
movd xmm2, r14d
comiss xmm0, xmm2
ja 0x861b40
movd xmm0, esi
movd xmm3, edx
comiss xmm0, xmm3
jbe 0x861b5a
nop word [rax + rax]
mov qword [rsp + 0x20], r12
mov r9d, ebp
mov r8d, r10d
mov rcx, rbx
lea rdx, str.Dimension__d_of_cell__d_on_node__lld_is_corrupt_relative_to_parent
call dbg.rtreeCheckAppendMsg
add rdi, 1
cmp dword [rbx + 0x1c], edi
jle 0x861c30
mov r8d, dword [rbx + 0x18]
mov r10d, edi
mov r14d, dword [r15 + rdi*8 + 8]
mov esi, dword [r15 + rdi*8 + 0xc]
test r8d, r8d
bswap r14d
bswap esi
jne 0x861af0
movd xmm0, r14d
movd xmm1, esi
comiss xmm0, xmm1
seta al
test al, al
je 0x861afe
mov r8d, r10d
mov qword [rsp + 0x20], r12
mov r9d, ebp
mov rcx, rbx
lea rdx, str.Dimension__d_of_cell__d_on_node__lld_is_corrupt
mov dword [rsp + 0x38], r10d
call dbg.rtreeCheckAppendMsg
mov r10d, dword [rsp + 0x38]
jmp 0x861afe
test eax, eax
mov dword [rbx + 0x40], eax
jne 0x861a5c
test r15, r15
jne 0x861a61
lea rdx, str.Node__lld_missing_from_database
mov r8, r12
mov rcx, rbx
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp dbg.rtreeCheckAppendMsg
cmp esi, edx
jg 0x861b40
cmp r14d, eax
jl 0x861b40
add rdi, 1
cmp dword [rbx + 0x1c], edi
jg 0x861b67
nop
mov r9d, dword [rsp + 0x3c]
test r9d, r9d
je 0x861cb0
mov rsi, qword [rsp + 0x40]
xor edx, edx
mov r9, r12
mov rcx, rbx
add ebp, 1
mov r8, rsi
call sym.rtreeCheckMapping
mov r8, qword [rsp + 0x48]
mov r9, rsi
mov rcx, rbx
mov edx, dword [rsp + 0x5c]
call dbg.rtreeCheckNode
add dword [rbx + 0x3c], 1
cmp ebp, dword [rsp + 0x58]
je 0x861cd2
mov edx, dword [rbx + 0x1c]
lea eax, [rdx + 1]
jmp 0x861ab9
mov r9d, esi
mov r8, r12
mov rcx, rbx
lea rdx, str.Node__lld_is_too_small___d_bytes_
call dbg.rtreeCheckAppendMsg
mov rcx, r15
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.sqlite3_free
mov r8, qword [rsp + 0x40]
mov r9, r12
mov edx, 1
mov rcx, rbx
add ebp, 1
call sym.rtreeCheckMapping
add dword [rbx + 0x38], 1
cmp ebp, dword [rsp + 0x58]
jne 0x861c70
mov r15, qword [rsp + 0x50]
jmp 0x861c95
mov rcx, qword [rbx + 0x20]
xor edx, edx
call dbg.sqlite3_column_bytes
mov rcx, qword [rbx + 0x20]
xor edx, edx
mov esi, eax
call dbg.sqlite3_column_blob
mov rdi, rax
call sym.sqlite3_initialize
test eax, eax
jne 0x861d60
movsxd r14, esi
mov rcx, r14
call sym.sqlite3Malloc
test rax, rax
mov r15, rax
je 0x861d60
mov r8, r14
mov rdx, rdi
mov rcx, rax
call sym.memcpy
jmp 0x861a46
mov r9, qword [rbx + 0x10]
mov rcx, rbx
mov r8, qword [rbx + 8]
lea rdx, str.SELECT_data_FROM__Q._q_node_WHERE_nodeno_
call dbg.rtreeCheckPrepare
mov r11d, dword [rbx + 0x40]
mov rcx, rax
mov qword [rbx + 0x20], rax
test r11d, r11d
je 0x861a22
jmp 0x861a04
mov dword [rbx + 0x40], 7
xor esi, esi
xor r15d, r15d
jmp 0x861a46
mov r9d, dword [rsp + 0x58]
mov dword [rsp + 0x20], esi
mov r8, r12
mov rcx, rbx
lea rdx, str.Node__lld_is_too_small_for_cell_count_of__d___d_bytes_
call dbg.rtreeCheckAppendMsg
jmp 0x861c95
movzx eax, byte [r15]
movzx edx, byte [r15 + 1]
shl eax, 8
add eax, edx
cmp eax, 0x28
mov dword [rsp + 0x3c], eax
jle 0x861a73
lea rdx, str.Rtree_depth_out_of_range___d_
mov r8d, eax
mov rcx, rbx
call dbg.rtreeCheckAppendMsg
jmp 0x861c95