Function at 0x4b7a8c
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, 4
mov rdx, qword [rcx + 0x10]
mov r15, rcx
mov rcx, qword [rdx + 0x20]
mov rbx, qword [rcx + 0x88]
cmp qword [r15 + 0x28], rbx
jne 0x4b7ded
mov rbx, qword [r15]
mov dword [rsp + 0x30], 0
mov rdx, qword [rdx + 0x18]
mov eax, dword [rbx + 0x38]
mov esi, dword [rdx + 0x18]
inc qword [r15 + 0x58]
cmp eax, 2
jne 0x4b7b54
mov esi, dword [rdx + 0x5c]
lea rbp, [r15 + 0x70]
mov rbx, qword [r15 + 0x20]
lea rdi, [r15 + 0x78]
cmp esi, 1
jne 0x4b7b39
mov rcx, qword [r15 + 0x20]
mov qword [r15 + 0x70], 0
mov dword [r15 + 0x78], 0
call sym.sqlite3Fts5IterNextScan
test eax, eax
jne 0x4b7b2c
mov rcx, r15
call sym.fts5VocabInstanceNewTerm
cmp dword [r15 + 0x18], 0
jne 0x4b7ded
cmp esi, 1
je 0x4b7ded
test eax, eax
je 0x4b7aea
mov dword [r15 + 0x18], 1
jmp 0x4b7ded
mov edx, dword [rbx + 0x10]
mov r9, rbp
mov r8, rdi
mov rcx, qword [rbx + 8]
call sym.sqlite3Fts5PoslistNext64
test eax, eax
jne 0x4b7aef
jmp 0x4b7ded
test eax, eax
jne 0x4b7b7e
inc dword [r15 + 0x40]
mov eax, dword [r15 + 0x40]
cmp eax, esi
jge 0x4b7b7e
mov rcx, qword [r15 + 0x50]
movsxd rdx, eax
cmp qword [rcx + rdx*8], 0
jne 0x4b7db2
inc eax
mov dword [r15 + 0x40], eax
jmp 0x4b7b5c
mov rax, qword [r15 + 0x20]
cmp byte [rax + 0x14], 0
je 0x4b7b95
mov dword [r15 + 0x18], 1
jmp 0x4b7dbf
mov rdx, qword [rax + 0x58]
movsxd rbp, dword [r15 + 0x30]
movzx edx, word [rdx + 4]
imul rdx, rdx, 0x78
add rax, rdx
mov r9, qword [rax + 0xb8]
mov edi, dword [rax + 0xc0]
dec edi
cmp r9, 1
sbb r9, 0xffffffffffffffff
test ebp, ebp
js 0x4b7bfb
mov rcx, qword [r15 + 0x38]
cmp ebp, edi
movsxd r8, edi
mov rdx, r9
cmovle r8, rbp
mov qword [rsp + 0x28], r9
call sym.memcmp
test eax, eax
js 0x4b7bec
mov r9, qword [rsp + 0x28]
jne 0x4b7bfb
cmp ebp, edi
jge 0x4b7bfb
mov dword [r15 + 0x18], 1
xor eax, eax
jmp 0x4b7ded
lea rdx, [r15 + 0x60]
mov r8d, edi
movsxd r14, esi
lea rcx, [rsp + 0x30]
call sym.sqlite3Fts5BufferSet
mov rdi, qword [r15 + 0x48]
lea rbp, [rsp + 0x34]
xor eax, eax
lea rdx, [r14*8]
mov rcx, rdx
rep stosb byte [rdi], al
mov rcx, rdx
mov rdi, qword [r15 + 0x50]
rep stosb byte [rdi], al
mov dword [r15 + 0x40], 0
lea rdi, [rsp + 0x38]
cmp dword [rsp + 0x30], 0
jne 0x4b7dbf
mov rdx, qword [r15 + 0x20]
mov dword [rsp + 0x34], 0
mov qword [rsp + 0x38], 0
mov rax, qword [r15 + 0x10]
mov r12, qword [rdx + 8]
mov r13d, dword [rdx + 0x10]
mov edx, dword [rbx + 0x38]
mov rax, qword [rax + 0x18]
test edx, edx
mov eax, dword [rax + 0x5c]
je 0x4b7ca9
dec edx
jne 0x4b7d32
test eax, eax
jne 0x4b7d2b
mov r9, rdi
mov r8, rbp
mov edx, r13d
mov rcx, r12
call sym.sqlite3Fts5PoslistNext64
test eax, eax
jne 0x4b7d2b
mov rax, qword [r15 + 0x48]
inc qword [rax]
jmp 0x4b7c87
test eax, eax
jne 0x4b7cfd
or r11d, 0xffffffff
mov r9, rdi
mov r8, rbp
mov edx, r13d
mov dword [rsp + 0x28], r11d
mov rcx, r12
call sym.sqlite3Fts5PoslistNext64
mov r11d, dword [rsp + 0x28]
test eax, eax
jne 0x4b7d32
movsxd rax, dword [rsp + 0x3c]
cmp r11d, eax
je 0x4b7cf0
cmp esi, eax
jg 0x4b7ce8
mov dword [rsp + 0x30], 0x10b
jmp 0x4b7d32
mov rdx, qword [r15 + 0x50]
inc qword [rdx + rax*8]
mov rdx, qword [r15 + 0x48]
mov r11d, eax
inc qword [rdx + rax*8]
jmp 0x4b7cb1
cmp eax, 2
jne 0x4b7d2b
mov r9, rdi
mov r8, rbp
mov edx, r13d
mov rcx, r12
call sym.sqlite3Fts5PoslistNext64
test eax, eax
jne 0x4b7d32
mov rax, qword [rsp + 0x38]
cmp r14, rax
jle 0x4b7cde
mov rdx, qword [r15 + 0x50]
inc qword [rdx + rax*8]
jmp 0x4b7d02
mov rax, qword [r15 + 0x50]
inc qword [rax]
cmp dword [rsp + 0x30], 0
jne 0x4b7d46
mov rcx, qword [r15 + 0x20]
call sym.sqlite3Fts5IterNextScan
mov dword [rsp + 0x30], eax
cmp dword [rbx + 0x38], 2
mov eax, dword [rsp + 0x30]
je 0x4b7dae
test eax, eax
jne 0x4b7c3d
mov r12, qword [r15 + 0x20]
mov rax, qword [r12 + 0x58]
movzx eax, word [rax + 4]
imul rax, rax, 0x78
add rax, r12
mov rcx, qword [rax + 0xb8]
mov r8d, dword [rax + 0xc0]
dec r8d
cmp rcx, 1
sbb rcx, 0xffffffffffffffff
cmp dword [r15 + 0x68], r8d
jne 0x4b7db2
test r8d, r8d
jle 0x4b7da0
mov rdx, qword [r15 + 0x60]
movsxd r8, r8d
call sym.memcmp
test eax, eax
jne 0x4b7db2
cmp byte [r12 + 0x14], 0
je 0x4b7c3d
jmp 0x4b7db2
test eax, eax
jne 0x4b7dbf
cmp dword [r15 + 0x18], 0
jne 0x4b7dbf
cmp dword [rbx + 0x38], 0
je 0x4b7dd9
mov eax, dword [rsp + 0x30]
jmp 0x4b7ded
mov rcx, qword [r15 + 0x50]
movsxd rdx, eax
cmp qword [rcx + rdx*8], 0
jne 0x4b7dbf
inc eax
mov dword [r15 + 0x40], eax
mov eax, dword [r15 + 0x40]
cmp eax, esi
jl 0x4b7dc5
jne 0x4b7dbf
mov dword [rsp + 0x30], 0x10b
jmp 0x4b7dbf
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret