Function at 0x140195f30
Capabilities:
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, 0x128
movups xmmword [rsp + 0xf0], xmm6
movups xmmword [rsp + 0x100], xmm7
movups xmmword [rsp + 0x110], xmm8
mov rax, qword [rcx]
mov qword [rsp + 0x88], rax
mov rax, qword [rax + 0x18]
mov r14, r8
mov ebx, r9d
mov qword [rsp + 0x170], rcx
mov rdi, qword [rax + 0xb8]
mov qword [rsp + 0x58], rax
mov eax, dword [rax + 0x78]
mov dword [rsp + 0x178], edx
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0xd8], 0
mov dword [rsp + 0xbc], eax
test eax, eax
jne 0x140196b78
mov edx, dword [rcx + 0x20]
test edx, edx
jne 0x140196b24
mov rax, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x58]
add rax, 0x10
mov qword [rsp + 0x68], rax
mov qword [rdi + 0xb8], rax
test ebx, ebx
jle 0x14019715a
mov r13, qword [rsp + 0x190]
lea eax, [rbx - 1]
xor esi, esi
xor r15d, r15d
mov qword [rsp + 0x78], 0
movdqu xmm6, xmmword [0x14033dbe0]
xor edi, edi
lea rax, [r13 + rax*8 + 8]
movdqu xmm7, xmmword [0x14033dbf0]
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x50], rax
nop dword [rax + rax]
movsxd r8, esi
mov r12, qword [r13]
lea ebx, [rsi + 1]
add r8, r14
movzx ebp, byte [r8]
cmp bpl, 0x4d
jg 0x140196970
cmp bpl, 0x3b
jle case.0x140196061.2
lea eax, [rbp - 0x3c]
cmp al, 0x11
ja case.0x140196061.2
lea rdx, [0x14033b07c]
movzx eax, al
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov r15, r12
add r13, 8
cmp qword [rsp + 0x50], r13
je 0x1401967b0
mov esi, ebx
jmp 0x140196028
test r12, r12
je 0x1401960bf
movzx eax, word [r12 + 0x14]
mov edx, eax
and dx, 0x202
cmp dx, 0x202
je 0x1401969d0
test al, 1
jne 0x1401969f0
mov rcx, r12
mov edx, 1
mov qword [rsp + 0x60], r8
call sym.valueToText
mov r8, qword [rsp + 0x60]
mov r12, rax
add esi, 2
movsx eax, byte [r8 + 1]
movsxd rdx, esi
xor esi, esi
nop dword [rax]
lea ecx, [rsi + rsi*4]
mov ebx, edx
lea esi, [rax + rcx*2 - 0x30]
movsx eax, byte [r14 + rdx]
add rdx, 1
lea ecx, [rax - 0x30]
cmp cl, 9
jbe 0x1401960d0
test r12, r12
je 0x140196630
mov rcx, r12
call sym.strlen
mov qword [rsp + 0x70], rax
call sym.sqlite3_initialize
test eax, eax
jne 0x1401969a0
mov rax, qword [rsp + 0x70]
lea r8, [rax*4]
cmp r8, 0x7ffffefe
jg 0x1401969a0
mov eax, dword [0x1402ba6c0]
add r8, 1
test eax, eax
jne 0x1401969f8
mov ecx, r8d
call qword [0x1402ba6e0]
mov qword [rsp + 0x80], rax
cmp qword [rsp + 0x80], 0
je 0x1401969a0
cmp bpl, 0x47
mov edx, 0
mov eax, 0x5b
mov r11, qword [rsp + 0x70]
cmovne eax, edx
mov edx, 0x25
mov qword [rsp + 0xa0], r15
pxor xmm5, xmm5
mov dword [rsp + 0xac], esi
pxor xmm4, xmm4
mov rsi, qword [rsp + 0x80]
pcmpeqd xmm3, xmm3
mov r10d, eax
mov eax, 0x3f
mov qword [rsp + 0xb0], r13
cmovne eax, edx
mov edx, 0x5f
mov qword [rsp + 0x180], r14
mov r15d, r10d
mov dword [rsp + 0x60], 0
mov r8d, eax
mov eax, 0x2a
mov qword [rsp + 0x98], rdi
cmovne eax, edx
mov dword [rsp + 0xb8], ebx
xor ebp, ebp
xor r9d, r9d
xor ecx, ecx
mov r14d, r8d
mov edx, eax
lea rax, [r12 + r11]
mov qword [rsp + 0xc8], rax
lea rax, [r12 + 1]
mov r13d, edx
mov qword [rsp + 0x70], rax
xor eax, eax
jmp 0x140196220
cmp al, r15b
je 0x14019623d
add r9d, 1
movsxd rcx, r9d
mov rax, rcx
cmp r11, rcx
jl 0x140196588
add rcx, r12
cmp rax, r11
je 0x14019623d
movzx eax, byte [rcx]
cmp al, r14b
sete r8b
cmp al, r13b
sete dl
or r8b, dl
je 0x140196208
mov r8d, r9d
movsxd rdi, ebp
sub r8d, ebp
test r8d, r8d
jle 0x140196569
lea eax, [r8 - 1]
cmp eax, 0xe
jbe 0x140196b16
mov r10d, r8d
lea rax, [r12 + rdi]
pxor xmm1, xmm1
shr r10d, 4
mov rdx, rax
shl r10, 4
add r10, rax
nop dword [rax]
movdqu xmm0, xmmword [rdx]
add rdx, 0x10
pand xmm0, xmm6
movdqu xmm2, xmm0
punpckhbw xmm0, xmm5
punpcklbw xmm2, xmm5
movdqu xmm8, xmm2
punpckhwd xmm2, xmm4
punpcklwd xmm8, xmm4
pcmpeqd xmm2, xmm7
pcmpeqd xmm8, xmm7
pandn xmm2, xmm3
pandn xmm8, xmm3
psubd xmm1, xmm8
psubd xmm1, xmm2
movdqu xmm2, xmm0
punpckhwd xmm0, xmm4
punpcklwd xmm2, xmm4
pcmpeqd xmm0, xmm7
pcmpeqd xmm2, xmm7
pandn xmm0, xmm3
pandn xmm2, xmm3
psubd xmm1, xmm2
psubd xmm1, xmm0
cmp rdx, r10
jne 0x140196278
movdqu xmm0, xmm1
mov r10d, r8d
psrldq xmm0, 8
and r10d, 0xfffffff0
paddd xmm1, xmm0
movdqu xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd edx, xmm1
test r8b, 0xf
je 0x140196560
movsxd rbx, r10d
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 1]
cmp r8d, ebx
jle 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 2]
cmp r8d, ebx
jle 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 3]
cmp r8d, ebx
jle 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 4]
cmp r8d, ebx
jle 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 5]
cmp r8d, ebx
jle 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 6]
cmp r8d, ebx
jle 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 7]
cmp ebx, r8d
jge 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 8]
cmp ebx, r8d
jge 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 9]
cmp ebx, r8d
jge 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 0xa]
cmp ebx, r8d
jge 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 0xb]
cmp ebx, r8d
jge 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 0xc]
cmp r8d, ebx
jle 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
movzx ebx, bl
add edx, ebx
lea ebx, [r10 + 0xd]
cmp r8d, ebx
jle 0x140196560
movsxd rbx, ebx
movsx ebx, byte [rax + rbx]
and ebx, 0xc0
cmp ebx, 0x80
setne bl
add r10d, 0xe
movzx ebx, bl
add edx, ebx
cmp r10d, r8d
jge 0x140196560
movsxd r10, r10d
movsx r8d, byte [rax + r10]
and r8d, 0xc0
cmp r8d, 0x80
setne r8b
movzx r8d, r8b
add edx, r8d
nop word cs:[rax + rax]
cmp edx, 2
jg 0x140196a30
cmp r15b, byte [rcx]
je 0x140196aae
lea ebp, [r9 + 1]
mov r9d, ebp
movsxd rcx, r9d
mov rax, rcx
cmp r11, rcx
jge 0x140196220
mov ebp, dword [rsp + 0x60]
mov rdi, qword [rsp + 0x98]
mov r15, qword [rsp + 0xa0]
mov esi, dword [rsp + 0xac]
mov ebx, dword [rsp + 0xb8]
mov r13, qword [rsp + 0xb0]
mov r14, qword [rsp + 0x180]
test ebp, ebp
je 0x140196af8
mov rax, qword [rsp + 0x58]
mov edx, dword [rax + 0x5c]
test edx, edx
je 0x1401965dc
cmp edx, 1
je 0x140196c4a
mov edx, 1
mov rbp, qword [rsp + 0x80]
movsxd r8, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
mov byte [rbp + r8], 0
mov r9, rbp
mov r8d, esi
mov rax, qword [rcx + 0xb8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x20], rax
call sym.sqlite3Fts5ExprNew
mov rcx, rbp
mov dword [rsp + 0x60], eax
call sym.sqlite3_free
mov eax, dword [rsp + 0x60]
test eax, eax
jne 0x140196720
mov rax, qword [rsp + 0x170]
mov rdx, qword [rsp + 0xd8]
lea rcx, [rax + 0x40]
call sym.sqlite3Fts5ExprAnd
mov qword [rsp + 0xd8], 0
test eax, eax
je 0x14019606b
mov r12d, eax
jmp 0x14019674f
test r12, r12
je 0x140196988
movzx eax, word [r12 + 0x14]
mov edx, eax
and dx, 0x202
cmp dx, 0x202
je 0x1401969b0
test al, 1
jne 0x140196988
mov edx, 1
mov rcx, r12
mov qword [rsp + 0x60], r8
call sym.valueToText
mov r8, qword [rsp + 0x60]
mov r9, rax
test r9, r9
je 0x140196988
movzx edx, byte [r9]
add esi, 2
movsx eax, byte [r8 + 1]
xor r8d, r8d
movsxd rsi, esi
nop word cs:[rax + rax]
lea ecx, [r8 + r8*4]
mov ebx, esi
lea r8d, [rax + rcx*2 - 0x30]
movsx eax, byte [r14 + rsi]
add rsi, 1
lea ecx, [rax - 0x30]
cmp cl, 9
jbe 0x1401966d0
cmp dl, 0x2a
je 0x140196e48
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
xor edx, edx
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x20], rax
call sym.sqlite3Fts5ExprNew
test eax, eax
je 0x140196630
mov r12d, eax
mov r13, qword [rsp + 0xd8]
test r13, r13
je 0x14019674f
mov rcx, qword [r13 + 0x10]
test rcx, rcx
je 0x14019673e
call sym.sqlite3Fts5ParseNodeFree.part.0
mov rcx, qword [r13 + 0x20]
call sym.sqlite3_free
mov rcx, r13
call sym.sqlite3_free
mov rax, qword [rsp + 0x58]
mov rdi, qword [rsp + 0xc0]
mov qword [rax + 0xb8], rdi
movups xmm6, xmmword [rsp + 0xf0]
movups xmm7, xmmword [rsp + 0x100]
mov eax, r12d
movups xmm8, xmmword [rsp + 0x110]
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x78], r12
add r13, 8
cmp qword [rsp + 0x50], r13
jne 0x14019607a
nop dword [rax]
mov ebx, dword [rsp + 0x178]
mov edx, dword [rsp + 0x178]
mov r14, rdi
mov rax, qword [rsp + 0x170]
sar ebx, 5
sar edx, 7
and edx, 1
and ebx, 1
cmp qword [rsp + 0x90], 0
mov dword [rax + 0x24], edx
je 0x140196c2a
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x78], rax
mov r15, rax
test edx, edx
jne 0x140196ba0
mov rax, qword [rsp + 0x78]
lea rsi, [0x140341860]
movzx eax, word [rax + 0x14]
and eax, 0x3f
movzx edx, byte [rsi + rax]
cmp edx, 3
je 0x140197110
movabs rax, 0x7fffffffffffffff
cmp edx, 1
je 0x14019712f
mov rdi, qword [rsp + 0x170]
mov qword [rdi + 0x30], rax
test r15, r15
je 0x140196868
movzx eax, word [r15 + 0x14]
lea rsi, [0x140341860]
and eax, 0x3f
movzx eax, byte [rsi + rax]
cmp eax, 3
je 0x1401970f5
cmp eax, 1
je 0x14019714d
movabs rax, 0x8000000000000000
mov rdi, qword [rsp + 0x170]
mov qword [rdi + 0x28], rax
mov rax, qword [rsp + 0x88]
mov rsi, qword [rax + 0x20]
mov rcx, rsi
call sym.fts5StructureRead
mov r12, rax
test rax, rax
je 0x1401968ab
mov eax, dword [rax]
sub eax, 1
mov dword [r12], eax
test eax, eax
jle 0x140196c52
mov r12d, dword [rsi + 0x3c]
mov dword [rsi + 0x3c], 0
test r12d, r12d
jne 0x140196723
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x38]
test rax, rax
je 0x140196ca2
mov r10d, dword [rax + 0x24]
mov r8, qword [rax + 0x28]
test r10d, r10d
je 0x140196c89
mov rdi, qword [rsp + 0x170]
mov qword [rdi + 0x30], r8
mov r8, qword [rax + 0x30]
mov qword [rdi + 0x28], r8
mov rbx, qword [rax + 0x40]
mov rax, qword [rsp + 0x88]
mov dword [rdi + 0x20], 2
mov r9d, dword [rsp + 0xbc]
mov qword [rdi + 0x40], rbx
mov rdx, qword [rax + 0x20]
mov rcx, rbx
call sym.sqlite3Fts5ExprFirst
mov r12d, eax
mov rax, qword [rbx + 0x10]
mov r9d, dword [rax + 4]
mov rax, qword [rsp + 0x170]
test r9d, r9d
mov eax, dword [rax + 0x50]
je 0x140196946
mov dword [rsp + 0x50], eax
or eax, 1
mov rdi, qword [rsp + 0x170]
or eax, 0x4e
mov dword [rdi + 0x50], eax
jmp 0x140196723
mov qword [rsp + 0x90], r12
jmp 0x14019606b
cmp bpl, 0x72
cmove rdi, r12
cmovne r15, r12
jmp 0x14019606b
xor edx, edx
lea r9, [0x140330c0e]
jmp 0x1401966b8
mov r12d, 7
jmp 0x140196723
cmp byte [r12 + 0x16], 1
jne 0x140196689
mov r9, qword [r12 + 8]
jmp 0x1401966ab
cmp byte [r12 + 0x16], 1
jne 0x14019609d
mov r12, qword [r12 + 8]
jmp 0x1401960bf
xor r12d, r12d
jmp 0x1401960bf
mov rcx, qword [0x1402ba340]
test rcx, rcx
je 0x140196a14
mov qword [rsp + 0x60], r8
call qword [0x1402ba740]
mov r8, qword [rsp + 0x60]
mov rcx, r8
call sym.sqlite3Malloc.part.0
mov qword [rsp + 0x80], rax
jmp 0x14019614a
movsxd r8, dword [rsp + 0x60]
mov byte [rsi + r8], 0x22
lea edx, [r8 + 1]
cmp r9d, ebp
jle 0x140196a8d
lea r8d, [r9 - 1]
add rdi, qword [rsp + 0x70]
sub r8d, ebp
add rdi, r8
jmp 0x140196a64
add rax, 1
mov edx, r10d
cmp rax, rdi
je 0x140196a8d
movzx r8d, byte [rax]
movsxd rbx, edx
lea r10d, [rdx + 1]
mov byte [rsi + rbx], r8b
cmp r8b, 0x22
jne 0x140196a58
movsxd r10, r10d
add rax, 1
add edx, 2
mov byte [rsi + r10], 0x22
cmp rax, rdi
jne 0x140196a64
movsxd rax, edx
mov byte [rsi + rax], 0x22
lea eax, [rdx + 2]
add edx, 1
movsxd rdx, edx
mov dword [rsp + 0x60], eax
mov byte [rsi + rdx], 0x20
cmp r15b, byte [rcx]
jne 0x140196572
lea edx, [r9 + 2]
movsxd rax, edx
cmp byte [r12 + rax - 1], 0x5e
jne 0x140196ac4
lea edx, [r9 + 3]
movsxd rax, edx
cmp rax, r11
jge 0x140196af0
mov rcx, qword [rsp + 0xc8]
add rax, r12
nop dword [rax]
cmp byte [rax], 0x5d
mov r9d, edx
lea edx, [rdx + 1]
je 0x140196572
add rax, 1
cmp rcx, rax
jne 0x140196ad8
mov r9d, edx
jmp 0x140196572
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0xd8], 0
call sym.sqlite3_free
jmp 0x140196630
xor edx, edx
xor r10d, r10d
lea rax, [r12 + rdi]
jmp 0x140196311
call sym.fts5FreeCursorComponents
mov rax, qword [rsp + 0x170]
mov qword [rax + 0x20], 0
mov rax, qword [rsp + 0x170]
mov qword [rax + 0xb0], 0
mov rax, qword [rsp + 0x170]
lea rdi, [rax + 0x28]
mov eax, dword [rsp + 0x170]
and rdi, 0xfffffffffffffff8
sub eax, edi
lea ecx, [rax + 0xb8]
xor eax, eax
shr ecx, 3
rep stosq qword [rdi], rax
jmp 0x140195fbd
lea rcx, str.recursively_defined_fts5_content_table
mov r12d, 1
call sym.sqlite3_mprintf
mov rdi, qword [rsp + 0x88]
mov qword [rdi + 0x10], rax
jmp 0x140196763
mov rax, qword [rsp + 0x78]
movzx eax, word [rax + 0x14]
lea rsi, [0x140341860]
and eax, 0x3f
movzx edx, byte [rsi + rax]
cmp edx, 3
je 0x1401970d6
movabs rax, 0x7fffffffffffffff
cmp edx, 1
je 0x14019713e
mov rdi, qword [rsp + 0x170]
mov qword [rdi + 0x28], rax
test r15, r15
je 0x140196c04
movzx eax, word [r15 + 0x14]
lea rsi, [0x140341860]
and eax, 0x3f
movzx eax, byte [rsi + rax]
cmp eax, 3
je 0x1401970bb
cmp eax, 1
je 0x1401971aa
movabs rax, 0x8000000000000000
mov rdi, qword [rsp + 0x170]
mov dword [rsp + 0xbc], 1
mov qword [rdi + 0x30], rax
jmp 0x14019687e
test edx, edx
je 0x140196ef0
cmp qword [rsp + 0x78], 0
jne 0x140196b9b
movabs rax, 0x7fffffffffffffff
jmp 0x140196bce
mov esi, dword [rax + 0x18]
jmp 0x1401965dc
mov r11d, dword [r12 + 0x1c]
xor edi, edi
test r11d, r11d
jle 0x140196c7c
nop
mov rax, rdi
add rdi, 1
shl rax, 4
mov rcx, qword [r12 + rax + 0x28]
call sym.sqlite3_free
cmp dword [r12 + 0x1c], edi
jg 0x140196c60
mov rcx, r12
call sym.sqlite3_free
jmp 0x1401968ab
mov rdx, qword [rax + 0x30]
mov rdi, qword [rsp + 0x170]
mov qword [rdi + 0x30], rdx
mov qword [rdi + 0x28], r8
jmp 0x1401968f9
mov rax, qword [rsp + 0x170]
mov rsi, qword [rax + 0x40]
test rsi, rsi
je 0x14019701d
test r14, r14
je 0x140196f4c
mov rcx, r14
call sym.sqlite3ValueText.constprop.0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], 0
mov r13, rax
test rax, rax
je 0x14019721b
lea rdx, [rsp + 0xe0]
lea r8, [rsp + 0xe8]
mov rcx, rax
call sym.sqlite3Fts5ConfigParseRank
test eax, eax
jne 0x1401972c9
mov rax, qword [rsp + 0x170]
mov r13, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0xe8]
or dword [rax + 0x50], 0x10
movq xmm0, r13
mov rsi, qword [rax + 0x40]
movq xmm6, rdi
punpcklqdq xmm0, xmm6
movups xmmword [rax + 0x60], xmm0
test ebx, ebx
je 0x140196f88
mov rax, qword [rsp + 0x170]
mov dword [rax + 0x20], 4
mov rax, qword [rsp + 0x88]
mov r14, qword [rax + 0x18]
test rsi, rsi
jne 0x14019726e
mov ebx, 0x1c
call sym.sqlite3_initialize
test eax, eax
jne 0x1401969a0
mov rcx, rbx
call sym.sqlite3Malloc
mov r15, rax
test rax, rax
je 0x1401969a0
xor edx, edx
mov r8, rbx
mov rcx, rax
call sub.msvcrt.dll_memset
lea rax, str.DESC
lea rdx, [0x1403312db]
mov r8d, dword [rsp + 0xbc]
mov dword [r15 + 0x18], r12d
lea rcx, [0x140332a8c]
test r8d, r8d
cmove rax, rdx
test rdi, rdi
je 0x140197355
mov rdx, qword [r14 + 0x10]
mov r9, qword [r14 + 8]
mov qword [rsp + 0x38], rcx
mov rcx, r15
mov qword [rsp + 0x48], rax
lea r8, str.SELECT_rowid__rank_FROM__Q._Q_ORDER_BY__s___w__s_s___s
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x20], rdx
mov rdx, r14
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x28], r13
call sym.fts5PrepareStatement.constprop.0
mov r12d, eax
mov rax, qword [rsp + 0x170]
mov qword [rax + 0x48], r15
test r12d, r12d
je 0x1401972fb
mov rcx, qword [r15]
call sym.sqlite3_finalize
mov rcx, r15
call sym.sqlite3_free
mov rax, qword [rsp + 0x170]
mov qword [rax + 0x48], 0
jmp 0x140196723
movzx eax, byte [r9 + 1]
lea rbx, [r9 + 1]
cmp al, 0x20
jne 0x140196e64
nop dword [rax]
movzx eax, byte [rbx + 1]
add rbx, 1
cmp al, 0x20
je 0x140196e58
test al, 0xdf
je 0x140196fe1
mov eax, 1
nop dword [rax]
movzx edx, byte [rbx + rax]
mov ecx, eax
add rax, 1
and edx, 0xdf
jne 0x140196e78
mov rax, qword [rsp + 0x170]
mov dword [rsp + 0xbc], ecx
mov dword [rax + 0x20], 3
cmp ecx, 5
je 0x140196f0b
cmp dword [rsp + 0xbc], 2
jne 0x140196ff0
mov r8d, 2
mov rdx, rbx
lea rcx, [0x14033b00a]
call sym.sqlite3_strnicmp.part.0
mov r12d, eax
test eax, eax
jne 0x140196ff0
mov rax, qword [rsp + 0x170]
mov rdi, qword [rsp + 0x170]
mov rax, qword [rax + 0x18]
mov qword [rdi + 0x58], rax
jmp 0x140196723
cmp qword [rsp + 0x78], 0
jne 0x1401967ff
movabs rax, 0x7fffffffffffffff
jmp 0x140196832
mov r8d, 5
mov rdx, rbx
lea rcx, str.reads
call sym.sqlite3_strnicmp.part.0
mov r12d, eax
test eax, eax
jne 0x140196ff0
mov rax, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x170]
mov rax, qword [rax + 0x20]
movsxd rax, dword [rax + 0x70]
mov qword [rdi + 0x58], rax
jmp 0x140196723
mov rax, qword [rsp + 0x58]
mov r13, qword [rax + 0xa0]
test r13, r13
je 0x1401972a7
mov rdi, qword [rsp + 0x170]
mov qword [rdi + 0x60], r13
mov rdi, qword [rax + 0xa8]
mov rax, qword [rsp + 0x170]
mov qword [rax + 0x68], rdi
test ebx, ebx
jne 0x140197253
mov rax, qword [rsp + 0x170]
mov r9d, dword [rsp + 0xbc]
mov rcx, rsi
mov dword [rax + 0x20], 1
mov rax, qword [rsp + 0x88]
mov rdx, qword [rax + 0x20]
mov rax, qword [rsp + 0x170]
mov r8, qword [rax + 0x28]
call sym.sqlite3Fts5ExprFirst
mov r12d, eax
mov rax, qword [rsi + 0x10]
mov ecx, dword [rax + 4]
mov rax, qword [rsp + 0x170]
test ecx, ecx
mov eax, dword [rax + 0x50]
jne 0x14019693f
jmp 0x140196946
mov rax, qword [rsp + 0x170]
mov dword [rax + 0x20], 3
mov edx, dword [rsp + 0xbc]
mov r8, rbx
lea rcx, str.unknown_special_query:__.s
mov r12d, 1
call sym.sqlite3_mprintf
mov rdi, qword [rsp + 0x88]
mov qword [rdi + 0x10], rax
jmp 0x140196723
mov rax, qword [rsp + 0x58]
cmp qword [rax + 0x48], 0
je 0x140197330
mov rax, qword [rsp + 0x170]
cmp qword [rsp + 0x90], 0
lea r8, [rax + 0x38]
mov rax, qword [rsp + 0x88]
mov rbx, qword [rax + 0x28]
mov rax, qword [rsp + 0x170]
je 0x1401971b7
mov dword [rax + 0x20], 6
mov r9, qword [rsp + 0x68]
mov edx, 2
mov rcx, rbx
call sym.fts5StorageGetStmt
mov r12d, eax
test eax, eax
jne 0x140196723
mov rax, qword [rsp + 0x170]
mov qword [rbx + 0x38], 0
mov edx, 1
mov r8, qword [rsp + 0x90]
mov rcx, qword [rax + 0x38]
call sym.sqlite3_bind_value
mov rcx, qword [rsp + 0x170]
call sym.fts5NextMethod
mov r12d, eax
jmp 0x140196723
xor edx, edx
mov rcx, r15
call sym.applyNumericAffinity
movzx eax, word [r15 + 0x14]
and eax, 0x3f
movzx eax, byte [rsi + rax]
jmp 0x140196bfb
mov rdi, qword [rsp + 0x78]
xor edx, edx
mov rcx, rdi
call sym.applyNumericAffinity
movzx eax, word [rdi + 0x14]
and eax, 0x3f
movzx edx, byte [rsi + rax]
jmp 0x140196bbb
xor edx, edx
mov rcx, r15
call sym.applyNumericAffinity
movzx eax, word [r15 + 0x14]
and eax, 0x3f
movzx eax, byte [rsi + rax]
jmp 0x14019685f
mov rdi, qword [rsp + 0x78]
xor edx, edx
mov rcx, rdi
call sym.applyNumericAffinity
movzx eax, word [rdi + 0x14]
and eax, 0x3f
movzx edx, byte [rsi + rax]
jmp 0x14019681f
mov rcx, qword [rsp + 0x78]
call sym.sqlite3VdbeIntValue
jmp 0x140196832
mov rcx, qword [rsp + 0x78]
call sym.sqlite3VdbeIntValue
jmp 0x140196bce
mov rcx, r15
call sym.sqlite3VdbeIntValue
jmp 0x140196872
mov ebx, dword [rsp + 0x178]
mov eax, dword [rsp + 0x178]
mov rdi, qword [rsp + 0x170]
sar ebx, 5
sar eax, 7
and ebx, 1
and eax, 1
mov dword [rdi + 0x24], eax
je 0x140197282
mov rax, rdi
xor r14d, r14d
movabs rdi, 0x7fffffffffffffff
mov qword [rsp + 0x90], 0
mov qword [rax + 0x28], rdi
jmp 0x140196c04
mov rcx, r15
call sym.sqlite3VdbeIntValue
jmp 0x140196c0e
mov edx, dword [rax + 0x24]
xor esi, esi
mov dword [rax + 0x20], 5
mov rcx, rbx
mov r9, qword [rsp + 0x68]
test edx, edx
setne sil
mov edx, esi
call sym.fts5StorageGetStmt
mov r12d, eax
test eax, eax
jne 0x140196723
mov rax, qword [rsp + 0x170]
mov qword [rbx + rsi*8 + 0x28], 0
mov rdx, qword [rax + 0x28]
mov rcx, qword [rax + 0x38]
call sym.sqlite3_bind_int64.constprop.0.isra.0
mov rax, qword [rsp + 0x170]
mov rdx, qword [rax + 0x30]
mov rcx, qword [rax + 0x38]
call sym.sqlite3_bind_int64.constprop.2.isra.0
jmp 0x1401970a6
movzx eax, word [r14 + 0x14]
lea rdx, [0x140341860]
and eax, 0x3f
cmp byte [rdx + rax], 5
je 0x1401972d2
mov rax, qword [rsp + 0x170]
pxor xmm0, xmm0
xor edi, edi
or dword [rax + 0x50], 0x10
mov rsi, qword [rax + 0x40]
movups xmmword [rax + 0x60], xmm0
jmp 0x140196d3e
mov rax, qword [rsp + 0x170]
mov dword [rax + 0x20], 4
mov rax, qword [rsp + 0x88]
mov r14, qword [rax + 0x18]
movsxd rax, dword [rsi + 0x1c]
mov r12, rax
lea rbx, [rax*4 + 0x1c]
jmp 0x140196d6f
mov rax, rdi
xor r14d, r14d
movabs rdi, 0x7fffffffffffffff
mov qword [rsp + 0x90], 0
mov qword [rax + 0x30], rdi
jmp 0x140196868
mov rax, qword [rsp + 0x170]
lea r13, str.bm25
xor edi, edi
mov qword [rax + 0x60], r13
mov qword [rax + 0x68], 0
jmp 0x140196f80
cmp eax, 1
jne 0x140196720
mov rdx, r13
mov rax, qword [rsp + 0x170]
lea rcx, str.parse_error_in_rank_function:__s
mov r12d, 1
mov rbx, qword [rax]
call sym.sqlite3_mprintf
mov qword [rbx + 0x10], rax
jmp 0x140196723
mov rdi, qword [rsp + 0x88]
mov rcx, rax
mov qword [rdi + 0x38], rax
call sym.fts5SorterNext
mov qword [rdi + 0x38], 0
mov r12d, eax
test eax, eax
je 0x140196723
jmp 0x140196e1e
mov rdx, qword [rax + 0x10]
mov rbx, qword [rax + 0xb8]
lea rcx, str._s:_table_does_not_support_scanning
mov r12d, 1
call sym.sqlite3_mprintf
mov qword [rbx], rax
jmp 0x140196723
lea rdi, [0x140330c0e]
mov rcx, rdi
jmp 0x140196dce