Function at 0x1403c9960
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 edi, dword [rcx + 0x40]
mov dword [rsp + 0x3c], edx
mov r12, rcx
mov r15, r8
mov rbp, r9
test edi, edi
je 0x1403c9998
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 0x1403c9a00
mov r8, rbp
mov edx, 1
call sym.sqlite3_bind_int64
mov rcx, qword [r12 + 0x20]
call dbg.sqlite3_step
cmp eax, 0x64
je 0x1403c9a38
mov rcx, qword [r12 + 0x20]
call dbg.sqlite3_reset
mov edx, dword [r12 + 0x40]
test edx, edx
jne 0x1403c9984
mov dword [r12 + 0x40], eax
test eax, eax
jne 0x1403c9984
mov r8, rbp
lea rdx, str.Node__lld_missing_from_database
mov rcx, r12
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp dbg.rtreeCheckAppendMsg
mov r9, qword [r12 + 0x10]
mov r8, qword [r12 + 8]
mov rcx, r12
lea rdx, str.SELECT_data_FROM__Q._q_node_WHERE_nodeno_
call dbg.rtreeCheckPrepare
mov r13d, dword [r12 + 0x40]
mov qword [r12 + 0x20], rax
mov rcx, rax
test r13d, r13d
je 0x1403c99a1
jmp 0x1403c9984
mov rcx, qword [r12 + 0x20]
xor edx, edx
call sym.sqlite3_column_bytes
mov r14, qword [r12 + 0x20]
xor edx, edx
mov ebx, eax
mov rcx, r14
call dbg.columnMem
mov rcx, rax
call sym.sqlite3_value_blob
mov r13, rax
test r14, r14
je 0x1403c9a6d
mov rcx, r14
call sym.columnMallocFailure.part.0
mov esi, dword [0x14043d334]
test esi, esi
jne 0x1403c9d75
call dbg.sqlite3MutexInit
test eax, eax
jne 0x1403c9c24
call sym.sqlite3_initialize.part.0
test eax, eax
jne 0x1403c9c24
movsxd rsi, ebx
mov rcx, rsi
call sym.sqlite3Malloc
mov qword [rsp + 0x40], rax
test rax, rax
je 0x1403c9c24
mov r8, rsi
mov rdx, r13
mov rcx, rax
call sym.memcpy
mov rcx, qword [r12 + 0x20]
call dbg.sqlite3_reset
mov r11d, dword [r12 + 0x40]
test r11d, r11d
je 0x1403c9d7d
cmp ebx, 3
jle 0x1403c9cd1
test r15, r15
je 0x1403c9d40
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rcx + 2]
movzx edx, byte [rcx + 3]
shl eax, 8
lea esi, [rax + rdx]
mov edx, dword [r12 + 0x1c]
mov ecx, esi
mov dword [rsp + 0x58], esi
lea eax, [rdx + 1]
imul ecx, eax
lea ecx, [rcx*8 + 3]
cmp ecx, ebx
jge 0x1403c9d20
mov ecx, dword [rsp + 0x3c]
lea r14, str.Dimension__d_of_cell__d_on_node__lld_is_corrupt_relative_to_parent
sub ecx, 1
mov dword [rsp + 0x5c], ecx
test esi, esi
je 0x1403c9ce6
mov rcx, r15
mov r15, r12
mov r12, rcx
imul eax, edi
xor ebx, ebx
lea r10d, [rax*8 + 4]
mov rax, qword [rsp + 0x40]
movsxd r10, r10d
lea r13, [rax + r10]
mov rax, qword [r13]
bswap rax
mov qword [rsp + 0x48], rax
lea rax, [r13 + 8]
mov qword [rsp + 0x50], rax
test edx, edx
jle 0x1403c9c55
mov qword [rsp + 0x30], rbp
mov rbp, r13
jmp 0x1403c9bf2
cmp r13d, esi
setg al
test al, al
jne 0x1403c9ca6
test r12, r12
je 0x1403c9be8
mov eax, dword [r12 + rbx*8]
mov edx, dword [r12 + rbx*8 + 4]
mov ecx, dword [r15 + 0x18]
bswap eax
bswap edx
test ecx, ecx
jne 0x1403c9c38
movd xmm0, eax
movd xmm2, r13d
comiss xmm0, xmm2
ja 0x1403c9bd0
movd xmm0, esi
movd xmm3, edx
comiss xmm0, xmm3
jbe 0x1403c9be8
nop word [rax + rax]
mov rax, qword [rsp + 0x30]
mov r9d, edi
mov rdx, r14
mov rcx, r15
mov qword [rsp + 0x20], rax
call dbg.rtreeCheckAppendMsg
add rbx, 1
cmp dword [r15 + 0x1c], ebx
jle 0x1403c9c50
mov r13d, dword [rbp + rbx*8 + 8]
mov esi, dword [rbp + rbx*8 + 0xc]
mov r8d, ebx
mov r9d, dword [r15 + 0x18]
bswap r13d
bswap esi
test r9d, r9d
jne 0x1403c9b80
movd xmm0, r13d
movd xmm1, esi
comiss xmm0, xmm1
seta al
jmp 0x1403c9b86
mov dword [r12 + 0x40], 7
jmp 0x1403c99bd
cmp esi, edx
jg 0x1403c9bd0
cmp r13d, eax
jl 0x1403c9bd0
add rbx, 1
cmp dword [r15 + 0x1c], ebx
jg 0x1403c9bf2
nop dword [rax + rax]
mov rbp, qword [rsp + 0x30]
mov r10d, dword [rsp + 0x3c]
test r10d, r10d
je 0x1403c9d00
mov rsi, qword [rsp + 0x48]
mov r9, rbp
xor edx, edx
mov rcx, r15
mov r8, rsi
call dbg.rtreeCheckMapping
mov r8, qword [rsp + 0x50]
mov r9, rsi
mov rcx, r15
mov edx, dword [rsp + 0x5c]
call dbg.rtreeCheckNode
add dword [r15 + 0x3c], 1
add edi, 1
cmp edi, dword [rsp + 0x58]
je 0x1403c9ce6
mov edx, dword [r15 + 0x1c]
lea eax, [rdx + 1]
jmp 0x1403c9b3c
mov rax, qword [rsp + 0x30]
mov r9d, edi
mov rcx, r15
mov dword [rsp + 0x38], r8d
lea rdx, str.Dimension__d_of_cell__d_on_node__lld_is_corrupt
mov qword [rsp + 0x20], rax
call dbg.rtreeCheckAppendMsg
mov r8d, dword [rsp + 0x38]
jmp 0x1403c9b8e
mov r9d, ebx
mov r8, rbp
lea rdx, str.Node__lld_is_too_small___d_bytes_
mov rcx, r12
call dbg.rtreeCheckAppendMsg
mov rcx, qword [rsp + 0x40]
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 + 0x48]
mov r9, rbp
mov edx, 1
mov rcx, r15
call dbg.rtreeCheckMapping
add dword [r15 + 0x38], 1
jmp 0x1403c9c91
mov dword [rsp + 0x20], ebx
mov r9d, dword [rsp + 0x58]
mov r8, rbp
mov rcx, r12
lea rdx, str.Node__lld_is_too_small_for_cell_count_of__d___d_bytes_
call dbg.rtreeCheckAppendMsg
jmp 0x1403c9ce6
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rcx]
movzx edx, byte [rcx + 1]
shl eax, 8
add eax, edx
mov dword [rsp + 0x3c], eax
cmp eax, 0x28
jle 0x1403c9ae6
mov r8d, eax
lea rdx, str.Rtree_depth_out_of_range___d_
mov rcx, r12
call dbg.rtreeCheckAppendMsg
jmp 0x1403c9ce6
mfence
jmp 0x1403c9a95
mov dword [r12 + 0x40], eax
jmp 0x1403c9ad4