Function at 0x140133f80
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, 0x48
mov eax, dword [rdx]
mov qword [rdx + 4], 0
mov rsi, rcx
mov rdi, rdx
cmp eax, 4
je 0x1401340a8
cmp eax, 9
je 0x1401340a8
cmp qword [rdx + 0x10], 0
je 0x140134088
mov edx, dword [rdx + 0x28]
mov rcx, qword [rdi + 0x30]
test edx, edx
jle 0x1401341f0
mov ebx, 1
xor r12d, r12d
mov rbp, qword [rdi + rbx*8 + 0x28]
mov rcx, rsi
mov rdx, rbp
call sym.fts5ExprNodeFirst
mov edx, dword [rdi + 0x28]
add r12d, dword [rbp + 4]
test eax, eax
sete r8b
cmp edx, ebx
setg cl
add rbx, 1
test r8b, cl
jne 0x140133fd4
mov r8, qword [rdi + 0x30]
mov rcx, qword [r8 + 0x18]
mov qword [rdi + 0x18], rcx
mov ecx, dword [rdi]
cmp ecx, 1
je 0x1401341e0
cmp ecx, 2
jne 0x1401341b0
test r12d, r12d
jle 0x140134034
mov rcx, rdi
mov dword [rsp + 0x30], eax
call sym.fts5ExprSetEof
mov eax, dword [rsp + 0x30]
test eax, eax
jne 0x140134091
mov r9d, dword [rdi + 4]
test r9d, r9d
jne 0x14013408f
mov eax, dword [rdi]
cmp eax, 4
je 0x140134250
jg 0x1401341c0
cmp eax, 1
je 0x140134238
cmp eax, 2
jne 0x140134218
mov rdx, rdi
mov rcx, rsi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.fts5ExprNodeTest_AND
mov rdi, qword [rsp + 0x30]
nop dword [rax]
mov dword [rdi + 4], 1
xor eax, eax
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r14, qword [rdi + 0x20]
xor ebx, ebx
mov r12d, 1
mov ebp, dword [r14 + 0x10]
test ebp, ebp
jle 0x1401342a4
mov qword [rsp + 0x30], rdi
mov rdi, rbx
mov r15, qword [r14 + rdi*8 + 0x18]
mov eax, dword [r15 + 0x18]
test eax, eax
je 0x14013407f
lea r13, [r15 + 0x20]
mov ebx, 0
jle 0x14013418e
mov qword [rsp + 0x38], rdi
mov edi, ebx
mov rbp, r13
xor ebx, ebx
jmp 0x14013410d
mov rax, qword [rbp + 0x18]
mov rbp, qword [rbp + 0x20]
cmp byte [rax + 0x14], 0
cmove ebx, r12d
test rbp, rbp
je 0x140134170
mov rcx, qword [rbp + 0x18]
test rcx, rcx
je 0x140134123
call sym.sqlite3Fts5IterClose
mov qword [rbp + 0x18], 0
mov r10d, dword [rsi + 0x18]
xor eax, eax
mov r8d, dword [rbp + 0x10]
mov rdx, qword [rbp + 8]
mov rcx, qword [rsi]
test r10d, r10d
lea r10, [rbp + 0x18]
setne al
xor r9d, r9d
add eax, eax
cmp byte [r13], 0
mov qword [rsp + 0x28], r10
mov r10, qword [r14 + 8]
setne r9b
or r9d, eax
mov qword [rsp + 0x20], r10
call sym.sqlite3Fts5IndexQuery
test eax, eax
je 0x1401340f8
jmp 0x140134091
test ebx, ebx
je 0x14013407f
add edi, 1
add r13, 0x28
cmp edi, dword [r15 + 0x18]
jl 0x1401340eb
mov rdi, qword [rsp + 0x38]
add rdi, 1
cmp dword [r14 + 0x10], edi
jg 0x1401340c8
mov rdi, qword [rsp + 0x30]
xor r11d, r11d
mov dword [rdi + 4], r11d
mov eax, dword [rdi]
jmp 0x140134043
mov edx, dword [r8 + 4]
mov dword [rdi + 4], edx
jmp 0x140134034
cmp eax, 9
jne 0x140134218
mov rdx, rdi
mov rcx, rsi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.fts5ExprNodeTest_STRING
cmp edx, r12d
jne 0x140134034
jmp 0x140134024
mov r8, qword [rcx + 0x18]
mov qword [rdi + 0x18], r8
cmp eax, 1
je 0x14013428f
cmp eax, 2
je 0x140134038
mov eax, dword [rcx + 4]
mov dword [rdi + 4], eax
jmp 0x140134038
mov rdx, rdi
mov rcx, rsi
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.fts5ExprNodeTest_NOT
mov rdx, rdi
mov rcx, rsi
call sym.fts5ExprNodeTest_OR
xor eax, eax
jmp 0x140134091
mov r14, qword [rdi + 0x20]
mov rdx, qword [r14 + 0x18]
mov r8, qword [rsi + 8]
mov rax, qword [rdx + 0x38]
mov r8d, dword [r8 + 0x60]
mov ecx, dword [rax + 0x10]
mov dword [rdx + 0x10], ecx
test r8d, r8d
jne 0x140134277
mov r8, qword [rax + 8]
mov qword [rdx + 8], r8
mov rax, qword [rax]
mov qword [rdi + 0x18], rax
xor eax, eax
test ecx, ecx
sete al
mov dword [rdi + 8], eax
xor eax, eax
jmp 0x140134091
test edx, edx
jne 0x140134038
mov rcx, rdi
call sym.fts5ExprSetEof
jmp 0x140134038
mov dword [rdi + 4], 0
cmp eax, 4
jne 0x1401341c5
jmp 0x140134254