Function at 0x140128a40
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, 0x58
lea rax, [rsp + 0x48]
mov rsi, rcx
mov ecx, dword [rcx + 0x3c]
mov rbx, rdx
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x44]
mov rbp, r9
mov qword [rsp + 0x20], rax
test ecx, ecx
jne 0x140128bc6
nop dword [rax + rax]
mov rax, qword [rbx + 0x60]
mov dword [rsp + 0x44], 0
movzx r12d, word [rax + 4]
movzx edi, r12w
movsxd r15, r12d
shl rdi, 7
lea r14, [rbx + rdi + 0x68]
mov qword [rsp + 0x48], r14
test r8d, r8d
je 0x140128cb0
mov rax, r15
shl rax, 7
add rax, rbx
mov rdx, qword [rax + 0xc0]
test rdx, rdx
je 0x140128cb0
mov r13d, dword [rax + 0x70]
mov r11d, dword [rax + 0x74]
mov ecx, dword [rsi + 0x3c]
and r13d, 2
je 0x140128d00
test ecx, ecx
jne 0x140128afb
mov r8d, dword [rdx + 0x14]
test r8d, r8d
je 0x140128d20
mov rax, r15
shl rax, 7
mov r11d, dword [rbx + rax + 0x74]
mov eax, dword [rdx + 0x1c]
cmp eax, r11d
jl 0x140128d78
mov eax, dword [rsi + 0x3c]
test eax, eax
je 0x140128c74
mov rax, r15
shl rax, 7
add rax, rbx
cmp qword [rax + 0x78], 0
je 0x140128b48
mov rax, qword [rax + 0xd8]
cmp rbp, rax
jl 0x140128c69
nop dword [rax + rax]
mov edx, dword [rsp + 0x44]
test edx, edx
je 0x140128ce0
nop dword [rax]
mov rdx, rbx
mov rcx, rsi
mov r9d, 1
mov r8d, r12d
call sym.fts5MultiIterAdvanced
mov rax, qword [rbx + 0x60]
movzx edx, word [rax + 4]
mov rax, rdx
shl rdx, 7
add rdx, rbx
mov rcx, qword [rdx + 0x78]
test rcx, rcx
sete byte [rbx + 0x14]
shl rax, 7
mov rdx, qword [rdx + 0xd8]
lea rax, [rbx + rax + 0x68]
mov qword [rbx + 0x58], rdx
mov qword [rsp + 0x48], rax
test rcx, rcx
je 0x140128bc6
cmp byte [rbx + 0x50], 0
je 0x140128ba9
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + 0x78]
test eax, eax
je 0x140128bb9
mov rcx, rbx
call sym.fts5MultiIterIsDeleted
test eax, eax
je 0x140128db0
mov r8d, dword [rsi + 0x3c]
test r8d, r8d
je 0x140128a80
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp rbp, qword [rdx + 0x20]
jle 0x140128c17
mov r11d, dword [rdx + 0x1c]
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x38], r11d
call sym.fts5DlidxIterNextR.isra.0
mov eax, dword [rsi + 0x3c]
mov rdx, qword [rsp + 0x30]
mov r11d, dword [rsp + 0x38]
test eax, eax
jne 0x140128c17
mov eax, dword [rdx + 0x14]
test eax, eax
je 0x140128be0
mov r8, r15
shl r8, 7
add r8, rbx
cmp dword [r8 + 0x74], r11d
jge 0x140128d51
mov rax, qword [r8 + 0x68]
cmp dword [rax + 8], r11d
jge 0x140128dc0
mov dword [rsi + 0x3c], 0x10b
mov rax, r15
shl rax, 7
add rax, rbx
cmp qword [rax + 0x78], 0
je 0x140128b48
mov rax, qword [rax + 0xd8]
nop dword [rax]
cmp rbp, rax
jle 0x140128b38
mov ecx, dword [rsi + 0x3c]
test ecx, ecx
jne 0x140128b38
mov rdi, r15
xor r8d, r8d
mov rdx, r14
mov rcx, rsi
shl rdi, 7
add rdi, rbx
call qword [rdi + 0x98]
cmp qword [rdi + 0x78], 0
je 0x140128b48
mov rax, qword [rdi + 0xd8]
test r13d, r13d
je 0x140128c60
cmp rbp, rax
jl 0x140128c69
jmp 0x140128b38
shl r15, 7
mov r8, qword [rsp + 0x20]
mov rdx, r14
mov rcx, rsi
add r15, rbx
call qword [r15 + 0x98]
cmp qword [r15 + 0x78], 0
je 0x140128b48
mov edx, dword [rsp + 0x44]
test edx, edx
jne 0x140128b48
mov r8, qword [rsp + 0x28]
mov edx, r12d
mov rcx, rbx
call sym.fts5MultiIterAdvanceRowid
test eax, eax
jne 0x140128b48
jmp 0x140128b97
test ecx, ecx
je 0x140128c10
mov edx, dword [rsi + 0x3c]
test edx, edx
je 0x140128c74
jmp 0x140128c4a
cmp rbp, qword [rdx + 0x20]
jge 0x140128aef
xor r8d, r8d
mov rcx, rsi
mov qword [rsp + 0x30], rdx
call sym.fts5DlidxIterPrevR.isra.0
mov r9d, dword [rsi + 0x3c]
mov rdx, qword [rsp + 0x30]
test r9d, r9d
je 0x140128ae2
jmp 0x140128aef
mov eax, dword [rsi + 0x3c]
test eax, eax
je 0x140128c74
cmp qword [r8 + 0x78], 0
je 0x140128b48
mov rax, qword [r8 + 0xd8]
jmp 0x140128c60
mov rdi, r15
add eax, 1
mov rdx, r14
mov rcx, rsi
shl rdi, 7
add rdi, rbx
mov dword [rdi + 0x74], eax
call sym.fts5SegIterReverseNewPage
cmp qword [rdi + 0x78], 0
je 0x140128b48
mov rax, qword [rdi + 0xd8]
jmp 0x140128b2a
mov rdx, qword [rsp + 0x48]
mov rcx, rbx
call qword [rbx + 0x40]
jmp 0x140128bc6
mov rcx, qword [r8 + 0x80]
mov dword [rsp + 0x38], r11d
mov qword [rsp + 0x30], r8
call sym.sqlite3_free
mov r11d, dword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
mov qword [r8 + 0x80], 0
sub r11d, 1
mov dword [r8 + 0x74], r11d
nop dword [rax + rax]
mov r10d, dword [rsi + 0x3c]
test r10d, r10d
jne 0x140128c40
mov rdx, r14
mov rcx, rsi
mov qword [rsp + 0x30], r8
call sym.fts5SegIterNextPage
mov r8, qword [rsp + 0x30]
mov rdx, qword [r8 + 0x78]
test rdx, rdx
je 0x140128c40
mov rcx, qword [rdx]
movzx eax, word [rcx]
rol ax, 8
movzx r11d, ax
test r11d, r11d
je 0x140128df8
mov qword [rsp + 0x38], r8
cmp r11d, dword [rdx + 0xc]
jge 0x140128c39
cmp r11d, 3
mov dword [rsp + 0x30], r11d
jle 0x140128c39
movzx eax, ax
lea rdx, [rbx + rdi + 0xd8]
add rcx, rax
call sym.sqlite3Fts5GetVarint
mov r11d, dword [rsp + 0x30]
mov rdx, r15
movzx eax, al
shl rdx, 7
add eax, r11d
mov r11d, dword [rsi + 0x3c]
cdqe
mov qword [rdx + rbx + 0x88], rax
test r11d, r11d
jne 0x140128c40
mov rcx, qword [rsi]
mov rdx, r14
call sym.fts5SegIterLoadNPos.part.0.isra.0
mov r8, qword [rsp + 0x38]
jmp 0x140128d5c