Function at 0x14019f220
Capabilities:
Encode data using xor
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov eax, dword [rsp + 0x148]
mov rbp, qword [rsp + 0x140]
mov r14d, dword [rsp + 0x150]
mov dword [rsp + 0x6c], eax
mov r11, rdx
mov r15, rcx
mov edi, r8d
mov rax, qword [rsp + 0x160]
mov edx, dword [rsp + 0x158]
mov r13, r9
mov qword [rsp + 0x88], rax
mov eax, dword [rcx + 0x3c]
mov dword [rsp + 0x84], eax
test eax, eax
jne 0x14019f5b0
test r14d, r14d
js 0x14019f58e
movsxd rax, r14d
add rax, 2
shl rax, 4
add rax, r11
cmp dword [rax + 4], edx
cmovle edx, dword [rax + 4]
mov r9d, edx
movsxd rsi, r9d
cmp r9d, 2
jle 0x1401a07a1
mov ebx, 2
nop word cs:[rax + rax]
add rbx, rbx
cmp rbx, rsi
jl 0x14019f2c0
lea rdx, [rbx - 1]
mov r8, rbx
mov rax, rdx
shl rax, 4
add rax, rdx
lea rdx, [rbx + rax*2 + 0x3a]
shl rdx, 2
lea rax, [r15 + 0x3c]
mov qword [rsp + 0x50], r11
mov rcx, rax
mov qword [rsp + 0x48], r8
mov dword [rsp + 0x40], r9d
mov qword [rsp + 0x98], rax
call sym.sqlite3Fts5MallocZero.part.0
mov r9d, dword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
test rax, rax
mov r11, qword [rsp + 0x50]
mov r12, rax
je 0x14019f5b0
mov rax, r8
mov dword [r12 + 0x40], ebx
shl rax, 4
mov qword [r12 + 0x18], r15
add rax, r8
lea rax, [r12 + rax*8 + 0x60]
mov qword [r12 + 0x58], rax
lea rax, [sym.fts5IterSetOutputs_Noop]
mov qword [r12 + 0x38], rax
mov rax, qword [rsp + 0x88]
mov qword [rax], r12
mov eax, edi
and eax, 2
mov qword [r12 + 0x30], r13
mov dword [rsp + 0x90], eax
setne al
movzx eax, al
mov dword [r12 + 0x44], eax
mov eax, edi
shr eax, 4
and eax, 1
mov byte [r12 + 0x48], al
test dil, 0x20
je 0x14019f610
mov eax, dword [r15 + 0x3c]
test eax, eax
jne 0x14019f5f0
test r14d, r14d
js 0x14019f68d
sub r9d, 1
js 0x14019f416
movsxd rax, r9d
mov ebp, r9d
lea rdi, [r12 + 0x60]
sub rsi, rbp
lea rbx, [rax*8]
sub rbx, rax
lea rax, [rsi*8]
sub rax, rsi
shl rbx, 3
lea rsi, [rax*8 - 0x70]
movsxd rax, r14d
add rax, 2
shl rax, 4
lea rbp, [r11 + rax]
nop word [rax + rax]
mov rdx, qword [rbp + 8]
mov r8, rdi
mov rcx, r15
add rdi, 0x88
add rdx, rbx
sub rbx, 0x38
call sym.fts5SegIterInit
cmp rsi, rbx
jne 0x14019f3e8
mov edi, dword [r15 + 0x3c]
test edi, edi
jne 0x14019f5f0
mov eax, dword [r12 + 0x40]
lea edi, [rax - 1]
test edi, edi
jle 0x14019f4e9
nop word cs:[rax + rax]
mov edx, edi
mov rcx, r12
call sym.fts5MultiIterDoCompare
mov esi, eax
test eax, eax
je 0x14019f4e0
mov ebx, dword [r15 + 0x3c]
test ebx, ebx
jne 0x14019f470
movsxd rdx, eax
xor r8d, r8d
mov rcx, r15
mov rax, rdx
shl rax, 4
add rax, rdx
shl rax, 3
lea rdx, [r12 + rax + 0x60]
call qword [r12 + rax + 0x98]
mov eax, dword [r12 + 0x40]
add eax, esi
mov esi, eax
shr esi, 0x1f
add esi, eax
sar esi, 1
cmp esi, edi
jl 0x14019f4e0
nop dword [rax]
mov r11d, dword [r15 + 0x3c]
test r11d, r11d
jne 0x14019f4e0
mov edx, esi
mov rcx, r12
call sym.fts5MultiIterDoCompare
mov ebx, eax
test eax, eax
je 0x14019f5d8
movsxd rdx, eax
xor r8d, r8d
mov rcx, r15
mov rax, rdx
shl rax, 4
add rax, rdx
shl rax, 3
lea rdx, [r12 + rax + 0x60]
call qword [r12 + rax + 0x98]
add ebx, dword [r12 + 0x40]
mov esi, ebx
shr esi, 0x1f
add esi, ebx
sar esi, 1
cmp edi, esi
jle 0x14019f488
nop dword [rax + rax]
sub edi, 1
jne 0x14019f430
mov rax, qword [r12 + 0x58]
movzx edx, word [rax + 4]
mov rax, rdx
shl rax, 4
add rax, rdx
lea rax, [r12 + rax*8]
mov rdx, qword [rax + 0x70]
test rdx, rdx
sete byte [r12 + 0x14]
mov rcx, qword [rax + 0xd8]
cmp byte [r12 + 0x48], 0
mov qword [r12 + 0x50], rcx
je 0x14019f540
mov r10d, dword [r15 + 0x3c]
test r10d, r10d
jne 0x14019f540
test rdx, rdx
je 0x14019f540
mov r9d, dword [rax + 0xe0]
test r9d, r9d
je 0x14019f658
nop
mov rcx, r12
call sym.fts5MultiIterIsDeleted
test eax, eax
jne 0x14019f658
cmp byte [r12 + 0x14], 0
jne 0x14019f5bf
mov rax, qword [r12 + 0x58]
mov rcx, r12
movzx edx, word [rax + 4]
mov rax, rdx
shl rax, 4
add rax, rdx
lea rdx, [r12 + rax*8 + 0x60]
mov rax, qword [r12 + 0x38]
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp rax
cmp qword [rcx + 0x18], 0
mov r9d, dword [r11 + 0x18]
je 0x14019f2a4
xor eax, eax
test r8b, 0x40
sete al
add r9d, eax
jmp 0x14019f2a4
mov rax, qword [rsp + 0x88]
mov qword [rax], 0
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
sar esi, 1
cmp esi, edi
jge 0x14019f488
sub edi, 1
jne 0x14019f430
jmp 0x14019f4e9
mov rcx, r12
call sym.fts5MultiIterFree.part.0
mov rax, qword [rsp + 0x88]
mov qword [rax], 0
jmp 0x14019f5bf
mov r8d, dword [r15 + 0x3c]
test r8d, r8d
jne 0x14019f5f0
mov rax, qword [r15]
mov edx, dword [rax + 0x5c]
cmp edx, 1
je 0x14019f67c
test r13, r13
je 0x1401a05a7
mov ecx, dword [r13]
test ecx, ecx
je 0x1401a054a
test edx, edx
jne 0x1401a07bd
lea rax, [sym.fts5IterSetOutputs_Full]
mov qword [r12 + 0x38], rax
jmp 0x14019f394
xor r9d, r9d
xor r8d, r8d
mov rdx, r12
mov rcx, r15
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.fts5MultiIterNext
lea rax, [sym.fts5IterSetOutputs_None]
mov qword [r12 + 0x38], rax
jmp 0x14019f394
movsxd rax, dword [r11 + 0x1c]
mov r13, qword [r15 + 0x18]
add rax, 2
shl rax, 4
add rax, r11
mov qword [rsp + 0xa0], rax
test r13, r13
je 0x14019f6b8
mov ebx, edi
and ebx, 0x40
je 0x1401a05b8
lea rax, [r11 + 0x20]
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0xa0], rax
jbe 0x14019f416
and edi, 8
mov qword [rsp + 0x48], rbp
mov dword [rsp + 0x80], edi
mov qword [rsp + 0xa8], r12
mov r12, r15
nop dword [rax]
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 4]
mov dword [rsp + 0x94], eax
sub eax, 1
js 0x14019fa97
movsxd rcx, eax
mov eax, eax
mov r13, r12
lea rdx, [rcx*8]
sub rdx, rcx
lea rdi, [rdx*8]
movsxd rdx, dword [rsp + 0x84]
mov qword [rsp + 0x40], rdi
mov rdi, qword [rsp + 0xa8]
mov rcx, rdx
add rax, rdx
shl rcx, 4
add rcx, rdx
mov rdx, rax
shl rdx, 4
lea r14, [rdi + rcx*8 + 0xd8]
add rax, rdx
lea rax, [rdi + rax*8 + 0x160]
mov qword [rsp + 0x60], rax
nop dword [rax]
mov rax, qword [rsp + 0x58]
mov r12, qword [rsp + 0x40]
add r12, qword [rax + 8]
lea rax, [r14 - 0x78]
cmp qword [rsp + 0x48], 0
mov qword [rsp + 0x50], rax
je 0x14019fa60
lea rdi, [r14 - 0x68]
mov eax, r14d
mov qword [r14 - 0x70], 0
and rdi, 0xfffffffffffffff8
mov qword [r14 + 8], 0
sub eax, edi
lea ecx, [rax + 0x10]
xor eax, eax
shr ecx, 3
rep stosq qword [rdi], rax
mov qword [r14 - 0x78], r12
mov rsi, qword [r13 + 0x68]
test rsi, rsi
je 0x1401a0110
mov ebx, dword [r13 + 0x3c]
test ebx, ebx
jne 0x14019fa6e
xor edx, edx
mov rcx, rsi
mov ebx, dword [r12]
call sym.vdbeUnbind
test eax, eax
jne 0x1401a0040
mov rcx, qword [rsi + 0x80]
movsxd rdx, ebx
test word [rcx + 0x14], 0x9000
jne 0x1401a0270
mov r11d, 4
mov qword [rcx], rdx
mov word [rcx + 0x14], r11w
mov rax, qword [rsi]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x14019f81c
call qword [0x1402ba750]
mov r9d, dword [rsp + 0x6c]
mov r8, qword [rsp + 0x48]
mov rcx, rsi
mov edx, 2
mov qword [rsp + 0x20], 0
call sym.sqlite3_bind_blob
mov rcx, rsi
call sym.sqlite3_step
cmp eax, 0x64
je 0x1401a007d
mov dword [rsp + 0x78], 0
mov ebx, 1
mov rcx, rsi
call sym.sqlite3_reset
mov edx, 1
mov rcx, rsi
mov dword [r13 + 0x3c], eax
call sym.vdbeUnbind
test eax, eax
jne 0x14019f889
mov rax, qword [rsi]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x14019f889
call qword [0x1402ba750]
mov eax, dword [r12 + 4]
cmp eax, ebx
jle 0x14019f89c
mov dword [rsp + 0x78], 0
mov ebx, eax
sub ebx, 1
mov rdx, qword [rsp + 0x50]
mov rcx, r13
mov dword [r14 - 0x6c], ebx
call sym.fts5SegIterNextPage
mov rax, qword [r14 - 0x68]
test rax, rax
je 0x14019fd90
mov rsi, qword [rax]
mov r12d, dword [rax + 8]
mov edx, 1
mov dword [rsp + 0xc0], 0
mov ecx, dword [rax + 0xc]
mov rbp, rcx
add rcx, rsi
movzx ebx, byte [rcx]
test bl, bl
jns 0x14019f91e
movzx edx, byte [rcx + 1]
test dl, dl
jns 0x1401a0320
movzx eax, byte [rcx + 2]
shl ebx, 0xe
or ebx, eax
test al, 0x80
je 0x1401a0348
lea rdx, [rsp + 0xc8]
call sym.sqlite3Fts5GetVarint
mov ebx, dword [rsp + 0xc8]
movzx edx, al
and ebx, 0x7fffffff
mov dword [rsp + 0xbc], ebx
cmp r12d, ebx
jb 0x14019ff90
lea rcx, [rsp + 0xc8]
add ebp, edx
mov eax, ebx
xor edi, edi
mov qword [rsp + 0x70], rcx
xor r15d, r15d
nop dword [rax]
mov r8d, eax
lea ecx, [rax + 1]
add r8, rsi
mov dword [rsp + 0xbc], ecx
movzx r9d, byte [r8]
mov dword [rsp + 0xc0], r9d
test r9b, r9b
js 0x14019fac0
cmp r15d, edi
ja 0x14019fb37
je 0x14019fcc0
cmp r12d, ebp
jbe 0x14019fd50
mov ecx, ebp
mov r8d, 1
add rcx, rsi
movzx eax, byte [rcx]
mov edx, eax
test al, al
jns 0x14019f9d6
movzx r8d, byte [rcx + 1]
test r8b, r8b
jns 0x14019ff70
movzx edx, byte [rcx + 2]
shl eax, 0xe
or eax, edx
and edx, 0x80
je 0x1401a0010
mov rdx, qword [rsp + 0x70]
call sym.sqlite3Fts5GetVarint
movzx r8d, al
mov eax, dword [rsp + 0xc8]
and eax, 0x7fffffff
add ebx, eax
add ebp, r8d
cmp r12d, ebx
jbe 0x14019ff90
mov ecx, ebx
lea eax, [rbx + 1]
add rcx, rsi
mov dword [rsp + 0xbc], eax
movzx edi, byte [rcx]
test dil, dil
jns 0x14019f948
mov dword [rsp + 0xbc], ebx
movzx edi, byte [rcx]
test dil, dil
jns 0x14019f948
movzx eax, byte [rcx + 1]
test al, al
jns 0x1401a01c0
movzx edx, byte [rcx + 2]
shl edi, 0xe
or edi, edx
and edx, 0x80
je 0x1401a01f0
mov rdx, qword [rsp + 0x70]
call sym.sqlite3Fts5GetVarint
mov edi, dword [rsp + 0xc8]
movzx eax, al
add eax, dword [rsp + 0xbc]
and edi, 0x7fffffff
jmp 0x14019f948
mov r8, rax
mov rdx, r12
mov rcx, r13
call sym.fts5SegIterInit
sub qword [rsp + 0x40], 0x38
add r14, 0x88
cmp qword [rsp + 0x60], r14
jne 0x14019f768
mov edi, dword [rsp + 0x94]
add dword [rsp + 0x84], edi
mov r12, r13
add qword [rsp + 0x58], 0x10
mov rax, qword [rsp + 0x58]
cmp qword [rsp + 0xa0], rax
ja 0x14019f6f0
mov r15, r12
mov r12, qword [rsp + 0xa8]
jmp 0x14019f40a
mov dword [rsp + 0xbc], eax
movzx r9d, byte [r8]
mov edx, r9d
test r9b, r9b
jns 0x1401a0030
movzx ecx, byte [r8 + 1]
test cl, cl
jns 0x1401a0190
movzx edx, byte [r8 + 2]
shl r9d, 0xe
or r9d, edx
and edx, 0x80
je 0x1401a01d0
mov rdx, qword [rsp + 0x70]
mov rcx, r8
call sym.sqlite3Fts5GetVarint
mov edx, dword [rsp + 0xc8]
movzx ecx, al
add ecx, dword [rsp + 0xbc]
and edx, 0x7fffffff
mov dword [rsp + 0xc0], edx
mov dword [rsp + 0xbc], ecx
cmp r15d, edi
jbe 0x14019f976
mov edx, dword [rsp + 0x80]
test edx, edx
je 0x1401a037a
mov r11d, dword [rsp + 0xc0]
mov edx, r11d
mov eax, ecx
add rax, rdx
mov edx, r12d
cmp rax, rdx
jg 0x14019ff90
test r11d, r11d
je 0x14019ff90
lea eax, [rcx + r11]
mov r8d, edi
mov r9, qword [rsp + 0x48]
lea r15, [r14 - 0x10]
movd xmm0, dword [r14 - 0x6c]
movd xmm1, eax
mov qword [r14 - 0x58], rax
mov rdx, r15
mov rdi, qword [rsp + 0x98]
mov dword [r14 - 8], 0
punpckldq xmm0, xmm1
mov rcx, rdi
movq qword [r14 - 0x38], xmm0
call sym.sqlite3Fts5BufferAppendBlob
mov eax, dword [rsp + 0xbc]
mov rdx, r15
mov rcx, rdi
mov r8d, dword [rsp + 0xc0]
lea r9, [rsi + rax]
call sym.sqlite3Fts5BufferAppendBlob
cmp r12d, ebp
ja 0x1401a057f
mov rax, qword [r14 - 0x68]
mov edi, dword [rax + 8]
lea edx, [rdi + 1]
mov dword [r14 - 0x2c], edx
mov rbx, qword [r14 - 0x58]
movsxd rdx, dword [rax + 0xc]
mov dword [r14 - 0x30], ebp
mov r12, rax
cmp rdx, rbx
jg 0x1401a09c5
lea rdi, [r14 - 0x2c]
lea rsi, [0x1402ba6c0]
jmp 0x14019fca5
mov rcx, qword [0x1402ba340]
test rcx, rcx
je 0x14019fc22
call qword [0x1402ba740]
mov rcx, r12
call qword [0x1402ba6f8]
mov rcx, r12
sub qword [0x1402baa88], 1
cdqe
sub qword [0x1402baa40], rax
call qword [0x1402ba6e8]
mov rcx, qword [0x1402ba340]
test rcx, rcx
je 0x14019fc57
call qword [0x1402ba750]
mov eax, dword [r14 - 0x6c]
mov rcx, qword [r14 - 0x60]
add eax, 1
mov dword [r14 - 0x6c], eax
test rcx, rcx
je 0x1401a02a8
mov qword [r14 - 0x68], rcx
mov qword [r14 - 0x60], 0
movsxd rax, dword [rcx + 0xc]
mov edx, dword [rcx + 8]
mov dword [r14 - 0x30], eax
cmp eax, edx
jl 0x1401a0280
add edx, 1
mov r12, qword [r14 - 0x68]
mov dword [r14 - 0x2c], edx
cmp dword [r12 + 0xc], 4
jg 0x1401a04a8
mov r9d, dword [rsi]
mov rbx, qword [r14 - 0x78]
test r9d, r9d
jne 0x14019fc10
mov rcx, r12
call qword [0x1402ba6e8]
jmp 0x14019fc57
mov r10d, dword [rsp + 0x6c]
mov r11d, dword [rsp + 0xc0]
sub r10d, r15d
cmp r10d, r11d
cmova r10d, r11d
xor eax, eax
test r10d, r10d
je 0x14019fd19
mov dword [rsp + 0x7c], r12d
mov r12, qword [rsp + 0x48]
jmp 0x14019fcfc
add eax, 1
cmp r10d, eax
je 0x1401a0100
lea r9d, [rax + r15]
lea edx, [rax + rcx]
mov r8, r9
movzx r9d, byte [r12 + r9]
cmp byte [rsi + rdx], r9b
je 0x14019fcf0
mov r12d, dword [rsp + 0x7c]
mov r15d, r8d
cmp dword [rsp + 0x6c], r15d
je 0x1401a0360
cmp r11d, eax
jbe 0x14019f97c
mov r11, qword [rsp + 0x48]
lea edx, [rax + rcx]
mov eax, r15d
movzx eax, byte [r11 + rax]
cmp byte [rsi + rdx], al
ja 0x14019fb37
cmp r12d, ebp
ja 0x14019f985
nop
mov eax, dword [rsp + 0x80]
mov rbx, qword [rsp + 0x50]
test eax, eax
jne 0x14019fd74
jmp 0x1401a037a
mov ebp, dword [rax + 0xc]
cmp ebp, dword [rax + 8]
jl 0x1401a03dd
mov rdx, rbx
mov rcx, r13
call sym.fts5SegIterNextPage
mov rax, qword [r14 - 0x68]
test rax, rax
jne 0x14019fd68
nop dword [rax + rax]
mov edx, dword [r13 + 0x3c]
or edx, dword [rsp + 0x80]
mov eax, dword [r14 - 0x70]
jne 0x14019ffae
mov edx, eax
mov rcx, qword [r14 - 0x68]
or edx, 1
mov dword [r14 - 0x70], edx
test rcx, rcx
je 0x1401a01b0
mov r8d, dword [rsp + 0x90]
test r8d, r8d
je 0x1401a0210
mov r15d, dword [rsp + 0x78]
or eax, 3
mov dword [r14 - 0x70], eax
mov edx, eax
test r15d, r15d
jne 0x1401a021a
mov rax, qword [r14 - 0x18]
test rax, rax
je 0x14019fdfd
mov rdx, qword [r13]
cmp dword [rdx + 0x80], 4
je 0x1401a04ee
mov r9, qword [r14 - 0x68]
mov ebx, dword [r14 - 0x6c]
cmp dword [r14 - 0x38], ebx
je 0x1401a044e
mov r10d, 4
mov r8d, 5
mov ecx, 0xd
mov edx, 4
mov rax, qword [r9]
cmp byte [rax + r10], 0
jns 0x1401a04a0
movsxd r8, r8d
lea r10d, [rdx + 2]
cmp byte [rax + r8], 0
jns 0x1401a0542
movsxd r10, r10d
lea r8d, [rdx + 3]
cmp byte [rax + r10], 0
jns 0x1401a04a0
movsxd r8, r8d
lea r10d, [rdx + 4]
cmp byte [rax + r8], 0
jns 0x1401a0542
movsxd r10, r10d
lea r8d, [rdx + 5]
cmp byte [rax + r10], 0
jns 0x1401a04a0
movsxd r8, r8d
lea r10d, [rdx + 6]
cmp byte [rax + r8], 0
jns 0x1401a0542
movsxd r10, r10d
lea r8d, [rdx + 7]
cmp byte [rax + r10], 0
jns 0x1401a04a0
movsxd r8, r8d
cmp byte [rax + r8], 0
jns 0x1401a07fd
movsxd rcx, ecx
mov eax, dword [r9 + 0xc]
mov qword [r14 - 0x58], rcx
cmp dword [r14 - 0x2c], eax
jl 0x1401a0300
mov eax, dword [r13 + 0x3c]
mov rdi, qword [r14 - 0x78]
add ebx, 1
mov dword [rsp + 0x70], eax
test eax, eax
jne 0x1401a0300
movsxd rsi, ebx
xor r12d, r12d
jmp 0x14019ff28
mov rdx, qword [rax]
movzx eax, byte [rdx]
movzx edx, byte [rdx + 1]
shl eax, 8
add ax, dx
je 0x14019ff07
mov dword [rsp + 0x70], ebx
mov rax, r12
mov r12, rcx
mov rcx, rax
call sym.sqlite3_free
cmp r15d, ebp
jg 0x1401a0394
mov ebp, dword [r13 + 0x3c]
add ebx, 1
add rsi, 1
test ebp, ebp
jne 0x1401a0394
cmp dword [rdi + 8], ebx
jl 0x1401a0394
movsxd rdx, dword [rdi]
mov rcx, r13
shl rdx, 0x25
add rdx, rsi
call sym.fts5DataRead
mov rcx, rax
test rax, rax
je 0x14019ff15
mov r15d, dword [rax + 8]
cmp r15d, 3
jle 0x14019ff5d
mov ebp, dword [rax + 0xc]
cmp r15d, ebp
jge 0x14019fee8
mov dword [r13 + 0x3c], 0x10b
call sym.sqlite3_free
jmp 0x14019ff15
and edx, 0x7f
movzx eax, r8b
mov r8d, 2
shl edx, 7
add ebp, r8d
or eax, edx
add ebx, eax
cmp r12d, ebx
ja 0x14019f9e4
mov edx, 0x10b
or edx, dword [rsp + 0x80]
mov dword [r13 + 0x3c], 0x10b
mov eax, dword [r14 - 0x70]
je 0x14019fda5
test al, 2
je 0x1401a00e0
lea rax, [sym.fts5SegIterNext_Reverse]
mov qword [r14 - 0x40], rax
mov rax, qword [r14 - 0x78]
mov ebx, dword [rax + 0x20]
test ebx, ebx
jle 0x14019fa6e
mov esi, dword [r13 + 0x3c]
test esi, esi
jne 0x14019fa6e
movsxd rdx, ebx
mov rcx, qword [rsp + 0x98]
shl rdx, 4
call sym.sqlite3Fts5MallocZero.part.0
test rax, rax
je 0x14019fa6e
mov qword [r14 - 0x50], rax
mov dword [r14 - 0x48], ebx
jmp 0x14019fa6e
and r8d, 0x7f
and eax, 0x1fc07f
shl r8d, 7
or eax, r8d
mov r8d, 3
jmp 0x14019f9d6
mov dword [rsp + 0xc0], r9d
jmp 0x14019fb27
mov r9d, dword [rsp + 0x6c]
mov r8, qword [rsp + 0x48]
mov rcx, rsi
mov edx, 2
mov qword [rsp + 0x20], 0
call sym.sqlite3_bind_blob
mov rcx, rsi
call sym.sqlite3_step
cmp eax, 0x64
jne 0x14019f84d
lea rcx, [0x140343420]
test rsi, rsi
je 0x1401a00bb
mov rax, qword [rsi]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1401a008f
call qword [0x1402ba740]
mov rcx, qword [rsi + 0xa0]
test rcx, rcx
je 0x1401a00a5
cmp word [rsi + 0xc0], 0
jne 0x1401a00bb
mov rcx, qword [rsi]
mov dword [rcx + 0x50], 0x19
call sym.sqlite3ErrorFinish.constprop.1
lea rcx, [0x140343420]
call sym.sqlite3VdbeIntValue
mov rcx, rsi
mov rdi, rax
call sym.columnMallocFailure
mov eax, edi
sar eax, 1
mov rbx, rax
mov eax, edi
and eax, 1
mov dword [rsp + 0x78], eax
jmp 0x14019f85a
mov rax, qword [r13]
cmp dword [rax + 0x5c], 1
je 0x1401a0260
lea rax, [sym.fts5SegIterNext]
mov qword [r14 - 0x40], rax
jmp 0x14019ffc1
mov r12d, dword [rsp + 0x7c]
add r15d, eax
jmp 0x14019fd19
mov rax, qword [r13]
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 esi, dword [r13 + 0x3c]
mov r15, rax
test esi, esi
jne 0x1401a0176
test rax, rax
je 0x1401a0338
mov rax, qword [r13]
lea rdx, [r13 + 0x68]
mov qword [rsp + 0x30], 0
mov r9d, 0x85
mov qword [rsp + 0x28], rdx
mov r8d, 0xffffffff
mov rdx, r15
mov qword [rsp + 0x20], 0
mov rcx, qword [rax]
call sym.sqlite3LockAndPrepare
mov dword [r13 + 0x3c], eax
mov rcx, r15
call sym.sqlite3_free
mov rsi, qword [r13 + 0x68]
jmp 0x14019f7c4
and edx, 0x7f
shl edx, 7
or edx, ecx
lea ecx, [rax + 2]
mov dword [rsp + 0xc0], edx
jmp 0x14019fb27
mov eax, edx
jmp 0x14019ffae
and edi, 0x7f
shl edi, 7
or edi, eax
lea eax, [rbx + 2]
jmp 0x14019f948
and ecx, 0x7f
and r9d, 0x1fc07f
shl ecx, 7
or r9d, ecx
lea ecx, [rax + 3]
mov dword [rsp + 0xc0], r9d
jmp 0x14019fb27
and eax, 0x7f
and edi, 0x1fc07f
shl eax, 7
or edi, eax
lea eax, [rbx + 3]
jmp 0x14019f948
mov r8d, dword [rsp + 0x78]
test r8d, r8d
je 0x1401a01b0
mov rax, qword [r14 - 0x78]
mov r9d, dword [r14 - 0x38]
and edx, 2
mov r8d, dword [rax]
cmp r9d, dword [r14 - 0x6c]
jne 0x1401a0237
mov eax, dword [rcx + 0xc]
cmp dword [r14 - 0x2c], eax
jl 0x1401a0243
mov rcx, r13
call sym.fts5DlidxIterInit
mov qword [r14 - 0x18], rax
mov r12d, dword [rsp + 0x90]
test r12d, r12d
jne 0x14019fde3
mov eax, dword [r14 - 0x70]
jmp 0x14019ffae
lea rax, [sym.fts5SegIterNext_None]
mov qword [r14 - 0x40], rax
jmp 0x14019ffc1
call sym.vdbeReleaseAndSetInt64
jmp 0x14019f80a
add rax, qword [rcx]
mov rdx, rdi
mov rcx, rax
call sym.sqlite3Fts5GetVarint32
mov r12, qword [r14 - 0x68]
add dword [r14 - 0x30], eax
test r12, r12
jne 0x14019fc99
jmp 0x1401a02b9
cmp eax, dword [rbx + 8]
jle 0x1401a0462
mov qword [r14 - 0x68], 0
mov edx, dword [r13 + 0x3c]
test edx, edx
je 0x14019ff90
jmp 0x14019fd94
movzx eax, ax
lea rcx, [rdx + rax]
mov rdx, r14
call sym.sqlite3Fts5GetVarint
mov edx, dword [r12 + 8]
movzx eax, al
add eax, ebx
cdqe
mov qword [r14 - 0x58], rax
movsxd rax, dword [r12 + 0xc]
cmp eax, edx
jl 0x1401a055b
add edx, 1
mov dword [r14 - 0x2c], edx
nop dword [rax]
mov rdx, qword [rsp + 0x50]
mov rcx, r13
call sym.fts5SegIterReverseInitPage
mov eax, dword [r14 - 0x70]
jmp 0x14019ffae
and ebx, 0x7f
shl ebx, 7
or ebx, edx
mov edx, 2
jmp 0x14019f91e
mov dword [r13 + 0x3c], 7
jmp 0x1401a0176
and edx, 0x7f
and ebx, 0x1fc07f
shl edx, 7
or ebx, edx
mov edx, 3
jmp 0x14019f91e
cmp r11d, eax
je 0x14019fb4e
mov r10d, dword [rsp + 0x80]
test r10d, r10d
jne 0x14019fb4e
mov rcx, qword [r14 - 0x68]
call sym.sqlite3_free
mov qword [r14 - 0x68], 0
mov edx, dword [r13 + 0x3c]
jmp 0x14019fd94
test r12, r12
je 0x1401a0300
mov rcx, qword [r14 - 0x68]
call sym.sqlite3_free
mov eax, dword [rsp + 0x70]
mov rdx, qword [r12]
mov qword [r14 - 0x68], r12
mov dword [r14 - 0x6c], eax
movzx eax, byte [rdx]
movzx ecx, byte [rdx + 1]
shl eax, 8
add eax, ecx
movzx ebx, ax
cmp ebx, dword [r12 + 0xc]
jle 0x1401a02ca
mov dword [r13 + 0x3c], 0x10b
jmp 0x1401a0254
mov rsi, qword [rax]
mov ecx, ebp
lea rdx, [rsp + 0xbc]
add rcx, rsi
call sym.sqlite3Fts5GetVarint32
mov ebx, dword [rsp + 0xbc]
cmp ebx, 3
jbe 0x14019ff90
mov rcx, qword [r14 - 0x68]
mov edx, ebx
movsxd r8, dword [rcx + 0xc]
cmp rdx, r8
jge 0x14019ff90
lea r8, [rsp + 0xc0]
mov r12d, dword [rcx + 8]
add ebp, eax
xor edi, edi
lea rcx, [rsi + rdx]
mov rdx, r8
call sym.sqlite3Fts5GetVarint32
add eax, dword [rsp + 0xbc]
mov r11d, dword [rsp + 0xc0]
mov dword [rsp + 0xbc], eax
mov ecx, eax
jmp 0x14019fb4e
movsxd r10, dword [r14 - 0x34]
mov rdx, r10
lea ecx, [r10 + 9]
lea r8d, [r10 + 1]
jmp 0x14019fe25
movsxd rdx, dword [rbx]
cdqe
mov rcx, r13
shl rdx, 0x25
add rdx, rax
call sym.fts5DataRead
mov rcx, rax
test rax, rax
je 0x1401a02b1
mov eax, dword [rax + 8]
cmp eax, 3
jle 0x1401a0787
cmp eax, dword [rcx + 0xc]
jl 0x1401a0787
mov qword [r14 - 0x68], rcx
jmp 0x14019fc7b
mov ecx, r8d
jmp 0x14019fead
mov rax, qword [r12]
mov ecx, 4
mov ebx, 4
mov rdx, r14
add rcx, rax
call sym.sqlite3Fts5GetVarint
mov edx, dword [r13 + 0x3c]
movzx eax, al
add rbx, rax
mov qword [r14 - 0x58], rbx
test edx, edx
jne 0x14019fd94
mov rdx, qword [rsp + 0x50]
mov rcx, qword [r13]
call sym.fts5SegIterLoadNPos.part.0.isra.0
mov edx, dword [r13 + 0x3c]
jmp 0x14019fd94
mov edi, dword [rax + 0x1c]
mov rax, qword [r14 - 0x78]
mov rcx, r13
movsxd rdx, dword [rax]
movsxd rax, edi
mov dword [rsp + 0x70], edi
shl rdx, 0x25
add rdx, rax
call sym.fts5DataRead
mov r12, rax
test rax, rax
je 0x1401a0300
mov eax, dword [rax + 8]
cmp eax, 3
jle 0x1401a052d
cmp eax, dword [r12 + 0xc]
jge 0x1401a039d
mov dword [r13 + 0x3c], 0x10b
mov rcx, r12
call sym.sqlite3_free
jmp 0x1401a0300
mov ecx, r10d
jmp 0x14019fead
lea rax, [sym.fts5IterSetOutputs_ZeroColset]
mov qword [r12 + 0x38], rax
jmp 0x14019f394
add rax, qword [r12]
lea rdx, [rsp + 0xc8]
mov rcx, rax
call sym.sqlite3Fts5GetVarint32
mov eax, dword [rsp + 0xc8]
mov dword [r14 - 0x2c], eax
jmp 0x1401a0300
mov ecx, ebp
lea rdx, [rsp + 0xc8]
add rcx, rsi
call sym.sqlite3Fts5GetVarint32
add ebx, dword [rsp + 0xc8]
add ebp, eax
mov dword [r14 - 0x2c], ebx
mov rax, qword [r14 - 0x68]
jmp 0x14019fbe3
lea rax, [sym.fts5IterSetOutputs_Nocolset]
mov qword [r12 + 0x38], rax
jmp 0x14019f394
mov dword [rsp + 0xbc], 0
mov qword [rsp + 0xc0], 0
test rbp, rbp
je 0x1401a05de
test dil, 8
je 0x1401a0805
mov r8d, dword [rsp + 0x6c]
lea r9, [r13 + 0x18]
mov rdx, rbp
mov rcx, r13
mov qword [rsp + 0x40], r11
mov qword [rsp + 0xc8], 0
call sym.fts5HashEntrySort
mov rcx, qword [r15 + 0x18]
lea rdx, [rsp + 0xc0]
lea r9, [rsp + 0xbc]
mov dword [r15 + 0x3c], eax
lea r8, [rsp + 0xc8]
call sym.sqlite3Fts5HashScanEntry
mov rcx, qword [rsp + 0xc0]
mov r11, qword [rsp + 0x40]
test rcx, rcx
je 0x1401a0646
call sym.strlen
mov r11, qword [rsp + 0x40]
mov ebx, eax
cmp qword [rsp + 0xc8], 0
je 0x1401a07b6
mov eax, dword [r15 + 0x3c]
test eax, eax
jne 0x1401a07b6
mov rcx, qword [rsp + 0x98]
mov edx, 0x10
mov qword [rsp + 0x40], r11
call sym.sqlite3Fts5MallocZero.part.0
mov r11, qword [rsp + 0x40]
test rax, rax
mov rsi, rax
je 0x1401a07b6
mov rax, qword [rsp + 0xc8]
mov dword [rsp + 0x48], ebx
mov qword [rsi], rax
mov r9, qword [rsp + 0xc0]
mov r8d, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x98]
mov dword [r12 + 0xd0], 0
lea rdx, [r12 + 0xc8]
mov qword [rsp + 0x40], r11
lea r13, [r12 + 0x60]
call sym.sqlite3Fts5BufferAppendBlob
mov rcx, qword [rsi]
lea rdx, [r12 + 0xd8]
movd xmm0, dword [rsp + 0xbc]
pshufd xmm0, xmm0, 0
movq qword [rsi + 8], xmm0
mov qword [r12 + 0x70], rsi
call sym.sqlite3Fts5GetVarint
mov r11, qword [rsp + 0x40]
movzx eax, al
mov qword [r12 + 0x80], rax
mov eax, dword [rsi + 8]
mov dword [r12 + 0xac], eax
mov eax, dword [rsp + 0x90]
test eax, eax
jne 0x1401a09d0
mov r14d, dword [r15 + 0x3c]
test r14d, r14d
jne 0x1401a07b6
mov rcx, qword [r15]
mov rdx, r13
mov qword [rsp + 0x40], r11
call sym.fts5SegIterLoadNPos.part.0.isra.0
mov eax, dword [r12 + 0x68]
mov r11, qword [rsp + 0x40]
test al, 2
je 0x1401a07dc
lea rax, [sym.fts5SegIterNext_Reverse]
mov qword [r12 + 0x98], rax
mov dword [rsp + 0x84], 1
lea rax, [r11 + 0x20]
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0xa0], rax
ja 0x14019f6cf
jmp 0x14019f40a
mov dword [r13 + 0x3c], 0x10b
call sym.sqlite3_free
mov qword [r14 - 0x68], 0
jmp 0x1401a02b9
mov r8d, 2
mov edx, 0x178
mov ebx, 2
jmp 0x14019f2e2
mov eax, dword [r12 + 0x68]
jmp 0x1401a0749
mov r8d, dword [rax + 0x18]
cmp r8d, 0x64
jle 0x1401a098a
lea rax, [sym.fts5IterSetOutputs_Col]
mov qword [r12 + 0x38], rax
jmp 0x14019f394
mov rax, qword [r15]
cmp dword [rax + 0x5c], 1
je 0x1401a09f0
lea rax, [sym.fts5SegIterNext]
mov qword [r12 + 0x98], rax
jmp 0x1401a0760
lea ecx, [rdx + 8]
jmp 0x14019fead
mov ebx, dword [rsp + 0x6c]
mov r9d, dword [r13 + 0x14]
mov eax, ebx
sub eax, 1
js 0x1401a0a31
movsxd rcx, ebx
movsxd rdx, eax
mov eax, eax
lea r8, [rbp + rcx - 2]
add rdx, rbp
sub r8, rax
mov eax, 0xd
movzx r10d, byte [rdx]
lea ecx, [rax*8]
sub rdx, 1
xor ecx, r10d
xor eax, ecx
cmp r8, rdx
jne 0x1401a0830
xor edx, edx
div r9d
mov rax, qword [r13 + 0x20]
mov r14, qword [rax + rdx*8]
test r14, r14
je 0x1401a0968
movsxd rbx, dword [rsp + 0x6c]
mov r8, rbx
mov ebx, edi
mov rdi, r11
jmp 0x1401a087c
mov r14, qword [r14]
test r14, r14
je 0x1401a0963
mov esi, dword [r14 + 0x1c]
lea eax, [rsi + 1]
cmp dword [rsp + 0x6c], eax
jne 0x1401a0870
lea rcx, [r14 + 0x30]
mov rdx, rbp
mov qword [rsp + 0x40], r8
call sub.msvcrt.dll_memcmp
mov r8, qword [rsp + 0x40]
test eax, eax
jne 0x1401a0870
mov qword [rsp + 0x40], rdi
mov edi, ebx
mov ebx, dword [r14 + 0x18]
call sym.sqlite3_initialize
mov r11, qword [rsp + 0x40]
test eax, eax
jne 0x1401a0a04
mov eax, dword [rsp + 0x6c]
mov qword [rsp + 0x50], r11
mov dword [rsp + 0x48], eax
lea eax, [rsi + 0x32]
sub ebx, eax
mov dword [rsp + 0x40], eax
lea ecx, [rbx + 0x1a]
movsxd rcx, ecx
call sym.sqlite3Malloc
mov r11, qword [rsp + 0x50]
test rax, rax
mov rsi, rax
je 0x1401a0a04
movsxd rdx, dword [rsp + 0x40]
lea r9, [rax + 0x10]
movsxd r8, ebx
mov qword [rsp + 0x58], r11
mov rcx, r9
mov qword [rsp + 0x50], r9
add rdx, r14
call sym.memcpy
mov r8d, 0x10
sub r8d, dword [rsp + 0x40]
mov rdx, r14
movsxd r8, r8d
mov rcx, r13
add r8, rsi
call sym.fts5HashAddPoslistSize
mov r9, qword [rsp + 0x50]
mov r11, qword [rsp + 0x58]
mov dword [r15 + 0x3c], 0
add eax, ebx
mov dword [rsp + 0xbc], eax
mov qword [rsi], r9
mov r9, rbp
mov qword [rsp + 0xc0], rbp
or dword [r12 + 0x68], 1
jmp 0x1401a06a0
mov r11, rdi
mov edi, ebx
mov eax, dword [r12 + 0x68]
mov dword [r15 + 0x3c], 0
mov qword [rsp + 0xc0], rbp
or eax, 1
mov dword [r12 + 0x68], eax
jmp 0x1401a0749
lea rax, [sym.fts5IterSetOutputs_Col100]
lea rdx, [r12 + 0x20]
mov qword [rsp + 0x48], r11
mov rcx, qword [rsp + 0x98]
mov qword [r12 + 0x38], rax
mov dword [rsp + 0x40], r9d
call sym.sqlite3Fts5BufferSize
mov eax, dword [r15 + 0x3c]
mov r9d, dword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
jmp 0x14019f38c
mov rax, qword [rax]
mov rcx, rbx
jmp 0x1401a04b6
or dword [r12 + 0x68], 2
mov rdx, r13
mov rcx, r15
call sym.fts5SegIterReverseInitPage
mov eax, dword [r12 + 0x68]
mov r11, qword [rsp + 0x40]
jmp 0x1401a0749
lea rax, [sym.fts5SegIterNext_None]
mov qword [r12 + 0x98], rax
jmp 0x1401a0760
mov dword [rsp + 0xbc], 0
mov eax, dword [r12 + 0x68]
mov dword [r15 + 0x3c], 7
or eax, 1
mov qword [rsp + 0xc0], rbp
mov dword [r12 + 0x68], eax
jmp 0x1401a0749
mov eax, 0xd
jmp 0x1401a0849