Function at 0x14021e2f0
Capabilities:
Reference sql statements

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
lea eax, [r8 - 6]
mov qword [rsp + 0x110], rcx
mov r14, rdx
mov esi, r8d
cmp eax, 0x61
mov rbp, r9
jbe 0x14021e368
lea rax, str.Too_many_columns_for_an_rtree_table
cmp r8d, 6
lea rdx, str.Too_few_columns_for_an_rtree_table
cmovge rdx, rax
lea rcx, [0x1403a4af8]
call fcn.14019b910
mov rsi, qword [rsp + 0x138]
mov qword [rsi], rax
mov esi, 1
mov eax, esi
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x110]
mov r8d, 1
mov edx, 1
call fcn.14018fbf0
mov rcx, qword [rsp + 0x110]
mov edx, 2
call fcn.14018fbf0
mov rcx, qword [rbp + 8]
call sub.msvcrt.dll_strlen
mov rcx, qword [rbp + 0x10]
mov r13, rax
call sub.msvcrt.dll_strlen
mov r10d, dword [0x14025aa34]
mov rdi, rax
test r10d, r10d
jne 0x14021e660
call fcn.14014eaf0
test eax, eax
jne 0x14021e650
call fcn.140198fd0
test eax, eax
jne 0x14021e650
lea eax, [rdi + rdi]
movsxd r13, r13d
cdqe
lea r12, [r13 + rax + 0x3d0]
mov rcx, r12
call fcn.140153820
test rax, rax
mov rbx, rax
je 0x14021e650
test r14, r14
mov r8, r12
mov rcx, rbx
setne al
setne r15b
xor edx, edx
movzx eax, al
movsxd rdi, edi
mov r12d, 4
mov dword [rsp + 0x58], eax
lea r14, [rbx + r13 + 0x3c9]
call sub.msvcrt.dll_memset
lea rcx, [0x140259b00]
mov byte [rbx + 0x26], r15b
mov r8, r13
mov qword [rbx], rcx
lea r13, [rbp + 0x20]
movq xmm1, r14
lea rcx, [rbx + 0x3c8]
mov dword [rbx + 0x48], 1
lea rax, [r14 + rdi + 1]
movq xmm0, rcx
punpcklqdq xmm0, xmm1
mov qword [rbx + 0x40], rax
lea r15, str.__.s_REAL
movups xmmword [rbx + 0x30], xmm0
mov rdx, qword [rbp + 8]
call sub.msvcrt.dll_memcpy
mov rdx, qword [rbp + 0x10]
mov r8, rdi
mov rcx, r14
call sub.msvcrt.dll_memcpy
mov rdx, qword [rbp + 0x10]
mov r8, rdi
mov rcx, qword [rbx + 0x40]
call sub.msvcrt.dll_memcpy
add rdi, qword [rbx + 0x40]
mov r9d, 0x65
mov rcx, qword [rsp + 0x110]
mov word [rdi + 4], r9w
mov dword [rdi], 0x646f6e5f
call fcn.140199c50
mov r14, qword [rbp + 0x18]
mov rdi, rax
lea rax, [rsp + 0x80]
mov rdx, rax
mov qword [rsp + 0x60], rax
mov rcx, r14
call fcn.140151960
mov r9, r14
mov rcx, rdi
lea rdx, str.CREATE_TABLE_x__.s_INT
mov r8d, eax
call fcn.140168230
movsxd r14, dword [rsp + 0x58]
jmp 0x14021e537
test al, al
jne 0x14021e588
add byte [rbx + 0x25], 1
mov rcx, r9
mov qword [rsp + 0x58], r9
add r12d, 1
mov rdx, qword [rsp + 0x60]
add r13, 8
call fcn.140151960
mov rdx, qword [r15 + r14*8]
mov rcx, rdi
mov r9, qword [rsp + 0x58]
mov r8d, eax
call fcn.140168230
cmp esi, r12d
je 0x14021e588
mov r9, qword [r13]
movzx eax, byte [rbx + 0x29]
cmp byte [r9], 0x2b
jne 0x14021e4f8
mov rdx, qword [rsp + 0x60]
add r9, 1
add eax, 1
add r12d, 1
mov rcx, r9
mov byte [rbx + 0x29], al
add r13, 8
mov qword [rsp + 0x58], r9
call fcn.140151960
mov r9, qword [rsp + 0x58]
lea rdx, str.__.s
mov rcx, rdi
mov r8d, eax
call fcn.140168230
cmp esi, r12d
jne 0x14021e537
nop dword [rax]
lea rdx, [0x1403ab622]
mov rcx, rdi
call fcn.140168230
test rdi, rdi
je 0x14021e638
lea r15, [0x14025a620]
cmp rdi, r15
je 0x14021e638
mov rax, qword [rdi + 8]
test rax, rax
je 0x14021e630
mov edx, dword [rdi + 0x18]
mov byte [rax + rdx], 0
mov r8d, dword [rdi + 0x14]
test r8d, r8d
je 0x14021e5d3
test byte [rdi + 0x1d], 4
je 0x14021ebce
mov r14, qword [rdi + 8]
mov rcx, rdi
call fcn.14014fe50
test r14, r14
je 0x14021e638
cmp esi, r12d
jle 0x14021e670
lea rcx, [0x1403a4af8]
lea rdx, str.Auxiliary_rtree_columns_must_be_last
call fcn.14019b910
mov rsi, qword [rsp + 0x138]
mov rcx, r14
mov qword [rsi], rax
call fcn.14014fe50
mov esi, 1
sub dword [rbx + 0x48], 1
jne 0x14021e34f
mov rcx, rbx
call fcn.1401c96a0
jmp 0x14021e34f
mov rcx, rdi
call fcn.14014fe50
xor ecx, ecx
mov esi, 7
call fcn.14014fe50
jmp 0x14021e618
mov esi, 7
jmp 0x14021e34f
lock or qword [rsp], 0
jmp 0x14021e3d4
mov rcx, qword [rsp + 0x110]
mov rdx, r14
call fcn.140217e70
test eax, eax
mov esi, eax
jne 0x14021ea58
mov rcx, r14
call fcn.14014fe50
movzx eax, byte [rbx + 0x25]
mov edx, eax
shr dl, 1
cmp al, 1
mov byte [rbx + 0x24], dl
jbe 0x14021ea8c
cmp al, 0xa
ja 0x14021e858
lea rdx, str.Wrong_number_of_columns_for_an_rtree_table
test al, 1
jne 0x14021e85f
mov ecx, dword [rsp + 0x140]
lea eax, [rax*4 + 8]
mov rdx, qword [rbx + 0x30]
mov byte [rbx + 0x27], al
test ecx, ecx
jne 0x14021e87b
mov r8, qword [rbx + 0x38]
lea rcx, str.SELECT_length_data__FROM__q._q_node_WHERE_nodeno__1
call fcn.14019b910
test rax, rax
mov rdi, rax
je 0x14021ea16
mov rcx, qword [rsp + 0x110]
lea r8, [rbx + 0x20]
mov rdx, rax
call fcn.14021e270
test eax, eax
mov r14d, eax
jne 0x14021ea1c
cmp dword [rbx + 0x20], 0x1bf
jle 0x14021edc6
mov rcx, rdi
call fcn.14014fe50
mov rax, qword [rbp + 0x10]
mov rbp, qword [rbp + 8]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x110]
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 + 0x80], rax
lea rax, [rbx + 0x80]
mov rcx, qword [rsp + 0x110]
mov qword [rsp + 0x88], rax
lea rax, [rbx + 0x88]
mov qword [rsp + 0x90], rax
lea rax, [rbx + 0x90]
mov qword [rsp + 0x98], rax
lea rax, [rbx + 0x98]
mov qword [rsp + 0xa0], rax
lea rax, [rbx + 0xa0]
mov qword [rsp + 0xa8], rax
lea rax, [rbx + 0xa8]
mov qword [rsp + 0xb0], 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 + 0xb8], rax
call fcn.14021b600
test eax, eax
mov r14d, eax
je 0x14021ebde
cmp eax, 1
mov qword [rbx + 0x50], 0x100000
je 0x14021eadd
cmp byte [rbx + 0x29], 0
jne 0x14021ec56
mov esi, r14d
mov rcx, qword [rsp + 0x110]
call fcn.140194070
lea rcx, [0x1403a4af8]
mov rdx, rax
call fcn.14019b910
mov rdi, qword [rsp + 0x138]
mov qword [rdi], rax
jmp 0x14021e618
lea rdx, str.Too_many_columns_for_an_rtree_table
lea rcx, [0x1403a4af8]
call fcn.14019b910
mov rsi, qword [rsp + 0x138]
mov qword [rsi], rax
jmp 0x14021e613
lea rcx, str.PRAGMA__Q.page_size
mov dword [rsp + 0x80], 0
call fcn.14019b910
test rax, rax
mov rdi, rax
je 0x14021ea16
mov r8, qword [rsp + 0x60]
mov rdx, rax
mov rcx, qword [rsp + 0x110]
call fcn.14021e270
test eax, eax
mov r14d, eax
jne 0x14021ea1c
mov eax, dword [rsp + 0x80]
lea edx, [rax - 0x40]
movzx eax, byte [rbx + 0x27]
mov dword [rbx + 0x20], edx
imul eax, eax, 0x33
add eax, 4
cmp edx, eax
jle 0x14021e8dc
mov dword [rbx + 0x20], eax
mov rcx, rdi
call fcn.14014fe50
mov rax, qword [rsp + 0x110]
mov r12, qword [rbp + 0x10]
mov rbp, qword [rbp + 8]
mov rcx, rax
mov qword [rbx + 0x18], rax
mov qword [rsp + 0x58], r12
call fcn.140199c50
mov r9, r12
mov r8, rbp
lea rdx, str.CREATE_TABLE___w_.__w_rowid__rowid_INTEGER_PRIMARY_KEY_nodeno
mov rcx, rax
mov rdi, rax
call fcn.140168230
cmp byte [rbx + 0x29], 0
je 0x14021e947
nop dword [rax + rax]
lea rdx, str._a_d
mov r8d, r14d
mov rcx, rdi
call fcn.140168230
movzx eax, byte [rbx + 0x29]
add r14d, 1
cmp r14d, eax
jl 0x14021e928
mov r14, qword [rsp + 0x58]
lea rdx, str.__CREATE_TABLE___w_.__w_node__nodeno_INTEGER_PRIMARY_KEY_data__
mov r8, rbp
mov rcx, rdi
mov r9, r14
call fcn.140168230
mov r9, r14
mov r8, rbp
mov rcx, rdi
lea rdx, str.CREATE_TABLE___w_.__w_parent__nodeno_INTEGER_PRIMARY_KEY_parentnode__
call fcn.140168230
mov eax, dword [rbx + 0x20]
mov r9, r14
mov r8, rbp
lea rdx, str.INSERT_INTO___w_.__w_node_VALUES_1_zeroblob__d__
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.140168230
cmp rdi, r15
je 0x14021eba7
test rdi, rdi
je 0x14021eba7
mov rax, qword [rdi + 8]
test rax, rax
je 0x14021edb9
mov edx, dword [rdi + 0x18]
mov byte [rax + rdx], 0
mov edx, dword [rdi + 0x14]
test edx, edx
je 0x14021e9c9
test byte [rdi + 0x1d], 4
je 0x14021edf3
mov r14, qword [rdi + 8]
mov rcx, rdi
call fcn.14014fe50
test r14, r14
je 0x14021eba7
mov rcx, qword [rsp + 0x110]
xor r9d, r9d
xor r8d, r8d
mov rdx, r14
mov qword [rsp + 0x20], 0
call fcn.1401f6020
mov rcx, r14
mov edi, eax
call fcn.14014fe50
test edi, edi
je 0x14021e742
mov esi, edi
jmp 0x14021e828
mov r14d, 7
mov rcx, qword [rsp + 0x110]
call fcn.140194070
lea rcx, [0x1403a4af8]
mov rdx, rax
call fcn.14019b910
mov rsi, qword [rsp + 0x138]
mov rcx, rdi
mov qword [rsi], rax
mov esi, r14d
call fcn.14014fe50
jmp 0x14021e618
mov rcx, qword [rsp + 0x110]
call fcn.140194070
lea rcx, [0x1403a4af8]
mov rdx, rax
call fcn.14019b910
mov rdi, qword [rsp + 0x138]
mov rcx, r14
mov qword [rdi], rax
call fcn.14014fe50
jmp 0x14021e618
lea rdx, str.Too_few_columns_for_an_rtree_table
jmp 0x14021e85f
mov r14, qword [rsp + 0x78]
mov rcx, r14
call fcn.1401f4fe0
mov edx, 0x64
cmp eax, 0x64
je 0x14021ee13
mov rcx, r14
mov qword [rsp + 0x68], rdx
call fcn.1401c6e60
mov rcx, rdi
mov r14d, eax
call fcn.14014fe50
mov rdx, qword [rsp + 0x68]
test r14d, r14d
mov qword [rbx + 0x50], rdx
jne 0x14021e81b
lea r13, str.INSERT_OR_REPLACE_INTO__q._q_node_VALUES__1___2_
xor edi, edi
nop word cs:[rax + rax]
cmp rdi, 3
je 0x14021ebb8
mov rcx, qword [r13 + rdi*8]
mov r8, qword [rsp + 0x58]
mov rdx, rbp
call fcn.14019b910
test rax, rax
mov r12, rax
je 0x14021eba0
mov rax, qword [rsp + 0x60]
mov rdx, r12
mov r9d, 0x85
mov qword [rsp + 0x30], 0
mov rcx, qword [rsp + 0x110]
mov r8d, 0xffffffff
mov rax, qword [rax + rdi*8]
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], rax
call fcn.14020abb0
mov rcx, r12
mov r14d, eax
call fcn.14014fe50
lea edx, [rdi + 1]
cmp edx, 7
setle cl
test r14d, r14d
sete dl
add rdi, 1
test cl, dl
jne 0x14021eaf0
cmp byte [rbx + 0x29], 0
jne 0x14021ec56
mov esi, r14d
test esi, esi
jne 0x14021e828
mov rax, qword [rsp + 0x130]
mov qword [rax], rbx
jmp 0x14021e34f
xor ecx, ecx
call fcn.14014fe50
mov esi, 7
jmp 0x14021e828
cmp byte [rbx + 0x29], 0
lea rcx, str.INSERT_INTO__w_.__w_rowid__rowid_nodeno_VALUES__1__2_ON_CONFLICT_rowid_DO_UPDATE_SET_nodenoexcluded.nodeno
jne 0x14021eaff
jmp 0x14021eafa
mov rcx, rdi
call fcn.14016a670
mov r14, rax
jmp 0x14021e5d7
mov rdx, qword [rbx + 0x30]
lea rcx, str.SELECT_stat_FROM__Q.sqlite_stat1_WHERE_tbl___q_rowid
mov r8, qword [rbx + 0x38]
call fcn.14019b910
test rax, rax
mov rdi, rax
je 0x14021ecee
mov rcx, qword [rsp + 0x110]
lea rax, [rsp + 0x78]
mov rdx, rdi
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 fcn.14020abb0
test eax, eax
mov r14d, eax
je 0x14021ea98
mov rcx, rdi
call fcn.14014fe50
mov qword [rbx + 0x50], 0x64
jmp 0x14021e81b
cmp r14d, 7
je 0x14021eba7
mov r14, qword [rsp + 0x58]
lea rcx, str.SELECT__FROM___w_.__w_rowid__WHERE_rowid_1
mov rdx, rbp
mov r8, r14
call fcn.14019b910
test rax, rax
mov qword [rbx + 0x60], rax
je 0x14021eba7
mov rcx, qword [rsp + 0x110]
call fcn.140199c50
mov r8, rbp
mov r9, r14
lea rdx, str.UPDATE___w_.__w_rowid_SET
mov rcx, rax
mov rdi, rax
call fcn.140168230
cmp byte [rbx + 0x29], 0
lea rbp, str.a_d__d
je 0x14021ecfb
lea r9d, [rsi + 2]
mov r8d, esi
mov rdx, rbp
mov rcx, rdi
add esi, 1
call fcn.140168230
movzx eax, byte [rbx + 0x29]
cmp esi, eax
jge 0x14021ecfb
mov eax, dword [rdi + 0x18]
lea edx, [rax + 1]
cmp edx, dword [rdi + 0x10]
jae 0x14021ed9f
add rax, qword [rdi + 8]
mov dword [rdi + 0x18], edx
mov byte [rax], 0x2c
jmp 0x14021ecb6
mov qword [rbx + 0x50], 0x64
jmp 0x14021eba7
lea rdx, str._WHERE_rowid_1
mov rcx, rdi
call fcn.140168230
test rdi, rdi
je 0x14021eba7
cmp rdi, r15
je 0x14021eba7
mov rax, qword [rdi + 8]
test rax, rax
je 0x14021edb9
mov edx, dword [rdi + 0x18]
mov byte [rax + rdx], 0
mov eax, dword [rdi + 0x14]
test eax, eax
je 0x14021ed41
test byte [rdi + 0x1d], 4
je 0x14021ee03
mov rbp, qword [rdi + 8]
mov rcx, rdi
call fcn.14014fe50
test rbp, rbp
je 0x14021eba7
lea rax, [rbx + 0xb8]
mov r9d, 0x85
mov rdx, rbp
mov rcx, qword [rsp + 0x110]
mov qword [rsp + 0x30], 0
mov r8d, 0xffffffff
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
call fcn.14020abb0
mov rcx, rbp
mov esi, eax
call fcn.14014fe50
jmp 0x14021eb87
lea rdx, [0x1403a3dcf]
mov r8d, 1
mov rcx, rdi
call fcn.14016e8e0
jmp 0x14021ecb6
mov rcx, rdi
call fcn.14014fe50
jmp 0x14021eba7
mov rdx, qword [rbx + 0x38]
lea rcx, str.undersize_RTree_blobs_in___q_node_
call fcn.14019b910
mov rsi, qword [rsp + 0x138]
mov rcx, rdi
mov qword [rsi], rax
mov esi, 0x10b
call fcn.14014fe50
jmp 0x14021e618
mov rcx, rdi
call fcn.14016a670
mov r14, rax
jmp 0x14021e9cd
mov rcx, rdi
call fcn.14016a670
mov rbp, rax
jmp 0x14021ed45
xor edx, edx
mov rcx, r14
call fcn.140160a60
mov edx, 0x64
cmp rax, rdx
cmovge rdx, rax
jmp 0x14021eab3