Function at 0x4be837
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 rsi, qword [rcx + 0x18]
cmp dword [rsi + 0x88], 0
mov r14, rcx
mov r12d, edx
mov rbx, r8
mov dword [rsp + 0xd0], 0
mov rbp, r9
je 0x4be8a6
mov rax, qword [r14 + 0x18]
lea rdx, [r14 + 0x10]
mov rcx, r14
lea r13, [0x004ed140]
mov qword [rax + 0xb8], rdx
call sym.fts5TripCursors
mov rdx, qword [rbx]
mov eax, dword [rdx + 0x14]
and eax, 0x3f
movzx edi, byte [r13 + rax]
cmp edi, 5
jne 0x4bf88c
jmp 0x4be8d4
mov rdi, qword [rcx + 0x20]
mov rcx, rdi
call sym.fts5StructureRead
mov rcx, rax
call sym.fts5StructureRelease
mov eax, dword [rdi + 0x34]
mov dword [rdi + 0x34], 0
test eax, eax
mov dword [rsp + 0xd0], eax
je 0x4be86e
jmp 0x4bfcfa
mov eax, dword [rsi + 0x18]
add eax, 2
cdqe
mov rcx, qword [rbx + rax*8]
mov eax, dword [rcx + 0x14]
and eax, 0x3f
cmp byte [r13 + rax], 5
je 0x4bf88c
call sym.sqlite3_value_text
cmp dword [rsi + 0x40], 0
mov rdi, rax
je 0x4be943
lea rcx, str.delete
mov rdx, rax
call sym.sqlite3_stricmp
test eax, eax
jne 0x4be943
mov rcx, qword [rbx + 8]
mov edx, dword [rcx + 0x14]
and edx, 0x3f
cmp byte [r13 + rdx], 1
jne 0x4bf880
call sym.sqlite3VdbeIntValue
mov rcx, qword [r14 + 0x28]
lea r8, [rbx + 0x10]
mov rdx, rax
call sym.sqlite3Fts5StorageDelete
jmp 0x4bf880
mov eax, dword [rsi + 0x18]
lea rcx, str.delete_all
mov rdx, rdi
mov dword [rsp + 0xd4], 0
mov r11, qword [r14 + 0x18]
add eax, 2
cdqe
mov rbx, qword [rbx + rax*8 + 8]
call sym.sqlite3_stricmp
test eax, eax
jne 0x4be9a0
cmp dword [r11 + 0x40], 0
jne 0x4be992
lea rdx, str.delete_all_may_only_be_used_with_a_contentless_or_external_content_fts5_table
mov rcx, r14
call sym.fts5SetVtabError
mov eax, 1
jmp 0x4bf880
mov rcx, qword [r14 + 0x28]
call sym.sqlite3Fts5StorageDeleteAll
jmp 0x4bf880
lea rcx, str.rebuild
call sym.sqlite3_stricmp
test eax, eax
jne 0x4bec15
mov eax, dword [r11 + 0x40]
cmp eax, 1
jne 0x4be9d5
lea rdx, str.rebuild_may_not_be_used_with_a_contentless_fts5_table
mov rcx, r14
mov dword [rsp + 0x58], eax
call sym.fts5SetVtabError
jmp 0x4bf81c
mov qword [rsp + 0x118], 0
mov rbx, qword [r14 + 0x28]
mov qword [rsp + 0x120], 0
mov rcx, rbx
mov rsi, qword [rbx]
mov qword [rsp + 0x128], rbx
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x130], 0
call sym.sqlite3Fts5StorageDeleteAll
test eax, eax
mov dword [rsp + 0xf8], eax
jne 0x4bea5e
mov edx, 1
mov rcx, rbx
call sym.fts5StorageLoadTotals
test eax, eax
mov dword [rsp + 0xf8], eax
jne 0x4bea5e
xor r9d, r9d
mov edx, 0xa
mov rcx, rbx
lea r8, [rsp + 0x108]
call sym.fts5StorageGetStmt
mov dword [rsp + 0xf8], eax
lea rbp, [sym.fts5StorageInsertCallback]
lea r12, [rsp + 0x128]
cmp dword [rsp + 0xf8], 0
je 0x4beaa4
mov rcx, qword [rsp + 0x118]
call sym.sqlite3_free
mov rcx, qword [rsp + 0x108]
call sym.sqlite3_reset
cmp dword [rsp + 0xf8], 0
je 0x4bebef
jmp 0x4bec09
mov rcx, qword [rsp + 0x108]
call sym.sqlite3_step
cmp eax, 0x64
jne 0x4bea77
mov rcx, qword [rsp + 0x108]
xor edx, edx
lea r13, [rsp + 0x118]
call sym.sqlite3_column_int64
mov rcx, qword [rbx + 8]
xor edx, edx
mov dword [rsp + 0x120], 0
mov r8, rax
mov rdi, rax
call sym.sqlite3Fts5IndexBeginWrite
mov dword [rsp + 0x130], 0
mov dword [rsp + 0xf8], eax
mov eax, dword [rsp + 0xf8]
test eax, eax
jne 0x4bebc4
mov edx, dword [rsp + 0x130]
cmp edx, dword [rsi + 0x18]
jge 0x4bebc4
mov rcx, qword [rsi + 0x28]
movsxd rax, edx
mov dword [rsp + 0x134], 0
cmp byte [rcx + rax], 0
jne 0x4beb83
mov rcx, qword [rsp + 0x108]
inc edx
call sym.sqlite3_column_text
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x130]
lea edx, [rax + 1]
call sym.sqlite3_column_bytes
mov r8, qword [rsp + 0x58]
mov qword [rsp + 0x28], rbp
mov rcx, rsi
mov r9d, eax
mov qword [rsp + 0x20], r12
mov edx, 4
call sym.sqlite3Fts5Tokenize
mov dword [rsp + 0xf8], eax
movsxd r8, dword [rsp + 0x134]
lea rcx, [rsp + 0xf8]
mov rdx, r13
call sym.sqlite3Fts5BufferAppendVarint
movsxd rcx, dword [rsp + 0x130]
mov rdx, qword [rbx + 0x20]
movsxd r8, dword [rsp + 0x134]
mov rax, rcx
add qword [rdx + rcx*8], r8
inc eax
mov dword [rsp + 0x130], eax
jmp 0x4beafb
inc qword [rbx + 0x18]
test eax, eax
jne 0x4bea6d
lea r8, [rsp + 0x118]
mov rdx, rdi
mov rcx, rbx
call sym.fts5StorageInsertDocsize
mov dword [rsp + 0xf8], eax
jmp 0x4bea65
test eax, eax
mov dword [rsp + 0xf8], eax
jne 0x4bec09
mov rcx, rbx
call sym.fts5StorageSaveTotals
mov dword [rsp + 0xf8], eax
mov eax, dword [rsp + 0xf8]
jmp 0x4bf880
lea rcx, str.optimize
call sym.sqlite3_stricmp
test eax, eax
jne 0x4becfe
mov rax, qword [r14 + 0x28]
mov rbx, qword [rax + 8]
mov qword [rsp + 0x128], 0
cmp dword [rbx + 0x20], 0
je 0x4bec52
mov dword [rbx + 0x20], 0
mov rcx, rbx
call sym.fts5FlushOneHash
mov rcx, rbx
call sym.fts5StructureRead
lea rcx, [rbx + 0x88]
mov rsi, rax
call sym.fts5StructureInvalidate.isra.269
test rsi, rsi
je 0x4bec81
mov rdx, rsi
mov rcx, rbx
call sym.fts5IndexOptimizeStruct
mov qword [rsp + 0x128], rax
mov rcx, rsi
call sym.fts5StructureRelease
mov rdx, qword [rsp + 0x128]
test rdx, rdx
je 0x4bede3
xor eax, eax
mov edi, eax
inc rax
mov rcx, rax
shl rcx, 4
cmp dword [rdx + rcx + 0xc], 0
je 0x4bec9c
movsxd rsi, edi
inc rsi
shl rsi, 4
cmp dword [rbx + 0x34], 0
mov rdx, qword [rsp + 0x128]
jne 0x4bedce
cmp dword [rdx + rsi + 0xc], 0
jle 0x4bedce
lea rdx, [rsp + 0x128]
mov r8d, edi
mov rcx, rbx
mov dword [rsp + 0x118], 0x3e8
lea r9, [rsp + 0x118]
call sym.fts5IndexMergeLevel
jmp 0x4becb9
lea rcx, [0x004e90cd]
call sym.sqlite3_stricmp
test eax, eax
jne 0x4bedf2
mov rcx, rbx
call sym.sqlite3VdbeIntValue
mov rsi, rax
mov rax, qword [r14 + 0x28]
mov rbx, qword [rax + 8]
mov rcx, rbx
call sym.fts5StructureRead
test rax, rax
mov qword [rsp + 0x128], rax
je 0x4bede3
mov rax, qword [rbx]
lea rcx, [rbx + 0x88]
mov dword [rsp + 0x60], esi
mov r9d, dword [rax + 0x94]
mov dword [rsp + 0x58], r9d
call sym.fts5StructureInvalidate.isra.269
test esi, esi
mov r9d, dword [rsp + 0x58]
mov r8d, dword [rsp + 0x60]
jns 0x4bed9f
mov rdx, qword [rsp + 0x128]
mov rcx, rbx
call sym.fts5IndexOptimizeStruct
mov rcx, qword [rsp + 0x128]
mov rdi, rax
call sym.fts5StructureRelease
mov r8d, esi
mov qword [rsp + 0x128], rdi
mov r9d, 2
neg r8d
mov rax, qword [rsp + 0x128]
test rax, rax
je 0x4bedd6
cmp dword [rax + 0x14], 0
je 0x4bedd6
lea rdx, [rsp + 0x128]
mov rcx, rbx
call sym.fts5IndexMerge
test eax, eax
je 0x4bedd6
mov rdx, qword [rsp + 0x128]
mov rcx, rbx
call sym.fts5StructureWrite
mov rcx, qword [rsp + 0x128]
call sym.fts5StructureRelease
mov eax, dword [rbx + 0x34]
mov dword [rbx + 0x34], 0
jmp 0x4bf880
lea rcx, [0x004e90d3]
call sym.sqlite3_stricmp
test eax, eax
mov dword [rsp + 0x98], eax
jne 0x4bf822
mov rcx, rbx
call sym.sqlite3VdbeIntValue
mov rsi, qword [r14 + 0x28]
mov ecx, 8
mov rbp, rax
lea rax, [rsp + 0x128]
mov qword [rsp + 0x58], rax
mov rdi, rax
mov eax, dword [rsp + 0x98]
mov rbx, qword [rsi]
rep stosd dword [rdi], eax
mov qword [rsp + 0x148], rbx
movsxd rcx, dword [rbx + 0x18]
imul rcx, rcx, 0xc
call sym.sqlite3_malloc64
mov qword [rsp + 0x60], rax
cmp qword [rsp + 0x60], 0
mov eax, 7
je 0x4bf880
movsxd rcx, dword [rbx + 0x18]
xor eax, eax
mov rdi, qword [rsp + 0x60]
shl rcx, 3
rep stosb byte [rdi], al
mov eax, dword [rbx + 0x40]
test eax, eax
je 0x4bee91
cmp eax, 2
jne 0x4bf0ed
test ebp, ebp
je 0x4bf0ed
xor r9d, r9d
mov edx, 0xa
mov rcx, rsi
lea r8, [rsp + 0xe8]
call sym.fts5StorageGetStmt
lea r13, [rsp + 0x118]
test eax, eax
jne 0x4bf80e
mov rcx, qword [rsp + 0xe8]
call sym.sqlite3_step
cmp eax, 0x64
jne 0x4bf091
mov rcx, qword [rsp + 0xe8]
xor edx, edx
call sym.sqlite3_column_int64
cmp dword [rbx + 0x58], 0
mov dword [rsp + 0x134], 0
mov qword [rsp + 0x128], rax
jne 0x4bef2a
xor r15d, r15d
cmp dword [rbx + 0x5c], 1
jne 0x4bef45
mov edx, 0x1000
mov rcx, r13
mov dword [rsp + 0x118], 0
call sym.sqlite3Fts5MallocZero.part.547
mov r15d, dword [rsp + 0x118]
mov qword [rsp + 0x140], rax
jmp 0x4bef45
mov r8, rdi
mov rdx, rax
mov rcx, rsi
call sym.sqlite3Fts5StorageDocsize
test eax, eax
mov r15d, eax
jne 0x4bf068
jmp 0x4beef7
xor r12d, r12d
test r15d, r15d
mov ebp, r12d
jne 0x4bf068
cmp dword [rbx + 0x18], r12d
jle 0x4bf068
mov rax, qword [rbx + 0x28]
cmp byte [rax + r12], 0
jne 0x4bf060
cmp dword [rbx + 0x5c], 2
mov dword [rsp + 0x130], r12d
mov dword [rsp + 0x134], 0
je 0x4befdf
mov rcx, qword [rsp + 0xe8]
inc ebp
mov edx, ebp
call sym.sqlite3_column_text
mov rcx, qword [rsp + 0xe8]
mov edx, ebp
mov qword [rsp + 0x68], rax
call sym.sqlite3_column_bytes
mov r8, qword [rsp + 0x68]
mov edx, 4
mov rcx, rbx
mov r9d, eax
lea rax, [sym.fts5StorageIntegrityCallback]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
call sym.sqlite3Fts5Tokenize
test eax, eax
mov r15d, eax
je 0x4bf011
jmp 0x4bf02b
mov edx, 0x1000
mov rcx, r13
mov dword [rsp + 0x118], 0
call sym.sqlite3Fts5MallocZero.part.547
mov r15d, dword [rsp + 0x118]
mov qword [rsp + 0x140], rax
test r15d, r15d
jne 0x4bf02b
jmp 0x4bef86
cmp dword [rbx + 0x58], 0
je 0x4bf02b
mov eax, dword [rsp + 0x134]
cmp dword [rdi + r12*4], eax
mov eax, 0x10b
cmovne r15d, eax
mov rdx, qword [rsp + 0x60]
movsxd rax, dword [rsp + 0x134]
add qword [rdx + r12*8], rax
cmp dword [rbx + 0x5c], 2
jne 0x4bf060
mov rcx, qword [rsp + 0x140]
test rcx, rcx
je 0x4bf054
call sym.sqlite3Fts5TermsetFree.part.249
mov qword [rsp + 0x140], 0
inc r12
jmp 0x4bef48
mov rcx, qword [rsp + 0x140]
test rcx, rcx
je 0x4bf07a
call sym.sqlite3Fts5TermsetFree.part.249
mov qword [rsp + 0x140], 0
test r15d, r15d
je 0x4beeb9
jmp 0x4bf094
xor r15d, r15d
mov rcx, qword [rsp + 0xe8]
call sym.sqlite3_reset
test r15d, r15d
jne 0x4bf80b
test eax, eax
jne 0x4bf80e
xor edx, edx
mov rcx, rsi
call sym.fts5StorageLoadTotals
xor edx, edx
mov ecx, 0x10b
test eax, eax
jne 0x4bf80e
cmp dword [rbx + 0x18], edx
jle 0x4bfc5f
mov r8, qword [rsi + 0x20]
mov rdi, qword [rsp + 0x60]
mov rdi, qword [rdi + rdx*8]
cmp qword [r8 + rdx*8], rdi
cmovne eax, ecx
inc rdx
jmp 0x4bf0c3
mov dword [rsp + 0x9c], 0
mov rbx, qword [rsi + 8]
mov rax, qword [rsp + 0x138]
mov rcx, rbx
mov qword [rsp + 0xa8], rax
mov rax, qword [rbx]
mov eax, dword [rax + 0x5c]
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], 0
mov dword [rsp + 0xb0], eax
call sym.fts5StructureRead
test rax, rax
mov qword [rsp + 0x68], rax
je 0x4bf7ff
add rax, 0x1c
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0xdc]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x68]
mov edi, dword [rsp + 0x98]
cmp edi, dword [rax + 0x14]
jge 0x4bf620
mov qword [rsp + 0x88], 0
mov rax, qword [rsp + 0x78]
mov edi, dword [rsp + 0x88]
cmp dword [rax], edi
jle 0x4bf60e
mov rax, qword [rsp + 0x78]
imul rdi, qword [rsp + 0x88], 0xc
add rdi, qword [rax + 4]
mov rax, qword [rbx]
mov ebp, dword [rdi + 4]
mov qword [rsp + 0x70], rax
mov eax, dword [rax + 0x80]
mov qword [rsp + 0xf0], 0
test ebp, ebp
mov dword [rsp + 0xb4], eax
jne 0x4bf1d9
inc qword [rsp + 0x88]
jmp 0x4bf181
lea eax, [rbp - 1]
mov r9d, dword [rdi]
mov dword [rsp + 0x90], eax
mov eax, dword [rdi + 8]
lea rcx, str.SELECT_segid__term___pgno__1____pgno1__FROM__Q._q_idx_WHERE_segid_d_ORDER_BY_1__2
mov dword [rsp + 0x80], eax
mov rax, qword [rsp + 0x70]
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
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 rcx, qword [rsp + 0xf0]
test r12d, r12d
je 0x4bf25c
mov rcx, qword [rsp + 0xf0]
call sym.sqlite3_finalize
cmp dword [rbx + 0x34], 0
jne 0x4bf1cf
mov dword [rbx + 0x34], eax
jmp 0x4bf1cf
call sym.sqlite3_step
cmp eax, 0x64
jne 0x4bf23d
mov rcx, qword [rsp + 0xf0]
mov edx, 1
call sym.sqlite3_column_blob
mov rcx, qword [rsp + 0xf0]
mov edx, 1
mov qword [rsp + 0xa0], rax
call sym.sqlite3_column_bytes
mov rcx, qword [rsp + 0xf0]
mov edx, 2
movsxd rbp, eax
call sym.sqlite3_column_int
mov rcx, qword [rsp + 0xf0]
mov edx, 3
mov dword [rsp + 0x58], eax
call sym.sqlite3_column_int
mov dword [rsp + 0xc8], eax
movsxd rax, dword [rsp + 0x58]
cmp eax, dword [rdi + 4]
jl 0x4bf22c
movsxd rdx, dword [rdi]
mov rcx, rbx
shl rdx, 0x25
add rdx, rax
call sym.fts5LeafRead
test rax, rax
mov rsi, rax
je 0x4bf23d
mov eax, dword [rax + 8]
mov edx, dword [rsi + 0xc]
cmp eax, edx
jg 0x4bf32b
test ebp, ebp
jne 0x4bf31f
cmp eax, edx
sete dl
cmp eax, 4
sete al
test dl, al
je 0x4bf31f
mov rax, qword [rsp + 0x70]
cmp dword [rax + 0x80], 5
je 0x4bf585
mov dword [rbx + 0x34], 0x10b
jmp 0x4bf585
mov rcx, rsi
call sym.fts5LeafFirstTermOff
mov rcx, qword [rsi]
mov r13d, eax
movzx eax, byte [rcx]
movzx edx, byte [rcx + 1]
shl eax, 8
add eax, edx
movzx eax, ax
cmp r13d, eax
jle 0x4bf3a2
cmp r13d, dword [rsi + 0xc]
jge 0x4bf3a2
lea rdx, [rsp + 0xd8]
movsxd rax, r13d
add rcx, rax
call sym.sqlite3Fts5GetVarint32
mov r15d, dword [rsp + 0xd8]
cmp ebp, r15d
movsxd r8, r15d
cmovle r8, rbp
test r8d, r8d
jle 0x4bf399
lea ecx, [r13 + rax]
mov rdx, qword [rsp + 0xa0]
movsxd rcx, ecx
add rcx, qword [rsi]
call sym.memcmp
test eax, eax
jne 0x4bf39e
mov eax, r15d
sub eax, ebp
test eax, eax
jns 0x4bf3a9
mov dword [rbx + 0x34], 0x10b
mov qword [rsp + 0x110], 0
lea rax, [rsp + 0xe4]
mov qword [rsp + 0x120], 0
mov r13d, dword [rsi + 0xc]
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x118], 0
mov qword [rsp + 0xa0], rax
cmp r13d, dword [rsi + 8]
jge 0x4bf56b
cmp dword [rbx + 0x34], 0
jne 0x4bf56b
mov rdx, qword [rsp + 0xc0]
lea r15, [rbx + 0x34]
movsxd rcx, r13d
add rcx, qword [rsi]
call sym.sqlite3Fts5GetVarint32
add r13d, eax
mov eax, dword [rsp + 0xdc]
add r12d, eax
cmp r12d, dword [rsi + 0xc]
jge 0x4bf53f
movsxd rcx, r12d
add rcx, qword [rsi]
cmp eax, r12d
jne 0x4bf47c
mov rdx, qword [rsp + 0xa0]
call sym.sqlite3Fts5GetVarint32
mov r8d, dword [rsp + 0xe4]
add eax, r12d
lea edx, [rax + r8]
cmp edx, dword [rsi + 0xc]
jg 0x4bf53f
lea rdx, [rsp + 0x108]
cdqe
add rax, qword [rsi]
mov rcx, r15
mov r9, rax
call sym.sqlite3Fts5BufferSet
jmp 0x4bf546
mov rdx, qword [rsp + 0xb8]
call sym.sqlite3Fts5GetVarint32
mov rdx, qword [rsp + 0xa0]
lea ebp, [r12 + rax]
movsxd rcx, ebp
add rcx, qword [rsi]
call sym.sqlite3Fts5GetVarint32
mov edx, dword [rsp + 0xe0]
cmp dword [rsp + 0x110], edx
jl 0x4bf53f
mov r8d, dword [rsp + 0xe4]
add ebp, eax
lea eax, [rbp + r8]
cmp eax, dword [rsi + 0xc]
jg 0x4bf53f
mov r9, qword [rsi]
movsxd rbp, ebp
mov dword [rsp + 0x110], edx
mov rcx, r15
lea rdx, [rsp + 0x108]
add r9, rbp
call sym.sqlite3Fts5BufferAppendBlob
cmp dword [rbx + 0x34], 0
jne 0x4bf546
movsxd rbp, dword [rsp + 0x120]
mov r9d, dword [rsp + 0x110]
cmp ebp, r9d
movsxd r8, r9d
cmovle r8, rbp
test r8d, r8d
jle 0x4bf536
mov rdx, qword [rsp + 0x118]
mov dword [rsp + 0xcc], r9d
mov rcx, qword [rsp + 0x108]
call sym.memcmp
mov r9d, dword [rsp + 0xcc]
test eax, eax
jne 0x4bf53b
mov eax, r9d
sub eax, ebp
test eax, eax
jg 0x4bf546
mov dword [rbx + 0x34], 0x10b
mov r9, qword [rsp + 0x108]
lea rdx, [rsp + 0x118]
mov rcx, r15
mov r8d, dword [rsp + 0x110]
call sym.sqlite3Fts5BufferSet
jmp 0x4bf3ed
lea rcx, [rsp + 0x108]
call sym.sqlite3Fts5BufferFree
lea rcx, [rsp + 0x118]
call sym.sqlite3Fts5BufferFree
mov rcx, rsi
call sym.sqlite3_free
mov esi, dword [rbx + 0x34]
test esi, esi
jne 0x4bf23d
mov ebp, dword [rsp + 0x90]
inc ebp
movsxd r12, ebp
cmp dword [rsp + 0x58], ebp
jle 0x4bfae4
movsxd rdx, dword [rdi]
mov rcx, rbx
shl rdx, 0x25
add rdx, r12
call sym.fts5DataRead
test rax, rax
je 0x4bf5f6
mov edx, dword [rax + 8]
cmp dword [rax + 0xc], edx
jge 0x4bf5d4
mov dword [rbx + 0x34], 0x10b
cmp dword [rsp + 0x80], ebp
jge 0x4bf5f6
mov rcx, qword [rax]
movzx edx, byte [rcx]
movzx ecx, byte [rcx + 1]
shl edx, 8
add dx, cx
je 0x4bf5f6
mov dword [rbx + 0x34], 0x10b
mov rcx, rax
inc ebp
inc r12
call sym.sqlite3_free
cmp dword [rbx + 0x34], 0
je 0x4bf5a4
jmp 0x4bf23d
inc dword [rsp + 0x98]
add qword [rsp + 0x78], 0x10
jmp 0x4bf160
mov dword [rsp + 0x38], 0
xor r9d, r9d
mov rcx, rbx
xor esi, esi
mov rdx, qword [rsp + 0x68]
lea rax, [rsp + 0x108]
mov dword [rsp + 0x30], 0xffffffff
mov r8d, 0x20
mov qword [rsp + 0x40], rax
lea r13, [rsp + 0xf8]
mov dword [rsp + 0x28], 0
lea r15, [rsp + 0xf0]
mov qword [rsp + 0x20], 0
call sym.fts5MultiIterNew
lea rax, [rsp + 0x118]
mov qword [rsp + 0x58], rax
cmp dword [rbx + 0x34], 0
mov rcx, qword [rsp + 0x108]
jne 0x4bf7c2
cmp byte [rcx + 0x14], 0
jne 0x4bf7c2
mov qword [rsp + 0x118], 0
mov rax, qword [rcx + 0x58]
mov dword [rsp + 0xf0], 0
movzx edx, word [rax + 4]
movzx eax, dx
imul rax, rax, 0x78
add rax, rcx
cmp dword [rsp + 0xb0], 1
mov rdi, qword [rax + 0xc8]
mov ebp, dword [rax + 0xc0]
mov r12, qword [rax + 0xb8]
jne 0x4bf71c
cmp qword [rax + 0x70], 0
je 0x4bf6fa
cmp dword [rax + 0xd0], 0
je 0x4bf7a7
mov dword [rsp + 0x28], ebp
or r9d, 0xffffffff
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], r12
mov rcx, rdi
call sym.sqlite3Fts5IndexEntryCksum
xor rsi, rax
jmp 0x4bf7a7
imul rdx, rdx, 0x78
mov r9, r13
xor r8d, r8d
mov dword [rsp + 0x100], 0
lea rdx, [rcx + rdx + 0x60]
mov rcx, rbx
call sym.fts5SegiterPoslist
lea rcx, [rbx + 0x34]
mov r8d, 4
mov rdx, r13
lea r9, [0x004e9139]
call sym.sqlite3Fts5BufferAppendBlob
mov r9, qword [rsp + 0x58]
mov r8, r15
mov edx, dword [rsp + 0x100]
mov rcx, qword [rsp + 0xf8]
call sym.sqlite3Fts5PoslistNext64
test eax, eax
jne 0x4bf7a7
mov r8, qword [rsp + 0x118]
mov dword [rsp + 0x28], ebp
or r9d, 0xffffffff
mov rcx, rdi
mov qword [rsp + 0x20], r12
mov rdx, r8
and r8d, 0x7fffffff
sar rdx, 0x20
call sym.sqlite3Fts5IndexEntryCksum
xor rsi, rax
jmp 0x4bf757
mov rdx, qword [rsp + 0x108]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbx
call sym.fts5MultiIterNext
jmp 0x4bf683
call sym.fts5MultiIterFree
cmp dword [rbx + 0x34], 0
jne 0x4bf7e8
cmp qword [rsp + 0xa8], rsi
je 0x4bf7e8
cmp dword [rsp + 0x9c], 0
je 0x4bf7e8
mov dword [rbx + 0x34], 0x10b
mov rcx, qword [rsp + 0x68]
call sym.fts5StructureRelease
lea rcx, [rsp + 0xf8]
call sym.sqlite3Fts5BufferFree
mov eax, dword [rbx + 0x34]
mov dword [rbx + 0x34], 0
jmp 0x4bf80e
mov eax, r15d
mov rcx, qword [rsp + 0x60]
mov dword [rsp + 0x58], eax
call sym.sqlite3_free
mov eax, dword [rsp + 0x58]
jmp 0x4bf880
mov rsi, qword [r14 + 0x20]
mov rcx, rsi
call sym.fts5StructureRead
mov rcx, rax
call sym.fts5StructureRelease
mov eax, dword [rsi + 0x34]
mov dword [rsi + 0x34], 0
test eax, eax
jne 0x4bf880
mov rcx, qword [r14 + 0x18]
lea r9, [rsp + 0xd4]
mov r8, rbx
mov rdx, rdi
call sym.sqlite3Fts5ConfigSetValue
test eax, eax
jne 0x4bf880
cmp dword [rsp + 0xd4], 0
mov eax, 1
jne 0x4bf880
mov rcx, qword [r14 + 0x28]
xor r9d, r9d
mov r8, rbx
mov rdx, rdi
call sym.sqlite3Fts5StorageConfigValue
mov dword [rsp + 0xd0], eax
jmp 0x4bfac9
cmp dword [rsi + 0x40], 0
mov r13d, 4
jne 0x4bf8af
mov rax, qword [rsi]
lea rcx, [0x004eb040]
movzx eax, byte [rax + 0x6c]
dec eax
cdqe
movzx r13d, byte [rcx + rax]
cmp edi, 1
jne 0x4bf8f7
mov rax, qword [r14 + 0x18]
cmp dword [rax + 0x40], 1
jne 0x4bf8f7
mov r8, qword [rsi + 0x10]
dec r12d
lea rax, str.DELETE_from
lea rdx, str.UPDATE
cmovle rdx, rax
lea rcx, str.cannot__s_contentless_fts5_table:__s
call sym.sqlite3_mprintf
mov dword [rsp + 0xd0], 1
mov qword [r14 + 0x10], rax
jmp 0x4bfac9
dec r12d
jne 0x4bf924
mov rcx, rdx
mov edi, 1
call sym.sqlite3VdbeIntValue
mov rcx, qword [r14 + 0x28]
xor r8d, r8d
mov rdx, rax
call sym.sqlite3Fts5StorageDelete
mov dword [rsp + 0xd0], eax
jmp 0x4bfa79
mov rcx, qword [rbx + 8]
call sym.sqlite3_value_numeric_type
mov r12d, eax
and r12d, 0xfffffffb
cmp r12d, 1
je 0x4bf94a
mov dword [rsp + 0xd0], 0x14
jmp 0x4bfac9
dec eax
sete r15b
cmp edi, 1
je 0x4bf9a3
cmp r13d, 5
jne 0x4bf981
test r15b, r15b
je 0x4bf981
mov rcx, qword [rbx + 8]
call sym.sqlite3VdbeIntValue
mov rcx, qword [r14 + 0x28]
xor r8d, r8d
mov rdx, rax
call sym.sqlite3Fts5StorageDelete
mov dword [rsp + 0xd0], eax
jmp 0x4bf984
xor r12d, r12d
lea rdx, [r14 + 0x28]
mov r9, rbp
mov r8, rbx
lea rcx, [rsp + 0xd0]
mov edi, r12d
call sym.fts5StorageInsert.isra.710
jmp 0x4bfa79
mov rcx, qword [rbx]
call sym.sqlite3VdbeIntValue
mov rcx, qword [rbx + 8]
mov r12, rax
call sym.sqlite3VdbeIntValue
mov rcx, qword [r14 + 0x28]
cmp rax, r12
je 0x4bfa50
test r15b, r15b
je 0x4bfa50
cmp r13d, 5
jne 0x4bf9ff
xor r8d, r8d
mov rdx, r12
mov qword [rsp + 0x58], rax
call sym.sqlite3Fts5StorageDelete
mov r9, qword [rsp + 0x58]
test eax, eax
mov dword [rsp + 0xd0], eax
jne 0x4bfa62
mov rcx, qword [r14 + 0x28]
xor r8d, r8d
mov rdx, r9
jmp 0x4bfa56
mov r8, rbp
mov rdx, rbx
call sym.sqlite3Fts5StorageContentInsert
test eax, eax
mov dword [rsp + 0xd0], eax
jne 0x4bfac9
mov rcx, qword [r14 + 0x28]
xor r8d, r8d
mov rdx, r12
call sym.sqlite3Fts5StorageDelete
test eax, eax
mov dword [rsp + 0xd0], eax
jne 0x4bfac9
mov rcx, qword [r14 + 0x28]
mov rdx, rbx
mov r8, qword [rbp]
call sym.sqlite3Fts5StorageIndexInsert
mov dword [rsp + 0xd0], eax
jmp 0x4bfa79
xor r8d, r8d
mov rdx, r12
call sym.sqlite3Fts5StorageDelete
mov dword [rsp + 0xd0], eax
lea rdx, [r14 + 0x28]
mov r9, rbp
mov r8, rbx
lea rcx, [rsp + 0xd0]
call sym.fts5StorageInsert.isra.710
cmp dword [rsp + 0xd0], 0
jne 0x4bfac9
and dil, 1
je 0x4bfac9
cmp dword [rsi + 0xb0], 0
je 0x4bfac9
cmp dword [rsi + 0x80], 4
jne 0x4bfac9
mov rcx, qword [r14 + 0x28]
xor r8d, r8d
mov r9d, 5
lea rdx, str.version
call sym.sqlite3Fts5StorageConfigValue
test eax, eax
mov dword [rsp + 0xd0], eax
jne 0x4bfac9
mov dword [rsi + 0x80], 5
mov rax, qword [r14 + 0x18]
mov qword [rax + 0xb8], 0
mov eax, dword [rsp + 0xd0]
jmp 0x4bfcfa
cmp dword [rsp + 0xc8], 0
je 0x4bfc45
mov r15d, dword [rdi]
xor edx, edx
mov rcx, rbx
mov r9d, dword [rsp + 0x58]
mov r8d, r15d
shl r15, 0x25
call sym.fts5DlidxIterInit
mov r13d, dword [rsp + 0x58]
mov rbp, rax
lea rax, [rsp + 0x118]
mov qword [rsp + 0x80], rax
cmp dword [rbx + 0x34], 0
jne 0x4bfc34
cmp dword [rbp + 0x14], 0
jne 0x4bfc34
lea esi, [r13 + 1]
movsxd r12, esi
add r12, r15
mov r13d, dword [rbp + 0x1c]
cmp esi, r13d
jge 0x4bfb82
mov rdx, r12
mov rcx, rbx
call sym.fts5DataRead
test rax, rax
je 0x4bfb7b
mov rcx, qword [rax]
movzx edx, byte [rcx]
movzx ecx, byte [rcx + 1]
shl edx, 8
add dx, cx
je 0x4bfb73
mov dword [rbx + 0x34], 0x10b
mov rcx, rax
call sym.sqlite3_free
inc esi
inc r12
jmp 0x4bfb41
movsxd rdx, r13d
mov rcx, rbx
add rdx, r15
call sym.fts5DataRead
test rax, rax
mov r12, rax
je 0x4bfc21
mov rcx, qword [rax]
movzx eax, byte [rcx]
movzx edx, byte [rcx + 1]
shl eax, 8
add eax, edx
movzx edx, ax
cmp edx, dword [r12 + 0xc]
jge 0x4bfc12
cmp dword [rsp + 0xb4], 5
setne r8b
test edx, edx
jne 0x4bfbca
test r8b, r8b
je 0x4bfc19
mov r9, qword [rbp + 0x20]
movzx eax, ax
mov byte [rsp + 0xa0], r8b
mov rdx, qword [rsp + 0x80]
add rcx, rax
mov qword [rsp + 0x90], r9
call sym.sqlite3Fts5GetVarint
mov r9, qword [rsp + 0x90]
cmp r9, qword [rsp + 0x118]
jg 0x4bfc12
je 0x4bfc19
mov r8b, byte [rsp + 0xa0]
test r8b, r8b
je 0x4bfc19
mov dword [rbx + 0x34], 0x10b
mov rcx, r12
call sym.sqlite3_free
xor r8d, r8d
mov rdx, rbp
mov rcx, rbx
call sym.fts5DlidxIterNextR
jmp 0x4bfb23
mov rcx, rbp
call sym.fts5DlidxIterFree
mov dword [rsp + 0x80], esi
jmp 0x4bfc4f
mov eax, dword [rdi + 8]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x90], eax
jmp 0x4bf22c
cmp dword [rbx + 0x40], 0
jne 0x4bfc9e
mov rcx, qword [rsi]
lea r8, [rsp + 0x118]
mov qword [rsp + 0x118], 0
lea rdx, str.content
call sym.fts5StorageCount.isra.689.constprop.749
test eax, eax
jne 0x4bf80e
mov rax, qword [rsp + 0x118]
cmp qword [rsi + 0x18], rax
jne 0x4bfcf0
mov dword [rsp + 0x9c], 1
cmp dword [rbx + 0x58], 0
je 0x4bf0f8
mov rcx, qword [rsi]
lea r8, [rsp + 0x118]
mov qword [rsp + 0x118], 0
lea rdx, str.docsize
call sym.fts5StorageCount.isra.689.constprop.749
test eax, eax
jne 0x4bf80e
mov rax, qword [rsp + 0x118]
cmp qword [rsi + 0x18], rax
je 0x4bf0f8
mov eax, 0x10b
jmp 0x4bf80e
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret