Function at 0x140129530
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, 0x158
mov r13, qword [rdx + 0x20]
mov rbx, rcx
mov rcx, qword [r13 + 0x18]
mov qword [rsp + 0x1a8], rdx
mov r12d, dword [rbx + 0x18]
mov rdx, qword [rcx + 0x40]
test rdx, rdx
je 0x140129a5a
add rcx, 0x20
xor esi, esi
xor r8d, r8d
jmp 0x14012958d
xor ecx, ecx
cmp rax, rsi
setl cl
cmp r12d, ecx
cmovne rsi, rax
test rdx, rdx
je 0x1401295ad
mov rcx, rdx
mov rdx, qword [rdx + 0x20]
mov rax, qword [rcx + 0x18]
cmp byte [rax + 0x14], 0
jne 0x140129581
mov rax, qword [rax]
test r8d, r8d
jne 0x140129572
mov rsi, rax
mov r8d, 1
test rdx, rdx
jne 0x140129586
mov edx, dword [r13 + 0x10]
mov rdi, r13
mov r13, rbx
test edx, edx
jle 0x14012979d
xor r15d, r15d
mov ebp, 1
mov rbx, r15
mov ecx, ebp
mov rbp, qword [rdi + rbx*8 + 0x18]
mov r10d, dword [rbp + 0x18]
test r10d, r10d
jle 0x140129789
mov qword [rsp + 0x38], rdi
lea r14, [rbp + 0x20]
xor r15d, r15d
mov qword [rsp + 0x40], rbx
mov rbx, rsi
mov esi, r15d
mov r15, r14
mov r14, rbp
nop dword [rax + rax]
cmp qword [r15 + 0x20], 0
mov rdi, r15
je 0x140129730
mov rax, r15
xor r10d, r10d
xor r11d, r11d
jmp 0x14012963a
xor r8d, r8d
cmp rdx, r10
setl r8b
cmp r12d, r8d
cmovne r10, rdx
mov rax, qword [rax + 0x20]
test rax, rax
je 0x14012965e
mov rdx, qword [rax + 0x18]
cmp byte [rdx + 0x14], 0
jne 0x140129631
mov rdx, qword [rdx]
test r11d, r11d
jne 0x140129620
mov rax, qword [rax + 0x20]
mov r10, rdx
mov r11d, 1
test rax, rax
jne 0x14012963a
cmp rbx, r10
je 0x140129768
mov dword [rsp + 0x30], esi
mov rbp, r15
mov rsi, rbx
jmp 0x14012969c
cmp rsi, rax
jg 0x1401296b3
test r12d, r12d
jne 0x1401296ae
nop word [rax + rax]
mov rbp, qword [rbp + 0x20]
mov eax, 1
xor ecx, ecx
test rbp, rbp
je 0x1401296f0
test al, al
je 0x1401296f0
mov rbx, qword [rbp + 0x18]
cmp byte [rbx + 0x14], 0
jne 0x140129688
mov rax, qword [rbx]
test r12d, r12d
je 0x140129678
cmp rsi, rax
jge 0x140129688
cmp qword [rbx + 0x18], 0
je 0x140129960
mov r8, rsi
mov edx, 1
mov rcx, rbx
call sym.fts5TokendataIterNext
mov rax, qword [rbx + 0x20]
mov rbp, qword [rbp + 0x20]
mov ecx, dword [rax + 0x3c]
mov dword [rax + 0x3c], 0
test ecx, ecx
sete al
test rbp, rbp
jne 0x140129698
nop word [rax + rax]
mov esi, dword [rsp + 0x30]
test ecx, ecx
je 0x1401299d8
mov ebp, ecx
mov rax, qword [0x140177058]
mov rdi, qword [rsp + 0x1a8]
mov qword [rdi + 4], rax
mov eax, ebp
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rbp, qword [r15 + 0x18]
mov rax, qword [rbp]
cmp rax, rbx
je 0x140129768
cmp byte [rbp + 0x14], 0
jne 0x140129768
test r12d, r12d
jne 0x140129978
cmp rax, rbx
jl 0x140129981
test r12d, r12d
jne 0x140129978
mov rbx, rax
xor ecx, ecx
nop dword [rax + rax]
add esi, 1
add r15, 0x28
cmp dword [r14 + 0x18], esi
jg 0x140129600
mov rdi, qword [rsp + 0x38]
mov rsi, rbx
mov rbx, qword [rsp + 0x40]
mov edx, dword [rdi + 0x10]
add rbx, 1
cmp edx, ebx
jg 0x1401295cc
test ecx, ecx
je 0x1401295b7
mov rax, qword [rsp + 0x1a8]
mov rdi, qword [rsp + 0x1a8]
mov dword [rsp + 0x68], 0
mov qword [rax + 0x18], rsi
mov rax, qword [r13 + 8]
mov r15, qword [rdi + 0x20]
xor edi, edi
mov r12d, dword [rax + 0x60]
test r12d, r12d
jne 0x14012a01d
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x4c], edi
mov dword [rsp + 0x40], edi
cmp dword [r15 + 0x10], edi
jle 0x140129fea
mov rbp, qword [r15 + rdi*8 + 0x18]
movzx esi, byte [rbp + 0x21]
mov eax, dword [rbp + 0x18]
mov byte [rsp + 0x4b], sil
cmp eax, 1
jg 0x140129f88
cmp qword [rbp + 0x40], 0
je 0x140129f10
mov qword [rsp + 0x70], 0
movsxd r8, eax
mov dword [rbp + 0x10], 0
lea r13, [rsp + 0x90]
mov rsi, r13
shl r8, 5
xor edx, edx
mov rcx, rsi
call sym.memset
mov eax, dword [rbp + 0x18]
test eax, eax
jle 0x140129a90
mov dword [rsp + 0x38], 0
lea rax, [rsp + 0x78]
lea rbx, [rsi + 0xc]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x80]
lea r14, [rbp + 0x20]
mov qword [rsp + 0x58], rax
cmp qword [r14 + 0x20], 0
mov dword [rsp + 0x6c], 0
mov qword [rsp + 0x78], 0
je 0x140129b48
mov rax, qword [rsp + 0x1a8]
mov r9, qword [rsp + 0x50]
mov rcx, r14
mov qword [rsp + 0x80], 0
mov r8, qword [rsp + 0x58]
mov qword [rsp + 0x88], 0
mov rdx, qword [rax + 0x18]
lea rax, [rsp + 0x6c]
mov qword [rsp + 0x20], rax
call sym.fts5ExprSynonymList
mov rcx, qword [rsp + 0x78]
mov r12d, eax
test eax, eax
jne 0x140129f50
cmp qword [rsp + 0x80], rcx
mov edx, dword [rsp + 0x6c]
sete r12b
mov qword [rbx - 0xc], rcx
pxor xmm0, xmm0
lea r9, [rbx + 0xc]
mov r8, rbx
mov dword [rbx + 0x10], 0
mov dword [rbx - 4], edx
movups xmmword [rbx], xmm0
call sym.sqlite3Fts5PoslistNext64
test eax, eax
je 0x140129a66
mov byte [rbx + 5], 1
mov byte [rbx + 4], r12b
xor r12d, r12d
mov ecx, dword [rbp + 0x18]
mov ebx, dword [rbp + 0x10]
mov r14, rsi
xor edx, edx
test ecx, ecx
jle 0x140129b6f
mov qword [rsp + 0x38], r13
mov r13d, r12d
mov r12d, ebx
mov ebx, edx
jmp 0x14012994c
add ebx, 1
add r14, 0x20
cmp ebx, dword [rbp + 0x18]
jge 0x140129b64
cmp byte [r14 + 0x10], 0
je 0x14012993c
mov rcx, qword [r14]
call sym.sqlite3_free
jmp 0x14012993c
mov rcx, qword [rbx + 0x20]
mov r8, rsi
mov rdx, rbx
call sym.fts5MultiIterNextFrom
jmp 0x1401296ce
cmp rax, rbx
jle 0x14012975e
cmp qword [rbp + 0x18], 0
je 0x140129a46
mov r8, rbx
mov edx, 1
mov rcx, rbp
call sym.fts5TokendataIterNext
mov rax, qword [rbp + 0x20]
mov ecx, dword [rax + 0x3c]
mov dword [rax + 0x3c], 0
test ecx, ecx
jne 0x140129a30
cmp byte [rbp + 0x14], 0
jne 0x140129a30
mov rbx, qword [rbp]
add esi, 1
add r15, 0x28
cmp dword [r14 + 0x18], esi
jg 0x140129600
jmp 0x140129779
xor edx, edx
xor ebx, ebx
jmp 0x1401299fa
xor r8d, r8d
cmp rax, rbx
setl r8b
cmp r12d, r8d
cmovne rbx, rax
mov rdi, qword [rdi + 0x20]
test rdi, rdi
je 0x140129a1c
mov rax, qword [rdi + 0x18]
cmp byte [rax + 0x14], 0
jne 0x1401299f1
mov rax, qword [rax]
test edx, edx
jne 0x1401299e0
mov rdi, qword [rdi + 0x20]
mov rbx, rax
mov edx, 1
test rdi, rdi
jne 0x1401299fa
test edx, edx
jne 0x140129768
xor ebp, ebp
jmp 0x1401296fe
mov rax, qword [rsp + 0x1a8]
mov ebp, ecx
mov dword [rax + 4], 1
jmp 0x140129711
mov rcx, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rbp
call sym.fts5MultiIterNextFrom
jmp 0x14012999c
mov rdx, qword [rcx + 0x38]
mov rsi, qword [rdx]
jmp 0x1401295ad
cmp byte [rbx + 5], 0
mov byte [rbx + 4], r12b
mov eax, dword [rbp + 0x18]
jne 0x140129917
add dword [rsp + 0x38], 1
mov ecx, dword [rsp + 0x38]
add rbx, 0x20
add r14, 0x28
cmp ecx, eax
jl 0x14012986a
mov r14, qword [rsi + 0x18]
mov r8, r13
mov r13, rdi
mov rdi, rsi
test eax, eax
jle 0x140129adc
lea rsi, [rdi + 0xc]
lea rbx, [rdi + 0x18]
xor r12d, r12d
mov ecx, 1
mov r9, rdi
mov rdx, qword [rbx]
lea rdi, [r12 + r14]
cmp rdi, rdx
jne 0x140129cbb
add r12, 1
add rsi, 0x20
add rbx, 0x20
cmp eax, r12d
jg 0x140129ab4
mov rdi, r9
test ecx, ecx
je 0x140129a9d
cmp byte [rsp + 0x4b], 0
mov rsi, rdi
mov rdi, r13
mov r13, r8
je 0x140129af5
test r14d, 0x7fffffff
jne 0x140129b11
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 8]
mov r8, r14
call sym.sqlite3Fts5PoslistWriterAppend
mov r12d, eax
test eax, eax
jne 0x14012991a
xor r12d, r12d
cmp dword [rbp + 0x18], 0
mov rbx, rsi
jle 0x140129f7d
mov edx, dword [rbx + 8]
mov rcx, qword [rbx]
lea r9, [rbx + 0x18]
lea r8, [rbx + 0xc]
call sym.sqlite3Fts5PoslistNext64
test eax, eax
je 0x140129f5a
mov byte [rbx + 0x11], 1
jmp 0x140129917
mov rax, qword [r14 + 0x18]
xor r12d, r12d
mov rcx, qword [rax + 8]
mov edx, dword [rax + 0x10]
mov qword [rsp + 0x78], rcx
mov dword [rsp + 0x6c], edx
jmp 0x1401298e6
mov ebx, r12d
mov r12d, r13d
mov r13, qword [rsp + 0x38]
cmp rsi, r13
je 0x140129b7c
mov rcx, rsi
call sym.sqlite3_free
mov dword [rsp + 0x68], r12d
test ebx, ebx
jle 0x140129eff
add rdi, 1
test r12d, r12d
je 0x1401297d5
mov edx, dword [rsp + 0x4c]
mov ebp, r12d
mov r12d, dword [rsp + 0x30]
add edx, 1
cmp dword [r15 + 0x10], edx
jne 0x140129ef1
cmp edx, 1
je 0x140129e74
mov dword [rsp + 0x80], ebp
cmp edx, 4
jle 0x140129e85
movsxd rdx, edx
lea rcx, [rsp + 0x80]
imul rdx, rdx, 0x30
call sym.sqlite3Fts5MallocZero
mov rbx, rax
mov ebp, dword [rsp + 0x80]
test ebp, ebp
jne 0x140129e74
xor edi, edi
cmp dword [r15 + 0x10], 0
lea rsi, [rbx + 0xc]
movabs r12, 0x4000000000000000
pxor xmm0, xmm0
jle 0x140129d45
mov eax, ebp
mov rbp, rbx
mov rbx, r15
mov r15d, eax
jmp 0x140129c57
mov rax, qword [rsi + 0xc]
mov qword [rsi + 4], rax
mov r8, rsi
mov rcx, r14
call sym.sqlite3Fts5PoslistNext64
test eax, eax
je 0x140129c35
mov qword [rsi + 0xc], r12
mov rax, qword [rsp + 0x30]
mov dword [r13 + 0x10], 0
add rdi, 1
add rsi, 0x30
mov qword [rsi - 0x14], rax
cmp dword [rbx + 0x10], edi
jle 0x140129d3a
mov r13, qword [rbx + rdi*8 + 0x18]
lea r9, [rsi + 0xc]
mov r8, rsi
mov qword [rsp + 0x40], r9
lea rax, [r13 + 8]
mov edx, dword [r13 + 0x10]
mov r14, qword [r13 + 8]
movups xmmword [rsi], xmm0
mov qword [rsp + 0x30], rax
mov dword [rsi + 0x10], 0
mov rax, qword [rsi + 0xc]
mov rcx, r14
mov dword [rsi - 4], edx
mov qword [rsi - 0xc], r14
mov qword [rsi + 4], rax
mov dword [rsp + 0x38], edx
call sym.sqlite3Fts5PoslistNext64
mov edx, dword [rsp + 0x38]
mov r9, qword [rsp + 0x40]
test eax, eax
je 0x140129c1a
mov qword [rsi + 0xc], r12
mov rax, r12
jmp 0x140129c1e
mov qword [rsp + 0x38], r8
mov r8, rsi
mov rsi, r9
cmp rdx, rdi
jge 0x140129d04
mov edx, dword [rbx - 0x10]
mov rcx, qword [rbx - 0x18]
mov r9, rbx
mov qword [rsp + 0x50], r8
call sym.sqlite3Fts5PoslistNext64
mov r8, qword [rsp + 0x50]
test eax, eax
je 0x140129cf9
mov rdi, r13
mov byte [rbx - 7], 1
mov r13, qword [rsp + 0x38]
jmp 0x140129917
cmp byte [rbx - 7], 0
jne 0x140129d21
mov rdx, qword [rbx]
jmp 0x140129cc6
mov r9, rsi
mov rsi, r8
mov r8, qword [rsp + 0x38]
jle 0x140129d30
sub rdx, r12
mov eax, dword [rbp + 0x18]
xor ecx, ecx
mov r14, rdx
jmp 0x140129ac4
mov rdi, r13
mov r13, qword [rsp + 0x38]
jmp 0x140129917
mov eax, dword [rbp + 0x18]
xor ecx, ecx
jmp 0x140129ac4
mov eax, r15d
mov r15, rbx
mov rbx, rbp
mov ebp, eax
mov edi, 1
shl rdi, 0x3e
mov r13, qword [rbx + 0x10]
cmp dword [r15 + 0x10], 0
jle 0x140129da2
lea rsi, [rbx + 0x18]
xor r14d, r14d
mov eax, 1
mov rdx, qword [r15 + r14*8 + 0x18]
mov r10, r13
mov r12, qword [rsi - 8]
movsxd rdx, dword [rdx + 0x18]
sub r10, rdx
movsxd rdx, dword [r15]
sub r10, rdx
cmp r10, r12
jg 0x140129e9e
cmp r12, r13
jg 0x140129e9e
add r14, 1
add rsi, 0x30
cmp dword [r15 + 0x10], r14d
jg 0x140129d65
test eax, eax
je 0x140129d52
mov ecx, dword [r15 + 0x10]
lea rsi, [rbx + 0x20]
xor r12d, r12d
jmp 0x140129dd9
mov rax, qword [rsi + 8]
mov r8, qword [rsi - 0x10]
cmp dword [rax + 8], 0
je 0x140129dc2
cmp r8, qword [rsi]
je 0x140129dd1
mov rcx, rax
mov rdx, rsi
call sym.sqlite3Fts5PoslistWriterAppend
mov ecx, dword [r15 + 0x10]
add r12d, 1
add rsi, 0x30
cmp r12d, ecx
jl 0x140129daf
mov r8, qword [rbx + 0x18]
xor eax, eax
xor edx, edx
jmp 0x140129dff
imul r9, rdx, 0x30
mov r9, qword [rbx + r9 + 0x18]
cmp r9, r8
jge 0x140129dfb
mov eax, edx
mov r8, r9
add rdx, 1
cmp ecx, edx
jg 0x140129de8
movsxd rsi, eax
imul rsi, rsi, 0x30
add rsi, rbx
mov r12, qword [rsi + 0x18]
mov edx, dword [rsi + 8]
lea r9, [rsi + 0x18]
lea r8, [rsi + 0xc]
mov rcx, qword [rsi]
mov qword [rsi + 0x10], r12
call sym.sqlite3Fts5PoslistNext64
test eax, eax
je 0x140129e39
mov eax, 1
shl rax, 0x3e
mov qword [rsi + 0x18], rax
mov eax, 1
shl rax, 0x3e
cmp r12, rax
jne 0x140129d4e
mov rax, qword [rbx + 0x28]
mov esi, dword [rax + 8]
lea rax, [rsp + 0x90]
cmp rbx, rax
je 0x140129e67
mov rcx, rbx
call sym.sqlite3_free
xor r12d, r12d
test esi, esi
jg 0x140129e74
mov r12d, 1
mov rax, qword [rsp + 0x1a8]
mov dword [rax + 8], r12d
jmp 0x140129711
lea rbx, [rsp + 0x90]
mov ecx, 0x30
xor eax, eax
mov rdi, rbx
rep stosd dword [rdi], eax
jmp 0x140129bdf
lea r8, [rsi - 0xc]
jmp 0x140129ede
mov r12, qword [rsi]
mov edx, dword [rsi - 0x10]
mov r9, rsi
mov qword [rsp + 0x38], r10
mov rcx, qword [rsi - 0x18]
mov qword [rsp + 0x30], r8
mov qword [rsi - 8], r12
call sym.sqlite3Fts5PoslistNext64
mov r8, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
test eax, eax
je 0x140129ed5
mov qword [rsi], rdi
cmp r12, rdi
je 0x140129e4b
cmp r12, r10
jl 0x140129ea4
cmp r13, r12
cmovl r13, r12
xor eax, eax
jmp 0x140129d90
xor r12d, r12d
test ebp, ebp
sete r12b
jmp 0x140129e74
mov ebp, r12d
mov edx, dword [rsp + 0x40]
mov r12d, dword [rsp + 0x30]
jmp 0x140129ba5
cmp qword [r15 + 8], 0
jne 0x14012980c
test sil, sil
jne 0x14012980c
mov rax, qword [rbp + 0x38]
lea rdx, [rbp + 8]
lea rcx, [rsp + 0x68]
mov r9, qword [rax + 8]
mov r8d, dword [rax + 0x10]
xor eax, eax
mov dword [rbp + 0x10], eax
call sym.sqlite3Fts5BufferAppendBlob
mov r12d, dword [rsp + 0x68]
jmp 0x140129b89
call sym.sqlite3_free
jmp 0x14012991a
cmp byte [rbx + 0x11], 0
mov eax, dword [rbp + 0x18]
jne 0x140129917
add r12d, 1
add rbx, 0x20
cmp r12d, eax
jl 0x140129b21
jmp 0x140129a90
mov eax, dword [rbp + 0x18]
jmp 0x140129a90
movsxd r8, eax
mov dword [rbp + 0x10], 0
mov qword [rsp + 0x70], 0
mov rbx, r8
shl rbx, 5
cmp eax, 4
jle 0x14012981f
mov r8d, dword [0x14014efd4]
test r8d, r8d
jne 0x14012a015
call sym.sqlite3MutexInit
test eax, eax
jne 0x140129ffa
call sym.sqlite3_initialize.part.0
test eax, eax
jne 0x140129ffa
mov rcx, rbx
call sym.sqlite3Malloc
mov rsi, rax
test rax, rax
je 0x140129ffa
movsxd r8, dword [rbp + 0x18]
lea r13, [rsp + 0x90]
jmp 0x14012982a
mov r12d, dword [rsp + 0x30]
mov ebp, dword [rsp + 0x68]
mov edx, edi
jmp 0x140129ba5
mov r12d, dword [rsp + 0x30]
mov edx, dword [rsp + 0x40]
mov ebp, 7
mov dword [rsp + 0x68], 7
jmp 0x140129ba5
lock or qword [rsp], 0
jmp 0x140129fc9
mov rax, qword [r15 + 0x18]
mov dword [rax + 0x10], 0
lea rdx, [rax + 0x20]
jmp 0x14012a037
mov rdx, qword [rdx + 0x20]
test rdx, rdx
je 0x14012a058
mov rcx, qword [rdx + 0x18]
cmp byte [rcx + 0x14], 0
jne 0x14012a02e
cmp rsi, qword [rcx]
jne 0x14012a02e
mov r9d, dword [rcx + 0x10]
test r9d, r9d
jle 0x14012a02e
mov dword [rax + 0x10], 1
jmp 0x14012a02e
mov ebp, dword [rax + 0x10]
test ebp, ebp
je 0x140129ef1
xor ebp, ebp
xor r12d, r12d
jmp 0x140129e74