Function at 0x140194350
Capabilities:
Reference sql statements

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x158
mov rbp, qword [rcx + 0x18]
lea rax, [rcx + 0x10]
mov r14d, edx
xor edx, edx
mov qword [rbp + 0xa8], rax
mov rsi, rcx
mov rbx, r8
mov rdi, r9
mov dword [rsp + 0xd0], edx
call sym.fts5TripCursors
mov rcx, qword [r8]
call sym.sqlite3_value_type
cmp eax, 5
mov r13d, eax
jne 0x14019547b
mov eax, dword [rbp + 0x18]
add eax, 2
cdqe
mov rcx, qword [r8 + rax*8]
call sym.sqlite3_value_type
cmp eax, 5
je 0x14019547b
call sym.sqlite3_value_text
cmp dword [rbp + 0x40], 0
mov rdi, rax
je 0x140194410
lea rcx, str.delete
mov rdx, rax
call sym.sqlite3_stricmp
test eax, eax
mov r8d, eax
jne 0x140194410
mov rcx, qword [rbx + 8]
call sym.sqlite3_value_type
dec eax
jne 0x140194403
call sym.sqlite3VdbeIntValue
mov rcx, qword [rsi + 0x28]
lea r8, [rbx + 0x10]
mov rdx, rax
call sym.sqlite3Fts5StorageDelete
mov r8d, eax
mov dword [rsp + 0xd0], r8d
jmp 0x140195614
movsxd rax, dword [rbp + 0x18]
lea rcx, str.delete_all
mov rdx, rdi
mov r11, qword [rsi + 0x18]
mov rbx, qword [rbx + rax*8 + 0x18]
xor eax, eax
mov dword [rsp + 0xd4], eax
call sym.sqlite3_stricmp
test eax, eax
jne 0x140194455
cmp dword [r11 + 0x40], 0
lea rdx, str.delete_all_may_only_be_used_with_a_contentless_or_external_content_fts5_table
je 0x14019447a
mov rcx, qword [rsi + 0x28]
call sym.sqlite3Fts5StorageDeleteAll
jmp 0x14019546b
lea rcx, str.rebuild
mov rdx, rdi
call sym.sqlite3_stricmp
test eax, eax
jne 0x1401946a7
cmp dword [r11 + 0x40], 1
jne 0x14019448d
lea rdx, str.rebuild_may_not_be_used_with_a_contentless_fts5_table
mov rcx, rsi
call sym.fts5SetVtabError
mov r14d, 1
jmp 0x14019546e
mov rbx, qword [rsi + 0x28]
xor eax, eax
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], rax
xor eax, eax
mov qword [rsp + 0x108], rax
mov rcx, rbx
mov r12, qword [rbx]
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x128], rbx
call sym.sqlite3Fts5StorageDeleteAll
test eax, eax
mov dword [rsp + 0xf8], eax
jne 0x14019450a
mov edx, 1
mov rcx, rbx
call sym.fts5StorageLoadTotals
test eax, eax
mov dword [rsp + 0xf8], eax
jne 0x14019450a
xor r9d, r9d
mov edx, 0xa
mov rcx, rbx
lea r8, [rsp + 0x108]
call sym.fts5StorageGetStmt
mov dword [rsp + 0xf8], eax
lea r13, [sym.fts5StorageInsertCallback]
lea r14, [rsp + 0x128]
mov edi, dword [rsp + 0xf8]
mov rax, qword [rsp + 0x108]
test edi, edi
mov qword [rsp + 0x58], rax
je 0x140194555
mov rcx, qword [rsp + 0x118]
call sym.sqlite3_free
mov rcx, qword [rsp + 0x58]
call sym.sqlite3_reset
test edi, edi
je 0x140194680
jmp 0x14019469a
mov rcx, qword [rsp + 0x58]
call sym.sqlite3_step
cmp eax, 0x64
jne 0x140194531
mov rcx, qword [rsp + 0x58]
lea r15, [rsp + 0x118]
xor edx, edx
call sym.sqlite3_column_int64
mov rcx, qword [rbx + 8]
xor edx, edx
mov rbp, rax
xor eax, eax
mov r8, rbp
mov dword [rsp + 0x120], eax
call sym.sqlite3Fts5IndexBeginWrite
mov dword [rsp + 0xf8], eax
mov eax, dword [rsp + 0xf8]
mov dword [rsp + 0x130], edi
test eax, eax
jne 0x140194655
cmp dword [r12 + 0x18], edi
jle 0x140194655
mov rdx, qword [r12 + 0x28]
xor eax, eax
mov dword [rsp + 0x134], eax
movsxd rax, edi
cmp byte [rdx + rax], 0
jne 0x14019461d
mov rcx, qword [rsp + 0x58]
lea edx, [rdi + 1]
call sym.sqlite3_column_text
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0x130]
lea edx, [rax + 1]
call sym.sqlite3_column_bytes
mov r8, qword [rsp + 0x60]
mov qword [rsp + 0x28], r13
mov rcx, r12
mov r9d, eax
mov qword [rsp + 0x20], r14
mov edx, 4
call sym.sqlite3Fts5Tokenize
mov dword [rsp + 0xf8], eax
movsxd r8, dword [rsp + 0x134]
lea rcx, [rsp + 0xf8]
mov rdx, r15
call sym.sqlite3Fts5BufferAppendVarint
movsxd rdx, dword [rsp + 0x130]
mov rax, qword [rbx + 0x20]
movsxd rcx, dword [rsp + 0x134]
lea edi, [rdx + 1]
add qword [rax + rdx*8], rcx
jmp 0x140194599
inc qword [rbx + 0x18]
test eax, eax
jne 0x140194519
lea r8, [rsp + 0x118]
mov rdx, rbp
mov rcx, rbx
call sym.fts5StorageInsertDocsize
mov dword [rsp + 0xf8], eax
jmp 0x140194511
test eax, eax
mov dword [rsp + 0xf8], eax
jne 0x14019469a
mov rcx, rbx
call sym.fts5StorageSaveTotals
mov dword [rsp + 0xf8], eax
mov r14d, dword [rsp + 0xf8]
jmp 0x14019546e
lea rcx, str.optimize
mov rdx, rdi
call sym.sqlite3_stricmp
test eax, eax
jne 0x14019478d
mov rax, qword [rsi + 0x28]
xor edi, edi
mov rbx, qword [rax + 8]
mov qword [rsp + 0x128], rdi
mov rcx, rbx
call sym.fts5IndexFlush
mov rcx, rbx
call sym.fts5StructureRead
mov rcx, rbx
mov rdi, rax
call sym.fts5StructureInvalidate
test rdi, rdi
je 0x140194703
mov rdx, rdi
mov rcx, rbx
call sym.fts5IndexOptimizeStruct
mov qword [rsp + 0x128], rax
mov rcx, rdi
call sym.fts5StructureRelease
mov rdx, qword [rsp + 0x128]
test rdx, rdx
je 0x14019486a
xor eax, eax
mov rbp, rax
inc rax
mov rcx, rax
shl rcx, 4
cmp dword [rdx + rcx + 0xc], 0
je 0x14019471e
movsxd rdi, ebp
inc rdi
shl rdi, 4
cmp dword [rbx + 0x34], 0
mov r12, qword [rsp + 0x128]
jne 0x14019477a
cmp dword [r12 + rdi + 0xc], 0
jle 0x14019477a
lea rdx, [rsp + 0x128]
mov r8d, ebp
mov rcx, rbx
mov dword [rsp + 0x118], 0x3e8
lea r9, [rsp + 0x118]
call sym.fts5IndexMergeLevel
jmp 0x14019473c
mov rcx, rbx
mov rdx, r12
call sym.fts5StructureWrite
mov rcx, r12
jmp 0x140194865
lea rcx, [0x1402f28ec]
mov rdx, rdi
call sym.sqlite3_stricmp
test eax, eax
jne 0x14019487a
mov rcx, rbx
call sym.sqlite3VdbeIntValue
mov rbp, rax
mov rax, qword [rsi + 0x28]
mov rbx, qword [rax + 8]
mov rcx, rbx
call sym.fts5StructureRead
test rax, rax
mov rdi, rax
mov qword [rsp + 0x128], rax
je 0x14019486a
mov rax, qword [rbx]
mov rcx, rbx
mov dword [rsp + 0x60], ebp
mov r9d, dword [rax + 0x90]
mov dword [rsp + 0x58], r9d
call sym.fts5StructureInvalidate
test ebp, ebp
mov r9d, dword [rsp + 0x58]
mov r8d, dword [rsp + 0x60]
jns 0x140194826
mov rdx, rdi
mov rcx, rbx
call sym.fts5IndexOptimizeStruct
mov rcx, rdi
mov r12, rax
call sym.fts5StructureRelease
mov r8d, ebp
mov qword [rsp + 0x128], r12
mov r9d, 2
neg r8d
mov rax, qword [rsp + 0x128]
test rax, rax
je 0x14019485d
cmp dword [rax + 0x14], 0
je 0x14019485d
lea rdx, [rsp + 0x128]
mov rcx, rbx
call sym.fts5IndexMerge
test eax, eax
je 0x14019485d
mov rdx, qword [rsp + 0x128]
mov rcx, rbx
call sym.fts5StructureWrite
mov rcx, qword [rsp + 0x128]
call sym.fts5StructureRelease
xor r11d, r11d
mov r14d, dword [rbx + 0x34]
mov dword [rbx + 0x34], r11d
jmp 0x14019546e
lea rcx, [0x1402f28f2]
mov rdx, rdi
call sym.sqlite3_stricmp
test eax, eax
mov dword [rsp + 0x88], eax
jne 0x14019540b
mov rcx, rbx
mov r14d, 7
call sym.sqlite3VdbeIntValue
mov rbp, qword [rsi + 0x28]
mov ecx, 8
lea r13, [rsp + 0x128]
mov r12, rax
mov eax, dword [rsp + 0x88]
mov rdi, r13
mov rbx, qword [rbp]
rep stosd dword [rdi], eax
movsxd rcx, dword [rbx + 0x18]
mov qword [rsp + 0x148], rbx
imul rcx, rcx, 0xc
call sym.sqlite3_malloc64
test rax, rax
mov qword [rsp + 0x70], rax
je 0x14019546e
movsxd rcx, dword [rbx + 0x18]
xor eax, eax
mov rdi, qword [rsp + 0x70]
shl rcx, 3
rep stosb byte [rdi], al
mov eax, dword [rbx + 0x40]
test eax, eax
je 0x140194917
cmp eax, 2
jne 0x140194c00
test r12d, r12d
je 0x140194c00
xor r9d, r9d
mov edx, 0xa
mov rcx, rbp
lea r8, [rsp + 0xe8]
call sym.fts5StorageGetStmt
test eax, eax
mov r14d, eax
jne 0x1401953ff
lea rax, [rsp + 0x118]
mov qword [rsp + 0x60], rax
lea r15, [sym.fts5StorageIntegrityCallback]
mov rax, qword [rsp + 0xe8]
mov rcx, rax
mov qword [rsp + 0x58], rax
call sym.sqlite3_step
cmp eax, 0x64
jne 0x140194b09
mov rcx, qword [rsp + 0x58]
xor edx, edx
call sym.sqlite3_column_int64
xor r10d, r10d
cmp dword [rbx + 0x58], 0
mov rdx, rax
mov qword [rsp + 0x128], rax
mov dword [rsp + 0x134], r10d
jne 0x1401949cc
xor r14d, r14d
cmp dword [rbx + 0x5c], 1
jne 0x1401949de
lea rcx, [rsp + 0x118]
xor r9d, r9d
mov edx, 0x1000
mov dword [rsp + 0x118], r9d
call sym.sqlite3Fts5MallocZero
mov r14d, dword [rsp + 0x118]
mov qword [rsp + 0x140], rax
jmp 0x1401949de
mov r8, rdi
mov rcx, rbp
call sym.sqlite3Fts5StorageDocsize
test eax, eax
mov r14d, eax
je 0x140194994
xor r12d, r12d
test r14d, r14d
jne 0x140194ae7
cmp dword [rbx + 0x18], r12d
jle 0x140194ae7
mov rax, qword [rbx + 0x28]
cmp byte [rax + r12], 0
jne 0x140194adf
xor r8d, r8d
cmp dword [rbx + 0x5c], 2
mov dword [rsp + 0x130], r12d
mov dword [rsp + 0x134], r8d
je 0x140194a68
mov rcx, qword [rsp + 0x58]
lea r14d, [r12 + 1]
mov edx, r14d
call sym.sqlite3_column_text
mov rcx, qword [rsp + 0x58]
mov edx, r14d
mov qword [rsp + 0x68], rax
call sym.sqlite3_column_bytes
mov r8, qword [rsp + 0x68]
mov qword [rsp + 0x28], r15
mov rcx, rbx
mov r9d, eax
mov qword [rsp + 0x20], r13
mov edx, 4
call sym.sqlite3Fts5Tokenize
test eax, eax
mov r14d, eax
je 0x140194a97
jmp 0x140194ab1
xor ecx, ecx
mov edx, 0x1000
mov dword [rsp + 0x118], ecx
mov rcx, qword [rsp + 0x60]
call sym.sqlite3Fts5MallocZero
mov r14d, dword [rsp + 0x118]
mov qword [rsp + 0x140], rax
test r14d, r14d
jne 0x140194ab1
jmp 0x140194a1c
cmp dword [rbx + 0x58], 0
je 0x140194ab1
mov eax, dword [rsp + 0x134]
cmp dword [rdi + r12*4], eax
mov eax, 0x10b
cmovne r14d, eax
mov rdx, qword [rsp + 0x70]
movsxd rax, dword [rsp + 0x134]
add qword [rdx + r12*8], rax
cmp dword [rbx + 0x5c], 2
jne 0x140194adf
mov rcx, qword [rsp + 0x140]
call sym.sqlite3Fts5TermsetFree
xor edx, edx
mov qword [rsp + 0x140], rdx
inc r12
jmp 0x1401949e1
mov rcx, qword [rsp + 0x140]
call sym.sqlite3Fts5TermsetFree
xor eax, eax
test r14d, r14d
mov qword [rsp + 0x140], rax
je 0x14019494e
jmp 0x140194b0c
xor r14d, r14d
mov rcx, qword [rsp + 0x58]
call sym.sqlite3_reset
test r14d, r14d
jne 0x1401953ff
test eax, eax
mov r14d, eax
jne 0x1401953ff
mov rcx, rbp
xor edx, edx
call sym.fts5StorageLoadTotals
mov ecx, 0x10b
mov r14d, eax
xor eax, eax
test r14d, r14d
jne 0x1401953ff
cmp dword [rbx + 0x18], eax
jle 0x140194b66
mov r8, qword [rbp + 0x20]
mov rdi, qword [rsp + 0x70]
mov rdi, qword [rdi + rax*8]
cmp qword [r8 + rax*8], rdi
cmovne r14d, ecx
inc rax
jmp 0x140194b3e
cmp dword [rbx + 0x40], 0
jne 0x140194ba7
mov rcx, qword [rbp]
lea rdx, str.content
xor eax, eax
lea r8, [rsp + 0x118]
mov qword [rsp + 0x118], rax
call sym.fts5StorageCount.constprop.0.isra.0
test eax, eax
mov r14d, eax
jne 0x1401953ff
mov rax, qword [rsp + 0x118]
cmp qword [rbp + 0x18], rax
jne 0x140194bf5
cmp dword [rbx + 0x58], 0
jne 0x140194bba
mov dword [rsp + 0x98], 1
jmp 0x140194c09
mov rcx, qword [rbp]
lea rdx, str.docsize
xor eax, eax
lea r8, [rsp + 0x118]
mov qword [rsp + 0x118], rax
call sym.fts5StorageCount.constprop.0.isra.0
test eax, eax
mov r14d, eax
jne 0x1401953ff
mov rax, qword [rsp + 0x118]
cmp qword [rbp + 0x18], rax
je 0x140194bad
mov r14d, 0x10b
jmp 0x1401953ff
xor eax, eax
mov dword [rsp + 0x98], eax
mov rbx, qword [rbp + 8]
mov rax, qword [rsp + 0x138]
mov rcx, rbx
mov qword [rsp + 0xa8], rax
mov rax, qword [rbx]
mov eax, dword [rax + 0x5c]
mov dword [rsp + 0xb0], eax
xor eax, eax
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rax
call sym.fts5StructureRead
test rax, rax
mov qword [rsp + 0x78], rax
je 0x1401953f4
add rax, 0x1c
mov qword [rsp + 0x90], rax
lea rax, [rsp + 0xdc]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x78]
mov edi, dword [rsp + 0x88]
cmp edi, dword [rax + 0x14]
jge 0x140195208
xor r13d, r13d
mov qword [rsp + 0x80], r13
mov rax, qword [rsp + 0x90]
mov edi, dword [rsp + 0x80]
cmp dword [rax], edi
jle 0x1401951f3
mov rdi, qword [rsp + 0x90]
xor r15d, r15d
imul rax, qword [rsp + 0x80], 0xc
mov qword [rsp + 0xf0], r15
add rax, qword [rdi + 4]
mov qword [rsp + 0x58], rax
mov rdi, qword [rsp + 0x58]
mov rax, qword [rbx]
mov edx, dword [rdi + 4]
test edx, edx
jne 0x140194ce3
inc qword [rsp + 0x80]
jmp 0x140194c8e
lea edi, [rdx - 1]
mov r8, qword [rax + 0x10]
mov dword [rsp + 0x9c], edi
mov rdi, qword [rsp + 0x58]
lea rcx, str.SELECT_segid__term___pgno__1____pgno1__FROM__Q._q_idx_WHERE_segid_d_ORDER_BY_1__2
mov rdx, qword [rax + 8]
mov edi, dword [rdi + 8]
mov dword [rsp + 0x8c], edi
mov rdi, qword [rsp + 0x58]
mov r9d, dword [rdi]
call sym.sqlite3_mprintf
lea rdx, [rsp + 0xf0]
mov rcx, rbx
mov r8, rax
call sym.fts5IndexPrepareStmt
lea rax, [rsp + 0xe0]
mov qword [rsp + 0xb8], rax
mov r12d, dword [rbx + 0x34]
mov rax, qword [rsp + 0xf0]
test r12d, r12d
mov qword [rsp + 0x68], rax
je 0x140194d6d
mov rcx, qword [rsp + 0x68]
call sym.sqlite3_finalize
cmp dword [rbx + 0x34], 0
jne 0x140194cd9
mov dword [rbx + 0x34], eax
jmp 0x140194cd9
mov rcx, rax
call sym.sqlite3_step
cmp eax, 0x64
jne 0x140194d51
mov rcx, qword [rsp + 0x68]
mov edx, 1
call sym.sqlite3_column_blob
mov rcx, qword [rsp + 0x68]
mov edx, 1
mov qword [rsp + 0xa0], rax
call sym.sqlite3_column_bytes
mov rcx, qword [rsp + 0x68]
mov edx, 2
movsxd rbp, eax
call sym.sqlite3_column_int
mov rcx, qword [rsp + 0x68]
mov edx, 3
mov dword [rsp + 0x60], eax
call sym.sqlite3_column_int
mov edi, dword [rsp + 0x60]
mov dword [rsp + 0xb4], eax
mov rax, qword [rsp + 0x58]
cmp edi, dword [rax + 4]
jl 0x140194d3b
movsxd rdx, dword [rax]
movsxd rax, edi
mov rcx, rbx
shl rdx, 0x25
add rdx, rax
call sym.fts5LeafRead
test rax, rax
mov rdi, rax
je 0x140194d51
mov r13d, dword [rax + 0xc]
cmp dword [rax + 8], r13d
jg 0x140194e15
mov dword [rbx + 0x34], 0x10b
jmp 0x140195056
mov rcx, rax
call sym.fts5LeafFirstTermOff
mov r10, qword [rdi]
mov r15d, eax
mov ax, word [r10]
xchg al, ah
movzx eax, ax
cmp r15d, eax
jle 0x140194e94
cmp r13d, r15d
jle 0x140194e94
movsxd rcx, r15d
mov qword [rsp + 0xc8], r10
lea rdx, [rsp + 0xd8]
add rcx, r10
call sym.sqlite3Fts5GetVarint32
mov r14d, dword [rsp + 0xd8]
cmp ebp, r14d
movsxd r8, r14d
cmovle r8, rbp
test r8d, r8d
jle 0x140194e8b
mov r10, qword [rsp + 0xc8]
add r15d, eax
mov rdx, qword [rsp + 0xa0]
movsxd r15, r15d
lea rcx, [r10 + r15]
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x140194e90
mov eax, r14d
sub eax, ebp
test eax, eax
jns 0x140194e9b
mov dword [rbx + 0x34], 0x10b
lea rax, [rsp + 0xe4]
xor r14d, r14d
mov qword [rsp + 0x108], r14
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x118], r14
mov qword [rsp + 0x120], r14
mov qword [rsp + 0xa0], rax
cmp r13d, dword [rdi + 8]
jge 0x14019503c
cmp dword [rbx + 0x34], 0
jne 0x14019503c
mov r14, qword [rdi]
movsxd rcx, r13d
mov rdx, qword [rsp + 0xc0]
add rcx, r14
call sym.sqlite3Fts5GetVarint32
mov r15d, dword [rdi + 0xc]
add r13d, eax
mov eax, dword [rsp + 0xdc]
add r12d, eax
cmp r12d, r15d
jge 0x14019500f
cmp eax, r12d
movsxd rcx, r12d
jne 0x140194f5e
mov rdx, qword [rsp + 0xa0]
add rcx, r14
call sym.sqlite3Fts5GetVarint32
mov r8d, dword [rsp + 0xe4]
add eax, r12d
lea edx, [rax + r8]
cmp r15d, edx
jl 0x14019500f
lea rdx, [rsp + 0x108]
cdqe
lea rcx, [rbx + 0x34]
lea r9, [r14 + rax]
call sym.sqlite3Fts5BufferSet
jmp 0x140195016
mov rdx, qword [rsp + 0xb8]
add rcx, r14
call sym.sqlite3Fts5GetVarint32
mov rdx, qword [rsp + 0xa0]
lea ebp, [r12 + rax]
movsxd rcx, ebp
add rcx, r14
call sym.sqlite3Fts5GetVarint32
mov edx, dword [rsp + 0xe0]
cmp dword [rsp + 0x110], edx
jl 0x14019500f
mov r8d, dword [rsp + 0xe4]
add ebp, eax
lea eax, [rbp + r8]
cmp r15d, eax
jl 0x14019500f
mov dword [rsp + 0x110], edx
lea rcx, [rbx + 0x34]
movsxd rbp, ebp
lea rdx, [rsp + 0x108]
lea r9, [r14 + rbp]
call sym.sqlite3Fts5BufferAppendBlob
cmp dword [rbx + 0x34], 0
jne 0x140195016
movsxd rbp, dword [rsp + 0x120]
mov r14d, dword [rsp + 0x110]
mov rcx, qword [rsp + 0x108]
cmp ebp, r14d
movsxd r8, r14d
cmovle r8, rbp
test r8d, r8d
jle 0x140195006
mov rdx, qword [rsp + 0x118]
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x14019500b
mov eax, r14d
sub eax, ebp
test eax, eax
jg 0x140195016
mov dword [rbx + 0x34], 0x10b
mov r9, qword [rsp + 0x108]
lea rdx, [rsp + 0x118]
mov r8d, dword [rsp + 0x110]
lea rcx, [rbx + 0x34]
call sym.sqlite3Fts5BufferSet
jmp 0x140194ece
lea rcx, [rsp + 0x108]
call sym.sqlite3Fts5BufferFree
lea rcx, [rsp + 0x118]
call sym.sqlite3Fts5BufferFree
mov rcx, rdi
call sym.sqlite3_free
cmp dword [rbx + 0x34], 0
jne 0x140194d51
mov ebp, dword [rsp + 0x9c]
inc ebp
movsxd r12, ebp
mov edi, dword [rbx + 0x34]
test edi, edi
jne 0x140194d51
cmp dword [rsp + 0x60], ebp
mov rax, qword [rsp + 0x58]
jle 0x1401950da
movsxd rdx, dword [rax]
mov rcx, rbx
shl rdx, 0x25
add rdx, r12
call sym.fts5DataRead
test rax, rax
mov rcx, rax
je 0x1401950ce
mov eax, dword [rax + 8]
cmp dword [rcx + 0xc], eax
jge 0x1401950b3
mov dword [rbx + 0x34], 0x10b
mov eax, dword [rsp + 0x8c]
cmp ebp, eax
jle 0x1401950ce
mov rax, qword [rcx]
cmp word [rax], 0
je 0x1401950ce
mov dword [rbx + 0x34], 0x10b
call sym.sqlite3_free
inc ebp
inc r12
jmp 0x140195074
cmp dword [rsp + 0xb4], 0
je 0x1401951d9
mov r13d, dword [rax]
lea r15, [rsp + 0x118]
xor edx, edx
mov rcx, rbx
mov r9d, dword [rsp + 0x60]
mov r8d, r13d
shl r13, 0x25
call sym.fts5DlidxIterInit
mov r14d, dword [rsp + 0x60]
mov rbp, rax
cmp dword [rbx + 0x34], 0
jne 0x14019511d
cmp dword [rbp + 0x14], 0
je 0x140195131
mov rcx, rbp
call sym.fts5DlidxIterFree
mov dword [rsp + 0x8c], edi
jmp 0x1401951e3
lea edi, [r14 + 1]
movsxd r12, edi
add r12, r13
mov r14d, dword [rbp + 0x1c]
cmp edi, r14d
jge 0x140195173
mov rcx, rbx
mov rdx, r12
call sym.fts5DataRead
test rax, rax
mov rcx, rax
je 0x14019516c
mov rax, qword [rax]
cmp word [rax], 0
je 0x140195167
mov dword [rbx + 0x34], 0x10b
call sym.sqlite3_free
inc edi
inc r12
jmp 0x14019513b
movsxd rdx, r14d
mov rcx, rbx
add rdx, r13
call sym.fts5DataRead
test rax, rax
mov r12, rax
je 0x1401951c6
mov rcx, qword [rax]
mov ax, word [rcx]
xchg al, ah
movzx edx, ax
cmp edx, dword [r12 + 0xc]
jge 0x1401951b7
movzx eax, ax
mov rdx, r15
add rcx, rax
call sym.sqlite3Fts5GetVarint
mov rax, qword [rsp + 0x118]
cmp qword [rbp + 0x20], rax
je 0x1401951be
mov dword [rbx + 0x34], 0x10b
mov rcx, r12
call sym.sqlite3_free
xor r8d, r8d
mov rdx, rbp
mov rcx, rbx
call sym.fts5DlidxIterNextR.isra.0
jmp 0x140195111
mov eax, dword [rax + 8]
mov dword [rsp + 0x8c], eax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x9c], eax
jmp 0x140194d3b
inc dword [rsp + 0x88]
add qword [rsp + 0x90], 0x10
jmp 0x140194c6e
mov rdx, qword [rsp + 0x78]
xor ebp, ebp
xor edi, edi
xor r12d, r12d
mov dword [rsp + 0x28], ebp
xor r9d, r9d
mov r8d, 0x20
mov rcx, rbx
lea rax, [rsp + 0x108]
mov dword [rsp + 0x38], edi
xor ebp, ebp
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x30], 0xffffffff
mov qword [rsp + 0x20], r12
call sym.fts5MultiIterNew
lea rax, [rsp + 0xf8]
mov qword [rsp + 0x58], rax
lea rax, [rbx + 0x34]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x118]
mov qword [rsp + 0x68], rax
cmp dword [rbx + 0x34], 0
mov rdi, qword [rsp + 0x108]
jne 0x140195280
cmp byte [rdi + 0x14], 0
je 0x140195297
mov rcx, rdi
call sym.fts5MultiIterFree
cmp dword [rbx + 0x34], 0
je 0x1401953c2
jmp 0x1401953dd
mov rax, qword [rdi + 0x58]
xor r9d, r9d
xor r10d, r10d
mov qword [rsp + 0x118], r9
mov dword [rsp + 0xf0], r10d
movzx edx, word [rax + 4]
movzx eax, dx
imul rax, rax, 0x78
add rax, rdi
cmp dword [rsp + 0xb0], 1
mov r12, qword [rax + 0xc8]
mov r13d, dword [rax + 0xc0]
mov r14, qword [rax + 0xb8]
jne 0x140195313
xor ecx, ecx
mov rdx, rdi
call sym.fts5MultiIterIsEmpty.isra.0
test eax, eax
jne 0x1401953ac
mov dword [rsp + 0x28], r13d
or r9d, 0xffffffff
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], r14
mov rcx, r12
call sym.sqlite3Fts5IndexEntryCksum
xor rbp, rax
jmp 0x1401953ac
imul rdx, rdx, 0x78
mov r9, qword [rsp + 0x58]
xor r11d, r11d
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x100], r11d
lea r15, [rsp + 0xf0]
lea rdx, [rdi + rdx + 0x60]
call sym.fts5SegiterPoslist
mov rdx, qword [rsp + 0x58]
lea r9, [0x1402f2958]
mov r8d, 4
mov rcx, qword [rsp + 0x60]
call sym.sqlite3Fts5BufferAppendBlob
mov r9, qword [rsp + 0x68]
mov r8, r15
mov edx, dword [rsp + 0x100]
mov rcx, qword [rsp + 0xf8]
call sym.sqlite3Fts5PoslistNext64
test eax, eax
jne 0x1401953ac
mov rdx, qword [rsp + 0x118]
mov dword [rsp + 0x28], r13d
or r9d, 0xffffffff
mov rcx, r12
mov qword [rsp + 0x20], r14
mov r8d, edx
shr rdx, 0x20
and r8d, 0x7fffffff
call sym.sqlite3Fts5IndexEntryCksum
xor rbp, rax
jmp 0x14019535b
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call sym.fts5MultiIterNext
jmp 0x14019526c
cmp qword [rsp + 0xa8], rbp
je 0x1401953dd
cmp dword [rsp + 0x98], 0
je 0x1401953dd
mov dword [rbx + 0x34], 0x10b
mov rcx, qword [rsp + 0x78]
call sym.fts5StructureRelease
lea rcx, [rsp + 0xf8]
call sym.sqlite3Fts5BufferFree
xor r8d, r8d
mov r14d, dword [rbx + 0x34]
mov dword [rbx + 0x34], r8d
mov rcx, qword [rsp + 0x70]
call sym.sqlite3_free
jmp 0x14019546e
mov rbp, qword [rsi + 0x20]
mov rcx, rbp
call sym.fts5StructureRead
mov rcx, rax
call sym.fts5StructureRelease
mov r14d, dword [rbp + 0x34]
xor ecx, ecx
mov dword [rbp + 0x34], ecx
test r14d, r14d
jne 0x14019546e
mov rcx, qword [rsi + 0x18]
lea r9, [rsp + 0xd4]
mov r8, rbx
mov rdx, rdi
call sym.sqlite3Fts5ConfigSetValue
test eax, eax
mov r14d, eax
jne 0x14019546e
cmp dword [rsp + 0xd4], 0
jne 0x140194482
mov rcx, qword [rsi + 0x28]
xor r9d, r9d
mov r8, rbx
mov rdx, rdi
call sym.sqlite3Fts5StorageConfigValue
mov r14d, eax
mov dword [rsp + 0xd0], r14d
jmp 0x140195614
cmp dword [rbp + 0x40], 0
mov r12d, 4
jne 0x140195493
mov rcx, qword [rbp]
call sym.sqlite3_vtab_on_conflict
mov r12d, eax
cmp r13d, 1
jne 0x1401954dd
mov rax, qword [rsi + 0x18]
cmp dword [rax + 0x40], 1
jne 0x1401954dd
mov r8, qword [rbp + 0x10]
cmp r14d, 2
lea rax, str.UPDATE
lea rdx, str.DELETE_from
cmovge rdx, rax
lea rcx, str.cannot__s_contentless_fts5_table:__s
call sym.sqlite3_mprintf
mov dword [rsp + 0xd0], 1
mov qword [rsi + 0x10], rax
jmp 0x140195614
dec r14d
jne 0x1401954fe
mov rcx, qword [rbx]
call sym.sqlite3VdbeIntValue
mov rcx, qword [rsi + 0x28]
xor r8d, r8d
mov rdx, rax
call sym.sqlite3Fts5StorageDelete
jmp 0x1401955e3
mov r14, qword [rbx + 8]
mov rcx, r14
call sym.sqlite3_value_numeric_type
mov edx, eax
and edx, 0xfffffffb
dec edx
je 0x140195523
mov dword [rsp + 0xd0], 0x14
jmp 0x140195614
dec eax
sete r15b
dec r13d
je 0x140195558
cmp r12d, 5
jne 0x1401955fe
test r15b, r15b
je 0x1401955fe
mov rcx, r14
call sym.sqlite3VdbeIntValue
mov rcx, qword [rsi + 0x28]
xor r8d, r8d
mov rdx, rax
jmp 0x1401955f2
mov rcx, qword [rbx]
call sym.sqlite3VdbeIntValue
mov rcx, r14
mov rbp, rax
call sym.sqlite3VdbeIntValue
mov rcx, qword [rsi + 0x28]
cmp rbp, rax
mov r13, rax
je 0x1401955ec
test r15b, r15b
je 0x1401955ec
cmp r12d, 5
jne 0x1401955a4
xor r8d, r8d
mov rdx, rbp
call sym.sqlite3Fts5StorageDelete
test eax, eax
mov dword [rsp + 0xd0], eax
jne 0x1401955fe
mov rcx, qword [rsi + 0x28]
xor r8d, r8d
mov rdx, r13
jmp 0x1401955f2
mov r8, rdi
mov rdx, rbx
call sym.sqlite3Fts5StorageContentInsert
test eax, eax
mov dword [rsp + 0xd0], eax
jne 0x140195614
mov rcx, qword [rsi + 0x28]
xor r8d, r8d
mov rdx, rbp
call sym.sqlite3Fts5StorageDelete
test eax, eax
mov dword [rsp + 0xd0], eax
jne 0x140195614
mov rcx, qword [rsi + 0x28]
mov rdx, rbx
mov r8, qword [rdi]
call sym.sqlite3Fts5StorageIndexInsert
mov dword [rsp + 0xd0], eax
jmp 0x140195614
xor r8d, r8d
mov rdx, rbp
call sym.sqlite3Fts5StorageDelete
mov dword [rsp + 0xd0], eax
lea rcx, [rsp + 0xd0]
mov r9, rdi
mov r8, rbx
mov rdx, rsi
call sym.fts5StorageInsert
mov rax, qword [rsi + 0x18]
xor edx, edx
mov qword [rax + 0xa8], rdx
mov eax, dword [rsp + 0xd0]
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret