Function at 0x1401633a0
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, 0x138
movaps xmmword [rsp + 0x120], xmm6
mov ebp, 0xffffffff
mov r12, qword [rcx + 0x10]
mov r11, qword [rcx]
movzx eax, byte [r12 + 0x10]
mov qword [rsp + 0x188], rdx
mov r15, rcx
mov rdx, qword [r11 + 8]
mov word [rsp + 0x6a], bp
mov rcx, qword [rcx + 8]
imul rax, rax, 0x68
mov qword [rsp + 0x28], rcx
lea rbx, [rdx + rax + 8]
movzx ecx, byte [rbx + 0x40]
mov rax, qword [rbx + 0x20]
test cl, 2
mov qword [rsp + 0x30], rax
je 0x140163b11
mov r10, qword [rbx + 0x60]
movzx r8d, word [rax + 0x3a]
test r10, r10
setne sil
xor eax, eax
cmp qword [r15 + 0x18], 0
je 0x140163b3d
test sil, sil
je 0x140163626
mov dword [rsp + 0x58], 1
mov rbp, r10
mov qword [rsp + 0x50], r11
nop
mov r9, qword [rbp + 0x48]
test r9, r9
je 0x140163462
movzx edx, byte [rbx + 0x3c]
mov ecx, dword [rbx + 0x44]
mov r8, qword [rsp + 0x28]
call dbg.whereUsablePartialIndex
test eax, eax
je 0x140163800
movzx r14d, byte [rbp + 0x65]
and r14d, 1
jne 0x140163800
mov rax, qword [rbp + 0x10]
xor r9d, r9d
xor r8d, r8d
movzx esi, word [rax]
mov byte [r12 + 0x11], 0
mov rax, qword [rsp + 0x188]
mov word [r12 + 0x12], r9w
mov dword [r12 + 0x3c], 0
movzx edx, byte [rbp + 0x64]
mov r9d, dword [rbx + 0x44]
mov word [r12 + 0x1c], r8w
mov dword [r12 + 0x18], 0
mov qword [r12], rax
test dl, 4
mov word [r12 + 0x16], si
mov qword [r12 + 0x20], rbp
jne 0x140163888
mov rax, qword [r15]
mov rax, qword [rax + 0x10]
test rax, rax
je 0x140163888
mov ecx, dword [rax]
xor r13d, r13d
test ecx, ecx
jle 0x140163888
mov qword [rsp + 0x40], rbx
mov edi, r9d
mov rbx, r13
mov word [rsp + 0x48], si
mov rsi, rax
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x180], r15
nop word [rax + rax]
mov rdx, rbx
shl rdx, 5
mov r13, qword [rsi + rdx + 8]
nop dword [rax]
test r13, r13
je 0x140163550
mov eax, dword [r13 + 4]
test eax, 0x82000
je 0x140163658
test eax, 0x80000
je 0x140163648
mov rax, qword [r13 + 0x20]
mov r13, qword [rax + 8]
test r13, r13
jne 0x140163525
nop dword [rax]
add rbx, 1
cmp dword [rsi], ebx
jg 0x140163510
movzx eax, byte [rbp + 0x64]
mov r12, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
movzx esi, word [rsp + 0x48]
mov edx, eax
mov r15, qword [rsp + 0x180]
and edx, 3
cmp dl, 3
je 0x14016359c
test al, 0x20
je 0x14016389e
mov dword [r12 + 0x38], 0x240
xor r13d, r13d
jmp 0x1401638ef
movzx r14d, byte [rsp + 0x58]
lea eax, [rsi + 0x10]
mov byte [r12 + 0x11], r14b
mov word [r12 + 0x14], ax
mov rax, qword [rsp + 0x30]
mov dword [r12 + 0x38], 0x100
cmp byte [rax + 0x3f], 2
je 0x1401635c4
test byte [rax + 0x31], 0x40
je 0x1401635cd
mov dword [r12 + 0x38], 0x2000100
mov rcx, qword [rsp + 0x28]
movsx r8d, si
mov rdx, r12
call dbg.whereLoopOutputAdjust
mov rdx, r12
mov rcx, r15
call dbg.whereLoopInsert
mov word [r12 + 0x16], si
test eax, eax
jne 0x140163626
xor r9d, r9d
mov byte [r15 + 0x20], 0
mov r8, rbp
mov rdx, rbx
mov rcx, r15
call dbg.whereLoopAddBtreeIndex
cmp byte [r15 + 0x20], 1
jne 0x14016361c
mov rcx, qword [rsp + 0x30]
or dword [rcx + 0x30], 0x100
test byte [rbx + 0x40], 2
je 0x14016380c
movaps xmm6, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r13, qword [r13 + 0x10]
jmp 0x140163520
cmp byte [r13], 0xa7
je 0x140163830
mov r15, qword [rbp + 0x50]
test r15, r15
je 0x140163550
cmp word [rbp + 0x5e], 0
je 0x140163550
xor r12d, r12d
jmp 0x140163691
movzx eax, word [rbp + 0x5e]
add r12, 1
cmp eax, r12d
jle 0x140163550
mov rax, qword [rbp + 8]
cmp word [rax + r12*2], 0xfffe
jne 0x140163680
mov rax, r12
shl rax, 5
mov r8, qword [r15 + rax + 8]
test r8, r8
jne 0x1401636bd
jmp 0x1401636dc
mov rax, qword [r8 + 0x20]
mov r8, qword [rax + 8]
test r8, r8
je 0x1401636dc
mov eax, dword [r8 + 4]
test eax, 0x82000
je 0x1401637f0
test eax, 0x80000
jne 0x1401636b0
mov r8, qword [r8 + 0x10]
test r8, r8
jne 0x1401636bd
mov ecx, 1
mov rdx, r13
jmp 0x1401636fd
mov rax, qword [rdx + 0x20]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x14016371b
mov eax, dword [rdx + 4]
test eax, 0x82000
je 0x1401637d0
test eax, 0x80000
jne 0x1401636f0
mov rdx, qword [rdx + 0x10]
test rdx, rdx
jne 0x1401636fd
cmp r8, rdx
jne 0x140163680
movzx eax, byte [rbp + 0x64]
mov r12, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
movzx esi, word [rsp + 0x48]
mov edx, eax
mov r15, qword [rsp + 0x180]
and edx, 3
cmp dl, 3
je 0x140163596
test al, 0x20
je 0x140163988
mov dword [r12 + 0x38], 0x240
xor r13d, r13d
movzx r14d, byte [rsp + 0x58]
mov byte [r12 + 0x11], r14b
mov rcx, qword [rsp + 0x30]
movsx edx, word [rbp + 0x5c]
movsx ecx, word [rcx + 0x3c]
mov eax, edx
shl eax, 4
sub eax, edx
cdq
idiv ecx
test r13, r13
lea eax, [rsi + rax + 1]
mov word [r12 + 0x14], ax
jne 0x140163993
mov rcx, qword [rsp + 0x28]
movsx r8d, si
mov rdx, r12
call dbg.whereLoopOutputAdjust
test byte [rbx + 0x3c], 0x10
je 0x1401635de
cmp qword [rbp + 0x50], 0
je 0x1401635de
mov word [r12 + 0x16], si
jmp 0x1401635f3
test cl, cl
jne 0x14016371b
xor ecx, ecx
mov r9d, edi
call sym.sqlite3ExprCompare.part.0
test eax, eax
jne 0x140163680
jmp 0x140163724
xor ecx, ecx
jmp 0x1401636e1
xor eax, eax
test byte [rbx + 0x40], 2
jne 0x140163626
add dword [rsp + 0x58], 1
test eax, eax
mov rbp, qword [rbp + 0x28]
jne 0x140163626
test rbp, rbp
jne 0x140163440
jmp 0x140163626
cmp edi, dword [r13 + 0x2c]
jne 0x140163663
movzx r8d, word [r13 + 0x30]
test r8w, r8w
js 0x140163724
movzx r9d, word [rbp + 0x5e]
test r9w, r9w
je 0x140163550
mov rdx, qword [rbp + 8]
sub r9d, 1
lea r9, [rdx + r9*2 + 2]
jmp 0x14016387d
add rdx, 2
cmp rdx, r9
je 0x140163550
cmp r8w, word [rdx]
jne 0x140163870
jmp 0x140163724
mov eax, edx
and eax, 3
cmp al, 3
je 0x14016359c
and edx, 0x20
jne 0x140163585
xor r9d, r9d
movabs rax, 0x8000000000000000
mov r13, qword [rbx + 0x50]
and r13, qword [rbp + 0x68]
mov dword [r12 + 0x38], 0x200
cmp r13, rax
je 0x140163ae0
movzx eax, byte [rbp + 0x65]
and eax, 0xc
cmp al, 8
je 0x140163ad7
test r13, r13
jne 0x1401638e6
mov eax, 0x240
mov dword [r12 + 0x38], eax
xor r13d, r13d
test r9d, r9d
jne 0x140163761
mov rax, qword [rsp + 0x30]
test byte [rax + 0x30], 0x80
jne 0x140163767
cmp qword [rbp + 0x48], 0
jne 0x140163767
test byte [rbx + 0x40], 2
jne 0x140163767
test r13, r13
jne 0x1401635f3
test byte [rbp + 0x64], 4
jne 0x1401635f3
movsx edx, word [rbp + 0x5c]
movsx ecx, word [rax + 0x3c]
cmp dx, cx
jge 0x1401635f3
mov rax, qword [rsp + 0x50]
test byte [rax + 0x3c], 4
jne 0x1401635f3
cmp byte [0x140214347], 0
je 0x1401635f3
mov rax, qword [rax]
mov rax, qword [rax]
test byte [rax + 0x60], 0x20
jne 0x1401635f3
mov eax, edx
mov byte [r12 + 0x11], 0
shl eax, 4
sub eax, edx
cdq
idiv ecx
lea eax, [rsi + rax + 1]
mov word [r12 + 0x14], ax
jmp 0x140163796
mov r9d, 1
jmp 0x1401638a1
mov rdi, qword [rsp + 0x50]
lea r13d, [rsi + 0x10]
mov ecx, dword [rbx + 0x44]
mov edx, dword [rdi + 0x84]
mov dword [rsp + 0x38], ecx
test edx, edx
jle 0x140163ac0
lea rax, [rsp + 0x70]
xor r9d, r9d
xor r10d, r10d
mov qword [rsp + 0x40], r12
lea r14, [rsp + 0x80]
mov qword [rsp + 0x48], rbx
mov r12, rbp
mov ebp, r10d
mov word [rsp + 0x5e], si
mov rbx, r14
mov rsi, rax
mov qword [rsp + 0x180], r15
mov r15, r9
jmp 0x140163a14
lea eax, [r13 - 1]
sub r13d, 0x14
test byte [r14 + 0x14], 0x82
cmove r13d, eax
add ebp, 1
add r15, 0x38
cmp dword [rdi + 0x84], ebp
jle 0x140163aa0
mov r14, qword [rdi + 0x90]
mov eax, dword [rsp + 0x38]
add r14, r15
mov rdx, qword [r14]
mov dword [rsp + 0x78], eax
lea rax, [sym.exprIdxCover]
mov qword [rbx], 0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0
test rdx, rdx
mov qword [rbx + 0x20], 0
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x88], rax
mov qword [rsp + 0xa8], rsi
je 0x140163a7c
mov rcx, rbx
call dbg.walkExpr
cmp word [rsp + 0xa4], 0
jne 0x140163aa0
movzx eax, word [r14 + 0x10]
test ax, ax
jg 0x1401639f0
add r13d, eax
add ebp, 1
add r15, 0x38
cmp dword [rdi + 0x84], ebp
jg 0x140163a14
mov rbp, r12
mov r12, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
movzx esi, word [rsp + 0x5e]
mov r15, qword [rsp + 0x180]
movzx eax, word [r12 + 0x14]
movsx edx, r13w
movsx ecx, ax
call sym.sqlite3LogEstAdd
mov word [r12 + 0x14], ax
jmp 0x140163796
test r13, r13
je 0x1401638d9
mov rax, qword [rsp + 0x50]
mov rdx, rbp
mov dword [rsp + 0x38], r9d
mov r8d, dword [rbx + 0x44]
mov rcx, qword [rax + 0x20]
call sym.whereIsCoveringIndex.isra.0
mov r9d, dword [rsp + 0x38]
test eax, eax
je 0x1401638e6
or eax, dword [r12 + 0x38]
jmp 0x1401638de
mov rax, qword [rsp + 0x30]
test byte [rax + 0x30], 0x80
je 0x140163cc0
mov r10, qword [rax + 0x10]
movzx r8d, word [rax + 0x3a]
test r10, r10
setne sil
xor eax, eax
cmp qword [r15 + 0x18], 0
jne 0x140163426
test word [r11 + 0x3c], 0x1020
jne 0x140163426
mov rax, qword [r11]
mov rax, qword [rax]
test byte [rax + 0x31], 0x80
mov eax, 0
je 0x140163426
test cl, 3
jne 0x140163426
mov rdi, qword [rsp + 0x30]
test byte [rdi + 0x30], 0x80
jne 0x140163426
and ecx, 0x48
jne 0x140163426
test byte [rbx + 0x3c], 0x10
jne 0x140163426
mov rax, qword [rsp + 0x28]
xor r14d, r14d
mov r13, qword [rax + 0x20]
movsxd rax, dword [rax + 0x14]
imul rax, rax, 0x38
cmp r8w, 0xa
lea rbp, [r13 + rax]
jg 0x140163d9a
cmp r13, rbp
jae 0x140163d93
lea eax, [r14 + r8]
movd xmm6, dword [0x140349188]
mov qword [rsp + 0x40], r11
mov word [rsp + 0x58], ax
sub eax, 0x19
mov word [rsp + 0x38], ax
mov eax, esi
mov rsi, r12
mov r12, r13
mov qword [rsp + 0x48], r10
mov r13d, eax
jmp 0x140163ca5
xor r8d, r8d
mov rcx, r12
mov rdx, rbx
call sym.termCanDriveIndex
mov ecx, 1
test eax, eax
je 0x140163c90
mov rax, qword [rsi + 0x48]
mov r11d, 1
movd dword [rsi + 0x3c], xmm6
mov word [rsi + 0x18], r11w
mov qword [rsi + 0x20], 0
mov qword [rax], r12
mov rax, qword [rsp + 0x30]
cmp byte [rax + 0x3f], 2
je 0x140163dc4
test byte [rax + 0x31], 0x40
jne 0x140163dc4
movzx eax, word [rsp + 0x58]
add eax, 0x1c
xor edx, edx
test ax, ax
mov r10d, 0x2b
cmovs eax, edx
mov word [rsi + 0x16], r10w
movsx ecx, r14w
mov edx, 0x2b
mov word [rsi + 0x12], ax
call sym.sqlite3LogEstAdd
or rdi, qword [rsp + 0x188]
mov rcx, r15
mov rdx, rsi
mov word [rsi + 0x14], ax
mov dword [rsi + 0x38], 0x4000
mov qword [rsi], rdi
call dbg.whereLoopInsert
test eax, eax
sete cl
add r12, 0x38
cmp r12, rbp
jae 0x140163d7c
test cl, cl
je 0x140163d7c
mov rdi, qword [r12 + 0x28]
mov rax, rdi
and rax, qword [rsi + 8]
je 0x140163bea
mov ecx, 1
xor eax, eax
jmp 0x140163c90
lea r9, [rsp + 0xb0]
xor eax, eax
mov ecx, 0xe
mov rdi, r9
mov esi, 3
rep stosq qword [rdi], rax
mov eax, dword [0x1403490c0]
mov byte [rsp + 0x112], 5
xor edi, edi
mov byte [rsp + 0x114], 3
movzx ecx, byte [rbx + 0x40]
mov word [rsp + 0x10c], si
mov word [rsp + 0x6e], di
mov dword [rsp + 0x10e], eax
lea rax, [rsp + 0x6a]
movq xmm0, rax
lea rax, [rsp + 0x6c]
test cl, 1
movq xmm1, rax
mov rax, qword [rsp + 0x30]
punpcklqdq xmm0, xmm1
movups xmmword [rsp + 0xb8], xmm0
movzx r8d, word [rax + 0x3a]
mov qword [rsp + 0xc8], rax
mov word [rsp + 0x6c], r8w
jne 0x140163d57
mov rax, qword [rbx + 0x20]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0xd8], rax
cmp qword [r15 + 0x18], 0
je 0x140163d66
mov r10, r9
jmp 0x14016342f
test word [r11 + 0x3c], 0x1020
jne 0x140163d5e
mov esi, 1
mov r10, r9
jmp 0x140163b4a
mov r12, rsi
mov esi, r13d
mov r11, qword [rsp + 0x40]
mov r10, qword [rsp + 0x48]
and esi, ecx
jmp 0x140163426
xor eax, eax
jmp 0x140163426
lea r9, [0x140342970]
movsx rax, r8w
bsr rcx, rax
sub ecx, 3
shr rax, cl
lea ecx, [rcx + rcx*4]
and eax, 7
movzx eax, word [r9 + rax*2]
lea r14d, [rax + rcx*2 - 3]
jmp 0x140163bae
movzx eax, word [rsp + 0x38]
jmp 0x140163c45