Function at 0x1401e7d50
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, 0x148
xor r14d, r14d
xor r15d, r15d
mov r13, rdx
movsxd rdx, r8d
mov dword [rsp + 0x70], r15d
mov rbx, rcx
lea r12, [rdx + 2]
mov qword [rsp + 0x1a8], r9
mov rsi, qword [r13]
mov rbp, rdx
mov qword [rsp + 0xa0], r14
shl r12, 4
test r9, r9
je 0x1401e7da2
mov eax, dword [r9]
mov dword [rsp + 0x70], eax
mov rax, qword [rbx]
mov ecx, 0x1e
xorps xmm0, xmm0
movups xmmword [rsp + 0xa8], xmm0
mov eax, dword [rax + 0x5c]
mov dword [rsp + 0x7c], eax
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x50], rax
mov rdi, qword [rsp + 0x50]
xor eax, eax
rep stosd dword [rdi], eax
mov rdi, rdx
shl rdi, 4
lea rdx, [rsi + rdi]
mov r14d, dword [rdx + 0x20]
test r14d, r14d
je 0x1401e7e31
lea rax, [rsi + r12 + 0x10]
mov rcx, rbx
lea r15, [rsi + r12]
xor r12d, r12d
mov qword [rsp + 0x60], rax
movsxd rax, dword [rdx + 0x34]
mov rdx, qword [rdx + 0x38]
imul rax, rax, 0x38
lea rdi, [rdx + rax - 0x38]
mov rdx, qword [rsp + 0x50]
mov r8d, dword [rdi]
call sym.fts5WriteInit
mov eax, dword [rdi + 8]
mov dword [rsp + 0x138], r12d
inc eax
mov dword [rsp + 0xd0], eax
jmp 0x1401e7ee1
mov rdx, rsi
mov rcx, rbx
lea r14, [rbx + 0x3c]
call sym.fts5AllocateSegid
mov r15d, eax
mov eax, dword [rsi + 0x1c]
dec eax
cmp eax, ebp
jne 0x1401e7e5b
mov rdx, r13
mov rcx, r14
call sym.fts5StructureAddLevel
mov rsi, qword [r13]
xor r9d, r9d
lea r8d, [rbp + 1]
mov rdx, rsi
mov rcx, r14
call sym.fts5StructureExtendLevel.constprop.0
cmp dword [rbx + 0x3c], 0
jne 0x1401e8595
mov rdx, qword [rsp + 0x50]
mov r8d, r15d
mov rcx, rbx
call sym.fts5WriteInit
lea rax, [rsi + rdi]
movsxd rdi, dword [rax + 0x34]
mov rdx, rdi
imul rdi, rdi, 0x38
add rdi, qword [rax + 0x38]
inc edx
mov dword [rax + 0x34], edx
mov dword [rdi + 4], 1
mov dword [rdi], r15d
inc dword [rsi + 0x18]
cmp qword [rsi + 0x10], 0
mov r14d, dword [rax + 0x24]
je 0x1401e7ed3
mov rdx, qword [rax + 0x28]
mov rax, qword [rdx + 0x10]
mov qword [rdi + 0x10], rax
movsxd rax, r14d
imul rax, rax, 0x38
mov rax, qword [rdx + rax - 0x20]
mov qword [rdi + 0x18], rax
lea rax, [rsi + r12 + 0x10]
lea r15, [rsi + r12]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
xor r11d, r11d
mov dword [rsp + 0x78], r11d
cmp dword [rax + 4], 1
jne 0x1401e7f04
lea eax, [rbp + 2]
cmp dword [rsi + 0x1c], eax
sete al
movzx eax, al
mov dword [rsp + 0x78], eax
xor r9d, r9d
xor r10d, r10d
mov dword [rsp + 0x38], r14d
mov rdx, rsi
mov dword [rsp + 0x30], ebp
mov r8d, 0x20
mov rcx, rbx
xor r13d, r13d
lea rax, [rsp + 0xa0]
mov dword [rsp + 0x28], r9d
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x20], r10
call sym.fts5MultiIterNew
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x80], rax
lea rax, [rbx + 0x3c]
mov qword [rsp + 0x50], rax
cmp dword [rbx + 0x3c], 0
mov rbp, qword [rsp + 0xa0]
jne 0x1401e81e6
cmp byte [rbp + 0x14], 0
jne 0x1401e81e6
mov rax, qword [rbp + 0x58]
movzx eax, word [rax + 4]
mov word [rsp + 0x58], ax
mov dword [rsp + 0x68], eax
movzx eax, word [rsp + 0x58]
imul rax, rax, 0x88
add rax, rbp
mov r12d, dword [rax + 0xd0]
mov r9, qword [rax + 0xc8]
cmp dword [rsp + 0xb0], r12d
jne 0x1401e7fda
test r12d, r12d
jle 0x1401e801e
mov rdx, qword [rsp + 0xa8]
mov rcx, r9
movsxd r8, r12d
mov qword [rsp + 0x88], r9
call sub.msvcrt.dll_memcmp
mov r9, qword [rsp + 0x88]
test eax, eax
je 0x1401e801e
cmp qword [rsp + 0x1a8], 0
je 0x1401e7ff6
mov eax, dword [rsp + 0x70]
cmp dword [rsp + 0x114], eax
jg 0x1401e81e6
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x50]
mov r8d, r12d
mov qword [rsp + 0x88], r9
xor r13d, r13d
call sym.sqlite3Fts5BufferSet
mov r9, qword [rsp + 0x88]
movsxd rax, dword [rsp + 0x68]
imul rax, rax, 0x88
add rax, rbp
cmp dword [rax + 0xe0], 0
jne 0x1401e804e
cmp dword [rsp + 0x78], 0
jne 0x1401e81d0
cmp byte [rax + 0xe4], 0
je 0x1401e81d0
mov eax, r13d
or eax, dword [rbx + 0x3c]
jne 0x1401e806f
lea rdx, [rsp + 0xc8]
mov r8d, r12d
mov rcx, rbx
mov r13d, 1
call sym.fts5WriteAppendTerm
cmp dword [rbx + 0x3c], 0
jne 0x1401e8124
mov rax, qword [rbp + 0x58]
mov rdx, qword [rbx]
movzx eax, word [rax + 4]
imul rax, rax, 0x88
mov r12, qword [rbp + rax + 0xd8]
mov eax, dword [rsp + 0xf0]
add eax, dword [rsp + 0xe0]
cmp eax, dword [rdx + 0x88]
jl 0x1401e80b9
lea rdx, [rsp + 0xc8]
mov rcx, rbx
call sym.fts5WriteFlushLeaf
cmp byte [rsp + 0x111], 0
je 0x1401e80ea
mov eax, dword [rsp + 0xe0]
mov rdx, qword [rsp + 0xd8]
mov r8, r12
mov rcx, rbx
xchg al, ah
mov word [rdx], ax
lea rdx, [rsp + 0xc8]
call sym.fts5WriteDlidxAppend
cmp word [rsp + 0x110], 0
mov r8, r12
lea rdx, [rsp + 0xd8]
jne 0x1401e8108
sub r8, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x50]
call sym.sqlite3Fts5BufferAppendVarint
mov qword [rsp + 0x108], r12
mov word [rsp + 0x110], 0
movsxd r12, dword [rsp + 0x68]
imul r12, r12, 0x88
add r12, rbp
cmp dword [rsp + 0x7c], 1
movzx eax, byte [r12 + 0xe4]
jne 0x1401e8184
test al, al
je 0x1401e81d0
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0xd8]
xor r8d, r8d
mov qword [rsp + 0x58], rdx
call sym.sqlite3Fts5BufferAppendVarint
cmp dword [r12 + 0xe0], 0
jle 0x1401e81d0
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
call sym.sqlite3Fts5BufferAppendVarint
jmp 0x1401e81d0
mov edx, dword [r12 + 0xe0]
mov rcx, qword [rsp + 0x50]
lea r12, [rsp + 0xc8]
lea r8d, [rax + rdx*2]
lea rdx, [rsp + 0xd8]
movsxd r8, r8d
call sym.sqlite3Fts5BufferAppendVarint
movzx eax, word [rsp + 0x58]
mov r8, r12
mov rcx, rbx
lea r9, [sym.fts5MergeChunkCallback]
imul rax, rax, 0x88
lea rdx, [rbp + rax + 0x60]
call sym.fts5ChunkIterate
xor r9d, r9d
xor r8d, r8d
mov rdx, rbp
mov rcx, rbx
call sym.fts5MultiIterNext
jmp 0x1401e7f5a
lea rdx, [rsp + 0xc8]
lea r8, [rdi + 8]
mov rcx, rbx
call sym.fts5WriteFinish
mov r12d, dword [rbx + 0x3c]
test r12d, r12d
je 0x1401e8214
lea rax, [rbx + 0x60]
xor r12d, r12d
mov qword [rsp + 0x50], rax
jmp 0x1401e8316
cmp byte [rbp + 0x14], 0
jne 0x1401e8203
lea rax, [rbx + 0x3c]
xorps xmm0, xmm0
lea rsi, [rbp + 0x60]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x9c]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x58], rax
movups xmmword [rsp + 0xb8], xmm0
jmp 0x1401e8390
imul rax, r12, 0x38
add rax, qword [r15 + 8]
mov r13d, dword [rax]
mov rdx, qword [rax + 0x30]
mov qword [rsp + 0x58], rax
add rdx, qword [rdi + 0x30]
sub rdx, qword [rax + 0x28]
mov qword [rdi + 0x30], rdx
mov rcx, r13
lea edx, [r13 + 1]
shl rdx, 0x25
shl rcx, 0x25
lea r8, [rdx - 1]
mov rdx, rcx
mov rcx, rbx
call sym.fts5DataDelete
mov rax, qword [rsp + 0x58]
mov r8d, dword [rax + 0x20]
test r8d, r8d
je 0x1401e82b9
lea edx, [r13 + 0x10000]
dec r8d
mov rcx, rbx
shl rdx, 0x25
movsxd r8, r8d
add r8, rdx
call sym.fts5DataDelete
cmp qword [rbx + 0x60], 0
jne 0x1401e82e7
mov rax, qword [rbx]
lea rcx, str.DELETE_FROM__q._q_idx_WHERE_segid_
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
call sym.sqlite3_mprintf
mov rdx, qword [rsp + 0x50]
mov rcx, rbx
mov r8, rax
call sym.fts5IndexPrepareStmt
cmp dword [rbx + 0x3c], 0
jne 0x1401e8313
mov rcx, qword [rbx + 0x60]
mov r8d, r13d
mov edx, 1
call sym.sqlite3_bind_int
mov rcx, qword [rbx + 0x60]
call sym.sqlite3_step
mov rcx, qword [rbx + 0x60]
call sym.sqlite3_reset
mov dword [rbx + 0x3c], eax
inc r12
cmp r14d, r12d
jg 0x1401e8251
mov r8d, dword [r15 + 4]
cmp r8d, r14d
je 0x1401e8345
sub r8d, r14d
movsxd rdx, r14d
mov rcx, qword [r15 + 8]
imul r8d, r8d, 0x38
imul rdx, rdx, 0x38
movsxd r8, r8d
add rdx, rcx
call sub.msvcrt.dll_memmove
mov eax, dword [rsi + 0x18]
xor r8d, r8d
sub eax, r14d
mov dword [rsi + 0x18], eax
sub dword [r15 + 4], r14d
cmp dword [rdi + 8], 0
mov dword [r15], r8d
jne 0x1401e8564
mov rdi, qword [rsp + 0x60]
dec eax
dec dword [rdi + 4]
mov dword [rsi + 0x18], eax
jmp 0x1401e8564
cmp dword [rbx + 0x3c], 0
jne 0x1401e8554
mov rax, qword [rsi]
test rax, rax
jne 0x1401e839b
inc r12d
add rsi, 0x88
cmp r12d, dword [rbp + 0x40]
jl 0x1401e8374
jmp 0x1401e8554
cmp qword [rsi + 0x10], 0
jne 0x1401e83aa
xor ecx, ecx
mov qword [rax + 4], rcx
jmp 0x1401e8386
mov r13d, dword [rax]
xor edx, edx
mov edi, dword [rsi + 0x44]
mov rcx, rbx
mov dword [rsp + 0x9c], edx
movsxd rax, dword [rsi + 0x40]
shl r13, 0x25
mov dword [rsp + 0x60], edi
add rax, r13
mov rdx, rax
mov qword [rsp + 0x68], rax
call sym.fts5LeafRead
mov rdi, rax
test rax, rax
je 0x1401e8386
mov eax, dword [rsp + 0x60]
cmp eax, dword [rdi + 0xc]
jle 0x1401e83f5
mov dword [rbx + 0x3c], 0x10b
jmp 0x1401e8547
xor eax, eax
mov r8d, dword [rdi + 8]
mov dword [rsp + 0xc0], eax
cmp dword [rsp + 0xc4], r8d
jae 0x1401e841e
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0xb8]
call sym.sqlite3Fts5BufferSize
mov r9, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x58]
mov r8d, 4
mov rcx, qword [rsp + 0x50]
call sym.sqlite3Fts5BufferAppendBlob
movsxd r8, dword [rsi + 0x70]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
call sym.sqlite3Fts5BufferAppendVarint
mov r9, qword [rsi + 0x68]
mov r8d, dword [rsi + 0x70]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
call sym.sqlite3Fts5BufferAppendBlob
mov r8d, dword [rdi + 0xc]
mov eax, dword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
movsxd r9, dword [rsp + 0x60]
sub r8d, eax
add r9, qword [rdi]
call sym.sqlite3Fts5BufferAppendBlob
cmp dword [rbx + 0x3c], 0
jne 0x1401e849f
mov eax, dword [rsp + 0xc0]
mov rdx, qword [rsp + 0xb8]
xchg al, ah
mov word [rdx + 2], ax
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov r8d, 4
call sym.sqlite3Fts5BufferAppendVarint
mov eax, dword [rsi + 0x40]
cmp dword [rsi + 0xc], eax
jne 0x1401e8510
mov ecx, dword [rsi + 0x4c]
mov eax, dword [rdi + 0xc]
cmp ecx, eax
jge 0x1401e8510
mov edx, dword [rdi + 8]
cmp dword [rsi + 0x48], edx
jg 0x1401e8510
movsxd rdx, dword [rsp + 0xc0]
sub eax, ecx
mov rcx, qword [rsp + 0x50]
cdqe
sub rdx, rax
lea r8, [rdx - 5]
mov rdx, qword [rsp + 0x58]
call sym.sqlite3Fts5BufferAppendVarint
movsxd r9, dword [rsi + 0x48]
mov r8d, dword [rdi + 8]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov rax, r9
add r9, qword [rdi]
sub r8d, eax
call sym.sqlite3Fts5BufferAppendBlob
mov edx, dword [rsi + 0x40]
mov rax, qword [rsi]
mov rcx, rbx
mov r8, qword [rsp + 0x68]
mov dword [rax + 4], edx
lea rdx, [r13 + 1]
call sym.fts5DataDelete
mov r9d, dword [rsp + 0xc0]
mov rdx, qword [rsp + 0x68]
mov rcx, rbx
mov r8, qword [rsp + 0xb8]
call sym.fts5DataWrite
mov rcx, rdi
call sym.sqlite3_free
jmp 0x1401e8386
lea rcx, [rsp + 0xb8]
call sym.sqlite3Fts5BufferFree
mov dword [r15], r14d
mov rcx, rbp
call sym.fts5MultiIterFree
lea rcx, [rsp + 0xa8]
call sym.sqlite3Fts5BufferFree
cmp qword [rsp + 0x1a8], 0
je 0x1401e8595
mov rsi, qword [rsp + 0x1a8]
mov eax, dword [rsp + 0x114]
sub dword [rsi], eax
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret