Function at 0x14019c8a0
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 0x14019c958
test ebp, ebp
js 0x14019cbf4
movsxd rax, ebp
shl rax, 4
mov eax, dword [rax + rdx + 0x1c]
cmp edi, eax
cmovg edi, eax
cmp edi, 2
jle 0x14019dd83
mov r12d, 2
nop word [rax + rax]
add r12d, r12d
cmp edi, r12d
jg 0x14019c930
lea eax, [r12 - 1]
movsxd rsi, r12d
cdqe
imul rax, rax, 0x1e
lea rdx, [rsi + rax + 0x36]
shl rdx, 2
jmp 0x14019c96a
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 0x14019c9eb
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 0x14019ca10
mov eax, dword [r15 + 0x34]
test eax, eax
je 0x14019ca60
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 0x14019c9e3
mov rax, qword [r15]
mov edx, dword [rax + 0x5c]
cmp edx, 1
je 0x14019cc68
test r13, r13
je 0x14019dd04
mov ecx, dword [r13]
test ecx, ecx
je 0x14019db4c
test edx, edx
je 0x14019dd3d
mov r8d, dword [rax + 0x18]
lea rax, [sym.fts5IterSetOutputs_Col]
cmp r8d, 0x64
jle 0x14019ddb3
mov qword [r10 + 0x38], rax
nop
test ebp, ebp
js 0x14019cc78
sub edi, 1
js 0x14019cace
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 0x14019caa0
mov r10, rbp
mov eax, dword [r15 + 0x34]
test eax, eax
jne 0x14019c9e3
mov eax, dword [r10 + 0x40]
mov rbp, r10
lea edi, [rax - 1]
test edi, edi
jle 0x14019cb7c
mov edx, edi
mov rcx, rbp
call sym.fts5MultiIterDoCompare
test eax, eax
mov ebx, eax
je 0x14019cb70
mov r10d, dword [r15 + 0x34]
test r10d, r10d
jne 0x14019cb15
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 0x14019cb70
nop dword [rax]
mov r9d, dword [r15 + 0x34]
test r9d, r9d
jne 0x14019cb70
mov edx, esi
mov rcx, rbp
call sym.fts5MultiIterDoCompare
test eax, eax
mov ebx, eax
je 0x14019cc50
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 0x14019cb28
nop dword [rax]
sub edi, 1
jne 0x14019cae0
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 0x14019cc10
mov r8d, dword [r15 + 0x34]
test r8d, r8d
jne 0x14019cc10
test rcx, rcx
je 0x14019c9f2
mov ecx, dword [rax + 0xd0]
test ecx, ecx
jne 0x14019cc19
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 0x14019c91b
test rcx, rcx
je 0x14019c9f2
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 0x14019cb28
sub edi, 1
jne 0x14019cae0
jmp 0x14019cb79
lea rax, [sym.fts5IterSetOutputs_None]
mov qword [r10 + 0x38], rax
jmp 0x14019ca60
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 0x14019daf4
cmp qword [rsp + 0x38], 0
mov dword [rsp + 0xbc], 0
mov qword [rsp + 0xc0], 0
je 0x14019cccb
mov r13d, dword [rsp + 0x80]
and r13d, 8
je 0x14019db76
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 0x14019cd2e
mov rcx, rdi
call sym.strlen
mov r10, qword [rsp + 0x30]
mov esi, eax
mov rbp, qword [rsp + 0xc8]
test rbp, rbp
je 0x14019ce15
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 0x14019ce15
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 0x14019dd65
mov eax, dword [r15 + 0x34]
test eax, eax
jne 0x14019ce15
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 0x14019db58
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 0x14019cac2
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 0x14019d1e8
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 0x14019d1b0
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 0x14019d740
mov eax, dword [r12 + 0x34]
test eax, eax
mov dword [rsp + 0x58], eax
jne 0x14019d1be
xor edx, edx
mov rcx, rbx
mov edi, dword [rsi]
call sym.vdbeUnbind
test eax, eax
jne 0x14019d680
mov rcx, qword [rbx + 0x80]
movsxd rdx, edi
test word [rcx + 0x14], 0x9000
jne 0x14019d9e0
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 0x14019cf77
call qword [0x1402b20f0]
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 0x14019d6ba
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 0x14019cfdf
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x14019cfdf
call qword [0x1402b20f0]
mov eax, dword [rsi + 4]
cmp eax, edi
jg 0x14019cfec
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 0x14019d670
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 0x14019d085
movzx eax, byte [rcx + 1]
test al, al
jns 0x14019da40
movzx edx, byte [rcx + 2]
shl esi, 0xe
or esi, edx
and edx, 0x80
je 0x14019da70
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 0x14019d5f0
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 0x14019d220
cmp ebx, r15d
jb 0x14019d284
cmp r15d, ebx
je 0x14019d498
cmp ebp, r14d
jae 0x14019d530
mov ecx, ebp
mov eax, 1
add rcx, rdi
movzx edx, byte [rcx]
test dl, dl
mov r8d, edx
jns 0x14019d13e
movzx eax, byte [rcx + 1]
test al, al
jns 0x14019d5d0
movzx r8d, byte [rcx + 2]
shl edx, 0xe
or edx, r8d
and r8d, 0x80
je 0x14019d628
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 0x14019d5f0
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 0x14019d0a8
movzx edx, byte [rcx + 1]
test dl, dl
jns 0x14019d7d0
movzx eax, byte [rcx + 2]
shl ebx, 0xe
or ebx, eax
test al, 0x80
je 0x14019d810
mov rdx, qword [rsp + 0x60]
call sym.sqlite3Fts5GetVarint
mov ebx, dword [rsp + 0xc8]
movzx r8d, al
and ebx, 0x7fffffff
add r8d, esi
jmp 0x14019d0a8
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 0x14019ced8
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 0x14019ce70
mov r10, qword [rsp + 0x98]
mov r15, r12
mov r14, qword [rsp + 0xa8]
jmp 0x14019cac2
movzx ecx, byte [rax + 1]
test cl, cl
jns 0x14019d7b0
movzx edx, byte [rax + 2]
shl r9d, 0xe
or r9d, edx
and edx, 0x80
je 0x14019d7e8
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 0x14019d0da
mov edx, dword [rsp + 0x6c]
mov r15d, dword [rsp + 0xc0]
test edx, edx
je 0x14019d658
mov eax, ecx
mov edx, r15d
mov r8d, r14d
add rdx, rax
mov qword [rsp + 0x70], rax
cmp rdx, r8
jg 0x14019d5f0
test r15d, r15d
je 0x14019d5f0
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 0x14019dcdc
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 0x14019db10
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 0x14019d475
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 0x14019d479
mov rcx, qword [r13 - 0x58]
or edx, 1
mov dword [r13 - 0x60], edx
test rcx, rcx
je 0x14019d479
mov ebp, dword [rsp + 0x84]
test ebp, ebp
je 0x14019d830
mov edi, dword [rsp + 0x58]
or eax, 3
mov edx, eax
mov dword [r13 - 0x60], eax
test edi, edi
jne 0x14019d83c
mov rbp, qword [r13 - 0x18]
test rbp, rbp
je 0x14019d881
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 0x14019d468
mov eax, dword [rax + 8]
cmp eax, 3
jle 0x14019dade
cmp eax, dword [rbp + 0xc]
jl 0x14019dade
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 0x14019d5f0
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 0x14019dd1c
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 0x14019d606
lea rax, [sym.fts5SegIterNext_Reverse]
mov qword [r13 - 0x40], rax
jmp 0x14019d1be
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 0x14019d4f1
mov dword [rsp + 0x78], r9d
mov r9, qword [rsp + 0x38]
jmp 0x14019d4d4
add eax, 1
cmp r10d, eax
je 0x14019d730
lea r11d, [r15 + rax]
lea edx, [rax + rcx]
mov r8, r11
movzx r11d, byte [r9 + r11]
cmp byte [rdi + rdx], r11b
je 0x14019d4c8
mov r9d, dword [rsp + 0x78]
mov r15d, r8d
cmp dword [rsp + 0x68], r15d
je 0x14019d640
cmp eax, r9d
jae 0x14019d0e3
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 0x14019d284
cmp ebp, r14d
jb 0x14019d0ec
nop dword [rax + rax]
mov eax, dword [rsp + 0x6c]
mov rbx, qword [rsp + 0x40]
test eax, eax
je 0x14019d658
nop dword [rax]
mov rdx, rbx
mov rcx, r12
call sym.fts5SegIterNextPage
mov rax, qword [r13 - 0x58]
test rax, rax
je 0x14019d475
mov ebp, dword [rax + 0xc]
mov r14d, dword [rax + 8]
mov rdi, qword [rax]
cmp ebp, r14d
jge 0x14019d548
lea rdx, [rsp + 0xbc]
mov ecx, ebp
add rcx, rdi
call sym.sqlite3Fts5GetVarint32
mov esi, dword [rsp + 0xbc]
cmp esi, 3
jbe 0x14019d5f0
mov edx, esi
movsxd rcx, ebp
cmp rdx, rcx
jge 0x14019d5f0
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 0x14019d298
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 0x14019d14b
mov dword [r12 + 0x34], 0x10b
mov edx, dword [r13 - 0x60]
and edx, 2
jne 0x14019d482
mov rax, qword [r12]
cmp dword [rax + 0x5c], 1
je 0x14019d9d0
lea rax, [sym.fts5SegIterNext]
mov qword [r13 - 0x40], rax
jmp 0x14019d1be
and eax, 0x7f
and edx, 0x1fc07f
shl eax, 7
or edx, eax
mov eax, 3
jmp 0x14019d13e
cmp r9d, eax
mov r15d, r9d
je 0x14019d298
mov eax, dword [rsp + 0x6c]
test eax, eax
jne 0x14019d298
mov rcx, qword [rsp + 0x70]
call sym.sqlite3_free
mov qword [r13 - 0x58], 0
nop word [rax + rax]
mov ebx, dword [r12 + 0x34]
jmp 0x14019d380
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 0x14019cfa8
test rbx, rbx
je 0x14019dab0
mov r14, qword [rbx]
mov rcx, qword [r14 + 0x18]
test rcx, rcx
je 0x14019d6cf
call qword [0x1402b20e0]
mov r14, qword [rbx]
mov rax, qword [rbx + 0xa0]
test rax, rax
je 0x14019d9f0
cmp word [rbx + 0xc0], 0
je 0x14019d9f0
movzx edx, word [rax + 0x14]
test dl, 0x24
jne 0x14019dacc
test dl, 8
jne 0x14019da97
and dl, 0x12
je 0x14019da08
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14019da08
mov edx, dword [rax + 0x10]
movzx r8d, byte [rax + 0x16]
call sym.memIntValue.isra.0
jmp 0x14019daa0
mov r9d, dword [rsp + 0x78]
add r15d, eax
jmp 0x14019d4f1
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 0x14019d79d
test rbx, rbx
je 0x14019da58
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 0x14019cf1e
and edx, 0x7f
shl edx, 7
or edx, ecx
mov ecx, 2
mov dword [rsp + 0xc0], edx
jmp 0x14019d271
and eax, 0x7f
mov r8d, 2
shl eax, 7
or eax, edx
mov ebx, eax
jmp 0x14019d1a1
and ecx, 0x7f
and r9d, 0x1fc07f
shl ecx, 7
or r9d, ecx
mov ecx, 3
mov dword [rsp + 0xc0], r9d
jmp 0x14019d271
and edx, 0x7f
and ebx, 0x1fc07f
mov r8d, 3
shl edx, 7
or ebx, edx
jmp 0x14019d1a1
mov esi, dword [rsp + 0x58]
test esi, esi
je 0x14019d479
mov rax, qword [r13 - 0x68]
and edx, 2
mov r9d, dword [r13 - 0x38]
cmp r9d, dword [r13 - 0x5c]
mov r8d, dword [rax]
jne 0x14019d859
mov eax, dword [rcx + 0xc]
cmp dword [r13 - 0x2c], eax
jl 0x14019d865
mov rcx, r12
call sym.fts5DlidxIterInit
mov qword [r13 - 0x18], rax
mov ebx, dword [rsp + 0x84]
test ebx, ebx
je 0x14019d475
mov rbp, qword [r13 - 0x18]
test rbp, rbp
jne 0x14019d3d5
mov r14d, dword [r13 - 0x5c]
cmp dword [r13 - 0x38], r14d
mov r9, qword [r13 - 0x58]
je 0x14019db3c
mov eax, 5
mov r8d, 4
mov ecx, 4
mov rdx, qword [r9]
cmp byte [rdx + r8], 0
jns 0x14019d915
lea r8d, [rcx + 2]
cdqe
cmp byte [rdx + rax], 0
jns 0x14019dd14
lea eax, [rcx + 3]
movsxd r8, r8d
cmp byte [rdx + r8], 0
jns 0x14019d915
lea r8d, [rcx + 4]
cdqe
cmp byte [rdx + rax], 0
jns 0x14019dd14
lea eax, [rcx + 5]
movsxd r8, r8d
cmp byte [rdx + r8], 0
jns 0x14019d915
lea r8d, [rcx + 6]
cdqe
cmp byte [rdx + rax], 0
jns 0x14019dd14
lea eax, [rcx + 7]
movsxd r8, r8d
cmp byte [rdx + r8], 0
jns 0x14019d915
movsxd r8, eax
cmp byte [rdx + r8], 0
lea eax, [rcx + 9]
jns 0x14019ddab
cdqe
mov qword [r13 - 0x48], rax
mov eax, dword [r9 + 0xc]
cmp dword [r13 - 0x2c], eax
jl 0x14019d468
mov edi, dword [r12 + 0x34]
add r14d, 1
mov rsi, qword [r13 - 0x68]
test edi, edi
jne 0x14019d468
movsxd rbx, r14d
mov qword [rsp + 0x58], r13
jmp 0x14019d989
mov rdx, qword [rax]
cmp word [rdx], 0
je 0x14019d965
mov rdx, rbp
mov edi, r14d
mov rbp, rax
mov rcx, rdx
call sym.sqlite3_free
cmp r15d, r13d
jg 0x14019dab9
mov r11d, dword [r12 + 0x34]
add r14d, 1
add rbx, 1
test r11d, r11d
jne 0x14019dab9
cmp dword [rsi + 8], r14d
jl 0x14019dab9
movsxd rdx, dword [rsi]
mov rcx, r12
shl rdx, 0x25
add rdx, rbx
call sym.fts5DataRead
test rax, rax
mov rcx, rax
je 0x14019d973
mov r15d, dword [rax + 8]
cmp r15d, 3
jle 0x14019d9c0
mov r13d, dword [rax + 0xc]
cmp r15d, r13d
jge 0x14019d950
mov dword [r12 + 0x34], 0x10b
call sym.sqlite3_free
jmp 0x14019d973
lea rax, [sym.fts5SegIterNext_None]
mov qword [r13 - 0x40], rax
jmp 0x14019d1be
call sym.vdbeReleaseAndSetInt64
jmp 0x14019cf65
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 0x14019da88
xor eax, eax
test ecx, ecx
jne 0x14019da88
mov rcx, qword [rdx + 0x18]
mov dword [rbx + 0x34], eax
test rcx, rcx
je 0x14019cfaf
call qword [0x1402b20f0]
jmp 0x14019cfaf
and edx, 0x7f
shl edx, 7
mov esi, edx
or esi, eax
mov eax, 2
jmp 0x14019d085
mov dword [r12 + 0x34], 7
jmp 0x14019d79d
and eax, 0x7f
and esi, 0x1fc07f
shl eax, 7
or esi, eax
mov eax, 3
jmp 0x14019d085
mov edx, ecx
mov rcx, r14
call sym.apiHandleError
mov rdx, qword [rbx]
jmp 0x14019da1f
movsd xmm0, qword [rax]
call sym.doubleToInt64
mov rbp, rax
sar eax, 1
mov rdi, rax
and ebp, 1
jmp 0x14019da0c
xor ebp, ebp
xor edi, edi
jmp 0x14019cfaf
test rbp, rbp
mov r13, qword [rsp + 0x58]
jne 0x14019d40e
jmp 0x14019d468
mov rbp, qword [rax]
mov eax, ebp
and ebp, 1
sar eax, 1
mov rdi, rax
jmp 0x14019da0c
mov dword [r12 + 0x34], 0x10b
mov rcx, rbp
call sym.sqlite3_free
jmp 0x14019d468
mov rdi, rax
xor esi, esi
lea rax, [rbx + 0x18]
cmp rax, rdi
mov qword [rsp + 0x48], rax
jb 0x14019ce4e
jmp 0x14019cace
mov rdx, qword [rsp + 0x40]
mov rcx, r12
call sym.fts5SegIterNextPage
mov rax, qword [r13 - 0x58]
test rax, rax
je 0x14019dd98
mov rax, qword [rax]
mov edx, 4
mov ebx, 4
jmp 0x14019d34a
movsxd r8, dword [r13 - 0x34]
lea eax, [r8 + 1]
mov rcx, r8
jmp 0x14019d8a3
lea rax, [sym.fts5IterSetOutputs_ZeroColset]
jmp 0x14019ca5a
mov rax, qword [r15]
lea rdx, [sym.fts5SegIterNext_None]
cmp dword [rax + 0x5c], 1
lea rax, [sym.fts5SegIterNext]
cmovne rdx, rax
jmp 0x14019ce28
mov edi, dword [rsp + 0x68]
mov r9d, dword [rbp + 0x14]
mov eax, edi
sub eax, 1
js 0x14019dded
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 0x14019dba6
xor edx, edx
div r9d
mov rax, qword [rbp + 0x20]
mov rsi, qword [rax + rdx*8]
test rsi, rsi
je 0x14019dd51
movsxd rdi, dword [rsp + 0x68]
mov r12, rbx
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x30], r10
mov ebx, edi
jmp 0x14019dbfc
mov rsi, qword [rsi]
test rsi, rsi
je 0x14019dd49
mov ebp, dword [rsi + 0x1c]
lea eax, [rbp + 1]
cmp ebx, eax
jne 0x14019dbf0
mov rdx, qword [rsp + 0x38]
lea rcx, [rsi + 0x30]
mov r8, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x14019dbf0
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 0x14019dde2
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 0x14019dde2
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 0x14019cd75
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 0x14019d32f
lea rax, [sym.fts5IterSetOutputs_Nocolset]
mov qword [r10 + 0x38], rax
jmp 0x14019ca60
mov eax, r8d
jmp 0x14019d915
lea rdx, [rsp + 0xc8]
lea rcx, [rbx + rsi]
call sym.sqlite3Fts5GetVarint32
mov eax, dword [rsp + 0xc8]
mov dword [r13 - 0x2c], eax
jmp 0x14019d468
lea rax, [sym.fts5IterSetOutputs_Full]
jmp 0x14019ca5a
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 0x14019ce19
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 0x14019ce19
mov edx, 0x158
mov esi, 2
mov r12d, 2
jmp 0x14019c96a
mov r14d, dword [r12 + 0x34]
test r14d, r14d
jne 0x14019d475
jmp 0x14019d5f0
lea eax, [rcx + 8]
jmp 0x14019d915
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 0x14019c9df
mov r13d, 7
jmp 0x14019dd51
mov eax, 0xd
jmp 0x14019dbbe