Function at 0x1401e9b80
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, 0x498
xor r11d, r11d
mov r12, rdx
lea edx, [r8 + 1]
mov qword [rsp + 0x70], r11
mov ebp, r8d
movsxd rdx, edx
mov ebx, dword [r12 + 8]
mov qword [rsp + 0x78], r11
mov r15, r9
lea rax, [rsp + 0x90]
shl rdx, 6
mov qword [rsp + 0x4e0], rcx
mov qword [rsp + 0x38], rax
mov rdi, qword [rsp + 0x38]
xor eax, eax
mov rcx, rdx
mov qword [rsp + 0x80], r11
rep stosb byte [rdi], al
mov rax, qword [rsp + 0x38]
mov ecx, 8
mov qword [rsp + 0x88], r11
lea rdx, [rax + rdx - 0x40]
xor eax, eax
mov rdi, rdx
mov qword [rsp + 0x60], rdx
rep stosd dword [rdi], eax
test ebx, ebx
jle 0x1401e9c32
mov rcx, qword [r12]
movsxd rax, r8d
movsxd r8, ebx
shl rax, 6
mov qword [rsp + rax + 0xa0], rcx
add rcx, r8
mov qword [rsp + rax + 0x90], rcx
mov rcx, rdx
call sym.fts5DoclistIterNext
lea rax, [rsp + 0x60]
mov r14, qword [rsp + 0x38]
xor r13d, r13d
xor esi, esi
mov qword [rsp + 0x28], rax
cmp esi, ebp
jge 0x1401e9c92
mov ecx, 8
mov rdi, r14
xor eax, eax
rep stosd dword [rdi], eax
mov edi, dword [r15 + 8]
test edi, edi
jle 0x1401e9c76
mov rax, qword [r15]
movsxd rcx, edi
mov qword [r14 + 0x10], rax
add rax, rcx
mov rcx, r14
mov qword [r14], rax
call sym.fts5DoclistIterNext
mov rcx, qword [rsp + 0x28]
mov rdx, r14
add r13d, edi
inc esi
add r14, 0x40
add r15, 0x10
call sym.fts5PrefixMergerInsertByRowid
jmp 0x1401e9c46
test r13d, r13d
je 0x1401e9fdf
mov rax, qword [rsp + 0x4e0]
lea rdx, [rsp + 0x70]
add rax, 0x3c
mov qword [rsp + 0x58], rax
imul eax, ebp, 0xa
mov rcx, qword [rsp + 0x58]
lea eax, [rbx + rax + 9]
lea r8d, [rax + r13]
call sym.sqlite3Fts5BufferSize
test eax, eax
jne 0x1401e9fdf
lea rax, [rsp + 0x60]
xor r14d, r14d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x50], rax
movsxd rcx, dword [rsp + 0x78]
mov r13, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x60]
mov r10, rcx
add rcx, r13
test rbx, rbx
je 0x1401e9fb4
mov rdx, qword [rbx + 8]
sub rdx, r14
call sym.sqlite3PutVarint
mov r14, qword [rbx + 8]
add eax, r10d
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x78], eax
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x1401e9f67
cmp qword [rax + 8], r14
jne 0x1401e9f67
xor r10d, r10d
xor edi, edi
mov esi, 8
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x60], r10
cmp qword [rbx + 8], r14
jne 0x1401e9daf
xor r8d, r8d
xor r9d, r9d
movsxd rcx, dword [rbx + 0x1c]
add rcx, qword [rbx + 0x10]
mov edx, dword [rbx + 0x18]
mov r15, qword [rbx + 0x38]
mov dword [rbx + 0x28], r8d
lea r8, [rbx + 0x28]
mov qword [rbx + 0x20], r9
lea r9, [rbx + 0x20]
inc edi
mov qword [rbx + 0x30], rcx
mov dword [rsp + 0x4c], edx
call sym.sqlite3Fts5PoslistNext64
mov edx, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0x30]
lea esi, [rdx + rsi + 0xa]
mov rdx, rbx
call sym.fts5PrefixMergerInsertByPosition
test r15, r15
je 0x1401e9db2
mov rbx, r15
jmp 0x1401e9d56
mov r15, rbx
mov rbx, qword [rsp + 0x60]
test rbx, rbx
je 0x1401e9dc3
cmp qword [rbx + 0x38], 0
jne 0x1401e9dd7
mov rax, qword [rsp + 0x4e0]
mov dword [rax + 0x3c], 0x10b
jmp 0x1401e9fb4
imul r8d, edi, 0xa
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x58]
add r8d, esi
call sym.sqlite3Fts5BufferSize
mov dword [rsp + 0x4c], eax
test eax, eax
jne 0x1401e9fb4
xor ecx, ecx
mov rax, qword [rbx + 0x38]
mov r8, qword [rbx + 0x20]
mov dword [rsp + 0x88], ecx
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x60], rax
call sym.sqlite3Fts5PoslistSafeAppend
mov edx, dword [rbx + 0x18]
mov rcx, qword [rbx + 0x30]
lea r9, [rbx + 0x20]
lea r8, [rbx + 0x28]
call sym.sqlite3Fts5PoslistNext64
mov rcx, qword [rsp + 0x30]
mov rdx, rbx
call sym.fts5PrefixMergerInsertByPosition
mov rbx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
cmp qword [rbx + 0x38], 0
mov r8, qword [rbx + 0x20]
je 0x1401e9e87
cmp r8, rax
je 0x1401e9e68
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
call sym.sqlite3Fts5PoslistSafeAppend
mov edx, dword [rbx + 0x18]
mov rcx, qword [rbx + 0x30]
lea r9, [rbx + 0x20]
lea r8, [rbx + 0x28]
call sym.sqlite3Fts5PoslistNext64
mov rax, qword [rbx + 0x38]
mov qword [rsp + 0x60], rax
jmp 0x1401e9e32
cmp r8, rax
je 0x1401e9e9b
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
call sym.sqlite3Fts5PoslistSafeAppend
mov r11d, dword [rsp + 0x88]
mov r10d, dword [rbx + 0x18]
sub esi, 7
movsxd rcx, dword [rsp + 0x28]
sub r10d, dword [rbx + 0x28]
lea edx, [r11 + r10]
add rcx, r13
cmp esi, edx
jg 0x1401e9ed5
mov rax, qword [rsp + 0x4e0]
cmp dword [rax + 0x3c], 0
je 0x1401e9dc3
jmp 0x1401e9fb4
add edx, edx
movsxd rdx, edx
call sym.sqlite3PutVarint
mov edi, dword [rsp + 0x28]
mov rsi, qword [rsp + 0x80]
movsxd rcx, r11d
add edi, eax
movsxd rdx, edi
mov rax, rdx
add rdx, r13
add eax, r11d
mov rdi, rdx
rep movsb byte [rdi], byte [rsi]
mov dword [rsp + 0x78], eax
test r10d, r10d
jle 0x1401e9f27
movsxd rdx, eax
movsxd rsi, dword [rbx + 0x28]
mov ecx, r10d
add rsi, qword [rbx + 0x30]
add rdx, r13
add eax, r10d
mov rdi, rdx
mov dword [rsp + 0x78], eax
rep movsb byte [rdi], byte [rsi]
mov qword [rsp + 0x60], r15
mov rbx, qword [rsp + 0x38]
cmp dword [rsp + 0x4c], ebp
jg 0x1401e9cf2
cmp qword [rbx + 0x10], 0
je 0x1401e9f5d
cmp qword [rbx + 8], r14
jne 0x1401e9f5d
mov rcx, rbx
call sym.fts5DoclistIterNext
mov rcx, qword [rsp + 0x30]
mov rdx, rbx
call sym.fts5PrefixMergerInsertByRowid
inc dword [rsp + 0x4c]
add rbx, 0x40
jmp 0x1401e9f31
movsxd rax, dword [rsp + 0x28]
mov ecx, dword [rbx + 0x1c]
add ecx, dword [rbx + 0x18]
mov rsi, qword [rbx + 0x10]
add rax, r13
movsxd rcx, ecx
mov rdi, rax
rep movsb byte [rdi], byte [rsi]
mov esi, dword [rsp + 0x28]
mov rcx, rbx
mov eax, dword [rbx + 0x1c]
add eax, dword [rbx + 0x18]
add eax, esi
mov dword [rsp + 0x78], eax
call sym.fts5DoclistIterNext
mov rax, qword [rbx + 0x38]
mov rcx, qword [rsp + 0x30]
mov rdx, rbx
mov qword [rsp + 0x60], rax
call sym.fts5PrefixMergerInsertByRowid
jmp 0x1401e9cf2
mov rcx, r12
call sym.sqlite3Fts5BufferFree
lea rcx, [rsp + 0x80]
call sym.sqlite3Fts5BufferFree
movsxd rax, dword [rsp + 0x78]
movaps xmm0, xmmword [rsp + 0x70]
xor edx, edx
mov qword [r13 + rax], rdx
movups xmmword [r12], xmm0
add rsp, 0x498
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret