Function at 0x44e14a
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, 0x1a8
mov dword [rsp + 0xdc], r9d
mov eax, dword [rsp + 0xdc]
mov r15, rcx
mov rsi, r8
mov qword [rsp + 0x1f8], rdx
mov word [rsp + 0xaa], ax
mov rax, qword [rcx]
mov rax, qword [rax]
cmp dword [rax + 0x30], 0
mov qword [rsp + 0x58], rax
je 0x44e19b
mov ebp, dword [rax + 0x18]
jmp 0x44f402
mov rbx, qword [rcx + 0x10]
mov eax, dword [rbx + 0x38]
mov dword [rsp + 0xac], eax
and eax, 0x20
cmp eax, 1
sbb eax, eax
and eax, 0x1a7
add eax, 0x18
test byte [r8 + 0x64], 4
je 0x44e1c3
and eax, 0xffffffc3
mov rdi, qword [rsp + 0x58]
lea rcx, [rsp + 0x130]
xor ebp, ebp
mov rdx, qword [r15 + 8]
mov rdi, qword [rdi]
mov qword [rsp + 0x78], rdi
mov edi, dword [rbx + 0x18]
mov word [rsp + 0x8c], di
mov di, word [rbx + 0x1a]
mov word [rsp + 0xe2], di
mov edi, dword [rbx + 0x1c]
mov word [rsp + 0xe4], di
mov rdi, qword [rbx + 0x16]
mov qword [rsp + 0xe8], rdi
mov di, word [rbx + 0x3e]
mov word [rsp + 0xe6], di
mov rdi, qword [rbx + 0x38]
mov qword [rsp + 0xf0], rdi
mov edi, dword [rbx + 0x3c]
mov word [rsp + 0x8e], di
mov rdi, qword [rbx]
mov qword [rsp + 0xb8], rdi
mov di, word [rbx + 0x16]
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x1f8]
mov qword [rsp + 0x28], rsi
mov word [rsp + 0xa8], di
movzx edi, word [rsp + 0x8c]
mov r8d, dword [rax + 0x44]
mov r9d, edi
mov dword [rsp + 0x88], edi
call sym.whereScanInit
mov word [rbx + 0x12], 0
mov rdi, rax
mov rax, qword [rsi + 0x10]
movsx eax, word [rax]
mov ecx, eax
mov dword [rsp + 0xd0], eax
call sym.estLog
mov qword [rsp + 0x50], 0
mov word [rsp + 0xe0], ax
movzx eax, word [rsp + 0x8c]
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x90], rax
add rax, rax
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x110]
mov qword [rsp + 0x100], rax
test ebp, ebp
jne 0x44f25c
test rdi, rdi
je 0x44f25c
mov eax, dword [rdi + 0x14]
cmp ax, 0x100
mov word [rsp + 0x64], ax
je 0x44e2f7
test byte [rdi + 0x12], 0x80
je 0x44e32b
mov rax, qword [rsi + 8]
mov rcx, qword [rsp + 0x70]
movsx rdx, word [rax + rcx]
test edx, edx
mov rax, rdx
js 0x44e323
mov rdx, qword [rsi + 0x18]
imul rax, rax, 0x18
add rax, qword [rdx + 8]
test byte [rax + 8], 0xf
je 0x44e32b
jmp 0x44f245
inc edx
je 0x44f245
mov rax, qword [rdi + 0x28]
test qword [rbx + 8], rax
jne 0x44f245
test byte [rdi + 0x13], 1
je 0x44e34b
cmp word [rsp + 0x64], 0x10
je 0x44f245
mov rax, qword [rsp + 0x1f8]
test byte [rax + 0x3c], 0x58
je 0x44e36e
mov rcx, qword [rdi]
mov rdx, rax
call sym.constraintCompatibleWithOuterJoin.isra.195
test eax, eax
mov ebp, eax
je 0x44f247
cmp byte [rsi + 0x62], 0
mov al, byte [r15 + 0x2c]
je 0x44e38c
movzx edx, word [rsi + 0x5e]
dec edx
cmp dword [rsp + 0x88], edx
jne 0x44e38c
or eax, 2
jmp 0x44e38f
or eax, 1
mov byte [r15 + 0x2c], al
mov eax, dword [rsp + 0xac]
mov ecx, dword [r15 + 0x28]
mov dword [rbx + 0x38], eax
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0x108], ecx
mov word [rbx + 0x18], ax
mov ax, word [rsp + 0xe2]
mov word [rbx + 0x1a], ax
mov eax, dword [rsp + 0xe4]
mov word [rbx + 0x1c], ax
mov ax, word [rsp + 0x8e]
cmp word [rbx + 0x40], ax
mov word [rbx + 0x3c], ax
jbe 0x44e41f
movzx edx, word [rbx + 0x3c]
mov rcx, qword [rbx + 0x48]
mov r8, qword [rbx + 8]
lea eax, [rdx + 1]
mov word [rbx + 0x3c], ax
mov qword [rcx + rdx*8], rdi
mov rdx, qword [rsp + 0xb8]
not r8
or rdx, qword [rdi + 0x28]
and rdx, r8
mov qword [rbx], rdx
mov edx, dword [rsp + 0x64]
and dx, 1
mov word [rsp + 0x98], dx
jne 0x44e443
jmp 0x44e4fc
movzx r8d, word [rsp + 0x8e]
mov rdx, rbx
mov rcx, qword [rsp + 0x78]
inc r8d
call sym.whereLoopResize
test eax, eax
je 0x44e3dc
xor ebp, ebp
jmp 0x44f25c
mov r8, qword [rdi]
test byte [r8 + 5], 0x10
je 0x44e476
movzx eax, ax
xor edx, edx
mov r13d, 0x2e
dec eax
xor r10d, r10d
cmp eax, edx
jle 0x44e496
mov r9, qword [rcx + rdx*8]
test r9, r9
je 0x44e471
cmp qword [r9], r8
cmove r13d, r10d
inc rdx
jmp 0x44e45d
mov rax, qword [r8 + 0x20]
xor r13d, r13d
test rax, rax
je 0x44e496
mov r13d, dword [rax]
test r13d, r13d
je 0x44e496
movsxd rcx, r13d
call sym.sqlite3LogEst
movsx r13d, ax
cmp byte [rsi + 0x64], 0
jns 0x44e4f3
cmp word [rsp + 0xe0], 9
jle 0x44e4f3
mov ecx, r13d
call sym.estLog
mov rdx, qword [rsi + 0x10]
mov rcx, qword [rsp + 0x70]
mov dx, word [rdx + rcx]
add edx, 0xa
sub edx, dword [rsp + 0xe0]
sub edx, r13d
add dx, ax
jns 0x44e4f3
cmp word [rsp + 0xaa], 1
jg 0x44f245
mov rax, qword [rsp + 0x78]
test byte [rax + 0x62], 2
jne 0x44f245
or dword [rbx + 0x38], 0x100000
or dword [rbx + 0x38], 4
jmp 0x44e784
test byte [rsp + 0x64], 0x82
je 0x44e589
mov rax, qword [rsi + 8]
mov rcx, qword [rsp + 0x70]
movsx edx, word [rax + rcx]
mov eax, dword [rbx + 0x38]
mov ecx, eax
or ecx, 1
cmp edx, 0xffffffff
mov dword [rbx + 0x38], ecx
je 0x44e55d
test edx, edx
js 0x44e56c
cmp word [rsp + 0xaa], 0
jne 0x44e56c
movzx edx, word [rsi + 0x5e]
mov ecx, edx
dec edx
cmp dword [rsp + 0x88], edx
jne 0x44e56c
test byte [rsi + 0x64], 8
jne 0x44e55d
dec cx
jne 0x44e564
cmp byte [rsi + 0x62], 0
je 0x44e564
cmp word [rsp + 0x64], 2
jne 0x44e564
or eax, 0x1001
jmp 0x44e569
or eax, 0x10001
mov dword [rbx + 0x38], eax
xor r13d, r13d
cmp byte [rsp + 0x159], 1
jbe 0x44e784
or dword [rbx + 0x38], 0x200000
jmp 0x44e784
test word [rsp + 0x64], 0x100
je 0x44e59e
or dword [rbx + 0x38], 8
xor r13d, r13d
jmp 0x44e784
mov rax, qword [rsp + 0x1f8]
mov ebp, 1
mov r14d, dword [rax + 0x44]
mov rax, qword [rdi]
mov rcx, qword [rax + 0x10]
call sym.sqlite3ExprVectorSize
movzx r12d, word [rsi + 0x60]
sub r12d, dword [rsp + 0x88]
cmp r12d, eax
cmovle eax, r12d
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x90]
lea r13, [rax + 1]
cmp dword [rsp + 0x48], ebp
jle 0x44e622
mov rdx, qword [rdi]
movsxd rax, ebp
shl rax, 5
mov rcx, qword [rdx + 0x10]
mov r10, qword [rcx + 0x20]
mov rcx, qword [rdx + 0x18]
add r10, rax
test byte [rcx + 5], 0x10
mov r12, qword [r10 + 8]
mov rdx, qword [rcx + 0x20]
je 0x44e616
add rax, qword [rdx + 0x20]
mov r8, qword [rax + 8]
jmp 0x44e61b
mov r8, qword [rdx + rax + 8]
cmp byte [r12], 0xa7
je 0x44e635
test byte [rsp + 0x64], 0x24
mov eax, dword [rbx + 0x38]
jne 0x44e6d3
jmp 0x44e734
cmp r14d, dword [r12 + 0x2c]
mov qword [rsp + 0x50], r8
jne 0x44e622
mov rax, qword [rsi + 8]
mov ax, word [rax + r13*2]
cmp word [r12 + 0x30], ax
jne 0x44e622
mov rax, qword [rsi + 0x38]
mov rcx, qword [rsp + 0x90]
mov cl, byte [rax + rcx]
cmp byte [rax + r13], cl
jne 0x44e622
mov rcx, r12
call sym.sqlite3ExprAffinity
mov r8, qword [rsp + 0x50]
movsx edx, al
mov rcx, r8
call sym.sqlite3CompareAffinity
movsx edx, word [r12 + 0x30]
mov rcx, qword [rsi + 0x18]
mov r10d, eax
call sym.sqlite3TableColumnAffinity
cmp r10b, al
jne 0x44e622
mov r8, qword [rsp + 0x50]
mov rdx, r12
mov rcx, qword [rsp + 0x58]
call sym.sqlite3BinaryCompareCollSeq
test rax, rax
je 0x44e622
mov rdx, qword [rsi + 0x40]
mov rcx, qword [rax]
mov rdx, qword [rdx + r13*8]
inc r13
call sym.sqlite3StrICmp
test eax, eax
jne 0x44e622
inc ebp
jmp 0x44e5df
or eax, 0x22
test byte [rdi + 0x13], 1
mov word [rbx + 0x1a], bp
mov dword [rbx + 0x38], eax
je 0x44e760
movzx r8d, word [rbx + 0x3c]
lea rax, [rdi + 0x38]
mov rdx, rbx
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x48], rax
inc r8d
call sym.whereLoopResize
test eax, eax
mov r13d, eax
jne 0x44e43c
movzx eax, word [rbx + 0x3c]
mov qword [rsp + 0x50], rdi
mov rdx, qword [rbx + 0x48]
lea ecx, [rax + 1]
mov word [rbx + 0x3c], cx
lea rcx, [rdi + 0x38]
mov qword [rdx + rax*8], rcx
or dword [rbx + 0x38], 0x10
mov word [rbx + 0x1c], 1
jmp 0x44e784
mov edx, eax
mov word [rbx + 0x1c], bp
or edx, 0x12
test al, 0x20
mov dword [rbx + 0x38], edx
je 0x44e773
movzx edx, word [rbx + 0x3c]
xor r13d, r13d
mov qword [rsp + 0x48], rdi
mov rax, qword [rbx + 0x48]
mov rax, qword [rax + rdx*8 - 0x10]
mov qword [rsp + 0x50], rax
jmp 0x44e784
xor r13d, r13d
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], 0
jmp 0x44e784
xor r13d, r13d
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], 0
test byte [rbx + 0x38], 2
movzx ebp, word [rbx + 0x18]
je 0x44ef4d
mov rdi, qword [rbx + 0x20]
movsx eax, word [rbx + 0x16]
mov r12d, dword [rdi + 0x68]
mov dword [rsp + 0x64], eax
test r12d, r12d
jle 0x44eec0
movzx eax, bp
cmp eax, dword [rdi + 0x70]
mov dword [rsp + 0xc0], eax
jge 0x44eec0
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
test byte [rax + 0x61], 8
mov qword [rsp + 0x80], rax
jne 0x44eec0
mov r14d, dword [r15 + 0x28]
cmp dword [rsp + 0xc0], r14d
jne 0x44eb17
mov rdx, qword [r15 + 0x20]
movzx eax, word [rbx + 0x1c]
movzx r11d, word [rbx + 0x1a]
test rdx, rdx
mov qword [rsp + 0x118], rdx
mov dword [rsp + 0x98], eax
je 0x44e810
mov word [rdx + 0x1c], r14w
test r14d, r14d
jne 0x44e82f
mov qword [rsp + 0x68], 0
mov rax, qword [rdi + 0x90]
mov qword [rsp + 0x80], rax
jmp 0x44e86f
lea r9, [rsp + 0x120]
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0xa0], r11d
call sym.whereKeyStats.isra.514
mov rax, qword [rsp + 0x120]
mov r11d, dword [rsp + 0xa0]
mov qword [rsp + 0x68], rax
add rax, qword [rsp + 0x128]
mov qword [rsp + 0x80], rax
mov rax, qword [rdi + 0x38]
cmp byte [rax + rbp], 0
je 0x44e897
mov eax, r11d
mov r12, qword [rsp + 0x50]
mov r11d, dword [rsp + 0x98]
mov dword [rsp + 0x98], eax
mov rbp, qword [rsp + 0x48]
jmp 0x44e8a1
mov r12, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov dword [rsp + 0xa0], 0xfffffffe
xor r10d, r10d
test rbp, rbp
je 0x44e9b6
mov rax, qword [rbp]
lea r8, [rsp + 0x118]
mov rdx, rdi
mov rcx, qword [rsp + 0x58]
mov rax, qword [rax + 0x18]
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r11d
mov qword [rsp + 0xb0], rax
mov r9, qword [rsp + 0xb0]
lea rax, [rsp + 0x114]
mov qword [rsp + 0x30], rax
call sym.sqlite3Stat4ProbeSetValue
mov dword [rsp + 0xa0], 0xfffffffe
test eax, eax
mov r10d, eax
jne 0x44e9b6
mov r8d, dword [rsp + 0x114]
test r8d, r8d
je 0x44e9b6
mov rcx, qword [rsp + 0xb0]
mov dword [rsp + 0xc0], eax
call sym.sqlite3ExprVectorSize
mov edx, 0xc
mov rcx, rdi
lea r9, [rsp + 0x120]
cmp r8d, eax
mov eax, 0x18
cmovge eax, edx
mov rdx, qword [rsp + 0x118]
xor r8d, r8d
mov r11d, eax
mov dword [rsp + 0xb0], r11d
call sym.whereKeyStats.isra.514
xor edx, edx
mov r11d, dword [rsp + 0xb0]
test word [rbp + 0x14], r11w
mov dword [rsp + 0xa0], eax
mov r10d, dword [rsp + 0xc0]
mov rax, qword [rsp + 0x120]
je 0x44e99d
mov rdx, qword [rsp + 0x128]
add rax, rdx
cmp qword [rsp + 0x68], rax
cmovae rax, qword [rsp + 0x68]
xor ebp, ebp
dec dword [rsp + 0x64]
mov qword [rsp + 0x68], rax
test r12, r12
mov dword [rsp + 0xb0], 0xffffffff
je 0x44eabe
mov rax, qword [r12]
lea r8, [rsp + 0x118]
mov rdx, rdi
mov rcx, qword [rsp + 0x58]
mov r11, qword [rax + 0x18]
lea rax, [rsp + 0x114]
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x98]
mov r9, r11
mov qword [rsp + 0xc0], r11
mov dword [rsp + 0x20], eax
call sym.sqlite3Stat4ProbeSetValue
test eax, eax
mov r10d, eax
jne 0x44eabe
mov r8d, dword [rsp + 0x114]
test r8d, r8d
je 0x44eabe
mov r11, qword [rsp + 0xc0]
mov dword [rsp + 0x98], eax
mov r14d, 0xc
mov rcx, r11
call sym.sqlite3ExprVectorSize
mov rdx, qword [rsp + 0x118]
lea r9, [rsp + 0x120]
mov rcx, rdi
cmp r8d, eax
mov eax, 0x18
mov r8d, 1
cmovl r14d, eax
call sym.whereKeyStats.isra.514
xor edx, edx
test word [r12 + 0x14], r14w
mov dword [rsp + 0xb0], eax
mov r10d, dword [rsp + 0x98]
mov rax, qword [rsp + 0x120]
je 0x44ea9b
mov rdx, qword [rsp + 0x128]
add rax, rdx
cmp qword [rsp + 0x80], rax
cmovbe rax, qword [rsp + 0x80]
xor r12d, r12d
dec dword [rsp + 0x64]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x118]
test r10d, r10d
mov qword [r15 + 0x20], rax
jne 0x44eeca
mov rcx, qword [rsp + 0x80]
mov eax, 0xa
cmp qword [rsp + 0x68], rcx
jae 0x44eb04
sub rcx, qword [rsp + 0x68]
call sym.sqlite3LogEst
mov edx, dword [rsp + 0xb0]
cmp dword [rsp + 0xa0], edx
jne 0x44eb04
sub eax, 0x14
cwde
cmp dword [rsp + 0x64], eax
cmovle eax, dword [rsp + 0x64]
mov dword [rsp + 0x64], eax
jmp 0x44eeca
cmp qword [rdi + 0x20], 0
je 0x44eb28
mov rax, qword [rdi + 0x20]
mov r14b, byte [rax + rbp]
jmp 0x44eb40
mov rcx, qword [rsp + 0x80]
mov rdx, rdi
call sym.sqlite3IndexAffinityStr
test rax, rax
jne 0x44eb1e
mov r14b, 0x41
mov qword [rsp + 0x118], 0
mov rax, qword [rdi + 0x40]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x120], 0
mov rdx, qword [rax + rbp*8]
call sym.sqlite3LocateCollSeq
cmp qword [rsp + 0x50], 0
mov dword [rsp + 0x68], 0
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0xb0], 0xffffffff
je 0x44ebc6
mov rax, qword [rsp + 0x50]
xor r9d, r9d
movzx r8d, r14b
mov rcx, qword [rsp + 0x58]
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
lea rax, [rsp + 0x118]
mov qword [rsp + 0x20], rax
call sym.stat4ValueFromExpr
mov dword [rsp + 0xb0], 0
mov dword [rsp + 0x68], eax
cmp qword [rsp + 0x48], 0
je 0x44ebd5
cmp dword [rsp + 0x68], 0
je 0x44ebdc
lea eax, [r12 + 1]
jmp 0x44ec23
mov rax, qword [rsp + 0x48]
xor r9d, r9d
movzx r8d, r14b
mov rcx, qword [rsp + 0x58]
mov rax, qword [rax]
mov rdx, qword [rax + 0x18]
lea rax, [rsp + 0x120]
mov qword [rsp + 0x20], rax
call sym.stat4ValueFromExpr
cmp qword [rsp + 0x120], 0
mov dword [rsp + 0xa0], 0
mov dword [rsp + 0x68], eax
jne 0x44ec2a
mov eax, dword [rdi + 0x68]
mov dword [rsp + 0xa0], eax
mov rax, qword [rsp + 0x118]
xor r14d, r14d
test rax, rax
jne 0x44ec51
mov rbp, qword [rsp + 0x120]
xor r12d, r12d
mov r14, rax
test rbp, rbp
je 0x44ee95
lea rax, [rsp + 0x114]
xor ebp, ebp
mov qword [rsp + 0xf8], rax
cmp dword [rsp + 0x68], 0
jne 0x44ee36
cmp dword [rdi + 0x68], r14d
jle 0x44ee36
imul rax, r14, 0x28
add rax, qword [rdi + 0x80]
mov ecx, dword [rax + 8]
mov rax, qword [rax]
mov dword [rsp + 0x110], 0
mov dword [rsp + 0xd4], ecx
mov qword [rsp + 0x98], rax
movzx eax, byte [rax]
test al, al
js 0x44ecb9
mov dword [rsp + 0x114], eax
mov r8d, 1
jmp 0x44ecd2
mov rdx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x98]
call sym.sqlite3GetVarint32
movzx r8d, al
movsxd r12, dword [rsp + 0x114]
cmp r12d, r8d
jle 0x44ecf4
cmp dword [rsp + 0xd4], r12d
mov dword [rsp + 0xd8], 0
jge 0x44ed37
mov ecx, 0x1432f
jmp 0x44ed9a
mov ecx, dword [rsp + 0x110]
mov dword [rsp + 0x10c], r8d
call sym.sqlite3VdbeSerialTypeLen
mov r8d, dword [rsp + 0x10c]
inc dword [rsp + 0xd8]
add eax, r12d
mov ecx, dword [rsp + 0xd8]
cmp dword [rsp + 0xc0], ecx
jl 0x44ed8c
movsxd r12, eax
movsxd rcx, r8d
add rcx, qword [rsp + 0x98]
movzx eax, byte [rcx]
test al, al
js 0x44ed54
mov dword [rsp + 0x110], eax
mov al, 1
jmp 0x44ed71
mov rdx, qword [rsp + 0x100]
mov dword [rsp + 0x10c], r8d
call sym.sqlite3GetVarint32
mov r8d, dword [rsp + 0x10c]
movzx eax, al
add r8d, eax
cmp r8d, dword [rsp + 0x114]
jle 0x44ecfe
mov ecx, 0x14335
jmp 0x44ed9a
cmp dword [rsp + 0xd4], eax
jge 0x44eda9
mov ecx, 0x1433b
call sym.sqlite3CorruptError
test eax, eax
jne 0x44ee2a
jmp 0x44edf7
test rbp, rbp
jne 0x44edc3
mov rcx, qword [rsp + 0x80]
call sym.sqlite3ValueNew
test rax, rax
mov rbp, rax
je 0x44eded
mov rcx, qword [rsp + 0x98]
mov r8, rbp
mov edx, dword [rsp + 0x110]
add rcx, r12
call sym.sqlite3VdbeSerialGet
mov rax, qword [rsp + 0x80]
mov al, byte [rax + 0x64]
mov byte [rbp + 0x16], al
jmp 0x44edf7
mov dword [rsp + 0x68], 7
jmp 0x44ee2e
mov rcx, qword [rsp + 0x118]
test rcx, rcx
je 0x44f3a3
mov r8, qword [rsp + 0xc8]
mov rdx, rbp
call sym.sqlite3MemCompare
cmp eax, 0x80000000
adc dword [rsp + 0xb0], 0
jmp 0x44f3a3
mov dword [rsp + 0x68], eax
inc r14
jmp 0x44ec63
mov r8d, dword [rsp + 0xa0]
sub r8d, dword [rsp + 0xb0]
cmp qword [rsp + 0x48], 0
sete dl
cmp qword [rsp + 0x50], 0
sete al
or dl, al
jne 0x44ee65
xor r12d, r12d
cmp r8d, 1
jle 0x44ee95
movsxd rcx, dword [rdi + 0x68]
mov r12d, 1
call sym.sqlite3LogEst
mov ecx, 1
test r8d, r8d
movsx r9d, ax
cmovg ecx, r8d
movsxd rcx, ecx
call sym.sqlite3LogEst
cwde
sub r9d, eax
sub word [rbx + 0x16], r9w
mov rcx, qword [rsp + 0x118]
call sym.sqlite3ValueFree
mov rcx, qword [rsp + 0x120]
call sym.sqlite3ValueFree
mov rcx, rbp
call sym.sqlite3ValueFree
test r12d, r12d
jne 0x44f136
mov r12, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
test rbp, rbp
mov eax, dword [rsp + 0x64]
je 0x44eeec
mov edx, dword [rbp + 0x10]
test dx, dx
jg 0x44eedf
add eax, edx
jmp 0x44eeec
test byte [rbp + 0x12], 0x80
jne 0x44eeec
mov eax, dword [rsp + 0x64]
sub eax, 0x14
test r12, r12
je 0x44ef1e
mov edx, dword [r12 + 0x10]
test dx, dx
jg 0x44eeff
add eax, edx
jmp 0x44ef0a
test byte [r12 + 0x12], 0x80
jne 0x44ef0a
sub eax, 0x14
test rbp, rbp
je 0x44ef1e
cmp word [rbp + 0x10], 0
jle 0x44ef1e
test dx, dx
jle 0x44ef1e
sub eax, 0x14
xor edx, edx
mov edi, dword [rsp + 0x64]
test rbp, rbp
setne dl
xor ecx, ecx
test r12, r12
setne cl
add edx, ecx
mov ecx, 0xa
sub edi, edx
cmp ax, 0xa
cmovl eax, ecx
cwde
cmp eax, edi
cmovg eax, edi
jmp 0x44f3f9
lea eax, [rbp + 1]
mov word [rsp + 0x68], ax
mov word [rbx + 0x18], ax
mov eax, dword [rdi + 0x10]
test ax, ax
jg 0x44ef7d
mov rdx, qword [rsi + 8]
mov rcx, qword [rsp + 0x70]
cmp word [rdx + rcx], 0
js 0x44ef7d
add ax, word [rbx + 0x16]
sub eax, r13d
jmp 0x44f3f9
cmp word [rsp + 0xaa], 0
mov qword [rsp + 0x118], 0
jne 0x44f3d6
cmp dword [rsi + 0x68], 0
je 0x44f3d6
movzx eax, word [rsp + 0x68]
cmp dword [rsi + 0x70], eax
mov dword [rsp + 0x80], eax
jl 0x44f3d6
cmp word [rsp + 0x98], 0
je 0x44efcf
mov rax, qword [rdi]
test byte [rax + 5], 0x10
jne 0x44f3d6
mov rax, qword [rsp + 0x78]
test byte [rax + 0x61], 8
jne 0x44f3d6
test word [rsp + 0x64], 0x182
mov rax, qword [rdi]
je 0x44f00a
mov r8, qword [rax + 0x18]
lea r9, [rsp + 0x118]
mov rdx, r15
mov rcx, qword [rsp + 0x58]
call sym.whereEqualScanEst
mov ebp, eax
jmp 0x44f0c3
mov r14, qword [rax + 0x20]
mov rax, qword [r15 + 0x10]
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 0x10]
movsx ecx, word [rax]
call sym.sqlite3LogEstToInt
xor r10d, r10d
xor r11d, r11d
mov r12, rax
mov eax, dword [r15 + 0x28]
mov dword [rsp + 0x98], eax
lea rax, [rsp + 0x120]
mov qword [rsp + 0xa0], rax
cmp dword [r14], r10d
jle 0x44f0b2
mov rax, r10
mov r9, qword [rsp + 0xa0]
mov rdx, r15
mov qword [rsp + 0xc0], r11
shl rax, 5
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xb0], r10
mov r8, qword [r14 + rax + 8]
mov qword [rsp + 0x120], r12
call sym.whereEqualScanEst
mov r10, qword [rsp + 0xb0]
mov ebp, eax
mov eax, dword [rsp + 0x98]
mov r11, qword [rsp + 0xc0]
add r11, qword [rsp + 0x120]
inc r10
test ebp, ebp
mov dword [r15 + 0x28], eax
je 0x44f046
jmp 0x44f0c3
cmp r12, r11
cmova r12, r11
xor ebp, ebp
mov qword [rsp + 0x118], r12
cmp ebp, 0xc
je 0x44f0d0
test ebp, ebp
jne 0x44f25c
mov rcx, qword [rsp + 0x118]
test rcx, rcx
je 0x44f3d6
call sym.sqlite3LogEst
cmp dword [rsp + 0x80], 1
mov word [rbx + 0x16], ax
jne 0x44f11c
mov rcx, qword [rsi + 0x10]
movsx edx, ax
add edx, 9
movsx ecx, word [rcx]
cmp edx, ecx
jl 0x44f11c
mov dx, word [rdi + 0x12]
mov ecx, edx
or ch, 0x40
and dh, 0x20
mov word [rdi + 0x12], cx
je 0x44f11c
or byte [r15 + 0x2d], 4
cmp ax, word [rsp + 0xa8]
jle 0x44f131
mov eax, dword [rsp + 0xa8]
mov word [rbx + 0x16], ax
sub word [rbx + 0x16], r13w
mov al, byte [rsi + 0x64]
mov r12w, word [rbx + 0x16]
and eax, 3
cmp al, 3
jne 0x44f14c
lea eax, [r12 + 0x10]
jmp 0x44f16b
mov rdi, qword [rsp + 0x1f8]
movsx eax, word [rsi + 0x5c]
mov rdx, qword [rdi + 0x20]
imul eax, eax, 0xf
movsx ecx, word [rdx + 0x3c]
cdq
idiv ecx
lea eax, [r12 + rax + 1]
movsx ecx, word [rsp + 0xe0]
movsx edx, ax
call sym.sqlite3LogEstAdd
test dword [rbx + 0x38], 0x4000140
mov word [rbx + 0x14], ax
jne 0x44f19c
lea edx, [r12 + 0x10]
movsx ecx, ax
movsx edx, dx
call sym.sqlite3LogEstAdd
mov word [rbx + 0x14], ax
add r13w, word [rsp + 0xaa]
mov rdx, rbx
add word [rbx + 0x14], r13w
mov rcx, qword [r15 + 8]
mov r8d, dword [rsp + 0xd0]
lea eax, [r13 + r12]
mov word [rbx + 0x16], ax
call sym.whereLoopOutputAdjust
mov rdx, rbx
mov rcx, r15
call sym.whereLoopInsert
mov ebp, eax
mov eax, dword [rbx + 0x38]
test al, 2
cmovne r12w, word [rsp + 0xa8]
test al, 0x10
mov word [rbx + 0x16], r12w
jne 0x44f22d
mov eax, dword [rbx + 0x18]
cmp ax, word [rsi + 0x60]
jae 0x44f22d
cmp ax, word [rsi + 0x5e]
jb 0x44f206
mov dl, byte [rsi + 0x64]
and edx, 3
cmp dl, 2
je 0x44f22d
cmp ax, 3
jbe 0x44f216
mov rcx, qword [rsp + 0x58]
call sym.sqlite3ProgressCheck
mov rdx, qword [rsp + 0x1f8]
movsx r9d, r13w
mov r8, rsi
mov rcx, r15
call sym.whereLoopAddBtreeIndex
mov eax, dword [rsp + 0xa8]
mov word [rbx + 0x16], ax
mov eax, dword [rsp + 0x108]
mov dword [r15 + 0x28], eax
jmp 0x44f247
xor ebp, ebp
lea rcx, [rsp + 0x130]
call sym.whereScanNext
mov rdi, rax
jmp 0x44e2d2
mov rax, qword [rsp + 0xb8]
mov di, word [rsp + 0xe6]
cmp word [rsp + 0x8c], di
mov qword [rbx], rax
mov rax, qword [rsp + 0xe8]
mov qword [rbx + 0x16], rax
mov rax, qword [rsp + 0xf0]
mov qword [rbx + 0x38], rax
jne 0x44f402
mov edx, dword [rsp + 0x88]
movzx eax, word [rsi + 0x5e]
inc edx
cmp edx, eax
jge 0x44f402
mov di, word [rsp + 0x8e]
cmp word [rsp + 0x8c], di
jne 0x44f402
mov al, byte [rsi + 0x64]
and eax, 0xffffffc0
cmp al, 0x80
jne 0x44f402
mov rax, qword [rsp + 0x78]
test byte [rax + 0x61], 0x40
jne 0x44f402
mov rax, qword [rsi + 0x10]
mov rdi, qword [rsp + 0x70]
cmp word [rax + rdi + 2], 0x29
jle 0x44f402
movzx r8d, word [rsp + 0x8e]
mov rdx, rbx
mov rcx, qword [rsp + 0x78]
inc r8d
call sym.whereLoopResize
test eax, eax
mov ebp, eax
jne 0x44f402
movzx eax, word [rbx + 0x3c]
mov r8, rsi
mov rdx, qword [rbx + 0x48]
inc word [rbx + 0x18]
inc word [rbx + 0x3e]
mov rdi, qword [rsp + 0x70]
lea ecx, [rax + 1]
mov word [rbx + 0x3c], cx
mov rcx, r15
mov qword [rdx + rax*8], 0
mov rax, qword [rsi + 0x10]
or dword [rbx + 0x38], 0x8000
mov r9w, word [rax + rdi]
mov ax, word [rax + rdi + 2]
mov edi, dword [rsp + 0xdc]
mov edx, eax
sub edx, r9d
add word [rbx + 0x16], dx
lea r9d, [r9 + rdi + 5]
mov rdx, qword [rsp + 0x1f8]
sub r9d, eax
movsx r9d, r9w
call sym.whereLoopAddBtreeIndex
mov eax, dword [rsp + 0xa8]
mov word [rbx + 0x16], ax
mov eax, dword [rsp + 0x8c]
mov word [rbx + 0x18], ax
mov word [rbx + 0x3e], ax
mov eax, dword [rsp + 0xac]
mov dword [rbx + 0x38], eax
jmp 0x44f402
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x44ee2e
mov r8, qword [rsp + 0xc8]
mov rdx, rbp
call sym.sqlite3MemCompare
cmp eax, 0x80000000
adc dword [rsp + 0xa0], 0
jmp 0x44ee2e
movzx edx, word [rsp + 0x68]
mov rcx, qword [rsi + 0x10]
mov ax, word [rbx + 0x16]
add ax, word [rcx + rdx*2]
sub ax, word [rcx + rdx*2 - 2]
test word [rsp + 0x64], 0x100
lea edx, [rax + 0xa]
cmovne eax, edx
mov word [rbx + 0x16], ax
jmp 0x44f136
mov eax, ebp
add rsp, 0x1a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret