Function at 0x1403c5950
Capabilities:
Reference sql statements

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
lea eax, [r8 - 6]
mov qword [rsp + 0x100], rcx
mov rdi, rdx
mov ebx, r8d
mov qword [rsp + 0x118], r9
cmp eax, 0x61
jbe 0x1403c59d0
cmp r8d, 5
lea rax, str.Too_few_columns_for_an_rtree_table
lea rdx, str.Too_many_columns_for_an_rtree_table
mov ebx, 1
cmovle rdx, rax
lea rcx, [0x140758849]
call dbg.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov qword [rdi], rax
mov eax, ebx
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x100]
mov r8d, 1
mov edx, 1
call dbg.sqlite3_vtab_config
mov rax, qword [rsp + 0x118]
mov rcx, qword [rax + 8]
call sym.strlen
mov r13, rax
mov rax, qword [rsp + 0x118]
mov rcx, qword [rax + 0x10]
call sym.strlen
mov r9d, dword [0x14043d334]
mov r15, rax
test r9d, r9d
jne 0x1403c5cc0
call dbg.sqlite3MutexInit
test eax, eax
jne 0x1403c5c90
call sym.sqlite3_initialize.part.0
test eax, eax
jne 0x1403c5c90
movsxd r13, r13d
movsxd r15, r15d
lea rsi, [r13 + r15 + 0x3ca]
mov rcx, rsi
call sym.sqlite3Malloc
mov r12, rax
test rax, rax
je 0x1403c5c90
test rdi, rdi
mov r8, rsi
mov rcx, rax
setne dil
setne bpl
xor edx, edx
call sym.memset
lea rcx, [r12 + 0x3c8]
mov byte [r12 + 0x26], dil
mov r8, r13
lea rax, [0x14043c600]
lea r14, [rcx + r13 + 1]
mov qword [r12 + 0x30], rcx
movzx ebp, bpl
mov qword [r12], rax
mov rax, qword [rsp + 0x118]
lea rdi, [rsp + 0x70]
mov qword [r12 + 0x38], r14
mov dword [r12 + 0x40], 1
mov rdx, qword [rax + 8]
call sym.memcpy
mov rax, qword [rsp + 0x118]
mov r8, r15
mov rcx, r14
mov r14d, 4
mov rdx, qword [rax + 0x10]
call sym.memcpy
mov rcx, qword [rsp + 0x100]
call sym.sqlite3_str_new
mov rdx, rdi
mov dword [rsp + 0x70], 0
mov r13, rax
mov rax, qword [rsp + 0x118]
mov r15, qword [rax + 0x18]
mov rcx, r15
call dbg.sqlite3GetToken
mov r9, r15
lea rdx, str.CREATE_TABLE_x__.s_INT
mov rcx, r13
mov r8d, eax
lea r15, str.__.s_REAL
call dbg.sqlite3_str_appendf
mov rax, qword [rsp + 0x118]
lea rsi, [rax + 0x20]
jmp 0x1403c5b87
test al, al
jne 0x1403c5be0
add byte [r12 + 0x25], 1
mov rcx, r9
mov rdx, rdi
add r14d, 1
mov qword [rsp + 0x58], r9
add rsi, 8
mov dword [rsp + 0x70], 0
call dbg.sqlite3GetToken
mov rdx, qword [r15 + rbp*8]
mov r9, qword [rsp + 0x58]
mov rcx, r13
mov r8d, eax
call dbg.sqlite3_str_appendf
cmp ebx, r14d
je 0x1403c5be0
mov r9, qword [rsi]
movzx eax, byte [r12 + 0x29]
cmp byte [r9], 0x2b
jne 0x1403c5b40
add eax, 1
add r9, 1
mov rdx, rdi
add r14d, 1
mov byte [r12 + 0x29], al
mov rcx, r9
add rsi, 8
mov qword [rsp + 0x58], r9
mov dword [rsp + 0x70], 0
call dbg.sqlite3GetToken
mov r9, qword [rsp + 0x58]
lea rdx, str.__.s
mov rcx, r13
mov r8d, eax
call dbg.sqlite3_str_appendf
cmp ebx, r14d
jne 0x1403c5b87
nop
lea rdx, [0x14075ead2]
mov rcx, r13
call dbg.sqlite3_str_appendf
test r13, r13
je 0x1403c5cd0
lea rbp, [0x14043cf40]
cmp r13, rbp
je 0x1403c5cd0
mov rax, qword [r13 + 8]
test rax, rax
je 0x1403c5ca0
mov edx, dword [r13 + 0x18]
mov byte [rax + rdx], 0
mov r8d, dword [r13 + 0x14]
test r8d, r8d
je 0x1403c5c31
test byte [r13 + 0x1d], 4
je 0x1403c6386
mov r15, qword [r13 + 8]
mov rcx, r13
call sym.sqlite3_free
test r15, r15
je 0x1403c5ca8
cmp ebx, r14d
jle 0x1403c5ce8
lea rdx, str.Auxiliary_rtree_columns_must_be_last
lea rcx, [0x140758849]
mov ebx, 1
call dbg.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov rcx, r15
mov qword [rdi], rax
call sym.sqlite3_free
sub dword [r12 + 0x40], 1
jne 0x1403c59b4
mov rcx, r12
call sym.rtreeRelease.part.0
jmp 0x1403c59b4
mov ebx, 7
jmp 0x1403c59b4
mov rcx, r13
call sym.sqlite3_free
xor ecx, ecx
mov ebx, 7
call sym.sqlite3_free
jmp 0x1403c5c76
mfence
jmp 0x1403c5a3a
xor r15d, r15d
mov ebx, 7
mov rcx, r15
call sym.sqlite3_free
jmp 0x1403c5c76
mov rcx, qword [rsp + 0x100]
mov rdx, r15
call sym.sqlite3_declare_vtab
mov ebx, eax
test eax, eax
jne 0x1403c61a8
mov rcx, r15
call sym.sqlite3_free
movzx eax, byte [r12 + 0x25]
mov edx, eax
shr dl, 1
mov byte [r12 + 0x24], dl
je 0x1403c5fc0
cmp al, 0xa
ja 0x1403c5f98
lea rdx, str.Wrong_number_of_columns_for_an_rtree_table
test al, 1
jne 0x1403c5f9f
mov ecx, dword [rsp + 0x130]
lea eax, [rax*4 + 8]
mov rdx, qword [r12 + 0x30]
mov byte [r12 + 0x27], al
test ecx, ecx
jne 0x1403c5fc9
mov r8, qword [r12 + 0x38]
lea rcx, str.SELECT_length_data__FROM__q._q_node_WHERE_nodeno__1
call dbg.sqlite3_mprintf
mov r13, rax
test rax, rax
je 0x1403c6356
mov rcx, qword [rsp + 0x100]
lea r8, [r12 + 0x20]
mov rdx, rax
call sym.getIntFromStmt.part.0
mov esi, eax
test eax, eax
jne 0x1403c635b
cmp dword [r12 + 0x20], 0x1bf
jle 0x1403c64b0
mov rcx, r13
call sym.sqlite3_free
mov rax, qword [rsp + 0x118]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x118]
mov rsi, qword [rax + 8]
mov rax, qword [rsp + 0x100]
mov qword [r12 + 0x18], rax
lea rax, [r12 + 0x78]
mov rdx, qword [r12 + 0x30]
xor r9d, r9d
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x70], rax
lea r8, str.sqlite_stat1
lea rax, [r12 + 0x80]
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x78], rax
lea rax, [r12 + 0x88]
mov qword [rsp + 0x80], rax
lea rax, [r12 + 0x90]
mov qword [rsp + 0x88], rax
lea rax, [r12 + 0x98]
mov qword [rsp + 0x90], rax
lea rax, [r12 + 0xa0]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x98], rax
lea rax, [r12 + 0xa8]
mov qword [rsp + 0xa0], rax
lea rax, [r12 + 0xb0]
mov qword [rsp + 0xa8], rax
call dbg.sqlite3_table_column_metadata
mov r15d, eax
test eax, eax
je 0x1403c61d4
mov qword [r12 + 0x48], 0x100000
cmp eax, 1
je 0x1403c6253
cmp byte [r12 + 0x29], 0
je 0x1403c6576
mov rdi, qword [rsp + 0x58]
mov rdx, rsi
lea rcx, str.SELECT__FROM___w_.__w_rowid__WHERE_rowid_1
mov r8, rdi
call dbg.sqlite3_mprintf
mov qword [r12 + 0x58], rax
test rax, rax
je 0x1403c62fb
mov rcx, qword [rsp + 0x100]
lea r14, str.a_dcoalesce___d_a_d_
call sym.sqlite3_str_new
mov r9, rdi
mov r8, rsi
lea rdx, str.UPDATE___w_.__w_rowid_SET
mov rcx, rax
mov r13, rax
lea rsi, str.a_d__d
call dbg.sqlite3_str_appendf
cmp byte [r12 + 0x29], 0
lea rdi, [0x1407581bc]
je 0x1403c6396
movzx eax, byte [r12 + 0x2a]
lea r9d, [rbx + 2]
cmp ebx, eax
jge 0x1403c5f82
mov dword [rsp + 0x20], ebx
mov r8d, ebx
mov rdx, r14
mov rcx, r13
call dbg.sqlite3_str_appendf
movzx eax, byte [r12 + 0x29]
add ebx, 1
cmp ebx, eax
jge 0x1403c6396
mov eax, dword [r13 + 0x18]
lea edx, [rax + 1]
cmp edx, dword [r13 + 0x10]
jae 0x1403c6451
add rax, qword [r13 + 8]
mov dword [r13 + 0x18], edx
lea r9d, [rbx + 2]
mov byte [rax], 0x2c
movzx eax, byte [r12 + 0x2a]
cmp ebx, eax
jl 0x1403c5f35
mov r8d, ebx
mov rdx, rsi
mov rcx, r13
call dbg.sqlite3_str_appendf
jmp 0x1403c5f47
lea rdx, str.Too_many_columns_for_an_rtree_table
lea rcx, [0x140758849]
mov ebx, 1
call dbg.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov qword [rdi], rax
jmp 0x1403c5c76
lea rdx, str.Too_few_columns_for_an_rtree_table
jmp 0x1403c5f9f
lea rcx, str.PRAGMA__Q.page_size
mov dword [rsp + 0x70], 0
call dbg.sqlite3_mprintf
mov r13, rax
test rax, rax
je 0x1403c6319
mov rcx, qword [rsp + 0x100]
mov r8, rdi
mov rdx, rax
call sym.getIntFromStmt.part.0
mov r15d, eax
test eax, eax
jne 0x1403c631f
mov eax, dword [rsp + 0x70]
lea edx, [rax - 0x40]
movzx eax, byte [r12 + 0x27]
mov dword [r12 + 0x20], edx
imul eax, eax, 0x33
add eax, 4
cmp edx, eax
jle 0x1403c6028
mov dword [r12 + 0x20], eax
mov rcx, r13
call sym.sqlite3_free
mov rax, qword [rsp + 0x118]
mov r14, qword [rax + 0x10]
mov rsi, qword [rax + 8]
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x58], r14
mov qword [r12 + 0x18], rax
mov rcx, rax
call sym.sqlite3_str_new
mov r9, r14
mov r8, rsi
lea rdx, str.CREATE_TABLE___w_.__w_rowid__rowid_INTEGER_PRIMARY_KEY_nodeno
mov rcx, rax
mov r13, rax
lea r14, str._a_d
call dbg.sqlite3_str_appendf
cmp byte [r12 + 0x29], 0
je 0x1403c60a5
nop dword [rax]
mov r8d, r15d
mov rdx, r14
mov rcx, r13
add r15d, 1
call dbg.sqlite3_str_appendf
movzx eax, byte [r12 + 0x29]
cmp r15d, eax
jl 0x1403c6088
mov r15, qword [rsp + 0x58]
mov r8, rsi
lea rdx, str.__CREATE_TABLE___w_.__w_node__nodeno_INTEGER_PRIMARY_KEY_data__
mov rcx, r13
mov r9, r15
call dbg.sqlite3_str_appendf
mov r9, r15
mov r8, rsi
mov rcx, r13
lea rdx, str.CREATE_TABLE___w_.__w_parent__nodeno_INTEGER_PRIMARY_KEY_parentnode__
call dbg.sqlite3_str_appendf
mov eax, dword [r12 + 0x20]
mov r9, r15
mov r8, rsi
lea rdx, str.INSERT_INTO___w_.__w_node_VALUES_1_zeroblob__d__
mov rcx, r13
mov dword [rsp + 0x20], eax
call dbg.sqlite3_str_appendf
cmp r13, rbp
je 0x1403c62fb
test r13, r13
je 0x1403c62fb
mov rax, qword [r13 + 8]
test rax, rax
je 0x1403c6472
mov edx, dword [r13 + 0x18]
mov byte [rax + rdx], 0
mov edx, dword [r13 + 0x14]
test edx, edx
je 0x1403c612c
test byte [r13 + 0x1d], 4
je 0x1403c64de
mov r15, qword [r13 + 8]
mov rcx, r13
call sym.sqlite3_free
test r15, r15
je 0x1403c62fb
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov rdx, r15
mov rcx, qword [rsp + 0x100]
call dbg.sqlite3_exec
mov rcx, r15
mov r13d, eax
call sym.sqlite3_free
test r13d, r13d
je 0x1403c5dd3
mov ebx, r13d
mov rcx, qword [rsp + 0x100]
call sym.sqlite3_errmsg
lea rcx, [0x140758849]
mov rdx, rax
call dbg.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov qword [rdi], rax
jmp 0x1403c5c76
mov rcx, qword [rsp + 0x100]
call sym.sqlite3_errmsg
lea rcx, [0x140758849]
mov rdx, rax
call dbg.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov qword [rdi], rax
jmp 0x1403c5cd8
mov rdx, qword [r12 + 0x30]
mov r8, qword [r12 + 0x38]
lea rcx, str.SELECT_stat_FROM__Q.sqlite_stat1_WHERE_tbl___q_rowid
call dbg.sqlite3_mprintf
mov r13, rax
test rax, rax
je 0x1403c6467
lea rax, [rsp + 0x68]
mov rcx, qword [rsp + 0x100]
mov rdx, r13
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov r9d, pe_nt_image_headers64
mov r8d, 0xffffffff
mov qword [rsp + 0x20], 0
call dbg.sqlite3LockAndPrepare
mov r15d, eax
test eax, eax
je 0x1403c647f
cmp eax, 7
je 0x1403c64a3
mov qword [r12 + 0x48], 0x100000
mov rcx, r13
call sym.sqlite3_free
xor r13d, r13d
jmp 0x1403c62be
mov rdx, r14
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x30], 0
mov r9d, 0x85
mov rax, qword [rdi + r13*8]
mov r8d, 0xffffffff
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], rax
call dbg.sqlite3LockAndPrepare
mov rcx, r14
mov r15d, eax
call sym.sqlite3_free
lea edx, [r13 + 1]
cmp edx, 7
setle cl
test r15d, r15d
sete dl
add r13, 1
test cl, dl
je 0x1403c6562
cmp r13, 3
je 0x1403c6308
lea rax, str.INSERT_OR_REPLACE_INTO__q._q_node_VALUES__1___2_
mov rcx, qword [rax + r13*8]
mov r8, qword [rsp + 0x58]
mov rdx, rsi
call dbg.sqlite3_mprintf
mov r14, rax
test rax, rax
jne 0x1403c6260
xor ecx, ecx
call sym.sqlite3_free
cmp byte [r12 + 0x29], 0
jne 0x1403c5ebc
mov ebx, 7
jmp 0x1403c6177
cmp byte [r12 + 0x29], 0
lea rcx, str.INSERT_INTO__w_.__w_rowid__rowid_nodeno_VALUES__1__2_ON_CONFLICT_rowid_DO_UPDATE_SET_nodenoexcluded.nodeno
jne 0x1403c62cf
jmp 0x1403c62c4
mov r15d, 7
mov rcx, qword [rsp + 0x100]
mov ebx, r15d
call sym.sqlite3_errmsg
lea rcx, [0x140758849]
mov rdx, rax
call dbg.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov qword [rdi], rax
mov rcx, r13
call sym.sqlite3_free
jmp 0x1403c5c76
mov esi, 7
mov rcx, qword [rsp + 0x100]
mov ebx, esi
call sym.sqlite3_errmsg
lea rcx, [0x140758849]
mov rdx, rax
call dbg.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov qword [rdi], rax
jmp 0x1403c6349
mov rcx, r13
call dbg.strAccumFinishRealloc
mov r15, rax
jmp 0x1403c5c35
lea rdx, str._WHERE_rowid_1
mov rcx, r13
call dbg.sqlite3_str_appendf
test r13, r13
je 0x1403c62fb
cmp r13, rbp
je 0x1403c62fb
mov rax, qword [r13 + 8]
test rax, rax
je 0x1403c6472
mov edx, dword [r13 + 0x18]
mov byte [rax + rdx], 0
mov eax, dword [r13 + 0x14]
test eax, eax
je 0x1403c63df
test byte [r13 + 0x1d], 4
je 0x1403c6552
mov r15, qword [r13 + 8]
mov rcx, r13
call sym.sqlite3_free
test r15, r15
je 0x1403c62fb
lea rax, [r12 + 0xb8]
mov rcx, qword [rsp + 0x100]
mov rdx, r15
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov r9d, 0x85
mov r8d, 0xffffffff
mov qword [rsp + 0x20], 0
call dbg.sqlite3LockAndPrepare
mov rcx, r15
mov ebx, eax
call sym.sqlite3_free
test ebx, ebx
jne 0x1403c6177
mov rax, qword [rsp + 0x120]
mov qword [rax], r12
jmp 0x1403c59b4
mov r8d, 1
mov rdx, rdi
mov rcx, r13
call dbg.enlargeAndAppend
jmp 0x1403c5f27
mov r15d, 7
jmp 0x1403c5eb0
mov rcx, r13
call sym.sqlite3_free
jmp 0x1403c62fb
mov rcx, qword [rsp + 0x68]
call dbg.sqlite3_step
cmp eax, 0x64
je 0x1403c64ee
mov rcx, qword [rsp + 0x68]
call dbg.sqlite3_finalize
mov r15d, eax
test eax, eax
je 0x1403c6242
mov rcx, r13
call sym.sqlite3_free
jmp 0x1403c5eb0
mov rdx, qword [r12 + 0x38]
lea rcx, str.undersize_RTree_blobs_in___q_node_
mov ebx, 0x10b
call dbg.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov rcx, r13
mov qword [rdi], rax
call sym.sqlite3_free
jmp 0x1403c5c76
mov rcx, r13
call dbg.strAccumFinishRealloc
mov r15, rax
jmp 0x1403c6130
mov r15, qword [rsp + 0x68]
xor edx, edx
mov rcx, r15
call dbg.columnMem
mov rcx, rax
call sym.sqlite3VdbeIntValue
mov r14, rax
test r15, r15
je 0x1403c6515
mov rcx, r15
call sym.columnMallocFailure.part.0
mov rcx, qword [rsp + 0x68]
call dbg.sqlite3_finalize
mov r15d, eax
test eax, eax
jne 0x1403c64a3
test r14, r14
je 0x1403c6242
cmp r14, 0x64
mov eax, 0x64
mov rcx, r13
cmovge rax, r14
mov qword [r12 + 0x48], rax
call sym.sqlite3_free
jmp 0x1403c6253
mov rcx, r13
call dbg.strAccumFinishRealloc
mov r15, rax
jmp 0x1403c63e3
cmp byte [r12 + 0x29], 0
jne 0x1403c5ebc
mov ebx, r15d
jmp 0x1403c6439
mov ebx, r15d
jmp 0x1403c6177