Function at 0x140269d90
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, 0x168
mov rax, qword [rcx]
mov rbx, qword [rcx + 0x10]
mov qword [rsp + 0x1b8], rdx
mov rdx, qword [rax + 8]
mov qword [rsp + 0x38], rax
movzx eax, byte [rbx + 0x10]
mov qword [rsp + 0x1b0], rcx
imul rax, rax, 0x68
mov word [rsp + 0x72], 0xffff
lea rsi, [rdx + rax + 8]
mov rax, qword [rcx + 8]
mov rbp, qword [rsi + 0x20]
mov qword [rsp + 0x40], rax
test byte [rsi + 0x40], 2
je 0x140269df3
mov r15, qword [rsi + 0x60]
jmp 0x140269e82
mov eax, dword [rbp + 0x30]
and eax, 0x80
je 0x140269e03
mov r15, qword [rbp + 0x10]
jmp 0x140269e82
lea r15, [rsp + 0xc0]
mov ecx, 0x28
mov word [rsp + 0x76], 0
mov rdi, r15
rep stosd dword [rdi], eax
lea rax, [rsp + 0x72]
mov dword [rsp + 0x11c], 0x10003
mov qword [rsp + 0xc8], rax
lea rax, [rsp + 0x74]
mov qword [rsp + 0xd0], rax
mov byte [rsp + 0x122], 5
mov byte [rsp + 0x124], 3
mov ax, word [rbp + 0x3a]
mov qword [rsp + 0xd8], rbp
mov word [rsp + 0x120], 1
mov word [rsp + 0x74], ax
test byte [rsi + 0x40], 1
jne 0x140269e82
mov rax, qword [rsi + 0x20]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0x1b0]
xor edi, edi
cmp qword [rax + 0x18], 0
jne 0x140269eac
mov rax, qword [rsp + 0x38]
test word [rax + 0x3c], 0x1020
jne 0x140269eac
mov rax, qword [rax]
mov rax, qword [rax]
test byte [rax + 0x31], 0x80
jne 0x140269eb9
mov dword [rsp + 0x54], 1
jmp 0x140269ff4
mov al, byte [rsi + 0x40]
test al, 3
jne 0x140269eac
test byte [rbp + 0x30], 0x80
jne 0x140269eac
test al, 0x48
jne 0x140269eac
test byte [rsi + 0x3c], 0x10
jne 0x140269eac
mov rax, qword [rsp + 0x40]
movsx ecx, word [rbp + 0x3a]
movsxd r13, dword [rax + 0x14]
mov r12, qword [rax + 0x20]
mov r14d, ecx
imul r13, r13, 0x38
lea rax, [r12 + r13]
mov qword [rsp + 0x48], rax
call sym.estLog
add r14d, eax
cwde
mov dword [rsp + 0x54], eax
lea eax, [r14 - 0x19]
mov word [rsp + 0x58], ax
test edi, edi
jne 0x140269eac
mov rax, qword [rsp + 0x48]
cmp r12, rax
jae 0x140269eac
mov r13, qword [r12 + 0x28]
mov edi, 0
mov rax, r13
and rax, qword [rbx + 8]
jne 0x140269fb9
xor r8d, r8d
mov rdx, rsi
mov rcx, r12
call sym.termCanDriveIndex
mov edi, eax
test eax, eax
je 0x140269fb9
xor eax, eax
mov word [rbx + 0x18], 1
mov qword [rbx + 0x20], rax
mov rax, qword [rbx + 0x48]
mov dword [rbx + 0x3c], 1
mov qword [rax], r12
cmp byte [rbp + 0x3f], 2
je 0x140269f6a
lea eax, [r14 + 0x1c]
test byte [rbp + 0x31], 0x40
je 0x140269f6e
mov eax, dword [rsp + 0x58]
xor edx, edx
test ax, ax
mov word [rbx + 0x16], 0x2b
mov ecx, dword [rsp + 0x54]
cmovs eax, edx
mov edx, 0x2b
mov word [rbx + 0x12], ax
call sym.sqlite3LogEstAdd
mov dword [rbx + 0x38], 0x4000
mov rcx, qword [rsp + 0x1b0]
mov rdx, rbx
mov word [rbx + 0x14], ax
mov rax, qword [rsp + 0x1b8]
or rax, r13
mov qword [rbx], rax
call sym.whereLoopInsert
mov edi, eax
add r12, 0x38
jmp 0x140269f07
test r15, r15
je 0x14026a493
mov r9, qword [r15 + 0x48]
test r9, r9
jne 0x140269ffd
mov al, byte [r15 + 0x65]
and al, 1
mov byte [rsp + 0x48], al
je 0x14026a014
xor edi, edi
test byte [rsi + 0x40], 2
jne 0x14026a48b
mov r15, qword [r15 + 0x28]
inc dword [rsp + 0x54]
test edi, edi
je 0x140269fc2
jmp 0x14026a493
movzx edx, byte [rsi + 0x3c]
mov ecx, dword [rsi + 0x44]
mov r8, qword [rsp + 0x40]
call sym.whereUsablePartialIndex
test eax, eax
jne 0x140269fd4
jmp 0x140269fe0
mov rax, qword [r15 + 0x10]
xor edi, edi
xor r12d, r12d
mov r14w, word [rax]
mov rax, qword [rsp + 0x1b8]
mov byte [rbx + 0x11], 0
mov dword [rbx + 0x18], edi
mov qword [rbx], rax
mov eax, dword [rsi + 0x44]
mov word [rbx + 0x1c], 0
mov dword [rbx + 0x3c], r12d
mov word [rbx + 0x12], 0
mov word [rbx + 0x16], r14w
mov qword [rbx + 0x20], r15
mov dword [rsp + 0x58], eax
test byte [r15 + 0x64], 4
je 0x14026a061
xor edi, edi
jmp 0x14026a12e
mov rax, qword [rsp + 0x1b0]
xor edi, edi
mov rax, qword [rax]
mov r13, qword [rax + 0x10]
test r13, r13
je 0x14026a05a
cmp dword [r13], edi
jle 0x14026a05a
mov rax, rdi
shl rax, 5
mov rcx, qword [r13 + rax + 8]
call sym.sqlite3ExprSkipCollateAndLikely
mov rcx, rax
test rax, rax
jne 0x14026a09b
inc rdi
jmp 0x14026a077
cmp byte [rax], 0xa7
jne 0x14026a0d7
mov eax, dword [rsp + 0x58]
cmp eax, dword [rcx + 0x2c]
jne 0x14026a0d7
mov edx, dword [rcx + 0x30]
test dx, dx
jns 0x14026a0b8
mov edi, 1
jmp 0x14026a12e
movzx ecx, word [r15 + 0x5e]
xor eax, eax
cmp ecx, eax
jle 0x14026a096
mov r8, qword [r15 + 8]
mov r8w, word [r8 + rax*2]
inc rax
cmp dx, r8w
jne 0x14026a0bf
jmp 0x14026a0b1
mov r9, qword [r15 + 0x50]
test r9, r9
je 0x14026a096
xor r12d, r12d
movzx eax, word [r15 + 0x5e]
cmp eax, r12d
jle 0x14026a096
mov rax, qword [r15 + 8]
cmp word [rax + r12*2], 0xfffe
je 0x14026a0fe
inc r12
jmp 0x14026a0e3
mov rax, r12
mov r8d, dword [rsp + 0x58]
mov qword [rsp + 0x68], r9
shl rax, 5
mov qword [rsp + 0x60], rcx
mov rdx, qword [r9 + rax + 8]
call sym.sqlite3ExprCompareSkip
mov rcx, qword [rsp + 0x60]
mov r9, qword [rsp + 0x68]
test eax, eax
jne 0x14026a0f9
jmp 0x14026a0b1
mov al, byte [r15 + 0x64]
mov edx, eax
not edx
and dl, 3
jne 0x14026a178
test edi, edi
cmovne edi, dword [rsp + 0x54]
mov edx, r14d
mov rcx, qword [rsp + 0x40]
mov dword [rbx + 0x38], 0x100
movsx r8d, r14w
mov byte [rbx + 0x11], dil
mov eax, dword [rbp + 0x30]
shr eax, 0xc
and eax, 2
sub edx, eax
lea eax, [rdx + 0x10]
mov rdx, rbx
mov word [rbx + 0x14], ax
call sym.whereLoopOutputAdjust
jmp 0x14026a3c4
test al, 0x20
je 0x14026a189
xor r11d, r11d
mov qword [rsp + 0x78], r11
jmp 0x14026a21d
mov r8, qword [r15 + 0x48]
mov rax, qword [rsi + 0x50]
and rax, qword [r15 + 0x98]
mov qword [rsp + 0x78], rax
test r8, r8
je 0x14026a1c7
xor r9d, r9d
mov rax, qword [rsp + 0x38]
xor r10d, r10d
mov rdx, r15
mov qword [rsp + 0x28], r9
lea r9, [rsp + 0x78]
mov dword [rsp + 0x20], r10d
mov rcx, qword [rax]
call sym.wherePartIdxExpr
mov edx, 1
mov rax, qword [rsp + 0x78]
mov dword [rbx + 0x38], 0x200
shl rdx, 0x3f
cmp rax, rdx
je 0x14026a1f2
mov dl, byte [r15 + 0x65]
and edx, 0xc
cmp dl, 8
jne 0x14026a218
test rax, rax
je 0x14026a21d
mov rax, qword [rsp + 0x38]
mov r8d, dword [rsi + 0x44]
mov rdx, r15
mov rcx, qword [rax + 0x20]
call sym.whereIsCoveringIndex.isra.0
test eax, eax
je 0x14026a224
xor r8d, r8d
or dword [rbx + 0x38], eax
mov qword [rsp + 0x78], r8
jmp 0x14026a224
test rax, rax
jne 0x14026a224
mov dword [rbx + 0x38], 0x240
mov rcx, qword [rsp + 0x78]
test edi, edi
jne 0x14026a294
test byte [rbp + 0x30], 0x80
jne 0x14026a29c
cmp qword [r15 + 0x48], 0
jne 0x14026a29c
test byte [rsi + 0x40], 2
jne 0x14026a29c
test rcx, rcx
jne 0x14026a3e3
mov al, byte [r15 + 0x64]
and al, 4
mov byte [rsp + 0x48], al
jne 0x14026a3e3
mov eax, dword [rbp + 0x3c]
cmp word [r15 + 0x5c], ax
jge 0x14026a3e3
mov rax, qword [rsp + 0x38]
test byte [rax + 0x3c], 4
jne 0x14026a3e3
cmp byte [0x140276b87], 0
je 0x14026a3e3
mov rax, qword [rax]
mov rax, qword [rax]
test byte [rax + 0x60], 0x20
je 0x14026a29c
jmp 0x14026a3e3
mov al, byte [rsp + 0x54]
mov byte [rsp + 0x48], al
mov al, byte [rsp + 0x48]
mov byte [rbx + 0x11], al
movsx eax, word [r15 + 0x5c]
movsx r8d, word [rbp + 0x3c]
imul eax, eax, 0xf
cdq
idiv r8d
lea eax, [r14 + rax + 1]
mov word [rbx + 0x14], ax
test rcx, rcx
je 0x14026a39f
lea rax, [rsp + 0x90]
mov r9d, dword [rsi + 0x44]
lea r12d, [r14 + 0x10]
xor r8d, r8d
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x84], r8d
jle 0x14026a366
mov rax, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x48]
imul r13, r8, 0x38
mov ecx, 0xa
mov qword [rsp + 0x60], r8
add r13, qword [rax + 0x90]
xor eax, eax
mov dword [rsp + 0x58], r9d
mov rdx, qword [r13]
mov dword [rsp + 0x88], r9d
rep stosd dword [rdi], eax
lea rax, [sym.exprIdxCover]
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0xb8], rax
call sym.sqlite3WalkExpr
mov r9d, dword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
cmp word [rsp + 0xb4], 0
je 0x14026a379
movsx ecx, word [rbx + 0x14]
movsx edx, r12w
call sym.sqlite3LogEstAdd
mov word [rbx + 0x14], ax
jmp 0x14026a39f
mov eax, dword [r13 + 0x10]
test ax, ax
jg 0x14026a387
add r12d, eax
jmp 0x14026a397
test byte [r13 + 0x14], 0x82
jne 0x14026a393
dec r12d
jmp 0x14026a397
sub r12d, 0x14
inc r8
jmp 0x14026a2de
mov rcx, qword [rsp + 0x40]
movsx r8d, r14w
mov rdx, rbx
call sym.whereLoopOutputAdjust
test byte [rsi + 0x3c], 0x10
je 0x14026a3c4
cmp qword [r15 + 0x50], 0
je 0x14026a3c4
mov word [rbx + 0x16], r14w
jmp 0x14026a3e3
mov rcx, qword [rsp + 0x1b0]
mov rdx, rbx
call sym.whereLoopInsert
mov word [rbx + 0x16], r14w
mov edi, eax
test eax, eax
jne 0x14026a493
mov rax, qword [rsp + 0x1b0]
xor r9d, r9d
mov r8, r15
mov rdx, rsi
mov byte [rax + 0x2c], 0
mov rcx, rax
call sym.whereLoopAddBtreeIndex
mov edi, eax
mov rax, qword [rsp + 0x1b0]
cmp byte [rax + 0x2c], 1
jne 0x14026a417
or dword [rbp + 0x30], 0x100
mov rax, qword [rsp + 0x1b0]
mov r12, qword [rax + 0x20]
test r12, r12
je 0x14026a473
mov rax, qword [r12]
mov r14, qword [r12 + 8]
xor r13d, r13d
movzx eax, word [rax + 8]
mov dword [rsp + 0x48], eax
mov rax, qword [r14 + 0x18]
mov qword [rsp + 0x58], rax
cmp dword [rsp + 0x48], r13d
jle 0x14026a45d
mov rcx, r14
inc r13d
add r14, 0x38
call sym.sqlite3VdbeMemRelease
jmp 0x14026a445
mov rcx, qword [r12]
call sym.sqlite3KeyInfoUnref
mov rcx, qword [rsp + 0x58]
mov rdx, r12
call sym.sqlite3DbFreeNN
mov rax, qword [rsp + 0x1b0]
xor edx, edx
xor ecx, ecx
mov dword [rax + 0x28], edx
mov qword [rax + 0x20], rcx
jmp 0x140269fe2
xor r15d, r15d
jmp 0x140269ff0
mov eax, edi
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret