Function at 0x1401e41c0
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 rbp, rdx
mov ebx, r8d
mov rsi, r9
mov qword [rsp + 0x100], rcx
cmp eax, 0x61
jbe 0x1401e4240
cmp r8d, 5
lea rax, str.Too_few_columns_for_an_rtree_table
lea rdx, str.Too_many_columns_for_an_rtree_table
mov r13d, 1
cmovle rdx, rax
lea rcx, [0x1403321d6]
call sym.sqlite3_mprintf
mov rsi, qword [rsp + 0x128]
mov qword [rsi], rax
mov eax, r13d
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 [rsp + 0x100]
mov edx, 2
call sym.sqlite3_vtab_config
mov rcx, qword [rsi + 8]
call sym.strlen
mov rcx, qword [rsi + 0x10]
mov r13, rax
call sym.strlen
mov rdi, rax
call sym.sqlite3_initialize
test eax, eax
jne 0x1401e44d0
lea eax, [rdi + rdi]
movsxd r13, r13d
cdqe
lea r14, [r13 + rax + 0x3d0]
mov rcx, r14
call sym.sqlite3Malloc
mov r12, rax
test rax, rax
je 0x1401e44d0
test rbp, rbp
mov r8, r14
mov rcx, rax
movsxd rdi, edi
setne r15b
setne bpl
xor edx, edx
call sub.msvcrt.dll_memset
lea rcx, [r12 + 0x3c8]
mov byte [r12 + 0x26], r15b
mov r8, r13
lea r14, [rcx + r13 + 1]
lea rax, [0x1402ba500]
mov qword [r12 + 0x30], rcx
movzx ebp, bpl
mov qword [r12], rax
lea rax, [r14 + rdi + 1]
mov qword [r12 + 0x38], r14
mov qword [r12 + 0x40], rax
mov rdx, qword [rsi + 8]
mov dword [r12 + 0x48], 1
call sym.memcpy
mov rdx, qword [rsi + 0x10]
mov r8, rdi
mov rcx, r14
mov r14d, 4
call sym.memcpy
mov rdx, qword [rsi + 0x10]
mov rcx, qword [r12 + 0x40]
mov r8, rdi
call sym.memcpy
add rdi, qword [r12 + 0x40]
mov r9d, 0x65
mov rcx, qword [rsp + 0x100]
mov word [rdi + 4], r9w
mov dword [rdi], 0x646f6e5f
lea rdi, [rsp + 0x70]
call sym.sqlite3_str_new
mov r15, qword [rsi + 0x18]
mov rdx, rdi
mov dword [rsp + 0x70], 0
mov r13, rax
mov rcx, r15
call sym.sqlite3GetToken
mov r9, r15
mov rcx, r13
lea r15, [rsi + 0x20]
mov r8d, eax
lea rdx, str.CREATE_TABLE_x__.s_INT
call sym.sqlite3_str_appendf
jmp 0x1401e43e6
test al, al
jne 0x1401e4440
add byte [r12 + 0x25], 1
mov rcx, r9
mov rdx, rdi
add r14d, 1
mov qword [rsp + 0x58], r9
add r15, 8
mov dword [rsp + 0x70], 0
call sym.sqlite3GetToken
mov r9, qword [rsp + 0x58]
mov rcx, r13
mov r8d, eax
lea rax, str.__.s_REAL
mov rdx, qword [rax + rbp*8]
call sym.sqlite3_str_appendf
cmp ebx, r14d
je 0x1401e4440
mov r9, qword [r15]
movzx eax, byte [r12 + 0x29]
cmp byte [r9], 0x2b
jne 0x1401e4398
add eax, 1
add r9, 1
mov rdx, rdi
add r14d, 1
mov byte [r12 + 0x29], al
mov rcx, r9
add r15, 8
mov qword [rsp + 0x58], r9
mov dword [rsp + 0x70], 0
call sym.sqlite3GetToken
mov r9, qword [rsp + 0x58]
lea rdx, str.__.s
mov rcx, r13
mov r8d, eax
call sym.sqlite3_str_appendf
cmp ebx, r14d
jne 0x1401e43e6
nop dword [rax]
lea rdx, [0x14033a430]
mov rcx, r13
call sym.sqlite3_str_appendf
test r13, r13
je 0x1401e44e0
lea rbp, [0x1402ba8a0]
cmp r13, rbp
je 0x1401e44e0
mov rcx, r13
call sym.sqlite3StrAccumFinish
mov rcx, r13
mov r15, rax
call sym.sqlite3_free
test r15, r15
je 0x1401e44e0
cmp ebx, r14d
jle 0x1401e44f0
lea rdx, str.Auxiliary_rtree_columns_must_be_last
lea rcx, [0x1403321d6]
mov r13d, 1
call sym.sqlite3_mprintf
mov rsi, qword [rsp + 0x128]
mov rcx, r15
mov qword [rsi], rax
call sym.sqlite3_free
nop dword [rax]
sub dword [r12 + 0x48], 1
jne 0x1401e4220
mov rcx, r12
call sym.rtreeRelease.part.0
jmp 0x1401e4220
mov r13d, 7
jmp 0x1401e4220
xor ecx, ecx
mov r13d, 7
call sym.sqlite3_free
jmp 0x1401e44b0
mov rcx, qword [rsp + 0x100]
mov rdx, r15
call sym.sqlite3_declare_vtab
mov r13d, eax
test eax, eax
jne 0x1401e4618
mov rcx, r15
call sym.sqlite3_free
movzx eax, byte [r12 + 0x25]
mov edx, eax
shr dl, 1
mov byte [r12 + 0x24], dl
je 0x1401e4660
cmp al, 0xa
ja 0x1401e4650
lea rdx, str.Wrong_number_of_columns_for_an_rtree_table
test al, 1
je 0x1401e4560
lea rcx, [0x1403321d6]
mov r13d, 1
call sym.sqlite3_mprintf
mov rsi, qword [rsp + 0x128]
mov qword [rsi], rax
jmp 0x1401e44b0
mov r8d, dword [rsp + 0x130]
lea eax, [rax*4 + 8]
mov rdx, qword [r12 + 0x30]
mov byte [r12 + 0x27], al
test r8d, r8d
je 0x1401e466c
lea rcx, str.PRAGMA__Q.page_size
call sym.sqlite3_mprintf
mov rbx, rax
test rax, rax
je 0x1401e46d1
mov qword [rsp + 0x28], rdi
mov rcx, qword [rsp + 0x100]
mov rdx, rax
mov r9d, pe_nt_image_headers64
mov qword [rsp + 0x30], 0
mov r8d, 0xffffffff
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x70], 0
call sym.sqlite3LockAndPrepare
mov r15d, eax
test eax, eax
je 0x1401e46dc
mov r13d, eax
mov rcx, qword [rsp + 0x100]
call sym.sqlite3_errmsg
lea rcx, [0x1403321d6]
mov rdx, rax
call sym.sqlite3_mprintf
mov rsi, qword [rsp + 0x128]
mov rcx, rbx
mov qword [rsi], rax
call sym.sqlite3_free
jmp 0x1401e44b0
mov rcx, qword [rsp + 0x100]
call sym.sqlite3_errmsg
lea rcx, [0x1403321d6]
mov rdx, rax
call sym.sqlite3_mprintf
mov rsi, qword [rsp + 0x128]
mov rcx, r15
mov qword [rsi], rax
call sym.sqlite3_free
jmp 0x1401e44b0
lea rdx, str.Too_many_columns_for_an_rtree_table
jmp 0x1401e453b
lea rdx, str.Too_few_columns_for_an_rtree_table
jmp 0x1401e453b
mov r8, qword [r12 + 0x38]
lea rcx, str.SELECT_length_data__FROM__q._q_node_WHERE_nodeno__1
call sym.sqlite3_mprintf
mov rbx, rax
test rax, rax
je 0x1401e46d1
mov qword [rsp + 0x28], rdi
mov rcx, qword [rsp + 0x100]
mov rdx, rax
mov r9d, pe_nt_image_headers64
mov qword [rsp + 0x30], 0
mov r8d, 0xffffffff
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x70], 0
call sym.sqlite3LockAndPrepare
test eax, eax
je 0x1401e4c9f
mov r13d, eax
jmp 0x1401e45e4
mov r13d, 7
jmp 0x1401e45e4
mov rcx, qword [rsp + 0x70]
call sym.sqlite3_step
cmp eax, 0x64
je 0x1401e4cf5
mov rcx, qword [rsp + 0x70]
call sym.sqlite3_finalize
test eax, eax
jne 0x1401e46c9
mov dword [r12 + 0x20], 0xffffffc0
mov rcx, rbx
call sym.sqlite3_free
mov rax, qword [rsp + 0x100]
mov rbx, qword [rsi + 0x10]
mov rsi, qword [rsi + 8]
mov qword [r12 + 0x18], rax
call sym.sqlite3_initialize
test eax, eax
jne 0x1401e4c20
mov ecx, dword [0x1402ba6c0]
test ecx, ecx
je 0x1401e4e2d
mov rcx, qword [0x1402ba340]
test rcx, rcx
je 0x1401e4750
call qword [0x1402ba740]
mov ecx, 0x20
call sym.sqlite3Malloc.part.0
mov rcx, rax
test rcx, rcx
je 0x1401e4c20
cmp qword [rsp + 0x100], 0
mov eax, 0x3b9aca00
je 0x1401e4784
mov rax, qword [rsp + 0x100]
mov eax, dword [rax + 0x88]
xor edx, edx
mov dword [rcx + 0x10], 0
pxor xmm0, xmm0
mov r9, rbx
mov word [rcx + 0x1c], dx
mov r8, rsi
lea rdx, str.CREATE_TABLE___w_.__w_rowid__rowid_INTEGER_PRIMARY_KEY_nodeno
mov dword [rcx + 0x14], eax
mov dword [rcx + 0x18], 0
movups xmmword [rcx], xmm0
mov qword [rsp + 0x58], rcx
call sym.sqlite3_str_appendf
cmp byte [r12 + 0x29], 0
mov rcx, qword [rsp + 0x58]
je 0x1401e47f4
lea r14, str._a_d
nop dword [rax]
mov r8d, r15d
mov rdx, r14
mov qword [rsp + 0x58], rcx
add r15d, 1
call sym.sqlite3_str_appendf
movzx eax, byte [r12 + 0x29]
mov rcx, qword [rsp + 0x58]
cmp r15d, eax
jl 0x1401e47d0
mov r9, rbx
mov r8, rsi
mov qword [rsp + 0x58], rcx
lea rdx, str.__CREATE_TABLE___w_.__w_node__nodeno_INTEGER_PRIMARY_KEY_data__
call sym.sqlite3_str_appendf
mov rcx, qword [rsp + 0x58]
mov r9, rbx
mov r8, rsi
lea rdx, str.CREATE_TABLE___w_.__w_parent__nodeno_INTEGER_PRIMARY_KEY_parentnode__
call sym.sqlite3_str_appendf
mov eax, dword [r12 + 0x20]
mov r9, rbx
mov r8, rsi
mov rcx, qword [rsp + 0x58]
lea rdx, str.INSERT_INTO___w_.__w_node_VALUES_1_zeroblob__d__
mov dword [rsp + 0x20], eax
call sym.sqlite3_str_appendf
mov rcx, qword [rsp + 0x58]
cmp rcx, rbp
je 0x1401e4b4b
mov rax, qword [rcx + 8]
test rax, rax
je 0x1401e4e23
mov edx, dword [rcx + 0x18]
mov byte [rax + rdx], 0
mov eax, dword [rcx + 0x14]
test eax, eax
je 0x1401e4875
test byte [rcx + 0x1d], 4
je 0x1401e4e9b
mov r14, qword [rcx + 8]
call sym.sqlite3_free
test r14, r14
je 0x1401e4b4b
mov rcx, qword [rsp + 0x100]
xor r8d, r8d
mov rdx, r14
call sym.sqlite3_exec.constprop.0
mov rcx, r14
mov r15d, eax
call sym.sqlite3_free
test r15d, r15d
jne 0x1401e4ee2
lea rax, [r12 + 0x78]
mov rdx, qword [r12 + 0x30]
xor r9d, r9d
mov qword [rsp + 0x40], 0
movq xmm0, rax
lea r8, str.sqlite_stat1
lea rax, [r12 + 0x80]
mov qword [rsp + 0x38], 0
movq xmm1, rax
lea rax, [r12 + 0x88]
mov qword [rsp + 0x30], 0
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x28], 0
punpcklqdq xmm0, xmm1
movups xmmword [rsp + 0x70], xmm0
movq xmm0, rax
lea rax, [r12 + 0x90]
mov qword [rsp + 0x20], 0
movq xmm2, rax
lea rax, [r12 + 0x98]
punpcklqdq xmm0, xmm2
movups xmmword [rsp + 0x80], xmm0
movq xmm0, rax
lea rax, [r12 + 0xa0]
movq xmm3, rax
lea rax, [r12 + 0xa8]
punpcklqdq xmm0, xmm3
movups xmmword [rsp + 0x90], xmm0
movq xmm0, rax
lea rax, [r12 + 0xb0]
movq xmm4, rax
punpcklqdq xmm0, xmm4
movups xmmword [rsp + 0xa0], xmm0
call sym.sqlite3_table_column_metadata
mov r15d, eax
test eax, eax
je 0x1401e4b91
mov qword [r12 + 0x50], 0x100000
cmp eax, 1
je 0x1401e4a9f
cmp byte [r12 + 0x29], 0
je 0x1401e4ee2
mov r8, rbx
mov rdx, rsi
lea rcx, str.SELECT__FROM___w_.__w_rowid__WHERE_rowid_1
call sym.sqlite3_mprintf
mov qword [r12 + 0x60], rax
test rax, rax
je 0x1401e4b4b
mov rcx, qword [rsp + 0x100]
call sym.sqlite3_str_new
mov r9, rbx
mov r8, rsi
lea rdx, str.UPDATE___w_.__w_rowid_SET
mov rcx, rax
mov r14, rax
lea rbx, str.a_d__d
call sym.sqlite3_str_appendf
cmp byte [r12 + 0x29], 0
lea rsi, [0x14033271b]
je 0x1401e4d5d
lea r9d, [r13 + 2]
mov r8d, r13d
mov rdx, rbx
mov rcx, r14
call sym.sqlite3_str_appendf
movzx eax, byte [r12 + 0x29]
add r13d, 1
cmp r13d, eax
jge 0x1401e4d5d
mov eax, dword [r14 + 0x18]
lea edx, [rax + 1]
cmp edx, dword [r14 + 0x10]
jae 0x1401e4e0d
add rax, qword [r14 + 8]
mov dword [r14 + 0x18], edx
mov byte [rax], 0x2c
jmp 0x1401e4a11
mov rcx, qword [rsp + 0x68]
mov r14d, 0x64
call sym.sqlite3_step
mov r11, qword [rsp + 0x58]
cmp eax, 0x64
je 0x1401e4eb2
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x58], r11
call sym.sqlite3_finalize
mov r11, qword [rsp + 0x58]
mov r15d, eax
mov rcx, r11
call sym.sqlite3_free
mov qword [r12 + 0x50], r14
test r15d, r15d
jne 0x1401e49a6
xor r15d, r15d
jmp 0x1401e4b10
mov rcx, qword [rsp + 0x100]
mov rdx, r10
mov qword [rsp + 0x58], r10
mov r9d, 0x85
mov qword [rsp + 0x30], 0
mov rax, qword [rdi + r15*8]
mov r8d, 0xffffffff
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], rax
call sym.sqlite3LockAndPrepare
mov r10, qword [rsp + 0x58]
mov r14d, eax
mov rcx, r10
call sym.sqlite3_free
lea edx, [r15 + 1]
cmp edx, 7
setle cl
test r14d, r14d
sete dl
add r15, 1
test cl, dl
je 0x1401e4ece
cmp r15, 3
je 0x1401e4b80
lea rax, str.INSERT_OR_REPLACE_INTO__q._q_node_VALUES__1___2_
mov rcx, qword [rax + r15*8]
mov r8, rbx
mov rdx, rsi
call sym.sqlite3_mprintf
mov r10, rax
test rax, rax
jne 0x1401e4aa8
xor ecx, ecx
call sym.sqlite3_free
cmp byte [r12 + 0x29], 0
jne 0x1401e49b2
mov r13d, 7
mov rcx, qword [rsp + 0x100]
call sym.sqlite3_errmsg
lea rcx, [0x1403321d6]
mov rdx, rax
call sym.sqlite3_mprintf
mov rsi, qword [rsp + 0x128]
mov qword [rsi], rax
jmp 0x1401e44b0
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 0x1401e4b21
jmp 0x1401e4b16
mov rdx, qword [r12 + 0x30]
mov r8, qword [r12 + 0x38]
lea rcx, str.SELECT_stat_FROM__Q.sqlite_stat1_WHERE_tbl___q_rowid
call sym.sqlite3_mprintf
mov r11, rax
test rax, rax
je 0x1401e4df9
lea rax, [rsp + 0x68]
mov rdx, r11
mov qword [rsp + 0x30], 0
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x28], rax
mov r9d, pe_nt_image_headers64
mov r8d, 0xffffffff
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x58], r11
call sym.sqlite3LockAndPrepare
mov r11, qword [rsp + 0x58]
test eax, eax
mov r15d, eax
je 0x1401e4a54
mov rcx, r11
call sym.sqlite3_free
mov qword [r12 + 0x50], 0x64
jmp 0x1401e49a6
lea rcx, [0x1402ba8a0]
mov r9, rbx
mov r8, rsi
lea rdx, str.CREATE_TABLE___w_.__w_rowid__rowid_INTEGER_PRIMARY_KEY_nodeno
call sym.sqlite3_str_appendf
cmp byte [r12 + 0x29], 0
lea rcx, [0x1402ba8a0]
jne 0x1401e47c6
mov r9, rbx
mov r8, rsi
mov qword [rsp + 0x58], rcx
lea rdx, str.__CREATE_TABLE___w_.__w_node__nodeno_INTEGER_PRIMARY_KEY_data__
call sym.sqlite3_str_appendf
mov rcx, qword [rsp + 0x58]
mov r9, rbx
mov r8, rsi
lea rdx, str.CREATE_TABLE___w_.__w_parent__nodeno_INTEGER_PRIMARY_KEY_parentnode__
call sym.sqlite3_str_appendf
mov eax, dword [r12 + 0x20]
mov r9, rbx
mov r8, rsi
mov rcx, qword [rsp + 0x58]
lea rdx, str.INSERT_INTO___w_.__w_node_VALUES_1_zeroblob__d__
mov dword [rsp + 0x20], eax
call sym.sqlite3_str_appendf
jmp 0x1401e4b4b
mov rcx, qword [rsp + 0x70]
call sym.sqlite3_step
cmp eax, 0x64
je 0x1401e4e6f
mov rcx, qword [rsp + 0x70]
call sym.sqlite3_finalize
test eax, eax
jne 0x1401e46c9
cmp dword [r12 + 0x20], 0x1bf
jle 0x1401e4e40
mov rcx, rbx
call sym.sqlite3_free
mov rax, qword [rsp + 0x100]
mov rbx, qword [rsi + 0x10]
mov rsi, qword [rsi + 8]
mov qword [r12 + 0x18], rax
jmp 0x1401e48ae
mov r14, qword [rsp + 0x70]
xor edx, edx
mov rcx, r14
call sym.columnMem
mov rcx, rax
call sym.sqlite3VdbeIntValue
mov rcx, r14
mov qword [rsp + 0x58], rax
call sym.columnMallocFailure
mov rcx, qword [rsp + 0x70]
call sym.sqlite3_finalize
test eax, eax
jne 0x1401e46c9
movzx eax, byte [r12 + 0x27]
mov edx, dword [rsp + 0x58]
imul eax, eax, 0x33
sub edx, 0x40
mov dword [r12 + 0x20], edx
add eax, 4
cmp edx, eax
jle 0x1401e4706
mov dword [r12 + 0x20], eax
mov rcx, rbx
call sym.sqlite3_free
jmp 0x1401e470e
lea rdx, str._WHERE_rowid_1
mov rcx, r14
call sym.sqlite3_str_appendf
test r14, r14
je 0x1401e4b4b
cmp r14, rbp
je 0x1401e4b4b
mov rcx, r14
call sym.sqlite3StrAccumFinish
mov rcx, r14
mov r15, rax
call sym.sqlite3_free
test r15, r15
je 0x1401e4b4b
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 sym.sqlite3LockAndPrepare
mov rcx, r15
mov r13d, eax
call sym.sqlite3_free
test r13d, r13d
jne 0x1401e4b51
mov rax, qword [rsp + 0x120]
mov qword [rax], r12
jmp 0x1401e4220
mov qword [r12 + 0x50], 0x64
mov r15d, 7
jmp 0x1401e49a6
mov r8d, 1
mov rdx, rsi
mov rcx, r14
call sym.enlargeAndAppend
jmp 0x1401e4a11
call sym.sqlite3_free
jmp 0x1401e4b4b
mov ecx, 0x20
call qword [0x1402ba6e0]
mov rcx, rax
jmp 0x1401e475d
mov rdx, qword [r12 + 0x38]
lea rcx, str.undersize_RTree_blobs_in___q_node_
mov r13d, 0x10b
call sym.sqlite3_mprintf
mov rsi, qword [rsp + 0x128]
mov rcx, rbx
mov qword [rsi], rax
call sym.sqlite3_free
jmp 0x1401e44b0
mov r15, qword [rsp + 0x70]
xor edx, edx
mov rcx, r15
call sym.columnMem
mov rcx, rax
call sym.sqlite3VdbeIntValue
mov rcx, r15
mov r14, rax
call sym.columnMallocFailure
mov dword [r12 + 0x20], r14d
jmp 0x1401e4cb2
mov qword [rsp + 0x58], rcx
call sym.strAccumFinishRealloc
mov rcx, qword [rsp + 0x58]
mov r14, rax
jmp 0x1401e4879
mov rcx, qword [rsp + 0x68]
call sym.sqlite3_column_int64.constprop.0
mov r11, qword [rsp + 0x58]
cmp rax, 0x64
cmovge r14, rax
jmp 0x1401e4a72
cmp byte [r12 + 0x29], 0
jne 0x1401e49b2
mov r13d, r14d
jmp 0x1401e4de0
mov r13d, r15d
jmp 0x1401e4b51