Function at 0x14027f140
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 0x14027f1f8
test ebp, ebp
js 0x14027f494
movsxd rax, ebp
shl rax, 4
mov eax, dword [rax + rdx + 0x1c]
cmp edi, eax
cmovg edi, eax
cmp edi, 2
jle 0x140280623
mov r12d, 2
nop word [rax + rax]
add r12d, r12d
cmp edi, r12d
jg 0x14027f1d0
lea eax, [r12 - 1]
movsxd rsi, r12d
cdqe
imul rax, rax, 0x1e
lea rdx, [rsi + rax + 0x36]
shl rdx, 2
jmp 0x14027f20a
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 0x14027f28b
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 0x14027f2b0
mov eax, dword [r15 + 0x34]
test eax, eax
je 0x14027f300
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 0x14027f283
mov rax, qword [r15]
mov edx, dword [rax + 0x5c]
cmp edx, 1
je 0x14027f508
test r13, r13
je 0x1402805a4
mov ecx, dword [r13]
test ecx, ecx
je 0x1402803ec
test edx, edx
je 0x1402805dd
mov r8d, dword [rax + 0x18]
lea rax, [sym.fts5IterSetOutputs_Col]
cmp r8d, 0x64
jle 0x140280653
mov qword [r10 + 0x38], rax
nop
test ebp, ebp
js 0x14027f518
sub edi, 1
js 0x14027f36e
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 0x14027f340
mov r10, rbp
mov eax, dword [r15 + 0x34]
test eax, eax
jne 0x14027f283
mov eax, dword [r10 + 0x40]
mov rbp, r10
lea edi, [rax - 1]
test edi, edi
jle 0x14027f41c
mov edx, edi
mov rcx, rbp
call sym.fts5MultiIterDoCompare
test eax, eax
mov ebx, eax
je 0x14027f410
mov r10d, dword [r15 + 0x34]
test r10d, r10d
jne 0x14027f3b5
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 0x14027f410
nop dword [rax]
mov r9d, dword [r15 + 0x34]
test r9d, r9d
jne 0x14027f410
mov edx, esi
mov rcx, rbp
call sym.fts5MultiIterDoCompare
test eax, eax
mov ebx, eax
je 0x14027f4f0
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 0x14027f3c8
nop dword [rax]
sub edi, 1
jne 0x14027f380
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 0x14027f4b0
mov r8d, dword [r15 + 0x34]
test r8d, r8d
jne 0x14027f4b0
test rcx, rcx
je 0x14027f292
mov ecx, dword [rax + 0xd0]
test ecx, ecx
jne 0x14027f4b9
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 0x14027f1bb
test rcx, rcx
je 0x14027f292
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 0x14027f3c8
sub edi, 1
jne 0x14027f380
jmp 0x14027f419
lea rax, [sym.fts5IterSetOutputs_None]
mov qword [r10 + 0x38], rax
jmp 0x14027f300
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 0x140280394
cmp qword [rsp + 0x38], 0
mov dword [rsp + 0xbc], 0
mov qword [rsp + 0xc0], 0
je 0x14027f56b
mov r13d, dword [rsp + 0x80]
and r13d, 8
je 0x140280416
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 0x14027f5ce
mov rcx, rdi
call sym.strlen
mov r10, qword [rsp + 0x30]
mov esi, eax
mov rbp, qword [rsp + 0xc8]
test rbp, rbp
je 0x14027f6b5
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 0x14027f6b5
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 0x140280605
mov eax, dword [r15 + 0x34]
test eax, eax
jne 0x14027f6b5
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 0x1402803f8
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 0x14027f362
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 0x14027fa88
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 0x14027fa50
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 0x14027ffe0
mov eax, dword [r12 + 0x34]
test eax, eax
mov dword [rsp + 0x58], eax
jne 0x14027fa5e
xor edx, edx
mov rcx, rbx
mov edi, dword [rsi]
call sym.vdbeUnbind
test eax, eax
jne 0x14027ff20
mov rcx, qword [rbx + 0x80]
movsxd rdx, edi
test word [rcx + 0x14], 0x9000
jne 0x140280280
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 0x14027f817
call qword [0x1403951b0]
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 0x14027ff5a
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 0x14027f87f
mov rax, qword [rbx]
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x14027f87f
call qword [0x1403951b0]
mov eax, dword [rsi + 4]
cmp eax, edi
jg 0x14027f88c
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 0x14027ff10
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 0x14027f925
movzx eax, byte [rcx + 1]
test al, al
jns 0x1402802e0
movzx edx, byte [rcx + 2]
shl esi, 0xe
or esi, edx
and edx, 0x80
je 0x140280310
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 0x14027fe90
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 0x14027fac0
cmp ebx, r15d
jb 0x14027fb24
cmp r15d, ebx
je 0x14027fd38
cmp ebp, r14d
jae 0x14027fdd0
mov ecx, ebp
mov eax, 1
add rcx, rdi
movzx edx, byte [rcx]
test dl, dl
mov r8d, edx
jns 0x14027f9de
movzx eax, byte [rcx + 1]
test al, al
jns 0x14027fe70
movzx r8d, byte [rcx + 2]
shl edx, 0xe
or edx, r8d
and r8d, 0x80
je 0x14027fec8
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 0x14027fe90
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 0x14027f948
movzx edx, byte [rcx + 1]
test dl, dl
jns 0x140280070
movzx eax, byte [rcx + 2]
shl ebx, 0xe
or ebx, eax
test al, 0x80
je 0x1402800b0
mov rdx, qword [rsp + 0x60]
call sym.sqlite3Fts5GetVarint
mov ebx, dword [rsp + 0xc8]
movzx r8d, al
and ebx, 0x7fffffff
add r8d, esi
jmp 0x14027f948
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 0x14027f778
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 0x14027f710
mov r10, qword [rsp + 0x98]
mov r15, r12
mov r14, qword [rsp + 0xa8]
jmp 0x14027f362
movzx ecx, byte [rax + 1]
test cl, cl
jns 0x140280050
movzx edx, byte [rax + 2]
shl r9d, 0xe
or r9d, edx
and edx, 0x80
je 0x140280088
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 0x14027f97a
mov edx, dword [rsp + 0x6c]
mov r15d, dword [rsp + 0xc0]
test edx, edx
je 0x14027fef8
mov eax, ecx
mov edx, r15d
mov r8d, r14d
add rdx, rax
mov qword [rsp + 0x70], rax
cmp rdx, r8
jg 0x14027fe90
test r15d, r15d
je 0x14027fe90
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 0x14028057c
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 0x1402803b0
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 0x14027fd15
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 0x14027fd19
mov rcx, qword [r13 - 0x58]
or edx, 1
mov dword [r13 - 0x60], edx
test rcx, rcx
je 0x14027fd19
mov ebp, dword [rsp + 0x84]
test ebp, ebp
je 0x1402800d0
mov edi, dword [rsp + 0x58]
or eax, 3
mov edx, eax
mov dword [r13 - 0x60], eax
test edi, edi
jne 0x1402800dc
mov rbp, qword [r13 - 0x18]
test rbp, rbp
je 0x140280121
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 0x14027fd08
mov eax, dword [rax + 8]
cmp eax, 3
jle 0x14028037e
cmp eax, dword [rbp + 0xc]
jl 0x14028037e
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 0x14027fe90
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 0x1402805bc
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 0x14027fea6
lea rax, [sym.fts5SegIterNext_Reverse]
mov qword [r13 - 0x40], rax
jmp 0x14027fa5e
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 0x14027fd91
mov dword [rsp + 0x78], r9d
mov r9, qword [rsp + 0x38]
jmp 0x14027fd74
add eax, 1
cmp r10d, eax
je 0x14027ffd0
lea r11d, [r15 + rax]
lea edx, [rax + rcx]
mov r8, r11
movzx r11d, byte [r9 + r11]
cmp byte [rdi + rdx], r11b
je 0x14027fd68
mov r9d, dword [rsp + 0x78]
mov r15d, r8d
cmp dword [rsp + 0x68], r15d
je 0x14027fee0
cmp eax, r9d
jae 0x14027f983
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 0x14027fb24
cmp ebp, r14d
jb 0x14027f98c
nop dword [rax + rax]
mov eax, dword [rsp + 0x6c]
mov rbx, qword [rsp + 0x40]
test eax, eax
je 0x14027fef8
nop dword [rax]
mov rdx, rbx
mov rcx, r12
call sym.fts5SegIterNextPage
mov rax, qword [r13 - 0x58]
test rax, rax
je 0x14027fd15
mov ebp, dword [rax + 0xc]
mov r14d, dword [rax + 8]
mov rdi, qword [rax]
cmp ebp, r14d
jge 0x14027fde8
lea rdx, [rsp + 0xbc]
mov ecx, ebp
add rcx, rdi
call sym.sqlite3Fts5GetVarint32
mov esi, dword [rsp + 0xbc]
cmp esi, 3
jbe 0x14027fe90
mov edx, esi
movsxd rcx, ebp
cmp rdx, rcx
jge 0x14027fe90
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 0x14027fb38
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 0x14027f9eb
mov dword [r12 + 0x34], 0x10b
mov edx, dword [r13 - 0x60]
and edx, 2
jne 0x14027fd22
mov rax, qword [r12]
cmp dword [rax + 0x5c], 1
je 0x140280270
lea rax, [sym.fts5SegIterNext]
mov qword [r13 - 0x40], rax
jmp 0x14027fa5e
and eax, 0x7f
and edx, 0x1fc07f
shl eax, 7
or edx, eax
mov eax, 3
jmp 0x14027f9de
cmp r9d, eax
mov r15d, r9d
je 0x14027fb38
mov eax, dword [rsp + 0x6c]
test eax, eax
jne 0x14027fb38
mov rcx, qword [rsp + 0x70]
call sym.sqlite3_free
mov qword [r13 - 0x58], 0
nop word [rax + rax]
mov ebx, dword [r12 + 0x34]
jmp 0x14027fc20
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 0x14027f848
test rbx, rbx
je 0x140280350
mov r14, qword [rbx]
mov rcx, qword [r14 + 0x18]
test rcx, rcx
je 0x14027ff6f
call qword [0x1403951a0]
mov r14, qword [rbx]
mov rax, qword [rbx + 0xa0]
test rax, rax
je 0x140280290
cmp word [rbx + 0xc0], 0
je 0x140280290
movzx edx, word [rax + 0x14]
test dl, 0x24
jne 0x14028036c
test dl, 8
jne 0x140280337
and dl, 0x12
je 0x1402802a8
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1402802a8
mov edx, dword [rax + 0x10]
movzx r8d, byte [rax + 0x16]
call sym.memIntValue.isra.0
jmp 0x140280340
mov r9d, dword [rsp + 0x78]
add r15d, eax
jmp 0x14027fd91
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 0x14028003d
test rbx, rbx
je 0x1402802f8
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 0x14027f7be
and edx, 0x7f
shl edx, 7
or edx, ecx
mov ecx, 2
mov dword [rsp + 0xc0], edx
jmp 0x14027fb11
and eax, 0x7f
mov r8d, 2
shl eax, 7
or eax, edx
mov ebx, eax
jmp 0x14027fa41
and ecx, 0x7f
and r9d, 0x1fc07f
shl ecx, 7
or r9d, ecx
mov ecx, 3
mov dword [rsp + 0xc0], r9d
jmp 0x14027fb11
and edx, 0x7f
and ebx, 0x1fc07f
mov r8d, 3
shl edx, 7
or ebx, edx
jmp 0x14027fa41
mov esi, dword [rsp + 0x58]
test esi, esi
je 0x14027fd19
mov rax, qword [r13 - 0x68]
and edx, 2
mov r9d, dword [r13 - 0x38]
cmp r9d, dword [r13 - 0x5c]
mov r8d, dword [rax]
jne 0x1402800f9
mov eax, dword [rcx + 0xc]
cmp dword [r13 - 0x2c], eax
jl 0x140280105
mov rcx, r12
call sym.fts5DlidxIterInit
mov qword [r13 - 0x18], rax
mov ebx, dword [rsp + 0x84]
test ebx, ebx
je 0x14027fd15
mov rbp, qword [r13 - 0x18]
test rbp, rbp
jne 0x14027fc75
mov r14d, dword [r13 - 0x5c]
cmp dword [r13 - 0x38], r14d
mov r9, qword [r13 - 0x58]
je 0x1402803dc
mov eax, 5
mov r8d, 4
mov ecx, 4
mov rdx, qword [r9]
cmp byte [rdx + r8], 0
jns 0x1402801b5
lea r8d, [rcx + 2]
cdqe
cmp byte [rdx + rax], 0
jns 0x1402805b4
lea eax, [rcx + 3]
movsxd r8, r8d
cmp byte [rdx + r8], 0
jns 0x1402801b5
lea r8d, [rcx + 4]
cdqe
cmp byte [rdx + rax], 0
jns 0x1402805b4
lea eax, [rcx + 5]
movsxd r8, r8d
cmp byte [rdx + r8], 0
jns 0x1402801b5
lea r8d, [rcx + 6]
cdqe
cmp byte [rdx + rax], 0
jns 0x1402805b4
lea eax, [rcx + 7]
movsxd r8, r8d
cmp byte [rdx + r8], 0
jns 0x1402801b5
movsxd r8, eax
cmp byte [rdx + r8], 0
lea eax, [rcx + 9]
jns 0x14028064b
cdqe
mov qword [r13 - 0x48], rax
mov eax, dword [r9 + 0xc]
cmp dword [r13 - 0x2c], eax
jl 0x14027fd08
mov edi, dword [r12 + 0x34]
add r14d, 1
mov rsi, qword [r13 - 0x68]
test edi, edi
jne 0x14027fd08
movsxd rbx, r14d
mov qword [rsp + 0x58], r13
jmp 0x140280229
mov rdx, qword [rax]
cmp word [rdx], 0
je 0x140280205
mov rdx, rbp
mov edi, r14d
mov rbp, rax
mov rcx, rdx
call sym.sqlite3_free
cmp r15d, r13d
jg 0x140280359
mov r11d, dword [r12 + 0x34]
add r14d, 1
add rbx, 1
test r11d, r11d
jne 0x140280359
cmp dword [rsi + 8], r14d
jl 0x140280359
movsxd rdx, dword [rsi]
mov rcx, r12
shl rdx, 0x25
add rdx, rbx
call sym.fts5DataRead
test rax, rax
mov rcx, rax
je 0x140280213
mov r15d, dword [rax + 8]
cmp r15d, 3
jle 0x140280260
mov r13d, dword [rax + 0xc]
cmp r15d, r13d
jge 0x1402801f0
mov dword [r12 + 0x34], 0x10b
call sym.sqlite3_free
jmp 0x140280213
lea rax, [sym.fts5SegIterNext_None]
mov qword [r13 - 0x40], rax
jmp 0x14027fa5e
call sym.vdbeReleaseAndSetInt64
jmp 0x14027f805
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 0x140280328
xor eax, eax
test ecx, ecx
jne 0x140280328
mov rcx, qword [rdx + 0x18]
mov dword [rbx + 0x34], eax
test rcx, rcx
je 0x14027f84f
call qword [0x1403951b0]
jmp 0x14027f84f
and edx, 0x7f
shl edx, 7
mov esi, edx
or esi, eax
mov eax, 2
jmp 0x14027f925
mov dword [r12 + 0x34], 7
jmp 0x14028003d
and eax, 0x7f
and esi, 0x1fc07f
shl eax, 7
or esi, eax
mov eax, 3
jmp 0x14027f925
mov edx, ecx
mov rcx, r14
call sym.apiHandleError
mov rdx, qword [rbx]
jmp 0x1402802bf
movsd xmm0, qword [rax]
call sym.doubleToInt64
mov rbp, rax
sar eax, 1
mov rdi, rax
and ebp, 1
jmp 0x1402802ac
xor ebp, ebp
xor edi, edi
jmp 0x14027f84f
test rbp, rbp
mov r13, qword [rsp + 0x58]
jne 0x14027fcae
jmp 0x14027fd08
mov rbp, qword [rax]
mov eax, ebp
and ebp, 1
sar eax, 1
mov rdi, rax
jmp 0x1402802ac
mov dword [r12 + 0x34], 0x10b
mov rcx, rbp
call sym.sqlite3_free
jmp 0x14027fd08
mov rdi, rax
xor esi, esi
lea rax, [rbx + 0x18]
cmp rax, rdi
mov qword [rsp + 0x48], rax
jb 0x14027f6ee
jmp 0x14027f36e
mov rdx, qword [rsp + 0x40]
mov rcx, r12
call sym.fts5SegIterNextPage
mov rax, qword [r13 - 0x58]
test rax, rax
je 0x140280638
mov rax, qword [rax]
mov edx, 4
mov ebx, 4
jmp 0x14027fbea
movsxd r8, dword [r13 - 0x34]
lea eax, [r8 + 1]
mov rcx, r8
jmp 0x140280143
lea rax, [sym.fts5IterSetOutputs_ZeroColset]
jmp 0x14027f2fa
mov rax, qword [r15]
lea rdx, [sym.fts5SegIterNext_None]
cmp dword [rax + 0x5c], 1
lea rax, [sym.fts5SegIterNext]
cmovne rdx, rax
jmp 0x14027f6c8
mov edi, dword [rsp + 0x68]
mov r9d, dword [rbp + 0x14]
mov eax, edi
sub eax, 1
js 0x14028068d
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 0x140280446
xor edx, edx
div r9d
mov rax, qword [rbp + 0x20]
mov rsi, qword [rax + rdx*8]
test rsi, rsi
je 0x1402805f1
movsxd rdi, dword [rsp + 0x68]
mov r12, rbx
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x30], r10
mov ebx, edi
jmp 0x14028049c
mov rsi, qword [rsi]
test rsi, rsi
je 0x1402805e9
mov ebp, dword [rsi + 0x1c]
lea eax, [rbp + 1]
cmp ebx, eax
jne 0x140280490
mov rdx, qword [rsp + 0x38]
lea rcx, [rsi + 0x30]
mov r8, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x140280490
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 0x140280682
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 0x140280682
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 0x14027f615
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 0x14027fbcf
lea rax, [sym.fts5IterSetOutputs_Nocolset]
mov qword [r10 + 0x38], rax
jmp 0x14027f300
mov eax, r8d
jmp 0x1402801b5
lea rdx, [rsp + 0xc8]
lea rcx, [rbx + rsi]
call sym.sqlite3Fts5GetVarint32
mov eax, dword [rsp + 0xc8]
mov dword [r13 - 0x2c], eax
jmp 0x14027fd08
lea rax, [sym.fts5IterSetOutputs_Full]
jmp 0x14027f2fa
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 0x14027f6b9
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 0x14027f6b9
mov edx, 0x158
mov esi, 2
mov r12d, 2
jmp 0x14027f20a
mov r14d, dword [r12 + 0x34]
test r14d, r14d
jne 0x14027fd15
jmp 0x14027fe90
lea eax, [rcx + 8]
jmp 0x1402801b5
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 0x14027f27f
mov r13d, 7
jmp 0x1402805f1
mov eax, 0xd
jmp 0x14028045e