Function at 0x1401c7100
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, 0xe8
mov rax, qword [rcx + 0x10]
mov esi, dword [rax + 0x90]
mov qword [rsp + 0x88], rdx
mov r13, rcx
mov rbp, r8
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x94], esi
cmp esi, dword [rax + 0x94]
jge 0x1401c7ba0
mov esi, dword [rsp + 0x94]
mov rbx, qword [rsp + 0x58]
lea eax, [rsi + 1]
mov dword [rbx + 0x90], eax
movsxd rax, esi
lea rdx, [rax + rax*2]
mov rax, qword [rbx + 0x88]
lea rax, [rax + rdx*8]
mov qword [rax], 0xf
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov rsi, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x48]
mov rax, qword [rsi]
mov r15, qword [rsi + 0x20]
mov rdi, qword [rax + 8]
movzx eax, byte [rbx + 0x40]
mov rdx, rax
lea rcx, [rax + rax*2]
mov qword [rsp + 0x50], rdi
lea rax, [rax + rcx*4]
movzx r11d, dl
movsxd rdx, dword [rsi + 0x14]
lea r14, [rdi + rax*8 + 8]
lea rax, [r11 + rcx*4]
mov rax, qword [rdi + rax*8 + 0x28]
mov qword [rsp + 0x78], rax
lea rax, [rdx*8]
sub rax, rdx
lea r12, [r15 + rax*8]
mov rax, qword [rbx + 0x60]
mov qword [rsp + 0x68], rax
cmp r15, r12
jae 0x1401c7d02
xor ebx, ebx
mov qword [rsp + 0x98], r11
xor edi, edi
xor esi, esi
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x70], ebx
jmp 0x1401c7260
mov r8, rbp
mov rdx, r14
mov rcx, r15
call sym.termCanDriveIndex
test eax, eax
je 0x1401c7253
movsxd rcx, dword [r15 + 0x20]
mov r11d, 1
movabs rax, 0x8000000000000000
shl r11, cl
cmp ecx, 0x40
cmovge r11, rax
test dil, dil
je 0x1401c78f8
mov edi, 1
test r11, rsi
je 0x1401c72c0
add r15, 0x38
cmp r15, r12
jae 0x1401c7318
test byte [r15 + 0x12], 2
jne 0x1401c7210
mov rax, qword [rsp + 0x48]
mov rbx, qword [r15]
mov rdx, qword [rsp + 0x50]
movzx r8d, byte [rax + 0x40]
mov rcx, rbx
call dbg.sqlite3ExprIsSingleTableConstraint
test eax, eax
je 0x1401c7210
test rbx, rbx
je 0x1401c729f
mov rcx, qword [r13]
mov rdx, rbx
xor r9d, r9d
xor r8d, r8d
call dbg.exprDup
mov rbx, rax
mov rdx, qword [rsp + 0x60]
mov r8, rbx
mov rcx, r13
call dbg.sqlite3ExprAnd
mov qword [rsp + 0x60], rax
jmp 0x1401c7210
movsxd rbx, dword [rsp + 0x70]
mov rcx, qword [r13]
mov qword [rsp + 0x80], r11
mov rdx, qword [rsp + 0x68]
lea r8d, [rbx + 1]
mov dword [rsp + 0x70], r8d
call dbg.whereLoopResize
test eax, eax
jne 0x1401c7967
mov rax, qword [rsp + 0x68]
mov r11, qword [rsp + 0x80]
mov rax, qword [rax + 0x48]
or rsi, r11
mov qword [rax + rbx*8], r15
add r15, 0x38
cmp r15, r12
jb 0x1401c7260
nop dword [rax]
mov ebx, dword [rsp + 0x70]
mov r11, qword [rsp + 0x98]
mov eax, ebx
mov rdi, qword [rsp + 0x68]
mov r10, 0xffffffffffffffff
mov word [rdi + 0x3c], ax
mov word [rdi + 0x18], ax
lea rax, [r11 + r11*2]
mov dword [rdi + 0x38], 0x4241
mov rdi, qword [rsp + 0x50]
lea rax, [r11 + rax*4]
mov rdx, qword [rdi + rax*8 + 0x58]
mov rax, qword [rsp + 0x78]
cmp byte [rax + 0x3f], 2
je 0x1401c736c
not rsi
bts rsi, 0x3f
and rsi, rdx
mov r10, rsi
mov rax, qword [rsp + 0x78]
mov r15d, 0x3f
movsx eax, word [rax + 0x36]
cmp ax, r15w
mov word [rsp + 0x98], ax
cmovle r15d, eax
test ax, ax
jle 0x1401c73ab
xor ecx, ecx
nop word [rax + rax]
mov rax, r10
shr rax, cl
add ecx, 1
and eax, 1
add ebx, eax
cmp r15d, ecx
jne 0x1401c7398
test rdx, rdx
jns 0x1401c73bc
movsx eax, word [rsp + 0x98]
lea ebx, [rbx + rax - 0x3f]
mov rcx, qword [r13]
lea edx, [rbx + 1]
xor r8d, r8d
lea r9, [rsp + 0xd8]
movsx edx, dx
mov qword [rsp + 0xa0], r11
mov qword [rsp + 0x80], r10
call dbg.sqlite3AllocateIndexObject
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1401c7967
mov rsi, qword [rsp + 0x68]
mov r10, qword [rsp + 0x80]
mov r11, qword [rsp + 0xa0]
mov qword [rsi + 0x20], rax
lea rsi, str.auto_index
mov qword [rax], rsi
mov rsi, qword [rsp + 0x78]
mov qword [rax + 0x18], rsi
mov rsi, qword [rsp + 0x88]
mov rsi, qword [rsi + 0x20]
cmp rsi, r12
jae 0x1401c7c65
xor edx, edx
lea r8, str.BINARY
mov dword [rsp + 0xa8], r15d
xor edi, edi
mov dword [rsp + 0xac], ebx
mov r15, rdx
mov rbx, rax
mov byte [rsp + 0x80], 0
mov qword [rsp + 0xa0], r10
mov qword [rsp + 0xb0], r11
mov qword [rsp + 0xb8], r8
jmp 0x1401c748d
add rsi, 0x38
cmp rsi, r12
jae 0x1401c7568
mov r8, rbp
mov rdx, r14
mov rcx, rsi
call sym.termCanDriveIndex
test eax, eax
je 0x1401c7480
mov ecx, dword [rsi + 0x20]
mov eax, 1
movabs rdx, 0x8000000000000000
shl rax, cl
cmp ecx, 0x40
cmovge rax, rdx
test rax, r15
jne 0x1401c7480
mov r10, qword [rsi]
or r15, rax
mov rax, qword [rbx + 8]
movsxd r11, edi
mov qword [rsp + 0xc8], r11
test byte [r10 + 5], 4
mov rdx, qword [r10 + 0x10]
mov word [rax + r11*2], cx
mov qword [rsp + 0xc0], r10
mov rax, qword [r10 + 0x18]
jne 0x1401c7998
mov r8, rax
mov rcx, r13
call sym.sqlite3BinaryCompareCollSeq
mov r11, qword [rsp + 0xc8]
mov r10, qword [rsp + 0xc0]
lea rdx, str.BINARY
test rax, rax
je 0x1401c751f
mov rdx, qword [rax]
mov rax, qword [rbx + 0x40]
mov rcx, qword [r10 + 0x10]
add edi, 1
mov qword [rax + r11*8], rdx
test rcx, rcx
je 0x1401c7480
call dbg.sqlite3ExprAffinity
movzx edx, byte [rsp + 0x80]
cmp al, 0x42
mov eax, 1
cmovne edx, eax
add rsi, 0x38
mov byte [rsp + 0x80], dl
cmp rsi, r12
jb 0x1401c748d
nop word [rax + rax]
movzx esi, byte [rsp + 0x80]
movsxd rax, edi
mov r10, qword [rsp + 0xa0]
mov r15d, dword [rsp + 0xa8]
mov ebx, dword [rsp + 0xac]
lea r9, [rax + rax]
shl rax, 3
mov r11, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xb8]
and esi, 1
cmp word [rsp + 0x98], 0
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rdx + 8]
mov rdx, qword [rdx + 0x40]
jle 0x1401c75e8
xor eax, eax
nop
bt r10, rax
jae 0x1401c75d5
movsxd r9, edi
add edi, 1
mov word [rcx + r9*2], ax
mov qword [rdx + r9*8], r8
add eax, 1
cmp r15d, eax
jne 0x1401c75c0
movsxd rax, edi
lea r9, [rax + rax]
shl rax, 3
mov r14, qword [rsp + 0x50]
lea r10, [r11 + r11*2]
lea r10, [r11 + r10*4]
cmp qword [r14 + r10*8 + 0x58], 0
js 0x1401c7a90
mov qword [rsp + 0x78], r11
mov r11d, 0xffffffff
mov word [rcx + r9], r11w
mov rcx, qword [rsp + 0x58]
lea r9d, [rbx + 1]
mov qword [rdx + rax], r8
mov r8d, dword [r13 + 0x34]
mov edx, 0x74
lea eax, [r8 + 1]
mov dword [r13 + 0x34], eax
mov rax, qword [rsp + 0x48]
mov dword [rax + 8], r8d
mov dword [rsp + 0x20], 0
call sym.sqlite3VdbeAddOp3
mov rdx, qword [rsp + 0x70]
mov rcx, r13
call sym.sqlite3VdbeSetP4KeyInfo
mov rax, qword [r13]
mov r11, qword [rsp + 0x78]
test byte [rax + 0x62], 8
jne 0x1401c766a
test sil, sil
jne 0x1401c7bf3
mov rax, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
movsxd rbx, dword [rax + 0x90]
mov edx, dword [rax + 0x94]
lea rax, [r11 + r11*2]
lea rax, [r11 + rax*4]
lea rax, [rsi + rax*8]
test byte [rax + 0x48], 0x20
jne 0x1401c79c0
mov rax, qword [rsp + 0x48]
mov r8d, dword [rax + 4]
cmp ebx, edx
jge 0x1401c7c7a
mov rsi, qword [rsp + 0x58]
lea eax, [rbx + 1]
xor r12d, r12d
mov dword [rsi + 0x90], eax
movsxd rax, ebx
lea rdx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
lea rax, [rax + rdx*8]
mov dword [rax + 4], r8d
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov dword [rax], 0x24
mov rdx, qword [rsp + 0x60]
xor esi, esi
test rdx, rdx
je 0x1401c7723
mov eax, dword [r13 + 0x44]
mov r9d, 0x10
mov rcx, r13
mov qword [rsp + 0x78], r11
lea esi, [rax - 1]
mov dword [r13 + 0x44], esi
mov r8d, esi
call sym.sqlite3ExprIfFalse
mov rax, qword [rsp + 0x68]
mov r11, qword [rsp + 0x78]
or dword [rax + 0x38], 0x20000
movzx eax, byte [r13 + 0x1f]
test al, al
je 0x1401c7b00
sub eax, 1
mov byte [r13 + 0x1f], al
movzx eax, al
mov ebp, dword [r13 + rax*4 + 0xe8]
mov r15, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x70]
mov r9d, ebp
mov rcx, r13
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r8d, dword [r15 + 4]
mov qword [rsp + 0x78], r11
call dbg.sqlite3GenerateIndexKey
mov r8d, dword [r15 + 0x34]
mov r11, qword [rsp + 0x78]
mov r14d, eax
test r8d, r8d
jne 0x1401c7b10
mov rax, qword [rsp + 0x48]
mov r15, qword [rsp + 0x58]
mov edx, 0x8a
mov r9d, ebp
mov dword [rsp + 0x20], 0
mov r8d, dword [rax + 8]
mov rcx, r15
mov qword [rsp + 0x68], r11
call sym.sqlite3VdbeAddOp3
mov edx, dword [r15 + 0x90]
mov r11, qword [rsp + 0x68]
test edx, edx
jle 0x1401c77ef
mov r9, qword [r15 + 0x88]
movsxd rax, edx
mov r10d, 0x10
lea rax, [rax + rax*2]
lea rax, [r9 + rax*8]
mov word [rax - 0x16], r10w
cmp qword [rsp + 0x60], 0
je 0x1401c7818
mov rax, qword [rsp + 0x58]
not esi
mov rcx, qword [rax + 0x18]
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x1401c7c49
mov rax, qword [rcx + 0x50]
movsxd rsi, esi
mov dword [rax + rsi*4], edx
mov rax, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov r8d, dword [rax + 4]
lea rax, [r11 + r11*2]
lea rax, [r11 + rax*4]
test byte [rsi + rax*8 + 0x48], 0x20
je 0x1401c7b48
mov rsi, qword [rsp + 0x58]
add r14d, edi
lea rax, [0x140440540]
mov rdx, qword [rsi]
cmp byte [rdx + 0x67], 0
jne 0x1401c7860
mov rax, qword [rsi + 0x88]
lea rdx, [r12 + r12*2]
lea rax, [rax + rdx*8]
mov rdx, qword [r13 + 0x10]
mov rcx, qword [r13]
mov dword [rax + 8], r14d
mov r9d, r8d
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov r8d, ebx
mov eax, dword [rax + 8]
mov dword [rsp + 0x28], eax
lea rax, [r11 + r11*2]
lea rax, [r11 + rax*4]
lea rsi, [rdi + rax*8]
mov eax, dword [rsi + 0x40]
mov dword [rsp + 0x20], eax
call sym.translateColumnToCopy.isra.0
mov rdi, qword [rsp + 0x58]
mov edx, ebx
mov rcx, rdi
call sym.sqlite3VdbeGoto.isra.0
and byte [rsi + 0x48], 0xdf
mov eax, dword [rdi + 0x90]
mov rdi, qword [rsp + 0x58]
mov rdx, qword [rdi]
cmp byte [rdx + 0x67], 0
je 0x1401c7938
mov dword [0x140440548], eax
test ebp, ebp
je 0x1401c78e8
movzx edx, byte [r13 + 0x1f]
cmp dl, 7
ja 0x1401c78e8
lea ecx, [rdx + 1]
mov byte [r13 + 0x1f], cl
mov dword [r13 + rdx*4 + 0xe8], ebp
nop dword [rax]
lea rdx, [0x140440540]
jmp 0x1401c7964
mov rdi, qword [rsp + 0x78]
lea rax, [rcx + rcx*2]
lea rdx, str.automatic_index_on__s__s_
mov ecx, 0x11c
shl rax, 3
mov qword [rsp + 0x80], r11
add rax, qword [rdi + 8]
mov r8, qword [rdi]
mov r9, qword [rax]
call dbg.sqlite3_log
mov r11, qword [rsp + 0x80]
jmp 0x1401c7249
mov rdi, qword [rsp + 0x58]
lea rcx, [rbx + rbx*2]
mov rdx, qword [rdi + 0x88]
mov dword [rdx + rcx*8 + 8], eax
test ebp, ebp
jne 0x1401c7bd0
movsxd rcx, dword [rsp + 0x94]
lea rcx, [rcx + rcx*2]
lea rdx, [rdx + rcx*8]
mov dword [rdx + 8], eax
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x1401c7ae8
mov rcx, qword [r13]
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp dbg.sqlite3ExprDeleteNN
mov r8, rdx
mov rcx, r13
mov rdx, rax
call sym.sqlite3BinaryCompareCollSeq
mov r10, qword [rsp + 0xc0]
mov r11, qword [rsp + 0xc8]
jmp 0x1401c7510
mov esi, dword [rax + 0x3c]
cmp ebx, edx
jge 0x1401c7cd3
mov rcx, qword [rsp + 0x58]
lea eax, [rbx + 1]
movsxd r12, ebx
mov dword [rcx + 0x90], eax
movsxd rax, ebx
lea rdx, [rax + rax*2]
mov rax, qword [rcx + 0x88]
lea rax, [rax + rdx*8]
mov qword [rax], 0x47
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov rbx, qword [rsp + 0x50]
lea rax, [r11 + r11*2]
xor r9d, r9d
mov r8d, esi
lea rax, [r11 + rax*4]
mov edx, 0xb
mov qword [rsp + 0x78], r11
mov eax, dword [rbx + rax*8 + 0x38]
mov rbx, qword [rsp + 0x58]
mov dword [rsp + 0x20], eax
mov rcx, rbx
call sym.sqlite3VdbeAddOp3
mov rax, rbx
movsxd rbx, dword [rbx + 0x90]
mov r11, qword [rsp + 0x78]
cmp ebx, dword [rax + 0x94]
jge 0x1401c7ca9
mov rcx, qword [rsp + 0x58]
lea eax, [rbx + 1]
mov dword [rcx + 0x90], eax
movsxd rax, ebx
lea rdx, [rax + rax*2]
mov rax, qword [rcx + 0x88]
lea rax, [rax + rdx*8]
mov dword [rax + 4], esi
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov dword [rax], 0xc
jmp 0x1401c76e5
mov rbp, qword [rsp + 0x78]
cmp word [rbp + 0x36], 0x3f
jle 0x1401c7601
add edi, 1
mov r9d, 0x3f
movsxd rdi, edi
nop dword [rax]
mov word [rcx + rdi*2 - 2], r9w
movsx r10d, word [rbp + 0x36]
add r9d, 1
mov rax, rdi
mov qword [rdx + rdi*8 - 8], r8
add rdi, 1
cmp r10d, r9d
jg 0x1401c7ab0
mov edi, eax
cdqe
lea r9, [rax + rax]
shl rax, 3
jmp 0x1401c7601
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [r13 + 0x38]
lea ebp, [rax + 1]
mov dword [r13 + 0x38], ebp
jmp 0x1401c7742
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
xor r9d, r9d
mov edx, 0xb7
mov qword [rsp + 0x70], r11
movzx eax, word [rax + 0x18]
mov dword [rsp + 0x20], r14d
mov dword [rsp + 0x28], eax
call sym.sqlite3VdbeAddOp4Int
mov r11, qword [rsp + 0x70]
jmp 0x1401c7797
mov rdi, qword [rsp + 0x58]
lea r9d, [rbx + 1]
mov edx, 0x27
mov dword [rsp + 0x20], 0
mov rcx, rdi
call sym.sqlite3VdbeAddOp3
mov eax, dword [rdi + 0x90]
test eax, eax
jle 0x1401c78b4
mov rcx, qword [rdi + 0x88]
movsxd rdx, eax
mov r8d, 3
lea rdx, [rdx + rdx*2]
lea rdx, [rcx + rdx*8]
mov word [rdx - 0x16], r8w
jmp 0x1401c78b4
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf
mov rcx, rax
mov dword [rsp + 0x20], 0
call dbg.growOp3
mov dword [rsp + 0x94], eax
jmp 0x1401c7186
movzx ecx, byte [r13 + 0x1f]
cmp cl, 7
ja 0x1401c7954
lea r8d, [rcx + 1]
mov byte [r13 + 0x1f], r8b
mov dword [r13 + rcx*4 + 0xe8], ebp
jmp 0x1401c7954
mov rax, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x48]
mov rcx, r13
mov rax, qword [rax]
mov r8, rbx
mov rdx, qword [rax + 8]
call sym.sqlite3WhereExplainBloomFilter.isra.0
mov eax, dword [r13 + 0x38]
mov rcx, qword [rsp + 0x58]
mov r8d, 0x2710
mov edx, 0x4d
lea r9d, [rax + 1]
mov dword [r13 + 0x38], r9d
mov dword [rbx + 0x34], r9d
mov dword [rsp + 0x20], 0
call sym.sqlite3VdbeAddOp3
mov r11, qword [rsp + 0x78]
jmp 0x1401c766a
mov rdx, qword [rsp + 0x58]
mov r8d, esi
mov qword [rsp + 0x68], r11
call dbg.resizeResolveLabel
mov r11, qword [rsp + 0x68]
jmp 0x1401c7818
xor eax, eax
xor r9d, r9d
xor esi, esi
xor edi, edi
lea r8, str.BINARY
jmp 0x1401c75a5
mov rcx, qword [rsp + 0x58]
xor r9d, r9d
mov edx, 0x24
xor r12d, r12d
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x78], r11
call dbg.growOp3
mov r11, qword [rsp + 0x78]
movsxd rbx, eax
jmp 0x1401c76e5
mov rcx, qword [rsp + 0x58]
xor r9d, r9d
mov r8d, esi
mov edx, 0xc
mov dword [rsp + 0x20], 0
call dbg.growOp3
mov r11, qword [rsp + 0x78]
movsxd rbx, eax
jmp 0x1401c76e5
mov rcx, qword [rsp + 0x58]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x47
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x78], r11
call dbg.growOp3
mov r11, qword [rsp + 0x78]
movsxd r12, eax
jmp 0x1401c7a05
mov qword [rsp + 0x60], 0
xor eax, eax
xor esi, esi
xor ebx, ebx
jmp 0x1401c7326