Function at 0x1401e6680
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 r14, rdx
mov esi, r8d
cmp eax, 0x61
mov rdi, r9
jbe 0x1401e66f8
lea rax, str.Too_many_columns_for_an_rtree_table
cmp r8d, 6
mov ebp, 1
lea rdx, str.Too_few_columns_for_an_rtree_table
cmovge rdx, rax
lea rcx, [0x140314186]
call sym.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov qword [rdi], rax
mov eax, ebp
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, 1
mov edx, 1
call sym.sqlite3_vtab_config
mov rcx, qword [rdi + 8]
call sym.strlen
mov rcx, qword [rdi + 0x10]
mov rbp, rax
call sym.strlen
mov r13, rax
call sym.sqlite3_initialize
test eax, eax
jne 0x1401e6920
movsxd rbp, ebp
movsxd r13, r13d
lea r12, [rbp + r13 + 0x3ca]
mov rcx, r12
call sym.sqlite3Malloc
test rax, rax
mov rbx, rax
je 0x1401e6920
test r14, r14
mov r8, r12
mov rcx, rax
lea r12, [rbx + rbp + 0x3c9]
setne r15b
setne r14b
xor edx, edx
movzx r14d, r14b
call sub.msvcrt.dll_memset
lea rcx, [rbx + 0x3c8]
mov byte [rbx + 0x26], r15b
movq xmm1, r12
movq xmm0, rcx
mov r8, rbp
mov dword [rbx + 0x40], 1
punpcklqdq xmm0, xmm1
movups xmmword [rbx + 0x30], xmm0
mov rdx, qword [rdi + 8]
lea rax, [0x1402b8f00]
mov qword [rbx], rax
call sym.memcpy
mov rdx, qword [rdi + 0x10]
mov r8, r13
mov rcx, r12
lea r13, [rdi + 0x20]
mov r12d, 4
call sym.memcpy
mov rcx, qword [rsp + 0x100]
call sym.sqlite3_str_new
mov r15, qword [rdi + 0x18]
mov rbp, rax
lea rax, [rsp + 0x70]
mov rdx, rax
mov qword [rsp + 0x58], rax
mov rcx, r15
call sym.sqlite3GetToken
mov r9, r15
mov rcx, rbp
lea rdx, str.CREATE_TABLE_x__.s_INT
mov r8d, eax
call sym.sqlite3_str_appendf
lea r15, str.__.s_REAL
jmp 0x1401e684f
test al, al
jne 0x1401e68a0
add byte [rbx + 0x25], 1
mov rcx, r9
mov qword [rsp + 0x50], r9
add r12d, 1
mov rdx, qword [rsp + 0x58]
add r13, 8
call sym.sqlite3GetToken
mov rdx, qword [r15 + r14*8]
mov rcx, rbp
mov r9, qword [rsp + 0x50]
mov r8d, eax
call sym.sqlite3_str_appendf
cmp esi, r12d
je 0x1401e68a0
mov r9, qword [r13]
movzx eax, byte [rbx + 0x29]
cmp byte [r9], 0x2b
jne 0x1401e6810
mov rdx, qword [rsp + 0x58]
add r9, 1
add eax, 1
add r12d, 1
mov rcx, r9
mov byte [rbx + 0x29], al
add r13, 8
mov qword [rsp + 0x50], r9
call sym.sqlite3GetToken
mov r9, qword [rsp + 0x50]
lea rdx, str.__.s
mov rcx, rbp
mov r8d, eax
call sym.sqlite3_str_appendf
cmp esi, r12d
jne 0x1401e684f
nop dword [rax]
lea rdx, [0x14031d042]
mov rcx, rbp
call sym.sqlite3_str_appendf
test rbp, rbp
je 0x1401e6930
lea r15, [0x1402b9280]
cmp rbp, r15
je 0x1401e6930
mov rcx, rbp
call sym.sqlite3StrAccumFinish
mov rcx, rbp
mov r14, rax
call sym.sqlite3_free
test r14, r14
je 0x1401e6930
cmp esi, r12d
jle 0x1401e6940
lea rcx, [0x140314186]
lea rdx, str.Auxiliary_rtree_columns_must_be_last
call sym.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov rcx, r14
mov qword [rdi], rax
call sym.sqlite3_free
mov ebp, 1
sub dword [rbx + 0x40], 1
jne 0x1401e66df
mov rcx, rbx
call sym.rtreeRelease.part.0
jmp 0x1401e66df
mov ebp, 7
jmp 0x1401e66df
xor ecx, ecx
mov ebp, 7
call sym.sqlite3_free
jmp 0x1401e6908
mov rcx, qword [rsp + 0x100]
mov rdx, r14
call sym.sqlite3_declare_vtab
test eax, eax
mov ebp, eax
jne 0x1401e69a9
mov rcx, r14
call sym.sqlite3_free
movzx eax, byte [rbx + 0x25]
mov edx, eax
shr dl, 1
cmp al, 1
mov byte [rbx + 0x24], dl
jbe 0x1401e6a8a
cmp al, 0xa
ja 0x1401e69a0
lea rdx, str.Wrong_number_of_columns_for_an_rtree_table
test al, 1
je 0x1401e69e0
lea rcx, [0x140314186]
call sym.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov qword [rdi], rax
jmp 0x1401e6903
lea rdx, str.Too_many_columns_for_an_rtree_table
jmp 0x1401e6980
mov rcx, qword [rsp + 0x100]
call sym.sqlite3_errmsg
lea rcx, [0x140314186]
mov rdx, rax
call sym.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov rcx, r14
mov qword [rdi], rax
call sym.sqlite3_free
jmp 0x1401e6908
mov r8d, dword [rsp + 0x130]
lea eax, [rax*4 + 8]
mov rdx, qword [rbx + 0x30]
mov byte [rbx + 0x27], al
test r8d, r8d
je 0x1401e6a96
lea rcx, str.PRAGMA__Q.page_size
call sym.sqlite3_mprintf
test rax, rax
mov rsi, rax
je 0x1401e6e4e
mov rax, qword [rsp + 0x58]
xor r9d, r9d
mov rdx, rsi
mov qword [rsp + 0x28], 0
mov rcx, qword [rsp + 0x100]
mov r8d, pe_nt_image_headers64
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x20], rax
call sym.sqlite3LockAndPrepare.constprop.0
test eax, eax
mov ebp, eax
je 0x1401e6efd
mov rcx, qword [rsp + 0x100]
call sym.sqlite3_errmsg
lea rcx, [0x140314186]
mov rdx, rax
call sym.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov rcx, rsi
mov qword [rdi], rax
call sym.sqlite3_free
jmp 0x1401e6908
lea rdx, str.Too_few_columns_for_an_rtree_table
jmp 0x1401e6980
mov r8, qword [rbx + 0x38]
lea rcx, str.SELECT_length_data__FROM__q._q_node_WHERE_nodeno__1
call sym.sqlite3_mprintf
test rax, rax
mov rsi, rax
je 0x1401e6e4e
mov rax, qword [rsp + 0x58]
xor r9d, r9d
mov rdx, rsi
mov qword [rsp + 0x28], 0
mov rcx, qword [rsp + 0x100]
mov r8d, pe_nt_image_headers64
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x20], rax
call sym.sqlite3LockAndPrepare.constprop.0
test eax, eax
mov ebp, eax
jne 0x1401e6a56
mov rbp, qword [rsp + 0x70]
mov rcx, rbp
call sym.sqlite3_step
cmp eax, 0x64
je 0x1401e71c3
mov rcx, rbp
call sym.sqlite3_finalize
test eax, eax
mov ebp, eax
jne 0x1401e6a56
cmp dword [rbx + 0x20], 0x1bf
jle 0x1401e7196
mov rcx, rsi
call sym.sqlite3_free
mov rax, qword [rsp + 0x100]
mov r14, qword [rdi + 0x10]
mov rsi, qword [rdi + 8]
mov qword [rbx + 0x18], rax
lea rax, [rbx + 0x78]
mov rdx, qword [rbx + 0x30]
xor r9d, r9d
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x70], rax
lea rax, [rbx + 0x80]
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x78], rax
lea rax, [rbx + 0x88]
mov qword [rsp + 0x80], rax
lea rax, [rbx + 0x90]
mov qword [rsp + 0x88], rax
lea rax, [rbx + 0x98]
mov qword [rsp + 0x90], rax
lea rax, [rbx + 0xa0]
mov qword [rsp + 0x98], rax
lea rax, [rbx + 0xa8]
mov qword [rsp + 0xa0], rax
lea r8, str.sqlite_stat1
mov qword [rsp + 0x38], 0
lea rax, [rbx + 0xb0]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov qword [rsp + 0xa8], rax
call sym.sqlite3_table_column_metadata
test eax, eax
mov ebp, eax
je 0x1401e6e92
cmp eax, 1
mov qword [rbx + 0x48], 0x100000
je 0x1401e6c85
cmp byte [rbx + 0x29], 0
jne 0x1401e6d20
mov rcx, qword [rsp + 0x100]
call sym.sqlite3_errmsg
lea rcx, [0x140314186]
mov rdx, rax
call sym.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov qword [rdi], rax
jmp 0x1401e6908
mov rbp, qword [rsp + 0x68]
mov rcx, rbp
call sym.sqlite3_step
mov edx, 0x64
cmp eax, 0x64
je 0x1401e724d
mov rcx, rbp
mov qword [rsp + 0x50], rdx
call sym.sqlite3_finalize
mov rcx, rdi
mov ebp, eax
call sym.sqlite3_free
mov rdx, qword [rsp + 0x50]
test ebp, ebp
mov qword [rbx + 0x48], rdx
jne 0x1401e6c10
lea r13, str.INSERT_INTO__w_.__w_rowid__rowid_nodeno_VALUES__1__2_ON_CONFLICT_rowid_DO_UPDATE_SET_nodenoexcluded.nodeno
xor edi, edi
nop
cmp rdi, 3
je 0x1401e6e80
lea rax, str.INSERT_OR_REPLACE_INTO__q._q_node_VALUES__1___2_
mov rcx, qword [rax + rdi*8]
mov r8, r14
mov rdx, rsi
call sym.sqlite3_mprintf
test rax, rax
mov r12, rax
je 0x1401e6e60
mov rax, qword [rsp + 0x58]
xor r9d, r9d
mov rdx, r12
mov r8d, 0x85
mov qword [rsp + 0x28], 0
mov rcx, qword [rsp + 0x100]
mov rax, qword [rax + rdi*8]
mov qword [rsp + 0x20], rax
call sym.sqlite3LockAndPrepare.constprop.0
mov rcx, r12
mov ebp, eax
call sym.sqlite3_free
lea eax, [rdi + 1]
cmp eax, 7
setle dl
test ebp, ebp
sete al
add rdi, 1
test dl, al
jne 0x1401e6c90
cmp byte [rbx + 0x29], 0
je 0x1401e6e36
nop word cs:[rax + rax]
lea rcx, str.SELECT__FROM___w_.__w_rowid__WHERE_rowid_1
mov r8, r14
mov rdx, rsi
call sym.sqlite3_mprintf
test rax, rax
mov qword [rbx + 0x58], rax
je 0x1401e6e71
mov rcx, qword [rsp + 0x100]
call sym.sqlite3_str_new
mov r9, r14
mov r8, rsi
lea rdx, str.UPDATE___w_.__w_rowid_SET
mov rcx, rax
mov rdi, rax
call sym.sqlite3_str_appendf
cmp byte [rbx + 0x29], 0
je 0x1401e7159
lea rsi, str.a_d__d
xor r8d, r8d
mov r9d, 2
mov rdx, rsi
mov rcx, rdi
mov ebp, 1
call sym.sqlite3_str_appendf
cmp byte [rbx + 0x29], 1
jbe 0x1401e7159
mov eax, dword [rdi + 0x18]
lea edx, [rax + 1]
cmp edx, dword [rdi + 0x10]
jae 0x1401e713f
add rax, qword [rdi + 8]
mov dword [rdi + 0x18], edx
mov byte [rax], 0x2c
lea r9d, [rbp + 2]
mov r8d, ebp
mov rdx, rsi
mov rcx, rdi
add ebp, 1
call sym.sqlite3_str_appendf
movzx eax, byte [rbx + 0x29]
cmp eax, ebp
jg 0x1401e6d98
lea rdx, str._WHERE_rowid_1
mov rcx, rdi
call sym.sqlite3_str_appendf
cmp rdi, r15
je 0x1401e6e71
mov rcx, rdi
call sym.sqlite3StrAccumFinish
mov rcx, rdi
mov rsi, rax
call sym.sqlite3_free
test rsi, rsi
je 0x1401e6e71
mov rcx, qword [rsp + 0x100]
lea rax, [rbx + 0xb8]
xor r9d, r9d
mov rdx, rsi
mov qword [rsp + 0x28], 0
mov r8d, 0x85
mov qword [rsp + 0x20], rax
call sym.sqlite3LockAndPrepare.constprop.0
mov rcx, rsi
mov ebp, eax
call sym.sqlite3_free
test ebp, ebp
jne 0x1401e6c1a
mov rax, qword [rsp + 0x120]
mov qword [rax], rbx
jmp 0x1401e66df
mov ebp, 7
jmp 0x1401e6a56
xor ecx, ecx
call sym.sqlite3_free
cmp byte [rbx + 0x29], 0
jne 0x1401e6d20
mov ebp, 7
jmp 0x1401e6c1a
cmp byte [rbx + 0x29], 0
mov rcx, r13
jne 0x1401e6ca5
jmp 0x1401e6c9a
mov rdx, qword [rbx + 0x30]
lea rcx, str.SELECT_stat_FROM__Q.sqlite_stat1_WHERE_tbl___q_rowid
mov r8, qword [rbx + 0x38]
call sym.sqlite3_mprintf
test rax, rax
mov rdi, rax
je 0x1401e712d
mov rcx, qword [rsp + 0x100]
xor r9d, r9d
mov rdx, rdi
mov qword [rsp + 0x28], 0
lea rax, [rsp + 0x68]
mov r8d, pe_nt_image_headers64
mov qword [rsp + 0x20], rax
call sym.sqlite3LockAndPrepare.constprop.0
test eax, eax
mov ebp, eax
je 0x1401e6c46
mov rcx, rdi
call sym.sqlite3_free
mov qword [rbx + 0x48], 0x64
jmp 0x1401e6c10
mov r13, qword [rsp + 0x70]
mov rcx, r13
call sym.sqlite3_step
cmp eax, 0x64
je 0x1401e71f0
mov rcx, r13
call sym.sqlite3_finalize
test eax, eax
jne 0x1401e71e9
mov dword [rbx + 0x20], 0xffffffc0
mov rcx, rsi
call sym.sqlite3_free
mov rax, qword [rsp + 0x100]
mov r14, qword [rdi + 0x10]
mov rsi, qword [rdi + 8]
mov qword [rbx + 0x18], rax
call sym.sqlite3_initialize
test eax, eax
jne 0x1401e70bc
mov ecx, dword [0x1402b90a0]
test ecx, ecx
je 0x1401e7183
mov rcx, qword [0x1402b8d40]
test rcx, rcx
je 0x1401e6f73
call qword [0x1402b9120]
mov ecx, 0x20
call sym.sqlite3Malloc.part.0
mov rdi, rax
test rdi, rdi
je 0x1401e70bc
cmp qword [rsp + 0x100], 0
mov eax, 0x3b9aca00
je 0x1401e6fa7
mov rax, qword [rsp + 0x100]
mov eax, dword [rax + 0x88]
xor edx, edx
pxor xmm0, xmm0
mov dword [rdi + 0x14], eax
mov r9, r14
mov word [rdi + 0x1c], dx
mov r8, rsi
mov rcx, rdi
movups xmmword [rdi], xmm0
lea rdx, str.CREATE_TABLE___w_.__w_rowid__rowid_INTEGER_PRIMARY_KEY_nodeno
mov dword [rdi + 0x10], 0
mov dword [rdi + 0x18], 0
call sym.sqlite3_str_appendf
cmp byte [rbx + 0x29], 0
je 0x1401e7009
lea r12, str._a_d
nop word [rax + rax]
mov r8d, ebp
mov rdx, r12
mov rcx, rdi
call sym.sqlite3_str_appendf
movzx eax, byte [rbx + 0x29]
add ebp, 1
cmp ebp, eax
jl 0x1401e6ff0
mov r9, r14
mov r8, rsi
mov rcx, rdi
lea rdx, str.__CREATE_TABLE___w_.__w_node__nodeno_INTEGER_PRIMARY_KEY_data__
call sym.sqlite3_str_appendf
mov r9, r14
mov r8, rsi
mov rcx, rdi
lea rdx, str.CREATE_TABLE___w_.__w_parent__nodeno_INTEGER_PRIMARY_KEY_parentnode__
call sym.sqlite3_str_appendf
mov eax, dword [rbx + 0x20]
mov r9, r14
mov r8, rsi
lea rdx, str.INSERT_INTO___w_.__w_node_VALUES_1_zeroblob__d__
mov rcx, rdi
mov dword [rsp + 0x20], eax
call sym.sqlite3_str_appendf
cmp rdi, r15
je 0x1401e6e71
mov rax, qword [rdi + 8]
test rax, rax
je 0x1401e7176
mov edx, dword [rdi + 0x18]
mov byte [rax + rdx], 0
mov eax, dword [rdi + 0x14]
test eax, eax
je 0x1401e707d
test byte [rdi + 0x1d], 4
je 0x1401e723d
mov r12, qword [rdi + 8]
mov rcx, rdi
call sym.sqlite3_free
test r12, r12
je 0x1401e6e71
mov rcx, qword [rsp + 0x100]
xor r8d, r8d
mov rdx, r12
call sym.sqlite3_exec.constprop.0
mov rcx, r12
mov ebp, eax
call sym.sqlite3_free
test ebp, ebp
je 0x1401e6b42
jmp 0x1401e6c1a
mov r9, r14
mov r8, rsi
mov rcx, r15
lea rdx, str.CREATE_TABLE___w_.__w_rowid__rowid_INTEGER_PRIMARY_KEY_nodeno
call sym.sqlite3_str_appendf
cmp byte [rbx + 0x29], 0
lea rdi, [0x1402b9280]
jne 0x1401e6fe0
mov r9, r14
mov r8, rsi
mov rcx, r15
lea rdx, str.__CREATE_TABLE___w_.__w_node__nodeno_INTEGER_PRIMARY_KEY_data__
call sym.sqlite3_str_appendf
mov r9, r14
mov r8, rsi
mov rcx, r15
lea rdx, str.CREATE_TABLE___w_.__w_parent__nodeno_INTEGER_PRIMARY_KEY_parentnode__
call sym.sqlite3_str_appendf
mov eax, dword [rbx + 0x20]
mov r9, r14
mov r8, rsi
lea rdx, str.INSERT_INTO___w_.__w_node_VALUES_1_zeroblob__d__
mov rcx, r15
mov dword [rsp + 0x20], eax
call sym.sqlite3_str_appendf
jmp 0x1401e6e71
mov qword [rbx + 0x48], 0x64
mov ebp, 7
jmp 0x1401e6c10
lea rdx, [0x140314590]
mov r8d, 1
mov rcx, rdi
call sym.enlargeAndAppend
jmp 0x1401e6db1
lea rdx, str._WHERE_rowid_1
mov rcx, rdi
call sym.sqlite3_str_appendf
test rdi, rdi
jne 0x1401e6ddd
jmp 0x1401e6e71
mov rcx, rdi
call sym.sqlite3_free
jmp 0x1401e6e71
mov ecx, 0x20
call qword [0x1402b90c0]
mov rdi, rax
jmp 0x1401e6f80
mov rdx, qword [rbx + 0x38]
lea rcx, str.undersize_RTree_blobs_in___q_node_
mov ebp, 0x10b
call sym.sqlite3_mprintf
mov rdi, qword [rsp + 0x128]
mov rcx, rsi
mov qword [rdi], rax
call sym.sqlite3_free
jmp 0x1401e6908
xor edx, edx
mov rcx, rbp
call sym.columnMem
mov rcx, rax
call sym.sqlite3VdbeIntValue
mov rcx, rbp
mov r14, rax
call sym.columnMallocFailure
mov dword [rbx + 0x20], r14d
jmp 0x1401e6b07
mov ebp, eax
jmp 0x1401e6a56
xor edx, edx
mov rcx, r13
call sym.columnMem
mov rcx, rax
call sym.sqlite3VdbeIntValue
mov rcx, r13
mov r12, rax
call sym.columnMallocFailure
mov rcx, r13
call sym.sqlite3_finalize
test eax, eax
jne 0x1401e71e9
movzx eax, byte [rbx + 0x27]
lea r14d, [r12 - 0x40]
mov dword [rbx + 0x20], r14d
imul eax, eax, 0x33
add eax, 4
cmp r14d, eax
jle 0x1401e6f2a
mov dword [rbx + 0x20], eax
jmp 0x1401e6f2a
mov rcx, rdi
call sym.strAccumFinishRealloc
mov r12, rax
jmp 0x1401e7081
mov rcx, rbp
call sym.sqlite3_column_int64.constprop.0
mov edx, 0x64
cmp rax, rdx
cmovge rdx, rax
jmp 0x1401e6c61