Function at 0x1401a3b70
Capabilities:
Encode data using xor
Reference sql statements

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
movaps xmmword [rsp + 0xd0], xmm6
mov rax, qword [rsp + 0x150]
mov ebp, dword [rsp + 0x160]
mov edi, dword [rsp + 0x168]
mov r14, qword [rsp + 0x170]
mov r13, r9
mov r9d, dword [rcx + 0x34]
mov qword [rsp + 0x38], rax
mov r15, rcx
mov eax, dword [rsp + 0x158]
mov rbx, rdx
mov dword [rsp + 0x80], r8d
test r9d, r9d
mov dword [rsp + 0x68], eax
jne 0x1401a3c28
test ebp, ebp
js 0x1401a3ec4
movsxd rax, ebp
shl rax, 4
mov eax, dword [rax + rdx + 0x1c]
cmp edi, eax
cmovg edi, eax
cmp edi, 2
jle 0x1401a5053
mov r12d, 2
nop word [rax + rax]
add r12d, r12d
cmp edi, r12d
jg 0x1401a3c00
lea eax, [r12 - 1]
movsxd rsi, r12d
cdqe
imul rax, rax, 0x1e
lea rdx, [rsi + rax + 0x36]
shl rdx, 2
jmp 0x1401a3c3a
mov edx, 0x158
mov esi, 2
xor edi, edi
mov r12d, 2
lea rax, [r15 + 0x34]
mov rcx, rax
mov qword [rsp + 0xa0], rax
call sym.sqlite3Fts5MallocZero
test rax, rax
mov r10, rax
je 0x1401a3cbb
mov dword [rax + 0x40], r12d
imul rax, rsi, 0x78
mov esi, dword [rsp + 0x80]
mov qword [r10 + 0x18], r15
lea rax, [r10 + rax + 0x60]
mov qword [r10 + 0x58], rax
lea rax, [sym.fts5IterSetOutputs_Noop]
mov qword [r10 + 0x38], rax
mov eax, esi
and eax, 2
mov qword [r14], r10
mov dword [rsp + 0x84], eax
setne al
movzx eax, al
mov qword [r10 + 0x30], r13
mov dword [r10 + 0x44], eax
mov eax, esi
shr eax, 4
and eax, 1
and esi, 0x20
mov byte [r10 + 0x48], al
je 0x1401a3ce0
mov eax, dword [r15 + 0x34]
test eax, eax
je 0x1401a3d30
mov rcx, r10
call sym.fts5MultiIterFree.part.0
mov qword [r14], 0
movaps xmm6, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, dword [r15 + 0x34]
test r8d, r8d
jne 0x1401a3cb3
mov rax, qword [r15]
mov edx, dword [rax + 0x5c]
cmp edx, 1
je 0x1401a3f38
test r13, r13
je 0x1401a4fd4
mov ecx, dword [r13]
test ecx, ecx
je 0x1401a4e1c
test edx, edx
je 0x1401a500d
mov r8d, dword [rax + 0x18]
lea rax, [sym.fts5IterSetOutputs_Col]
cmp r8d, 0x64
jle 0x1401a5083
mov qword [r10 + 0x38], rax
nop
test ebp, ebp
js 0x1401a3f48
sub edi, 1
js 0x1401a3d9e
lea rsi, [r10 + 0x60]
movsxd rax, edi
mov edi, edi
lea r12, [rax + rax*2]
imul rax, rdi, 0x78
shl r12, 2
lea rdi, [r10 + rax + 0xd8]
movsxd rax, ebp
mov rbp, r10
add rax, 1
shl rax, 4
add rbx, rax
nop dword [rax + rax]
mov rdx, qword [rbx + 0x10]
mov r8, rsi
mov rcx, r15
add rsi, 0x78
add rdx, r12
sub r12, 0xc
call sym.fts5SegIterInit
cmp rdi, rsi
jne 0x1401a3d70
mov r10, rbp
mov eax, dword [r15 + 0x34]
test eax, eax
jne 0x1401a3cb3
mov eax, dword [r10 + 0x40]
mov rbp, r10
lea edi, [rax - 1]
test edi, edi
jle 0x1401a3e4c
mov edx, edi
mov rcx, rbp
call sym.fts5MultiIterDoCompare
test eax, eax
mov ebx, eax
je 0x1401a3e40
mov r10d, dword [r15 + 0x34]
test r10d, r10d
jne 0x1401a3de5
cdqe
xor r8d, r8d
mov rcx, r15
imul rax, rax, 0x78
lea rdx, [rbp + rax + 0x60]
call qword [rbp + rax + 0x88]
add ebx, dword [rbp + 0x40]
mov esi, ebx
shr esi, 0x1f
add esi, ebx
sar esi, 1
cmp esi, edi
jl 0x1401a3e40
nop dword [rax]
mov r9d, dword [r15 + 0x34]
test r9d, r9d
jne 0x1401a3e40
mov edx, esi
mov rcx, rbp
call sym.fts5MultiIterDoCompare
test eax, eax
mov ebx, eax
je 0x1401a3f20
cdqe
xor r8d, r8d
mov rcx, r15
imul rax, rax, 0x78
lea rdx, [rbp + rax + 0x60]
call qword [rbp + rax + 0x88]
add ebx, dword [rbp + 0x40]
mov esi, ebx
shr esi, 0x1f
add esi, ebx
sar esi, 1
cmp edi, esi
jle 0x1401a3df8
nop dword [rax]
sub edi, 1
jne 0x1401a3db0
mov r10, rbp
mov rax, qword [r10 + 0x58]
movzx eax, word [rax + 4]
mov rdx, rax
imul rax, rax, 0x78
add rax, r10
mov rcx, qword [rax + 0x70]
test rcx, rcx
sete byte [r10 + 0x14]
cmp byte [r10 + 0x48], 0
mov r8, qword [rax + 0xc8]
mov qword [r10 + 0x50], r8
je 0x1401a3ee0
mov r8d, dword [r15 + 0x34]
test r8d, r8d
jne 0x1401a3ee0
test rcx, rcx
je 0x1401a3cc2
mov ecx, dword [rax + 0xd0]
test ecx, ecx
jne 0x1401a3ee9
movaps xmm6, xmmword [rsp + 0xd0]
xor r9d, r9d
xor r8d, r8d
mov rdx, r10
mov rcx, r15
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.fts5MultiIterNext
xor edi, edi
cmp qword [rcx + 0x18], 0
setne dil
add edi, dword [rdx + 0x10]
jmp 0x1401a3beb
test rcx, rcx
je 0x1401a3cc2
movzx eax, dx
movaps xmm6, xmmword [rsp + 0xd0]
mov rcx, r10
imul rax, rax, 0x78
lea rdx, [r10 + rax + 0x60]
mov rax, qword [r10 + 0x38]
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp rax
sar esi, 1
cmp esi, edi
jge 0x1401a3df8
sub edi, 1
jne 0x1401a3db0
jmp 0x1401a3e49
lea rax, [sym.fts5IterSetOutputs_None]
mov qword [r10 + 0x38], rax
jmp 0x1401a3d30
movsxd rax, dword [rbx + 0x14]
mov rbp, qword [r15 + 0x18]
shl rax, 4
lea rax, [rbx + rax + 0x18]
test rbp, rbp
mov qword [rsp + 0x90], rax
je 0x1401a4dc4
cmp qword [rsp + 0x38], 0
mov dword [rsp + 0xbc], 0
mov qword [rsp + 0xc0], 0
je 0x1401a3f9b
mov r13d, dword [rsp + 0x80]
and r13d, 8
je 0x1401a4e46
mov r8d, dword [rsp + 0x68]
lea r9, [rbp + 0x18]
mov rcx, rbp
xor esi, esi
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x30], r10
call sym.fts5HashEntrySort
mov rcx, qword [r15 + 0x18]
lea rdx, [rsp + 0xc0]
mov dword [r15 + 0x34], eax
lea r9, [rsp + 0xbc]
lea r8, [rsp + 0xc8]
call sym.sqlite3Fts5HashScanEntry
mov rdi, qword [rsp + 0xc0]
mov r10, qword [rsp + 0x30]
test rdi, rdi
je 0x1401a3ffe
mov rcx, rdi
call sym.strlen
mov r10, qword [rsp + 0x30]
mov esi, eax
mov rbp, qword [rsp + 0xc8]
test rbp, rbp
je 0x1401a40e5
mov rcx, qword [rsp + 0xa0]
mov edx, 0x10
mov qword [rsp + 0x30], r10
call sym.sqlite3Fts5MallocZero
mov r10, qword [rsp + 0x30]
test rax, rax
mov r12, rax
je 0x1401a40e5
mov dword [rsp + 0x30], esi
mov esi, dword [rsp + 0xbc]
mov qword [rax], rbp
mov r8d, dword [rsp + 0x30]
lea rbp, [r10 + 0x60]
movd xmm2, esi
mov r9, rdi
mov rcx, qword [rsp + 0xa0]
mov qword [rsp + 0x40], r10
pshufd xmm6, xmm2, 0xe0
lea rdx, [r10 + 0xb8]
mov dword [r10 + 0xc0], 0
call sym.sqlite3Fts5BufferAppendBlob
mov rcx, qword [r12]
movq qword [r12 + 8], xmm6
mov r10, qword [rsp + 0x40]
lea rdx, [r10 + 0xc8]
mov qword [r10 + 0x70], r12
mov qword [rsp + 0x30], r10
call sym.sqlite3Fts5GetVarint
mov edx, dword [rsp + 0x84]
mov r10, qword [rsp + 0x30]
movzx eax, al
test edx, edx
mov qword [r10 + 0x80], rax
mov dword [r10 + 0x9c], esi
jne 0x1401a5035
mov eax, dword [r15 + 0x34]
test eax, eax
jne 0x1401a40e5
mov rcx, qword [r15]
mov rdx, rbp
mov qword [rsp + 0x30], r10
call sym.fts5SegIterLoadNPos.part.0.isra.0
mov r10, qword [rsp + 0x30]
mov eax, dword [r10 + 0x68]
lea rdx, [sym.fts5SegIterNext_Reverse]
test al, 2
je 0x1401a4e28
lea rax, [rbx + 0x18]
mov rdi, qword [rsp + 0x90]
mov esi, 1
mov qword [r10 + 0x88], rdx
mov qword [rsp + 0x48], rax
cmp rax, rdi
jae 0x1401a3d92
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x98], r10
mov r12, r15
mov qword [rsp + 0x60], rax
mov qword [rsp + 0xa8], r14
nop
mov rax, qword [rsp + 0x48]
mov r8d, dword [rax + 4]
mov eax, r8d
sub eax, 1
js 0x1401a44b8
movsxd rdx, eax
mov eax, eax
mov dword [rsp + 0x88], r8d
lea rdx, [rdx + rdx*2]
mov dword [rsp + 0x8c], esi
lea rdi, [rdx*4]
movsxd rdx, esi
imul rcx, rdx, 0x78
add rax, rdx
mov qword [rsp + 0x30], rdi
mov rdi, qword [rsp + 0x98]
imul rax, rax, 0x78
lea r13, [rdi + rcx + 0xc8]
lea rax, [rdi + rax + 0x140]
mov qword [rsp + 0x50], rax
nop dword [rax]
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x30]
add rsi, qword [rax + 8]
lea rax, [r13 - 0x68]
cmp qword [rsp + 0x38], 0
mov qword [rsp + 0x40], rax
je 0x1401a4480
lea rdx, [r13 - 0x60]
xor eax, eax
mov ecx, 0xe
mov rdi, rdx
rep stosq qword [rdi], rax
mov qword [r13 - 0x68], rsi
mov rbx, qword [r12 + 0x60]
test rbx, rbx
je 0x1401a4a10
mov eax, dword [r12 + 0x34]
test eax, eax
mov dword [rsp + 0x58], eax
jne 0x1401a448e
xor edx, edx
mov rcx, rbx
mov edi, dword [rsi]
call sym.vdbeUnbind
test eax, eax
jne 0x1401a4950
mov rcx, qword [rbx + 0x80]
movsxd rdx, edi
test word [rcx + 0x14], 0x9000
jne 0x1401a4cb0
mov eax, 4
mov qword [rcx], rdx
mov word [rcx + 0x14], ax
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1401a4247
call qword [0x1402b9130]
mov r9d, dword [rsp + 0x68]
mov edx, 2
mov rcx, rbx
mov qword [rsp + 0x20], 0
mov r8, qword [rsp + 0x38]
call sym.sqlite3_bind_blob
mov rcx, rbx
call sym.sqlite3_step
cmp eax, 0x64
je 0x1401a498a
xor ebp, ebp
mov edi, 1
mov rcx, rbx
call sym.sqlite3_reset
mov edx, 1
mov rcx, rbx
mov dword [r12 + 0x34], eax
call sym.vdbeUnbind
test eax, eax
jne 0x1401a42af
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1401a42af
call qword [0x1402b9130]
mov eax, dword [rsi + 4]
cmp eax, edi
jg 0x1401a42bc
mov dword [rsp + 0x58], ebp
mov eax, edi
mov edi, dword [rsp + 0x80]
sub eax, 1
mov rcx, r12
mov rdx, qword [rsp + 0x40]
mov dword [r13 - 0x5c], eax
and edi, 8
mov dword [rsp + 0x6c], edi
call sym.fts5SegIterNextPage
mov rax, qword [r13 - 0x58]
test rax, rax
mov qword [rsp + 0x70], rax
je 0x1401a4940
mov dword [rsp + 0xc0], 0
mov ecx, dword [rax + 0xc]
mov rdi, qword [rax]
mov r14d, dword [rax + 8]
mov eax, 1
mov rbp, rcx
add rcx, rdi
movzx esi, byte [rcx]
test sil, sil
mov edx, esi
jns 0x1401a4355
movzx eax, byte [rcx + 1]
test al, al
jns 0x1401a4d10
movzx edx, byte [rcx + 2]
shl esi, 0xe
or esi, edx
and edx, 0x80
je 0x1401a4d40
mov rdx, qword [rsp + 0x60]
call sym.sqlite3Fts5GetVarint
mov esi, dword [rsp + 0xc8]
movzx eax, al
and esi, 0x7fffffff
cmp r14d, esi
mov dword [rsp + 0xbc], esi
jb 0x1401a48c0
xor r8d, r8d
add ebp, eax
xor ebx, ebx
mov r15d, r8d
mov r8d, esi
nop word [rax + rax]
lea ecx, [r8 + 1]
mov eax, r8d
add rax, rdi
mov dword [rsp + 0xbc], ecx
movzx r9d, byte [rax]
test r9b, r9b
mov edx, r9d
mov dword [rsp + 0xc0], r9d
js 0x1401a44f0
cmp ebx, r15d
jb 0x1401a4554
cmp r15d, ebx
je 0x1401a4768
cmp ebp, r14d
jae 0x1401a4800
mov ecx, ebp
mov eax, 1
add rcx, rdi
movzx edx, byte [rcx]
test dl, dl
mov r8d, edx
jns 0x1401a440e
movzx eax, byte [rcx + 1]
test al, al
jns 0x1401a48a0
movzx r8d, byte [rcx + 2]
shl edx, 0xe
or edx, r8d
and r8d, 0x80
je 0x1401a48f8
mov rdx, qword [rsp + 0x60]
call sym.sqlite3Fts5GetVarint
mov edx, dword [rsp + 0xc8]
movzx eax, al
and edx, 0x7fffffff
add esi, edx
add ebp, eax
cmp esi, r14d
jae 0x1401a48c0
lea r8d, [rsi + 1]
mov ecx, esi
add rcx, rdi
mov dword [rsp + 0xbc], r8d
movzx ebx, byte [rcx]
test bl, bl
mov eax, ebx
jns 0x1401a4378
movzx edx, byte [rcx + 1]
test dl, dl
jns 0x1401a4aa0
movzx eax, byte [rcx + 2]
shl ebx, 0xe
or ebx, eax
test al, 0x80
je 0x1401a4ae0
mov rdx, qword [rsp + 0x60]
call sym.sqlite3Fts5GetVarint
mov ebx, dword [rsp + 0xc8]
movzx r8d, al
and ebx, 0x7fffffff
add r8d, esi
jmp 0x1401a4378
mov r8, rax
mov rdx, rsi
mov rcx, r12
call sym.fts5SegIterInit
mov rax, qword [rsp + 0x50]
add r13, 0x78
sub qword [rsp + 0x30], 0xc
cmp r13, rax
jne 0x1401a41a8
mov r8d, dword [rsp + 0x88]
mov esi, dword [rsp + 0x8c]
add esi, r8d
add qword [rsp + 0x48], 0x10
mov rdi, qword [rsp + 0x90]
mov rax, qword [rsp + 0x48]
cmp rax, rdi
jb 0x1401a4140
mov r10, qword [rsp + 0x98]
mov r15, r12
mov r14, qword [rsp + 0xa8]
jmp 0x1401a3d92
movzx ecx, byte [rax + 1]
test cl, cl
jns 0x1401a4a80
movzx edx, byte [rax + 2]
shl r9d, 0xe
or r9d, edx
and edx, 0x80
je 0x1401a4ab8
mov rdx, qword [rsp + 0x60]
mov rcx, rax
mov dword [rsp + 0x78], r8d
call sym.sqlite3Fts5GetVarint
mov edx, dword [rsp + 0xc8]
mov r8d, dword [rsp + 0x78]
movzx ecx, al
and edx, 0x7fffffff
mov dword [rsp + 0xc0], edx
add ecx, r8d
cmp ebx, r15d
mov dword [rsp + 0xbc], ecx
jae 0x1401a43aa
mov edx, dword [rsp + 0x6c]
mov r15d, dword [rsp + 0xc0]
test edx, edx
je 0x1401a4928
mov eax, ecx
mov edx, r15d
mov r8d, r14d
add rdx, rax
mov qword [rsp + 0x70], rax
cmp rdx, r8
jg 0x1401a48c0
test r15d, r15d
je 0x1401a48c0
mov r8d, ebx
mov rbx, qword [rsp + 0xa0]
mov dword [r13 - 8], 0
mov r9, qword [rsp + 0x38]
lea eax, [rcx + r15]
movd xmm0, dword [r13 - 0x5c]
lea rdx, [r13 - 0x10]
movd xmm1, eax
mov qword [r13 - 0x48], rax
mov qword [rsp + 0x78], rdx
punpckldq xmm0, xmm1
mov rcx, rbx
movq qword [r13 - 0x38], xmm0
call sym.sqlite3Fts5BufferAppendBlob
mov rax, qword [rsp + 0x70]
mov r8d, r15d
mov rcx, rbx
mov rdx, qword [rsp + 0x78]
lea r9, [rdi + rax]
call sym.sqlite3Fts5BufferAppendBlob
cmp ebp, r14d
jb 0x1401a4fac
mov rdx, qword [r13 - 0x58]
mov eax, dword [rdx + 8]
add eax, 1
mov dword [r13 - 0x2c], eax
mov rax, qword [rdx]
mov dword [r13 - 0x30], ebp
mov rbx, qword [r13 - 0x48]
movsxd rdx, dword [rdx + 0xc]
cmp rbx, rdx
jge 0x1401a4de0
mov rdx, rbx
lea rcx, [rax + rdx]
mov rdx, r13
call sym.sqlite3Fts5GetVarint
movzx eax, al
add rax, rbx
mov ebx, dword [r12 + 0x34]
mov qword [r13 - 0x48], rax
test ebx, ebx
jne 0x1401a4745
mov rcx, qword [r12]
mov rdx, qword [rsp + 0x40]
call sym.fts5SegIterLoadNPos.part.0.isra.0
nop dword [rax + rax]
mov eax, dword [r13 - 0x60]
or ebx, dword [rsp + 0x6c]
mov edx, eax
jne 0x1401a4749
mov rcx, qword [r13 - 0x58]
or edx, 1
mov dword [r13 - 0x60], edx
test rcx, rcx
je 0x1401a4749
mov ebp, dword [rsp + 0x84]
test ebp, ebp
je 0x1401a4b00
mov edi, dword [rsp + 0x58]
or eax, 3
mov edx, eax
mov dword [r13 - 0x60], eax
test edi, edi
jne 0x1401a4b0c
mov rbp, qword [r13 - 0x18]
test rbp, rbp
je 0x1401a4b51
mov rax, qword [r13 - 0x68]
mov rcx, r12
mov edi, dword [rbp + 0x1c]
movsxd rdx, dword [rax]
movsxd rax, edi
shl rdx, 0x25
add rdx, rax
call sym.fts5DataRead
test rax, rax
mov rbp, rax
je 0x1401a4738
mov eax, dword [rax + 8]
cmp eax, 3
jle 0x1401a4dae
cmp eax, dword [rbp + 0xc]
jl 0x1401a4dae
mov rcx, qword [r13 - 0x58]
call sym.sqlite3_free
mov rbx, qword [rbp]
mov dword [r13 - 0x5c], edi
mov qword [r13 - 0x58], rbp
movsxd rsi, dword [rbp + 0xc]
movzx eax, word [rbx]
rol ax, 8
movzx edi, ax
cmp edi, esi
jg 0x1401a48c0
movzx eax, ax
mov rdx, r13
lea rcx, [rbx + rax]
call sym.sqlite3Fts5GetVarint
movzx eax, al
add eax, edi
cdqe
mov qword [r13 - 0x48], rax
mov eax, dword [rbp + 8]
cmp esi, eax
jl 0x1401a4fec
add eax, 1
mov dword [r13 - 0x2c], eax
nop dword [rax]
mov rdx, qword [rsp + 0x40]
mov rcx, r12
call sym.fts5SegIterReverseInitPage
mov edx, dword [r13 - 0x60]
and edx, 2
je 0x1401a48d6
lea rax, [sym.fts5SegIterNext_Reverse]
mov qword [r13 - 0x40], rax
jmp 0x1401a448e
mov r10d, dword [rsp + 0x68]
mov r9d, dword [rsp + 0xc0]
sub r10d, r15d
cmp r10d, r9d
cmova r10d, r9d
xor eax, eax
test r10d, r10d
je 0x1401a47c1
mov dword [rsp + 0x78], r9d
mov r9, qword [rsp + 0x38]
jmp 0x1401a47a4
add eax, 1
cmp r10d, eax
je 0x1401a4a00
lea r11d, [r15 + rax]
lea edx, [rax + rcx]
mov r8, r11
movzx r11d, byte [r9 + r11]
cmp byte [rdi + rdx], r11b
je 0x1401a4798
mov r9d, dword [rsp + 0x78]
mov r15d, r8d
cmp dword [rsp + 0x68], r15d
je 0x1401a4910
cmp eax, r9d
jae 0x1401a43b3
mov r10, qword [rsp + 0x38]
add eax, ecx
mov edx, r15d
mov eax, eax
movzx eax, byte [rdi + rax]
cmp byte [r10 + rdx], al
jb 0x1401a4554
cmp ebp, r14d
jb 0x1401a43bc
nop dword [rax + rax]
mov eax, dword [rsp + 0x6c]
mov rbx, qword [rsp + 0x40]
test eax, eax
je 0x1401a4928
nop dword [rax]
mov rdx, rbx
mov rcx, r12
call sym.fts5SegIterNextPage
mov rax, qword [r13 - 0x58]
test rax, rax
je 0x1401a4745
mov ebp, dword [rax + 0xc]
mov r14d, dword [rax + 8]
mov rdi, qword [rax]
cmp ebp, r14d
jge 0x1401a4818
lea rdx, [rsp + 0xbc]
mov ecx, ebp
add rcx, rdi
call sym.sqlite3Fts5GetVarint32
mov esi, dword [rsp + 0xbc]
cmp esi, 3
jbe 0x1401a48c0
mov edx, esi
movsxd rcx, ebp
cmp rdx, rcx
jge 0x1401a48c0
lea rcx, [rdi + rdx]
add ebp, eax
xor ebx, ebx
lea rax, [rsp + 0xc0]
mov rdx, rax
call sym.sqlite3Fts5GetVarint32
mov r15d, dword [rsp + 0xc0]
lea ecx, [rax + rsi]
mov dword [rsp + 0xbc], ecx
jmp 0x1401a4568
and r8d, 0x7f
movzx edx, al
mov eax, 2
shl r8d, 7
add ebp, eax
or edx, r8d
add esi, edx
cmp esi, r14d
jb 0x1401a441b
mov dword [r12 + 0x34], 0x10b
mov edx, dword [r13 - 0x60]
and edx, 2
jne 0x1401a4752
mov rax, qword [r12]
cmp dword [rax + 0x5c], 1
je 0x1401a4ca0
lea rax, [sym.fts5SegIterNext]
mov qword [r13 - 0x40], rax
jmp 0x1401a448e
and eax, 0x7f
and edx, 0x1fc07f
shl eax, 7
or edx, eax
mov eax, 3
jmp 0x1401a440e
cmp r9d, eax
mov r15d, r9d
je 0x1401a4568
mov eax, dword [rsp + 0x6c]
test eax, eax
jne 0x1401a4568
mov rcx, qword [rsp + 0x70]
call sym.sqlite3_free
mov qword [r13 - 0x58], 0
nop word [rax + rax]
mov ebx, dword [r12 + 0x34]
jmp 0x1401a4650
mov r9d, dword [rsp + 0x68]
mov edx, 2
mov rcx, rbx
mov qword [rsp + 0x20], 0
mov r8, qword [rsp + 0x38]
call sym.sqlite3_bind_blob
mov rcx, rbx
call sym.sqlite3_step
cmp eax, 0x64
jne 0x1401a4278
test rbx, rbx
je 0x1401a4d80
mov r14, qword [rbx]
mov rcx, qword [r14 + 0x18]
test rcx, rcx
je 0x1401a499f
call qword [0x1402b9120]
mov r14, qword [rbx]
mov rax, qword [rbx + 0xa0]
test rax, rax
je 0x1401a4cc0
cmp word [rbx + 0xc0], 0
je 0x1401a4cc0
movzx edx, word [rax + 0x14]
test dl, 0x24
jne 0x1401a4d9c
test dl, 8
jne 0x1401a4d67
and dl, 0x12
je 0x1401a4cd8
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1401a4cd8
mov edx, dword [rax + 0x10]
movzx r8d, byte [rax + 0x16]
call sym.memIntValue.isra.0
jmp 0x1401a4d70
mov r9d, dword [rsp + 0x78]
add r15d, eax
jmp 0x1401a47c1
mov rax, qword [r12]
lea rcx, str.SELECT_pgno_FROM__q._q_idx_WHERE_segid__AND_term___ORDER_BY_term_DESC_LIMIT_1
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
call sym.sqlite3_mprintf
mov rbx, rax
mov eax, dword [r12 + 0x34]
test eax, eax
jne 0x1401a4a6d
test rbx, rbx
je 0x1401a4d28
mov rax, qword [r12]
xor r9d, r9d
mov r8d, 0x85
mov rdx, rbx
mov rcx, qword [rax]
lea rax, [r12 + 0x60]
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
call sym.sqlite3LockAndPrepare.constprop.0
mov dword [r12 + 0x34], eax
mov rcx, rbx
call sym.sqlite3_free
mov rbx, qword [r12 + 0x60]
jmp 0x1401a41ee
and edx, 0x7f
shl edx, 7
or edx, ecx
mov ecx, 2
mov dword [rsp + 0xc0], edx
jmp 0x1401a4541
and eax, 0x7f
mov r8d, 2
shl eax, 7
or eax, edx
mov ebx, eax
jmp 0x1401a4471
and ecx, 0x7f
and r9d, 0x1fc07f
shl ecx, 7
or r9d, ecx
mov ecx, 3
mov dword [rsp + 0xc0], r9d
jmp 0x1401a4541
and edx, 0x7f
and ebx, 0x1fc07f
mov r8d, 3
shl edx, 7
or ebx, edx
jmp 0x1401a4471
mov esi, dword [rsp + 0x58]
test esi, esi
je 0x1401a4749
mov rax, qword [r13 - 0x68]
and edx, 2
mov r9d, dword [r13 - 0x38]
cmp r9d, dword [r13 - 0x5c]
mov r8d, dword [rax]
jne 0x1401a4b29
mov eax, dword [rcx + 0xc]
cmp dword [r13 - 0x2c], eax
jl 0x1401a4b35
mov rcx, r12
call sym.fts5DlidxIterInit
mov qword [r13 - 0x18], rax
mov ebx, dword [rsp + 0x84]
test ebx, ebx
je 0x1401a4745
mov rbp, qword [r13 - 0x18]
test rbp, rbp
jne 0x1401a46a5
mov r14d, dword [r13 - 0x5c]
cmp dword [r13 - 0x38], r14d
mov r9, qword [r13 - 0x58]
je 0x1401a4e0c
mov eax, 5
mov r8d, 4
mov ecx, 4
mov rdx, qword [r9]
cmp byte [rdx + r8], 0
jns 0x1401a4be5
lea r8d, [rcx + 2]
cdqe
cmp byte [rdx + rax], 0
jns 0x1401a4fe4
lea eax, [rcx + 3]
movsxd r8, r8d
cmp byte [rdx + r8], 0
jns 0x1401a4be5
lea r8d, [rcx + 4]
cdqe
cmp byte [rdx + rax], 0
jns 0x1401a4fe4
lea eax, [rcx + 5]
movsxd r8, r8d
cmp byte [rdx + r8], 0
jns 0x1401a4be5
lea r8d, [rcx + 6]
cdqe
cmp byte [rdx + rax], 0
jns 0x1401a4fe4
lea eax, [rcx + 7]
movsxd r8, r8d
cmp byte [rdx + r8], 0
jns 0x1401a4be5
movsxd r8, eax
cmp byte [rdx + r8], 0
lea eax, [rcx + 9]
jns 0x1401a507b
cdqe
mov qword [r13 - 0x48], rax
mov eax, dword [r9 + 0xc]
cmp dword [r13 - 0x2c], eax
jl 0x1401a4738
mov edi, dword [r12 + 0x34]
add r14d, 1
mov rsi, qword [r13 - 0x68]
test edi, edi
jne 0x1401a4738
movsxd rbx, r14d
mov qword [rsp + 0x58], r13
jmp 0x1401a4c59
mov rdx, qword [rax]
cmp word [rdx], 0
je 0x1401a4c35
mov rdx, rbp
mov edi, r14d
mov rbp, rax
mov rcx, rdx
call sym.sqlite3_free
cmp r15d, r13d
jg 0x1401a4d89
mov r11d, dword [r12 + 0x34]
add r14d, 1
add rbx, 1
test r11d, r11d
jne 0x1401a4d89
cmp dword [rsi + 8], r14d
jl 0x1401a4d89
movsxd rdx, dword [rsi]
mov rcx, r12
shl rdx, 0x25
add rdx, rbx
call sym.fts5DataRead
test rax, rax
mov rcx, rax
je 0x1401a4c43
mov r15d, dword [rax + 8]
cmp r15d, 3
jle 0x1401a4c90
mov r13d, dword [rax + 0xc]
cmp r15d, r13d
jge 0x1401a4c20
mov dword [r12 + 0x34], 0x10b
call sym.sqlite3_free
jmp 0x1401a4c43
lea rax, [sym.fts5SegIterNext_None]
mov qword [r13 - 0x40], rax
jmp 0x1401a448e
call sym.vdbeReleaseAndSetInt64
jmp 0x1401a4235
mov dword [r14 + 0x50], 0x19
mov rcx, r14
mov edx, 0x19
call sym.sqlite3ErrorFinish
mov r14, qword [rbx]
xor ebp, ebp
xor edi, edi
cmp byte [r14 + 0x67], 0
mov rdx, r14
mov ecx, dword [rbx + 0x34]
jne 0x1401a4d58
xor eax, eax
test ecx, ecx
jne 0x1401a4d58
mov rcx, qword [rdx + 0x18]
mov dword [rbx + 0x34], eax
test rcx, rcx
je 0x1401a427f
call qword [0x1402b9130]
jmp 0x1401a427f
and edx, 0x7f
shl edx, 7
mov esi, edx
or esi, eax
mov eax, 2
jmp 0x1401a4355
mov dword [r12 + 0x34], 7
jmp 0x1401a4a6d
and eax, 0x7f
and esi, 0x1fc07f
shl eax, 7
or esi, eax
mov eax, 3
jmp 0x1401a4355
mov edx, ecx
mov rcx, r14
call sym.apiHandleError
mov rdx, qword [rbx]
jmp 0x1401a4cef
movsd xmm0, qword [rax]
call sym.doubleToInt64
mov rbp, rax
sar eax, 1
mov rdi, rax
and ebp, 1
jmp 0x1401a4cdc
xor ebp, ebp
xor edi, edi
jmp 0x1401a427f
test rbp, rbp
mov r13, qword [rsp + 0x58]
jne 0x1401a46de
jmp 0x1401a4738
mov rbp, qword [rax]
mov eax, ebp
and ebp, 1
sar eax, 1
mov rdi, rax
jmp 0x1401a4cdc
mov dword [r12 + 0x34], 0x10b
mov rcx, rbp
call sym.sqlite3_free
jmp 0x1401a4738
mov rdi, rax
xor esi, esi
lea rax, [rbx + 0x18]
cmp rax, rdi
mov qword [rsp + 0x48], rax
jb 0x1401a411e
jmp 0x1401a3d9e
mov rdx, qword [rsp + 0x40]
mov rcx, r12
call sym.fts5SegIterNextPage
mov rax, qword [r13 - 0x58]
test rax, rax
je 0x1401a5068
mov rax, qword [rax]
mov edx, 4
mov ebx, 4
jmp 0x1401a461a
movsxd r8, dword [r13 - 0x34]
lea eax, [r8 + 1]
mov rcx, r8
jmp 0x1401a4b73
lea rax, [sym.fts5IterSetOutputs_ZeroColset]
jmp 0x1401a3d2a
mov rax, qword [r15]
lea rdx, [sym.fts5SegIterNext_None]
cmp dword [rax + 0x5c], 1
lea rax, [sym.fts5SegIterNext]
cmovne rdx, rax
jmp 0x1401a40f8
mov edi, dword [rsp + 0x68]
mov r9d, dword [rbp + 0x14]
mov eax, edi
sub eax, 1
js 0x1401a50bd
mov rsi, qword [rsp + 0x38]
movsxd rdx, edi
movsxd rcx, eax
mov eax, eax
lea r8, [rsi + rdx - 2]
add rcx, rsi
sub r8, rax
mov eax, 0xd
lea edx, [rax*8]
sub rcx, 1
xor eax, edx
movzx edx, byte [rcx + 1]
xor eax, edx
cmp r8, rcx
jne 0x1401a4e76
xor edx, edx
div r9d
mov rax, qword [rbp + 0x20]
mov rsi, qword [rax + rdx*8]
test rsi, rsi
je 0x1401a5021
movsxd rdi, dword [rsp + 0x68]
mov r12, rbx
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x30], r10
mov ebx, edi
jmp 0x1401a4ecc
mov rsi, qword [rsi]
test rsi, rsi
je 0x1401a5019
mov ebp, dword [rsi + 0x1c]
lea eax, [rbp + 1]
cmp ebx, eax
jne 0x1401a4ec0
mov rdx, qword [rsp + 0x38]
lea rcx, [rsi + 0x30]
mov r8, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1401a4ec0
mov edi, dword [rsi + 0x18]
mov rbx, r12
mov r12d, ebp
mov rbp, qword [rsp + 0x40]
call sym.sqlite3_initialize
mov r10, qword [rsp + 0x30]
test eax, eax
jne 0x1401a50b2
mov eax, dword [rsp + 0x68]
lea r13d, [r12 + 0x32]
mov qword [rsp + 0x40], r10
sub edi, r13d
lea ecx, [rdi + 0x1a]
movsxd rcx, ecx
mov dword [rsp + 0x30], eax
call sym.sqlite3Malloc
mov r10, qword [rsp + 0x40]
test rax, rax
mov r12, rax
je 0x1401a50b2
lea r9, [rax + 0x10]
movsxd rdx, r13d
movsxd r8, edi
mov qword [rsp + 0x48], r10
mov rcx, r9
add rdx, rsi
mov qword [rsp + 0x40], r9
call sym.memcpy
mov r8d, 0x10
mov rdx, rsi
mov rcx, rbp
sub r8d, r13d
movsxd r8, r8d
add r8, r12
call sym.fts5HashAddPoslistSize
mov r9, qword [rsp + 0x40]
mov dword [r15 + 0x34], 0
lea esi, [rdi + rax]
mov r10, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x38]
mov dword [rsp + 0xbc], esi
mov qword [r12], r9
or dword [r10 + 0x68], 1
mov qword [rsp + 0xc0], rdi
jmp 0x1401a4045
lea rdx, [rsp + 0xc8]
mov ecx, ebp
add rcx, rdi
call sym.sqlite3Fts5GetVarint32
add esi, dword [rsp + 0xc8]
mov rdx, qword [r13 - 0x58]
add ebp, eax
mov dword [r13 - 0x2c], esi
jmp 0x1401a45ff
lea rax, [sym.fts5IterSetOutputs_Nocolset]
mov qword [r10 + 0x38], rax
jmp 0x1401a3d30
mov eax, r8d
jmp 0x1401a4be5
lea rdx, [rsp + 0xc8]
lea rcx, [rbx + rsi]
call sym.sqlite3Fts5GetVarint32
mov eax, dword [rsp + 0xc8]
mov dword [r13 - 0x2c], eax
jmp 0x1401a4738
lea rax, [sym.fts5IterSetOutputs_Full]
jmp 0x1401a3d2a
mov r10, qword [rsp + 0x30]
mov rbx, r12
mov eax, dword [r10 + 0x68]
mov dword [r15 + 0x34], r13d
or eax, 1
mov dword [r10 + 0x68], eax
jmp 0x1401a40e9
or dword [r10 + 0x68], 2
mov rdx, rbp
mov rcx, r15
call sym.fts5SegIterReverseInitPage
mov r10, qword [rsp + 0x30]
mov eax, dword [r10 + 0x68]
jmp 0x1401a40e9
mov edx, 0x158
mov esi, 2
mov r12d, 2
jmp 0x1401a3c3a
mov r14d, dword [r12 + 0x34]
test r14d, r14d
jne 0x1401a4745
jmp 0x1401a48c0
lea eax, [rcx + 8]
jmp 0x1401a4be5
mov rcx, qword [rsp + 0xa0]
lea rdx, [r10 + 0x20]
mov qword [rsp + 0x30], r10
lea rax, [sym.fts5IterSetOutputs_Col100]
mov qword [r10 + 0x38], rax
call sym.sqlite3Fts5BufferSize
mov eax, dword [r15 + 0x34]
mov r10, qword [rsp + 0x30]
jmp 0x1401a3caf
mov r13d, 7
jmp 0x1401a5021
mov eax, 0xd
jmp 0x1401a4e8e