Function at 0x815c60
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 r15, qword [rcx + 0x10]
mov r12, qword [rcx]
test r15, r15
mov r14, rcx
mov rbp, rdx
mov qword [rsp + 0x200], r8
jne 0x815c95
call sym.sqlite3GetVdbe.part.370
mov r15, rax
test rbp, rbp
je 0x815caa
cmp byte [r12 + 0x61], 0
jne 0x815caa
mov eax, dword [r14 + 0x30]
test eax, eax
je 0x815cd0
mov r13d, 1
mov eax, r13d
add rsp, 0x1a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r9d, r9d
xor r8d, r8d
mov edx, 0x15
mov qword [rsp + 0x20], 0
mov rcx, r14
call sym.sqlite3AuthCheck
test eax, eax
jne 0x815caa
mov rax, qword [rsp + 0x200]
cmp byte [rax], 6
ja 0x815d24
mov rdx, qword [rbp + 0x48]
test rdx, rdx
je 0x815d0e
mov rcx, r12
call dbg.exprListDeleteNN
mov eax, dword [rbp + 4]
mov qword [rbp + 0x48], 0
and eax, 0xfffffffe
or eax, 0x400000
mov dword [rbp + 4], eax
xor r8d, r8d
mov rdx, rbp
mov rcx, r14
call sym.sqlite3SelectPrep
mov r13d, dword [r14 + 0x30]
test r13d, r13d
jne 0x815ea1
movzx eax, byte [r12 + 0x61]
test al, al
mov byte [rsp + 0xb0], al
jne 0x815ea1
mov eax, dword [rbp + 4]
test eax, 0x800000
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x60], eax
je 0x815df8
mov rbx, qword [rbp + 0x28]
mov eax, dword [rbx]
cmp eax, 1
jle 0x815df8
sub eax, 2
mov rsi, qword [rbx + 0x28]
mov qword [rsp + 0x1f8], rbp
imul rax, rax, 0x70
lea r11, [rbx + 0x90]
lea rdi, [rbx + rax + 0x100]
jmp 0x815da9
add r11, 0x70
cmp rdi, r11
je 0x815df0
cmp rsi, qword [r11 + 8]
jne 0x815da0
mov rbp, qword [rbx + 0x20]
mov rdx, qword [r11]
test rbp, rbp
je 0x8164b0
test rdx, rdx
je 0x815da0
mov rcx, rbp
call sym.sqlite3_stricmp.part.9
test eax, eax
jne 0x815da0
mov r8, rbp
lea rdx, str.target_object_alias_may_not_appear_in_FROM_clause:__s
mov rcx, r14
mov r13d, 1
call dbg.sqlite3ErrorMsg
jmp 0x815ea7
mov rbp, qword [rsp + 0x1f8]
mov rax, qword [rsp + 0x200]
cmp byte [rax], 9
je 0x8160d1
mov rsi, qword [rbp + 0x70]
mov rax, qword [rbp + 0x50]
test rsi, rsi
je 0x815f31
test rax, rax
je 0x816523
lea rdx, [rsp + 0x108]
xor eax, eax
mov ecx, 0xa
mov rdi, rdx
rep stosd dword [rdi], eax
mov rax, qword [rbp + 0x48]
mov qword [rsp + 0x100], rax
mov r8, qword [rsp + 0x200]
mov rdx, rbp
mov rcx, r14
call dbg.multiSelect
cmp qword [rbp + 0x58], 0
mov r13d, eax
jne 0x815cb0
mov eax, dword [r14 + 0x128]
test eax, eax
je 0x815ee6
mov rdx, qword [r14 + 0x10]
jns 0x815e7e
mov eax, dword [rdx + 0x90]
sub eax, 1
mov r8, qword [rdx]
lea rcx, [0x00ccbc80]
cmp byte [r8 + 0x61], 0
jne 0x815ee3
cdqe
imul rax, rax, 0x18
add rax, qword [rdx + 0x88]
mov rcx, rax
jmp 0x815ee3
mov r13d, 1
mov eax, dword [r14 + 0x128]
test eax, eax
je 0x815ee6
mov rdx, qword [r14 + 0x10]
jns 0x815ec1
mov eax, dword [rdx + 0x90]
sub eax, 1
mov r8, qword [rdx]
lea rcx, [0x00ccbc80]
cmp byte [r8 + 0x61], 0
jne 0x815ee3
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x88]
lea rcx, [rax + rcx*8]
mov eax, dword [rcx + 8]
mov dword [r14 + 0x128], eax
jmp 0x815cb0
test rbx, rbx
je 0x8183f5
mov rsi, qword [rsp + 0x58]
mov r8d, 1
mov rdx, rbx
mov rcx, rsi
call dbg.clearSelect
cmp byte [rsi + 0x61], 0
jne 0x8174b7
mov rdx, rdi
mov rcx, rsi
call sym.sqlite3DbFreeNN
mov eax, dword [rbp + 4]
mov dword [rsp + 0x58], eax
mov rax, qword [rbp + 0x50]
mov qword [rsp + 0x108], 0
mov rsi, qword [rbp + 0x28]
mov qword [rsp + 0x110], 0
mov rdx, qword [rbp + 0x48]
mov qword [rsp + 0x118], 0
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x60], rsi
mov esi, dword [rsp + 0x58]
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x100], rdx
and esi, 8
test rax, rax
mov dword [rsp + 0x90], esi
lea rsi, [rsp + 0x100]
mov qword [rsp + 0x98], rsi
jne 0x815e43
mov rsi, qword [rsp + 0x60]
mov eax, dword [rsi]
test eax, eax
jle 0x816dc8
xor r11d, r11d
mov qword [rsp + 0x70], r15
mov r15, r14
mov qword [rsp + 0x58], r12
mov ebx, r11d
mov dword [rsp + 0x68], r13d
jmp 0x81607d
test r13, r13
je 0x816211
mov rax, qword [r13 + 0x20]
movsx r8d, word [r14 + 0x46]
mov eax, dword [rax]
cmp r8d, eax
jne 0x816d87
test byte [r13 + 4], 8
jne 0x816211
cmp qword [r13 + 0x48], 0
je 0x816024
test ebx, ebx
jne 0x816024
test byte [rbp + 6], 4
je 0x816024
cmp dword [rsi], 1
je 0x81682d
test byte [rsi + 0xb4], 0xa
jne 0x816823
mov r13, qword [r15]
mov rsi, qword [rbp + 0x28]
test byte [r13 + 0x5c], 1
jne 0x81603d
cmp qword [rbp + 0x70], 0
je 0x816220
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x61], 0
jne 0x817227
mov rax, qword [rsp + 0x200]
add ebx, 1
cmp byte [rax], 8
jbe 0x816068
mov rax, qword [rbp + 0x48]
mov qword [rsp + 0x100], rax
cmp qword [rbp + 0x50], 0
jne 0x816d68
mov eax, dword [rsi]
cmp eax, ebx
jle 0x819a88
movsxd r12, ebx
imul rdi, r12, 0x70
add rdi, rsi
test byte [rdi + 0x44], 8
mov r13, qword [rdi + 0x30]
mov r14, qword [rdi + 0x28]
je 0x815fd5
mov rcx, qword [rbp + 0x30]
mov edx, dword [rdi + 0x4c]
call dbg.sqlite3ExprImpliesNonNullRow
test eax, eax
je 0x815fd5
mov rax, qword [rsp + 0x58]
test byte [rax + 0x5d], 0x20
jne 0x815fd5
and byte [rdi + 0x44], 0xd7
mov rcx, qword [rbp + 0x30]
mov edx, dword [rdi + 0x4c]
call dbg.unsetJoinExpr
jmp 0x815fd5
cmp byte [r14 + 0x11b], 0
jne 0x815e09
cmp byte [r14 + 0x1c], 0
mov rdx, rbp
je 0x8160f3
jmp 0x815e09
mov rdx, rax
mov rax, qword [rdx + 0x50]
test rax, rax
jne 0x8160f0
mov rax, qword [r14]
mov rsi, qword [rdx + 0x28]
mov rbx, qword [rdx + 0x20]
mov byte [r14 + 0x1c], 1
mov rdi, qword [r14 + 0x10]
mov qword [rsp + 0x58], rax
mov rax, qword [rax + 0x30]
mov qword [rsp + 0x60], rsi
mov edx, dword [rbx]
mov rcx, rdi
mov rsi, rax
and esi, 4
mov qword [rsp + 0x68], rsi
mov rsi, rax
and esi, 0x44
mov qword [rsp + 0x70], rsi
call dbg.sqlite3VdbeSetNumCols
mov eax, dword [rbx]
test eax, eax
jle 0x8172f9
lea rsi, [rbx + 8]
xor r10d, r10d
mov qword [rsp + 0x78], r12
mov r12, qword [rsp + 0x58]
mov qword [rsp + 0x1f0], r14
mov r14, qword [rsp + 0x70]
mov dword [rsp + 0x58], r13d
mov r13, rsi
mov qword [rsp + 0x1f8], rbp
mov ebp, r10d
jmp 0x8161b2
mov rax, qword [rdi]
cmp byte [rax + 0x61], 0
jne 0x8161a2
mov r9, rdx
xor r8d, r8d
mov edx, ebp
mov qword [rsp + 0x20], 0xffffffffffffffff
mov rcx, rdi
call sym.sqlite3VdbeSetColName.part.514
mov eax, dword [rbx]
add r13, 0x20
mov ebp, esi
cmp eax, esi
jle 0x817255
mov rdx, qword [r13 + 8]
lea esi, [rbp + 1]
mov rcx, qword [r13]
test rdx, rdx
je 0x8164c1
movsxd rax, ebp
shl rax, 5
test byte [rbx + rax + 0x1c], 3
je 0x816180
test r14, r14
je 0x8161e2
cmp byte [rcx], 0xa4
je 0x8164d3
mov rcx, r12
call dbg.sqlite3DbStrDup
mov rdx, qword [rdi]
cmp byte [rdx + 0x61], 0
jne 0x8161a2
lea rcx, [sym.sqlite3OomFault]
mov r9, rax
xor r8d, r8d
mov qword [rsp + 0x20], rcx
mov edx, ebp
mov rcx, rdi
call sym.sqlite3VdbeSetColName.part.514
jmp 0x8161a2
add ebx, 1
jmp 0x816068
imul rax, r12, 0x70
mov rdi, qword [rsi + rax + 0x30]
cmp qword [rdi + 0x70], 0
jne 0x81603d
mov rax, qword [rdi + 0x60]
test rax, rax
je 0x817502
cmp qword [rbp + 0x60], 0
jne 0x81603d
cmp qword [rax + 0x18], 0
jne 0x81603d
mov r8d, dword [rbp + 4]
test r8d, 0x100
jne 0x81603d
mov rdx, qword [rdi + 0x28]
mov ecx, dword [rdx]
test ecx, ecx
je 0x81603d
mov r9d, dword [rdi + 4]
test r9b, 1
jne 0x81603d
test rax, rax
je 0x81847d
cmp dword [rsi], 1
jg 0x81603d
mov r14d, dword [rsp + 0x90]
test r14d, r14d
jne 0x81603d
mov rax, qword [rbp + 0x48]
test rax, rax
je 0x8162bb
cmp qword [rdi + 0x48], 0
jne 0x81603d
cmp qword [rbp + 0x30], 0
jne 0x81603d
test r8b, 1
jne 0x81603d
and r9d, 0x2000
jne 0x81603d
imul r9, r12, 0x70
test byte [rsi + r9 + 0x44], 0x20
je 0x8194de
sub ecx, 1
jg 0x81603d
cmp dword [rsp + 0x90], 0
jne 0x81603d
mov rdx, qword [rdx + 0x28]
cmp dword [rdx + 0x54], 0
jne 0x81603d
test r8b, 1
jne 0x81603d
mov dword [rsp + 0x80], 1
cmp qword [rdi + 0x50], 0
je 0x8163c2
cmp qword [rdi + 0x48], 0
jne 0x81603d
cmp dword [rsp + 0x90], 0
jne 0x81603d
and r8b, 1
jne 0x81603d
cmp dword [rsi], 1
jne 0x81603d
mov rdx, rdi
test byte [rdx + 4], 9
jne 0x81603d
mov rcx, qword [rdx + 0x50]
test rcx, rcx
je 0x81637d
cmp byte [rdx], 0x85
jne 0x81603d
mov r8, qword [rdx + 0x28]
cmp dword [r8], 0
jle 0x81603d
cmp qword [rdx + 0x70], 0
jne 0x81603d
test rcx, rcx
mov rdx, rcx
jne 0x816361
test rax, rax
je 0x8163c2
mov ecx, dword [rax]
jmp 0x8163be
add rdx, 1
mov r8, rdx
shl r8, 5
cmp word [rax + r8], 0
je 0x81603d
cmp ecx, edx
jg 0x8163a7
imul rax, r12, 0x70
mov r14, qword [r15 + 0x160]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x15
add rax, rsi
mov ecx, dword [rax + 0x4c]
mov rax, qword [rax + 0x18]
mov dword [rsp + 0xb4], ecx
mov rcx, r15
mov qword [r15 + 0x160], rax
mov qword [rsp + 0x20], 0
call sym.sqlite3AuthCheck
mov r9, qword [rdi + 0x50]
mov qword [rsp + 0x60], r12
mov r12, rsi
mov qword [r15 + 0x160], r14
mov qword [rsp + 0x1f0], r15
mov r15d, ebx
mov r14, r9
jmp 0x816448
test rdi, rdi
mov qword [rax + 0x50], rdi
je 0x816431
mov qword [rdi + 0x58], rax
mov qword [rax + 0x58], rbp
mov qword [rbp + 0x50], rax
cmp byte [r13 + 0x61], 0
jne 0x819573
mov r14, qword [r14 + 0x50]
test r14, r14
je 0x819595
mov rbx, qword [rbp + 0x48]
xor r8d, r8d
mov rdx, rbp
mov rcx, r13
mov rsi, qword [rbp + 0x60]
mov qword [rbp + 0x48], 0
mov rdi, qword [rbp + 0x50]
mov qword [rbp + 0x28], 0
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x60], 0
call dbg.sqlite3SelectDup
mov qword [rbp + 0x60], rsi
test rax, rax
mov qword [rbp + 0x48], rbx
mov qword [rbp + 0x28], r12
mov byte [rbp], 0x85
jne 0x816424
mov qword [rbp + 0x50], rdi
jmp 0x816439
test rdx, rdx
jne 0x815da0
mov r8, qword [rsi]
jmp 0x815dd3
test r14, r14
je 0x816d70
cmp byte [rcx], 0xa4
jne 0x816d70
movsx rax, word [rcx + 0x30]
mov rdx, qword [rcx + 0x40]
test eax, eax
js 0x8182e9
shl rax, 5
add rax, qword [rdx + 8]
mov r9, qword [rax]
cmp qword [rsp + 0x68], 0
jne 0x818316
mov rax, qword [rdi]
cmp byte [rax + 0x61], 0
jne 0x8161a2
mov qword [rsp + 0x20], 0xffffffffffffffff
xor r8d, r8d
mov edx, ebp
mov rcx, rdi
call sym.sqlite3VdbeSetColName.part.514
jmp 0x8161a2
test dword [rsp + 0x58], 0x100000
jne 0x8171b3
mov rax, qword [r14 + 0x10]
test rax, rax
mov qword [rsp + 0x78], rax
jne 0x816557
mov rcx, r14
call sym.sqlite3GetVdbe.part.370
mov rsi, qword [rbp + 0x70]
mov qword [rsp + 0x78], rax
mov eax, dword [rbp + 4]
mov dword [rsp + 0x60], eax
mov rax, qword [rbp + 0x28]
mov edx, pe_nt_image_headers64
mov qword [rsp + 0x130], 0
mov rcx, qword [r14]
mov qword [rsp + 0x68], rax
mov rax, qword [rbp + 0x30]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x90], rax
mov rax, qword [rbp + 0x38]
mov qword [rsp + 0x98], rax
mov rax, qword [rbp + 0x40]
mov qword [rsp + 0xa0], rax
call dbg.sqlite3DbMallocZero
test rax, rax
mov rdi, rax
je 0x81843e
lea rcx, [rsp + 0x160]
mov rdx, rbp
mov qword [rsp + 0x178], 0
lea rax, [sym.agginfoPersistExprCb]
mov qword [rcx + 0x20], 0
mov qword [rcx + 0x28], 0
mov qword [rsp + 0x168], rax
lea rax, [sym.sqlite3SelectWalkNoop]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x170], rax
call sym.sqlite3WalkSelect.part.162
mov eax, dword [rbp + 4]
xor edx, edx
mov r9d, 1
mov r8, qword [rsi + 0x10]
mov rcx, r14
mov qword [rbp + 0x28], 0
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x38], 0
and eax, 0xfffffff7
mov qword [rbp + 0x40], 0
or eax, 0x100000
mov dword [rbp + 4], eax
call dbg.exprListAppendList
mov r8, qword [rsi + 0x18]
mov r9d, 1
mov rcx, r14
mov rdx, rax
call dbg.exprListAppendList
test rax, rax
mov rbx, rax
mov qword [rsp + 0x80], rax
je 0x816684
mov rdx, qword [rbp + 0x48]
test rdx, rdx
je 0x816684
mov eax, dword [rdx]
mov ebx, dword [rbx]
cmp eax, ebx
jle 0x81866d
mov eax, dword [r14 + 0x34]
lea rbx, [rsp + 0x130]
mov rdx, rsi
mov rcx, r14
mov r8, qword [rsp + 0x68]
mov qword [rsp + 0x70], rbx
mov dword [rsi + 0x58], eax
add eax, 4
mov dword [r14 + 0x34], eax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
mov r9, qword [rbp + 0x20]
call dbg.selectWindowRewriteEList
mov qword [rsp + 0x28], rbx
mov rdx, rsi
mov rcx, r14
mov qword [rsp + 0x20], rdi
mov r8, qword [rsp + 0x68]
mov r9, qword [rbp + 0x48]
call dbg.selectWindowRewriteEList
mov rdx, qword [rsp + 0x130]
xor eax, eax
test rdx, rdx
je 0x8166ec
mov eax, dword [rdx]
mov r8, qword [rsi + 0x10]
xor r9d, r9d
mov rcx, r14
mov dword [rsi + 0x78], eax
call dbg.exprListAppendList
xor r9d, r9d
mov rcx, r14
mov qword [rsp + 0x130], rax
mov r8, qword [rsi + 0x18]
mov rdx, rax
call dbg.exprListAppendList
mov qword [rsp + 0x1f8], rbp
mov rbx, qword [rsp + 0x78]
mov rbp, rsi
mov qword [rsp + 0x130], rax
jmp 0x8167cb
mov rdx, qword [rsp + 0x130]
xor eax, eax
test rdx, rdx
je 0x816746
mov eax, dword [rdx]
mov dword [rbp + 0x7c], eax
xor r9d, r9d
mov rcx, r14
call dbg.exprListAppendList
mov qword [rsp + 0x130], rax
mov rdx, qword [rbp + 0x48]
test rdx, rdx
je 0x816790
mov rcx, qword [rsp + 0x58]
xor r9d, r9d
xor r8d, r8d
call dbg.exprDup
mov rdx, qword [rsp + 0x130]
mov rcx, qword [r14]
mov r8, rax
call sym.sqlite3ExprListAppend.isra.381
mov qword [rsp + 0x130], rax
mov eax, dword [r14 + 0x38]
xor r8d, r8d
mov edx, 0x48
mov rcx, rbx
lea r9d, [rax + 1]
add eax, 2
mov dword [rbp + 0x5c], r9d
mov dword [r14 + 0x38], eax
mov dword [rbp + 0x60], eax
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov rbp, qword [rbp + 0x40]
test rbp, rbp
je 0x817309
mov rax, qword [rbp + 0x70]
mov r8, qword [rax + 0x20]
mov rax, qword [rbp + 0x50]
test byte [rax + 6], 0x10
je 0x816735
mov rax, qword [rsp + 0x70]
mov r9, r8
mov rdx, rsi
mov qword [rsp + 0x20], rdi
mov r8, qword [rsp + 0x68]
mov rcx, r14
mov qword [rsp + 0x28], rax
call dbg.selectWindowRewriteEList
mov rdx, qword [rsp + 0x130]
xor eax, eax
test rdx, rdx
je 0x816814
mov eax, dword [rdx]
mov dword [rbp + 0x7c], eax
mov byte [rbp + 0x8c], 1
jmp 0x81675c
mov ebx, 1
jmp 0x816068
cmp qword [rbp + 0x50], 0
mov r14, r15
mov qword [rsp + 0x60], rsi
mov r12, qword [rsp + 0x58]
mov r13d, dword [rsp + 0x68]
mov r15, qword [rsp + 0x70]
jne 0x815e43
mov rsi, qword [rsp + 0x60]
xor ebx, ebx
mov qword [rsp + 0x58], r12
mov dword [rsp + 0xa8], r13d
mov r12d, ebx
mov qword [rsp + 0x1f8], rbp
lea rax, [rsi + 8]
mov rdi, rax
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0x160]
mov r13, rdi
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x130]
mov qword [rsp + 0x88], rax
jmp 0x816a42
mov rax, qword [r14 + 0x160]
test r12d, r12d
mov qword [rsp + 0x70], rax
mov rax, qword [r13 + 0x10]
mov qword [r14 + 0x160], rax
jne 0x816ae1
cmp dword [rsi], 1
je 0x8168d4
test byte [rsi + 0xb4], 0xa
je 0x816ae1
mov eax, dword [r14 + 0x38]
xor r9d, r9d
mov edx, 0xd
mov rcx, r15
mov ebx, dword [r15 + 0x90]
lea r8d, [rax + 1]
lea edi, [rbx + 1]
mov dword [r14 + 0x38], r8d
mov dword [rsi + 0x3c], r8d
mov dword [rsp + 0x20], edi
call dbg.sqlite3VdbeAddOp3
mov eax, dword [rsi + 0x3c]
mov dword [rsi + 0x38], edi
mov edx, 1
mov byte [rsp + 0x160], 0xd
lea r8, str.CO_ROUTINE__u
mov rcx, r14
mov qword [rsp + 0x168], 0
mov r9d, dword [rbp + 0x10]
mov qword [rsp + 0x178], 0
mov dword [rsp + 0x164], eax
mov dword [rsp + 0x170], 0
call dbg.sqlite3VdbeExplain
mov r8, qword [rsp + 0x68]
mov rdx, rbp
mov rcx, r14
call dbg.sqlite3Select
movzx edx, word [rbp + 2]
xor r9d, r9d
mov rcx, r15
mov rax, qword [rsi + 0x28]
mov r8d, dword [rsi + 0x3c]
mov word [rax + 0x4a], dx
mov edx, 0x42
or byte [rsi + 0x48], 0x10
mov eax, dword [rsp + 0x16c]
mov dword [rsi + 0x40], eax
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov rax, qword [r15 + 0x18]
test ebx, ebx
mov byte [rax + 0x1f], 0
mov rcx, qword [r15]
mov dword [rax + 0x28], 0
mov eax, dword [r15 + 0x90]
lea edx, [rax - 1]
cmovs ebx, edx
cmp byte [rcx + 0x61], 0
lea rdx, [0x00ccbc80]
jne 0x8169d8
mov rdx, qword [r15 + 0x88]
movsxd rbx, ebx
lea rcx, [rbx + rbx*2]
lea rdx, [rdx + rcx*8]
mov dword [rdx + 8], eax
mov byte [r14 + 0x1f], 0
mov dword [r14 + 0x28], 0
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x61], 0
jne 0x81750b
mov rdx, qword [rsp + 0x88]
mov dword [rsp + 0x130], 0
mov rcx, qword [rsp + 0x1f8]
call dbg.heightOfSelect
mov eax, dword [rsp + 0x130]
sub dword [r14 + 0x124], eax
mov rax, qword [rsp + 0x70]
mov qword [r14 + 0x160], rax
add r12d, 1
add r13, 0x70
cmp dword [rsi], r12d
jle 0x817234
cmp qword [r13 + 0x58], 0
jne 0x816a6f
mov r8, qword [r13 + 0x10]
test r8, r8
je 0x816a6f
mov rax, qword [r13 + 8]
lea r9, [0x00c4da6c]
mov edx, 0x14
mov rcx, r14
mov qword [rsp + 0x20], rax
call sym.sqlite3AuthCheck
mov rbp, qword [r13 + 0x28]
test rbp, rbp
je 0x816a31
mov dword [rsp + 0x160], 0
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x1f8]
call dbg.heightOfSelect
mov eax, dword [rsp + 0x160]
add dword [r14 + 0x124], eax
mov rax, qword [rsp + 0x58]
test byte [rax + 0x5d], 0x10
jne 0x8168a2
movzx eax, byte [r13 + 0x3c]
mov rdx, rbp
mov rcx, r14
mov r9d, dword [r13 + 0x44]
shr al, 5
and eax, 1
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x1f8]
mov r8, qword [rax + 0x30]
call dbg.pushDownWhereTerms
jmp 0x8168a2
mov eax, dword [r14 + 0x38]
xor r8d, r8d
mov edx, 0x45
mov rcx, r15
lea r9d, [rax + 1]
mov dword [r14 + 0x38], r9d
mov dword [r13 + 0x34], r9d
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov dword [rsp + 0x80], 0
mov dword [rsp + 0x78], eax
add eax, 1
mov dword [r13 + 0x30], eax
movsxd rax, r12d
imul rax, rax, 0x70
test byte [rsi + rax + 0x48], 8
je 0x816d41
mov rax, qword [rsp + 0xa0]
cmp rax, r13
mov rbx, rax
jb 0x816b5d
jmp 0x816cc0
add rbx, 0x70
cmp rbx, r13
jae 0x816cc0
mov rdi, qword [rbx + 0x28]
test rdi, rdi
je 0x816b50
test byte [rbx + 0x40], 0x10
jne 0x816b50
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x816b50
mov rax, qword [rbx + 0x20]
mov r11, qword [rax + 0x70]
mov rax, qword [r13 + 0x20]
cmp r11, qword [rax + 0x70]
jne 0x816b50
mov rdx, qword [r13 + 0x10]
test rdx, rdx
je 0x816b50
call sym.sqlite3_stricmp.part.9
test eax, eax
jne 0x816b50
test r11, r11
mov rax, qword [r13 + 0x28]
je 0x816d30
mov rdx, qword [rax + 0x30]
xor ecx, ecx
mov r9d, 0xffffffff
mov r8, qword [rdi + 0x30]
call sym.sqlite3ExprCompare
test eax, eax
jne 0x816b50
mov rax, qword [r13 + 0x28]
xor ecx, ecx
mov r9d, 0xffffffff
mov r8, qword [rdi + 0x40]
mov rdx, qword [rax + 0x40]
call sym.sqlite3ExprCompare
test eax, eax
jne 0x816b50
mov r9d, dword [rbx + 0x44]
mov edx, 0x62
mov rcx, r15
mov r8d, dword [r13 + 0x44]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov rax, qword [rbx + 0x28]
movzx eax, word [rax + 2]
mov word [rbp + 2], ax
mov ebx, dword [rsp + 0x80]
mov rdx, qword [r13 + 0x20]
test ebx, ebx
mov word [rdx + 0x4a], ax
je 0x816c50
mov eax, dword [r15 + 0x90]
mov rcx, qword [r15]
lea edx, [rax - 1]
cmovns edx, ebx
cmp byte [rcx + 0x61], 0
mov ebx, edx
lea rdx, [0x00ccbc80]
jne 0x816c4d
mov rdx, qword [r15 + 0x88]
movsxd rdi, ebx
lea rcx, [rdi + rdi*2]
lea rdx, [rdx + rcx*8]
mov dword [rdx + 8], eax
mov r8d, dword [r13 + 0x34]
xor r9d, r9d
mov edx, 0x41
mov rcx, r15
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov r9d, dword [rsp + 0x78]
test r9d, r9d
jns 0x816c84
mov ebx, dword [r15 + 0x90]
sub ebx, 1
mov dword [rsp + 0x78], ebx
mov rcx, qword [r15]
lea rdx, [0x00ccbc80]
cmp byte [rcx + 0x61], 0
jne 0x816ca8
movsxd rdx, dword [rsp + 0x78]
lea rcx, [rdx + rdx*2]
mov rdx, qword [r15 + 0x88]
lea rdx, [rdx + rcx*8]
mov dword [rdx + 4], eax
mov byte [r14 + 0x1f], 0
mov dword [r14 + 0x28], 0
jmp 0x8169e8
mov eax, dword [r13 + 0x44]
mov byte [rsp + 0x160], 0xc
lea r8, str.MATERIALIZE__u
mov rcx, r14
mov dword [rsp + 0x170], 0
mov edx, 1
mov qword [rsp + 0x168], 0
mov r9d, dword [rbp + 0x10]
mov qword [rsp + 0x178], 0
mov dword [rsp + 0x164], eax
call dbg.sqlite3VdbeExplain
mov r8, qword [rsp + 0x68]
mov rdx, rbp
mov rcx, r14
call dbg.sqlite3Select
movzx eax, word [rbp + 2]
jmp 0x816c09
mov ecx, dword [rdi + 0x10]
cmp dword [rax + 0x10], ecx
je 0x816ba6
jmp 0x816b50
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x11
mov rcx, r15
call dbg.sqlite3VdbeAddOp3
mov dword [rsp + 0x80], eax
jmp 0x816b31
mov r14, r15
jmp 0x815e43
lea rdx, str.column_d
mov r8d, esi
mov rcx, r12
call dbg.sqlite3MPrintf
jmp 0x8161ea
mov r9, r14
mov dword [rsp + 0x20], eax
mov rcx, r15
mov r13d, dword [rsp + 0x68]
mov r9, qword [r9]
lea rdx, str.expected__d_columns_for__s_but_got__d
mov r14, r15
call dbg.sqlite3ErrorMsg
jmp 0x815ea7
mov rax, qword [rsp + 0x60]
mov r12, qword [rsp + 0x58]
mov eax, dword [rax]
test eax, eax
jg 0x81684f
mov eax, dword [rbp + 4]
mov dword [rsp + 0x58], eax
mov rax, qword [rbp + 0x20]
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0x70], rax
mov rax, qword [rbp + 0x30]
mov qword [rsp + 0x80], rax
mov rax, qword [rbp + 0x38]
mov qword [rsp + 0x68], rax
mov rax, qword [rbp + 0x40]
mov qword [rsp + 0xa0], rax
mov eax, dword [rsp + 0x58]
mov byte [rsp + 0xf4], al
and eax, 9
and byte [rsp + 0xf4], 1
cmp eax, 1
je 0x8183c9
test rcx, rcx
je 0x817f6c
mov rsi, qword [rsp + 0x70]
mov rdx, rcx
xor r8d, r8d
mov rcx, r14
mov r9d, dword [rsi]
call dbg.sqlite3KeyInfoFromExprList
mov r8d, dword [r14 + 0x34]
mov rcx, r15
mov rbx, rax
lea eax, [r8 + 1]
mov dword [rsp + 0x10c], r8d
mov dword [r14 + 0x34], eax
mov rax, qword [rsp + 0x100]
mov edx, dword [rax]
mov eax, dword [rsi]
mov dword [rsp + 0x20], 0
lea r9d, [rdx + rax + 1]
mov edx, 0x64
call dbg.sqlite3VdbeAddOp3
mov r9d, 0xfffffff7
mov r8, rbx
mov rcx, r15
mov esi, eax
mov edx, eax
call sym.sqlite3VdbeChangeP4
mov dword [rsp + 0x118], esi
mov rax, qword [rsp + 0x200]
cmp byte [rax], 0xc
je 0x81839b
mov eax, dword [r14 + 0x44]
sub eax, 1
mov dword [r14 + 0x44], eax
test byte [rbp + 5], 0x40
mov dword [rsp + 0x78], eax
jne 0x816ec2
mov r8d, 0x140
mov word [rbp + 2], r8w
mov r8d, dword [rsp + 0x78]
mov rcx, r14
mov rdx, rbp
call dbg.computeLimitRegisters
mov ecx, dword [rbp + 8]
test ecx, ecx
jne 0x816f0e
movsxd rax, dword [rsp + 0x118]
test eax, eax
js 0x816f0e
mov rcx, qword [r15]
lea rdx, [0x00ccbc80]
cmp byte [rcx + 0x61], 0
jne 0x816f03
imul rax, rax, 0x18
add rax, qword [r15 + 0x88]
mov rdx, rax
mov byte [rdx], 0x6f
or byte [rsp + 0x124], 1
test byte [rbp + 4], 1
jne 0x818256
mov byte [rsp + 0xf5], 0
mov esi, dword [rsp + 0x90]
test esi, esi
jne 0x817cd4
cmp qword [rsp + 0x68], 0
jne 0x817cd4
cmp byte [rsp + 0xf4], 1
movzx edx, word [rbp + 4]
mov rdi, qword [rbp + 0x70]
sbb eax, eax
not eax
and dx, 0x4000
and ax, 0x100
or edx, eax
test rdi, rdi
mov word [rsp + 0x58], dx
je 0x817546
mov rax, qword [rbp + 0x28]
mov rsi, qword [r14 + 0x10]
mov rax, qword [rax + 0x30]
test rsi, rsi
mov rax, qword [rax + 0x20]
mov ebx, dword [rax]
jne 0x816f8a
mov rcx, r14
call sym.sqlite3GetVdbe.part.370
mov rsi, rax
mov r8d, dword [rdi + 0x58]
mov r9d, ebx
mov edx, 0x64
mov rcx, rsi
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov eax, dword [rdi + 0x58]
mov edx, 0x62
mov rcx, rsi
mov dword [rsp + 0x20], 0
lea r8d, [rax + 1]
mov r9d, eax
call dbg.sqlite3VdbeAddOp3
mov eax, dword [rdi + 0x58]
mov edx, 0x62
mov rcx, rsi
mov dword [rsp + 0x20], 0
lea r8d, [rax + 2]
mov r9d, eax
call dbg.sqlite3VdbeAddOp3
mov eax, dword [rdi + 0x58]
mov edx, 0x62
mov rcx, rsi
mov dword [rsp + 0x20], 0
lea r8d, [rax + 3]
mov r9d, eax
call dbg.sqlite3VdbeAddOp3
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x817039
mov edx, dword [rax]
xor r8d, r8d
mov rcx, rsi
mov eax, dword [r14 + 0x38]
lea r9d, [rax + 1]
add eax, edx
mov dword [rdi + 0x6c], r9d
mov dword [r14 + 0x38], eax
lea eax, [rdx + r9 - 1]
mov edx, 0x48
mov dword [rsp + 0x20], eax
call dbg.sqlite3VdbeAddOp3
mov eax, dword [r14 + 0x38]
mov r8d, 1
mov rcx, rsi
mov rbx, rdi
mov edx, 0x45
lea r9d, [rax + 1]
mov dword [r14 + 0x38], r9d
mov dword [rdi + 0x80], r9d
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
cmp byte [rdi + 0x24], 0
jne 0x818aea
mov qword [rsp + 0x1f8], rbp
jmp 0x81713b
cmp byte [rbx + 0x21], 0x5a
je 0x817149
mov rax, qword [rbx + 0x70]
xor r8d, r8d
xor r9d, r9d
mov rcx, r14
mov rdx, qword [rax + 0x20]
call dbg.sqlite3KeyInfoFromExprList
mov r8d, dword [r14 + 0x34]
mov rbp, rax
lea eax, [r8 + 1]
mov dword [r14 + 0x34], eax
mov eax, dword [r14 + 0x38]
mov dword [rbx + 0x64], r8d
lea edx, [rax + 1]
add eax, 3
test rbp, rbp
mov dword [rbx + 0x68], edx
mov dword [r14 + 0x38], eax
je 0x8170e3
mov rax, qword [rbx + 0x50]
mov rax, qword [rax + 0x38]
cmp byte [rax + 1], 0x69
jne 0x8170e3
mov rax, qword [rbp + 0x18]
mov byte [rax], 1
mov r8d, dword [rbx + 0x64]
mov r9d, 2
mov edx, 0x64
mov rcx, rsi
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov r8d, 0xfffffff7
mov rdx, rbp
mov rcx, rsi
call sym.sqlite3VdbeAppendP4
mov eax, dword [rbx + 0x68]
xor r8d, r8d
mov edx, 0x45
mov dword [rsp + 0x20], 0
mov rcx, rsi
lea r9d, [rax + 1]
call dbg.sqlite3VdbeAddOp3
mov rbx, qword [rbx + 0x40]
test rbx, rbx
je 0x81753e
mov rax, qword [rbx + 0x50]
test byte [rax + 5], 0x10
jne 0x817081
mov rax, qword [rax + 0x38]
lea rcx, str.nth_value
cmp rax, rcx
je 0x817518
lea rcx, str.first_value
cmp rax, rcx
je 0x817518
lea rcx, str.lead
cmp rax, rcx
je 0x817185
lea rdx, [0x00c5c114]
cmp rax, rdx
jne 0x81712e
mov r8d, dword [r14 + 0x34]
lea eax, [r8 + 1]
mov dword [r14 + 0x34], eax
mov dword [rbx + 0x64], r8d
mov r9d, dword [rdi + 0x58]
mov edx, 0x62
mov rcx, rsi
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
jmp 0x81712e
mov qword [rsp + 0x108], 0
mov rax, qword [rbp + 0x28]
mov qword [rsp + 0x110], 0
mov qword [rsp + 0x118], 0
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0x58]
mov qword [rsp + 0x128], 0
and eax, 8
mov dword [rsp + 0x90], eax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x98], rax
mov rax, qword [rbp + 0x48]
mov qword [rsp + 0x100], rax
jmp 0x815fa9
mov r13d, dword [rsp + 0x68]
mov r14, r15
jmp 0x815ea7
mov rbp, qword [rsp + 0x1f8]
mov r12, qword [rsp + 0x58]
mov r13d, dword [rsp + 0xa8]
mov eax, dword [rbp + 4]
mov dword [rsp + 0x58], eax
jmp 0x816dc8
mov r14, qword [rsp + 0x1f0]
test eax, eax
mov qword [rsp + 0x178], 0
mov rdi, qword [rsp + 0x60]
mov r12, qword [rsp + 0x78]
mov r13d, dword [rsp + 0x58]
mov rbp, qword [rsp + 0x1f8]
mov qword [rsp + 0x160], r14
mov rsi, qword [r14 + 0x10]
mov qword [rsp + 0x168], rdi
jle 0x8172f9
xor edi, edi
mov qword [rsp + 0x1f8], rbp
lea rax, [rsp + 0x160]
mov rbp, rdi
mov rdi, rax
mov rax, rbp
mov rcx, rdi
shl rax, 5
mov rdx, qword [rbx + rax + 8]
call sym.columnTypeImpl
mov rdx, qword [rsi]
cmp byte [rdx + 0x61], 0
jne 0x8172e9
mov qword [rsp + 0x20], 0xffffffffffffffff
mov r9, rax
mov r8d, 1
mov edx, ebp
mov rcx, rsi
call sym.sqlite3VdbeSetColName.part.514
add rbp, 1
cmp dword [rbx], ebp
jg 0x8172b0
mov rbp, qword [rsp + 0x1f8]
mov eax, dword [rbp + 4]
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x60], eax
jmp 0x815e09
mov rdx, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x1f8]
test rdx, rdx
je 0x8185cd
mov r8, qword [rsp + 0x68]
mov rcx, r14
mov dword [rsp + 0x38], 0
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x40], 0
mov r9, qword [rsp + 0x90]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x20], rax
call dbg.sqlite3SelectNew
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r14
mov rbx, rax
call dbg.sqlite3SrcListAppend
test rax, rax
mov qword [rbp + 0x28], rax
je 0x815ef2
mov rdx, rax
mov qword [rax + 0x30], rbx
mov rcx, r14
call dbg.sqlite3SrcListAssignCursors
mov r8d, 0x40
mov rdx, rbx
mov rcx, r14
or dword [rbx + 4], 0x40
call dbg.sqlite3ResultSetOfSelect
mov rsi, rax
mov eax, dword [rsp + 0x60]
and eax, 8
or dword [rbx + 4], eax
test rsi, rsi
je 0x81841f
mov rax, qword [rsi]
mov ecx, 6
mov rdx, rbx
mov qword [rdi], rax
mov rax, qword [rsi + 8]
mov qword [rdi + 8], rax
mov rax, qword [rsi + 0x10]
mov qword [rdi + 0x10], rax
mov rax, qword [rsi + 0x18]
mov qword [rdi + 0x18], rax
mov rax, qword [rsi + 0x20]
mov qword [rdi + 0x20], rax
mov rax, qword [rsi + 0x28]
mov qword [rdi + 0x28], rax
mov rax, qword [rsi + 0x30]
mov qword [rdi + 0x30], rax
mov rax, qword [rsi + 0x38]
mov qword [rdi + 0x38], rax
mov rax, qword [rsi + 0x40]
mov qword [rdi + 0x40], rax
mov rax, qword [rsi + 0x48]
mov qword [rdi + 0x48], rax
mov rax, qword [rsi + 0x50]
mov qword [rdi + 0x50], rax
mov rax, qword [rsi + 0x58]
mov qword [rdi + 0x58], rax
mov rax, qword [rsi + 0x60]
mov qword [rdi + 0x60], rax
mov rax, qword [rsi + 0x68]
mov qword [rdi + 0x68], rax
mov rax, qword [rsi + 0x70]
mov qword [rdi + 0x70], rax
mov rax, qword [rsi + 0x78]
mov qword [rdi + 0x78], rax
or dword [rdi + 0x40], 2
mov rax, qword [rbp + 0x28]
mov qword [rax + 0x28], rdi
mov rdi, qword [rsp + 0x88]
xor eax, eax
rep stosq qword [rdi], rax
mov rcx, qword [rsp + 0x88]
lea rax, [sym.sqlite3WindowExtraAggFuncDepth]
mov qword [rsp + 0x168], rax
lea rax, [dbg.sqlite3WalkerDepthIncrease]
mov qword [rsp + 0x170], rax
lea rax, [dbg.sqlite3WalkerDepthDecrease]
mov qword [rsp + 0x178], rax
call sym.sqlite3WalkSelect.part.162
mov rax, qword [rsp + 0x58]
mov rdx, rsi
cmp byte [rax + 0x61], 0
je 0x818407
mov rdi, rsi
mov rcx, qword [rsp + 0x58]
mov rdx, rdi
call sym.sqlite3DbFreeNN
mov eax, dword [r14 + 0x30]
mov r13d, 7
test eax, eax
jne 0x815ea7
mov rax, qword [r14]
test rax, rax
je 0x815ea7
mov rax, qword [rax + 0x128]
test rax, rax
je 0x815ea7
add dword [rax + 0x30], 1
mov dword [rax + 0x18], 7
jmp 0x815ea7
mov r8d, dword [rbp + 4]
jmp 0x816268
mov r13d, dword [rsp + 0xa8]
jmp 0x815ea7
mov eax, dword [r14 + 0x38]
mov r8d, dword [r14 + 0x34]
lea edx, [rax + 1]
add eax, 2
mov dword [rbx + 0x68], edx
lea edx, [r8 + 1]
mov dword [r14 + 0x34], edx
mov dword [rbx + 0x64], r8d
mov dword [r14 + 0x38], eax
jmp 0x817195
mov rbp, qword [rsp + 0x1f8]
movsx eax, word [rbp + 2]
mov rcx, r14
mov r9, qword [rsp + 0x100]
mov r8, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x60]
mov dword [rsp + 0x30], eax
movzx eax, word [rsp + 0x58]
mov dword [rsp + 0x28], eax
mov rax, qword [rbp + 0x20]
mov qword [rsp + 0x20], rax
call sym.sqlite3WhereBegin
test rax, rax
mov rbx, rax
je 0x815ea7
movzx eax, word [rax + 0x48]
cmp word [rbp + 2], ax
jle 0x817597
mov word [rbp + 2], ax
cmp byte [rsp + 0xf4], 0
je 0x8175b0
movzx eax, byte [rbx + 0x43]
test al, al
je 0x8175b0
mov byte [rsp + 0xf5], al
mov rdx, qword [rsp + 0x100]
test rdx, rdx
je 0x818362
movsx ecx, byte [rbx + 0x41]
test byte [rbx + 0x44], 4
mov dword [rsp + 0x108], ecx
je 0x818ac0
movzx eax, byte [rbx + 0x40]
sub eax, 1
cdqe
lea rax, [rax + rax*2]
shl rax, 5
mov eax, dword [rbx + rax + 0x370]
cmp dword [rdx], ecx
mov dword [rsp + 0x120], eax
je 0x818356
test rdi, rdi
je 0x81861f
mov esi, dword [r14 + 0x44]
lea rdx, [rbp + 0x28]
mov r9, rbx
mov rcx, r14
mov edi, dword [r14 + 0x38]
lea r10d, [rsi - 1]
lea eax, [rsi - 2]
add edi, 1
sub esi, 3
mov dword [rsp + 0xb0], r10d
mov dword [r14 + 0x38], edi
mov dword [r14 + 0x44], esi
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], edi
mov r8, qword [rbp + 0x70]
mov dword [rsp + 0x58], eax
call sym.sqlite3WindowCodeStep.isra.665
mov r9d, esi
xor r8d, r8d
mov edx, 0xb
mov rcx, r15
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov r10d, dword [rsp + 0xb0]
mov rcx, r15
mov edx, r10d
call dbg.sqlite3VdbeResolveLabel
mov ebx, dword [rsp + 0x58]
mov rdx, rbp
mov rcx, r14
mov rax, qword [rsp + 0x200]
mov r8d, 0xffffffff
mov dword [rsp + 0x38], esi
mov r9, qword [rsp + 0x98]
mov dword [rsp + 0x120], 0
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xf4]
mov qword [rsp + 0x20], rax
call dbg.selectInnerLoop
mov edx, ebx
mov rcx, r15
call dbg.sqlite3VdbeResolveLabel
mov r8d, edi
xor r9d, r9d
mov edx, 0x41
mov rcx, r15
mov dword [rsp + 0x20], 0
xor edi, edi
call dbg.sqlite3VdbeAddOp3
mov edx, esi
mov rcx, r15
call dbg.sqlite3VdbeResolveLabel
cmp byte [rsp + 0xf5], 3
je 0x8186ae
cmp qword [rsp + 0x100], 0
je 0x817aec
mov ecx, dword [rsp + 0x108]
lea rax, str.ORDER_BY
lea r9, str.RIGHT_PART_OF_ORDER_BY
lea r8, str.USE_TEMP_B_TREE_FOR__s
test ecx, ecx
mov rcx, r14
cmovle r9, rax
xor edx, edx
call dbg.sqlite3VdbeExplain
mov rax, qword [rsp + 0x70]
mov r9d, dword [rsp + 0x114]
mov rsi, qword [rsp + 0x100]
mov eax, dword [rax]
mov dword [rsp + 0xb0], eax
mov rax, qword [rbp + 0x20]
mov qword [rsp + 0x98], rax
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x11c]
mov dword [rsp + 0x80], eax
mov eax, dword [r14 + 0x44]
sub eax, 1
test r9d, r9d
mov dword [r14 + 0x44], eax
mov dword [rsp + 0xa0], eax
mov rax, qword [rsp + 0x200]
movzx eax, byte [rax]
mov byte [rsp + 0x88], al
mov dword [rsp + 0xb4], eax
mov rax, qword [rsp + 0x200]
mov eax, dword [rax + 4]
mov dword [rsp + 0xa8], eax
jne 0x818528
mov eax, dword [rsp + 0x10c]
mov dword [rsp + 0x70], eax
movzx eax, byte [rsp + 0x88]
sub eax, 9
cmp al, 1
jbe 0x818302
cmp dword [rsp + 0xb4], 0xd
je 0x818302
movzx eax, byte [r14 + 0x1f]
movzx ecx, byte [rsp + 0x88]
and ecx, 0xfffffffd
test al, al
je 0x8190ee
lea edx, [rax - 1]
cmp cl, 0xc
movzx r8d, dl
mov byte [r14 + 0x1f], dl
mov r13d, dword [r14 + r8*4 + 0xd4]
jne 0x8190d6
test dl, dl
je 0x8190ff
mov dword [rsp + 0xb0], 0
sub eax, 2
mov byte [r14 + 0x1f], al
movzx eax, al
mov eax, dword [r14 + rax*4 + 0xd4]
mov dword [rsp + 0x60], eax
mov eax, dword [rsi]
sub eax, dword [rsp + 0x108]
test byte [rsp + 0x124], 1
mov dword [rsp + 0x90], eax
lea ebx, [rax + 1]
je 0x81857e
mov eax, dword [r14 + 0x38]
mov edx, dword [rsp + 0x114]
lea esi, [rax + 1]
mov eax, dword [r14 + 0x34]
mov dword [r14 + 0x38], esi
mov dword [rsp + 0x68], eax
add eax, 1
test edx, edx
mov dword [r14 + 0x34], eax
mov eax, dword [rsp + 0xb0]
lea r10d, [rax + rbx]
jne 0x81849a
mov r8d, dword [rsp + 0x68]
mov dword [rsp + 0x20], r10d
mov r9d, esi
mov edx, 0x72
mov rcx, qword [rsp + 0x58]
call dbg.sqlite3VdbeAddOp3
mov rbx, qword [rsp + 0x58]
mov edx, 0x23
mov dword [rsp + 0x20], 0
mov r9d, dword [rsp + 0x80]
mov r8d, dword [rsp + 0x70]
mov rcx, rbx
call dbg.sqlite3VdbeAddOp3
mov edx, dword [rbp + 0xc]
add eax, 1
mov dword [rsp + 0xb8], eax
test edx, edx
jle 0x817906
mov r8d, dword [rsp + 0xa0]
mov rcx, rbx
call sym.codeOffset.part.375
mov eax, dword [rsp + 0x68]
mov r9d, esi
mov edx, 0x7e
mov r8d, dword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x20], eax
call dbg.sqlite3VdbeAddOp3
mov eax, dword [rsp + 0x90]
lea ebp, [rax - 1]
mov eax, dword [rsp + 0xb0]
lea esi, [rax - 1]
test eax, eax
jle 0x819147
mov rbx, qword [rsp + 0x98]
mov edx, esi
shl rdx, 5
lea rax, [rbx + 0x20]
lea rdx, [rbx + rdx + 0x40]
nop dword [rax + rax]
cmp word [rax], 1
adc ebp, 0
add rax, 0x20
cmp rax, rdx
jne 0x817960
movsxd rax, dword [rsp + 0xb0]
mov qword [rsp + 0xc0], rdi
mov edi, esi
mov rbx, qword [rsp + 0x98]
mov dword [rsp + 0xe0], r13d
mov qword [rsp + 0x98], r12
mov esi, dword [rsp + 0x68]
mov r13, qword [rsp + 0x58]
shl rax, 5
add rbx, rax
mov r12, rbx
mov ebx, dword [rsp + 0x60]
movzx eax, word [r12]
lea r9d, [rax - 1]
test ax, ax
jne 0x8179c5
mov r9d, ebp
sub ebp, 1
lea eax, [rdi + rbx]
mov r8d, esi
mov edx, 0x59
mov dword [rsp + 0x20], eax
mov rcx, r13
sub edi, 1
sub r12, 0x20
call dbg.sqlite3VdbeAddOp3
cmp edi, 0xffffffff
jne 0x8179b1
mov r12, qword [rsp + 0x98]
mov rdi, qword [rsp + 0xc0]
mov r13d, dword [rsp + 0xe0]
movzx eax, byte [rsp + 0x88]
sub eax, 0xa
cmp al, 5
ja case.0x817a20.3
lea rdx, [0x00c50be0]
movzx eax, al
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
cmp dword [rsp + 0xb4], 9
mov dword [rsp + 0x20], 0
je 0x81924e
mov rax, qword [rsp + 0x200]
xor r9d, r9d
mov edx, 0xe
mov rcx, qword [rsp + 0x58]
mov r8d, dword [rax + 4]
call dbg.sqlite3VdbeAddOp3
test r13d, r13d
je 0x817a86
cmp dword [rsp + 0xb4], 0xb
je 0x817ca4
mov eax, dword [rsp + 0x60]
test eax, eax
je 0x817a7b
mov edx, eax
mov rcx, r14
call sym.sqlite3ReleaseTempReg.part.180
mov edx, r13d
mov rcx, r14
call sym.sqlite3ReleaseTempReg.part.180
mov rsi, qword [rsp + 0x58]
mov edx, dword [rsp + 0xa0]
mov rcx, rsi
call dbg.sqlite3VdbeResolveLabel
test byte [rsp + 0x124], 1
mov dword [rsp + 0x20], 0
mov r9d, dword [rsp + 0xb8]
mov r8d, dword [rsp + 0x70]
je 0x818387
mov edx, 3
mov rcx, rsi
call dbg.sqlite3VdbeAddOp3
mov r8d, dword [rsp + 0x110]
test r8d, r8d
jne 0x818600
mov edx, dword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
call dbg.sqlite3VdbeResolveLabel
mov edx, dword [rsp + 0x78]
mov rcx, r15
xor r13d, r13d
call dbg.sqlite3VdbeResolveLabel
mov eax, dword [r14 + 0x30]
test eax, eax
setg r13b
test rdi, rdi
je 0x815ea7
mov rdx, rdi
mov rcx, r12
call dbg.exprListDeleteNN
jmp 0x815ea7
mov rax, qword [rsp + 0x200]
mov ebp, dword [rax + 8]
movzx eax, byte [r14 + 0x1f]
test al, al
je 0x819197
sub eax, 1
mov byte [r14 + 0x1f], al
movzx eax, al
mov esi, dword [r14 + rax*4 + 0xd4]
mov ebx, dword [rsp + 0x60]
mov eax, ebp
mov dword [rsp + 0x20], esi
mov edx, 0x5b
mov r9d, dword [rsp + 0xb0]
shr eax, 0x1f
mov rcx, qword [rsp + 0x58]
lea r8d, [rbx + rax]
sub r9d, eax
call dbg.sqlite3VdbeAddOp3
test ebp, ebp
js 0x819174
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x28], ebp
mov r9d, esi
mov edx, 0x83
mov r8d, dword [rsp + 0xa8]
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
test r13d, r13d
jne 0x817a69
jmp 0x817a86
mov rsi, qword [rsp + 0x58]
mov edx, 0x59
mov ebx, dword [rsp + 0x60]
mov r9d, dword [rsp + 0x90]
mov r8d, dword [rsp + 0x68]
mov rcx, rsi
mov dword [rsp + 0x20], ebx
call dbg.sqlite3VdbeAddOp3
mov r9d, r13d
mov edx, 0x79
mov rcx, rsi
mov ebp, dword [rsp + 0xa8]
mov dword [rsp + 0x20], 0
mov r8d, ebp
call dbg.sqlite3VdbeAddOp3
mov dword [rsp + 0x20], r13d
mov r9d, ebx
mov r8d, ebp
mov edx, 0x7a
mov rcx, rsi
call dbg.sqlite3VdbeAddOp3
movsxd rax, dword [rsi + 0x90]
test eax, eax
jle case.0x817a20.0
imul rax, rax, 0x18
add rax, qword [rsi + 0x88]
mov word [rax - 0x16], 8
jmp case.0x817a20.0
mov rax, qword [rsp + 0x200]
mov edx, 0x5b
mov ebx, dword [rsp + 0xb0]
mov rbp, qword [rsp + 0x58]
mov r8d, dword [rsp + 0x60]
mov rsi, qword [rax + 0x18]
mov dword [rsp + 0x20], r13d
mov r9d, ebx
mov rcx, rbp
call dbg.sqlite3VdbeAddOp3
mov r9d, ebx
mov rcx, rbp
mov edx, eax
mov r8, rsi
call sym.sqlite3VdbeChangeP4
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x28], ebx
mov r9d, r13d
mov r8d, dword [rsp + 0xa8]
mov edx, 0x83
mov rcx, rbp
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
test r13d, r13d
je 0x817a86
cmp dword [rsp + 0xb0], 1
je 0x8194cd
mov eax, dword [rsp + 0xb0]
cmp eax, dword [r14 + 0x28]
jle 0x817a7b
mov dword [r14 + 0x28], eax
mov eax, dword [rsp + 0x60]
mov dword [r14 + 0x2c], eax
jmp 0x817a7b
cmp qword [rsp + 0x68], 0
je 0x81846a
mov rcx, qword [rbp + 0x20]
mov edx, dword [rcx]
lea rax, [rcx + 8]
test edx, edx
jle 0x817d0f
sub edx, 1
shl rdx, 5
lea rdx, [rcx + rdx + 0x28]
nop word [rax + rax]
xor ebx, ebx
add rax, 0x20
mov word [rax - 6], bx
cmp rax, rdx
jne 0x817d00
mov rax, qword [rsp + 0x68]
mov ecx, dword [rax]
add rax, 8
test ecx, ecx
jle 0x817d41
mov rsi, qword [rsp + 0x68]
lea edx, [rcx - 1]
shl rdx, 5
lea rdx, [rsi + rdx + 0x28]
nop
xor r11d, r11d
add rax, 0x20
mov word [rax - 6], r11w
cmp rax, rdx
jne 0x817d30
cmp word [rbp + 2], 0x42
jle 0x817d53
mov r10d, 0x42
mov word [rbp + 2], r10w
mov rdx, qword [rsp + 0x100]
mov dword [rsp + 0x58], 0
test rdx, rdx
je 0x817d70
cmp dword [rdx], ecx
je 0x818a73
mov eax, dword [r14 + 0x44]
mov edx, 0x48
mov rcx, r12
sub eax, 1
mov dword [r14 + 0x44], eax
mov dword [rsp + 0x90], eax
call dbg.sqlite3DbMallocZero
test rax, rax
mov rbx, rax
je 0x815ea7
mov rax, qword [r14 + 0xb8]
lea rsi, [rsp + 0x160]
mov rdi, qword [rsp + 0x68]
mov qword [rsp + 0x88], rsi
mov qword [rbx + 0x40], rax
mov eax, dword [rbp + 0x10]
mov qword [r14 + 0xb8], rbx
mov dword [rbx + 0x3c], eax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x178], 0
mov qword [rsp + 0x180], 0
mov qword [rsp + 0x188], 0
mov qword [rsp + 0x168], rax
mov eax, dword [r14 + 0x38]
mov qword [rsp + 0x190], 0
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x170], rbx
add eax, 1
test rdi, rdi
mov dword [rbx + 0x10], eax
je 0x8186cb
mov eax, dword [rdi]
mov rcx, rsi
mov qword [rbx + 0x18], rdi
mov rdx, qword [rsp + 0x70]
mov dword [rbx + 0xc], eax
call dbg.sqlite3ExprAnalyzeAggList
mov rdx, qword [rsp + 0x100]
mov rcx, rsi
call dbg.sqlite3ExprAnalyzeAggList
cmp qword [rsp + 0xa0], 0
je 0x817ec6
lea rdx, [rsp + 0x140]
xor eax, eax
mov ecx, 6
lea r8, [rsp + 0x130]
mov rdi, rdx
mov rdx, qword [rbp + 0x40]
rep stosd dword [rdi], eax
lea rax, [sym.havingToWhereExprCb]
mov qword [rsp + 0x130], r14
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x158], rbp
test rdx, rdx
je 0x817ea5
mov rcx, r8
call dbg.walkExpr
mov rax, qword [rbp + 0x30]
mov qword [rsp + 0x80], rax
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x88]
call dbg.sqlite3ExprAnalyzeAggregates
mov rdi, qword [rbp + 0x38]
mov eax, dword [rbx + 0x28]
test rdi, rdi
mov dword [rbx + 0x2c], eax
mov eax, dword [rbx + 0x38]
je 0x8189a4
xor edi, edi
test eax, eax
jle 0x817f8c
mov rax, qword [rbx + 0x30]
xor esi, esi
mov qword [rsp + 0xa8], rdi
mov edx, dword [rsp + 0x188]
mov rdi, rsi
mov qword [rsp + 0x1f8], rbp
mov rsi, qword [rsp + 0x88]
jmp 0x817f33
mov edx, dword [rsp + 0x188]
add rdi, 1
mov eax, dword [rbx + 0x38]
and edx, 0xfffdffff
cmp eax, edi
mov dword [rsp + 0x188], edx
jle 0x817f7c
mov rax, qword [rbx + 0x30]
lea rcx, [rdi + rdi*2]
or edx, 0x20000
mov rbp, qword [rax + rcx*8]
mov dword [rsp + 0x188], edx
mov rcx, rsi
mov rdx, qword [rbp + 0x20]
call dbg.sqlite3ExprAnalyzeAggList
test byte [rbp + 7], 1
je 0x817f10
mov rax, qword [rbp + 0x40]
mov rcx, rsi
mov rdx, qword [rax + 0x48]
call dbg.sqlite3ExprAnalyzeAggregates
jmp 0x817f10
mov dword [rsp + 0x118], 0xffffffff
jmp 0x816e91
mov rdi, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0x1f8]
mov edx, dword [r14 + 0x38]
mov dword [rbx + 0x14], edx
cmp byte [r12 + 0x61], 0
jne 0x817b05
mov rsi, qword [rsp + 0x68]
test rsi, rsi
je 0x818713
mov eax, dword [r14 + 0x34]
xor r8d, r8d
mov rcx, r14
mov r9d, dword [rbx + 0x28]
lea edx, [rax + 1]
mov dword [r14 + 0x34], edx
mov rdx, rsi
mov dword [rbx + 4], eax
call dbg.sqlite3KeyInfoFromExprList
mov r9d, dword [rbx + 0xc]
mov edx, 0x6f
mov rcx, r15
mov r8d, dword [rbx + 4]
mov dword [rsp + 0x20], 0
mov qword [rsp + 0xc0], rax
call dbg.sqlite3VdbeAddOp3
mov r8, qword [rsp + 0xc0]
mov r9d, 0xfffffff7
mov rcx, r15
mov edx, eax
mov dword [rsp + 0xe4], eax
call sym.sqlite3VdbeChangeP4
mov eax, dword [r14 + 0x38]
xor r8d, r8d
mov edx, dword [r14 + 0x44]
lea ecx, [rax + 1]
mov dword [rsp + 0xb4], ecx
lea ecx, [rax + 3]
mov dword [rsp + 0xa8], ecx
lea ecx, [rdx - 1]
mov dword [rsp + 0xd0], ecx
lea ecx, [rdx - 2]
lea r10d, [rax + 4]
mov dword [r14 + 0x44], ecx
lea r9d, [rax + 2]
mov dword [rsp + 0xc8], ecx
lea ecx, [rax + 5]
mov eax, dword [rsi]
mov dword [rsp + 0xb8], r10d
mov dword [rsp + 0xe0], ecx
mov rcx, r15
mov dword [rsp + 0xd8], r9d
lea edx, [r10 + rax]
lea r11d, [rdx + 1]
add eax, edx
mov edx, 0x45
mov dword [r14 + 0x38], eax
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x88], r11d
call dbg.sqlite3VdbeAddOp3
mov eax, dword [rsi]
xor r8d, r8d
mov edx, 0x48
mov ecx, dword [rsp + 0xe0]
add eax, ecx
mov r9d, ecx
mov rcx, r15
sub eax, 1
mov dword [rsp + 0x20], eax
call dbg.sqlite3VdbeAddOp3
mov r9d, dword [rsp + 0xc8]
mov edx, 0xc
mov rcx, r15
mov r8d, dword [rsp + 0xb8]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
cmp dword [rsp + 0x58], 1
mov r9, rsi
mov rcx, r14
mov r8, qword [rsp + 0x80]
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x20], 0
mov rdx, qword [rsp + 0x60]
sbb eax, eax
and eax, 0xfffffe00
add eax, 0x240
mov dword [rsp + 0x28], eax
call sym.sqlite3WhereBegin
test rax, rax
mov qword [rsp + 0x80], rax
je 0x817b05
movsx eax, byte [rax + 0x41]
cmp dword [rsi], eax
je 0x819276
cmp byte [rsp + 0xf4], 0
lea r9, str.GROUP_BY
je 0x81815c
test byte [rbp + 4], 1
lea rax, str.DISTINCT
cmove r9, rax
xor edx, edx
mov rcx, r14
lea r8, str.USE_TEMP_B_TREE_FOR__s
call dbg.sqlite3VdbeExplain
mov edx, dword [rbx + 0x28]
mov rax, qword [rsp + 0x68]
test edx, edx
mov r10d, dword [rax]
jle 0x819c41
mov rcx, qword [rbx + 0x20]
sub edx, 1
mov esi, r10d
shl rdx, 5
lea rax, [rcx + 0x1a]
lea rcx, [rcx + rdx + 0x3a]
movsx edx, word [rax]
cmp edx, esi
setge dl
add rax, 0x20
movzx edx, dl
add esi, edx
cmp rcx, rax
jne 0x818197
mov edx, esi
mov rcx, r14
mov dword [rsp + 0x60], r10d
call sym.sqlite3GetTempRange
mov rdx, qword [rsp + 0x68]
xor r9d, r9d
mov dword [rsp + 0x20], 0
mov r8d, eax
mov dword [rsp + 0xb0], eax
call dbg.sqlite3ExprCodeExprList
xor eax, eax
cmp dword [rbx + 0x28], 0
mov r10d, dword [rsp + 0x60]
jle 0x818b8b
mov qword [rsp + 0x1f0], r14
mov r14d, r13d
mov r13, rdi
mov rdi, rbx
mov qword [rsp + 0x1f8], rbp
mov rbx, rax
mov ebp, esi
mov esi, r10d
jmp 0x81821c
add rbx, 1
cmp dword [rdi + 0x28], ebx
jle 0x818b70
mov rdx, rbx
shl rdx, 5
add rdx, qword [rdi + 0x20]
movsx ecx, word [rdx + 0x1a]
cmp ecx, esi
jl 0x81820f
mov eax, dword [rsp + 0xb0]
movsx r9d, word [rdx + 0x18]
mov r8d, dword [rdx + 0x10]
lea ecx, [rax + rsi]
add esi, 1
mov dword [rsp + 0x20], ecx
mov rdx, qword [rdx]
mov rcx, r15
call sym.sqlite3ExprCodeGetColumnOfTable
jmp 0x81820f
mov eax, dword [r14 + 0x34]
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
lea edx, [rax + 1]
mov dword [rsp + 0xf8], eax
mov dword [r14 + 0x34], edx
mov rdx, qword [rbp + 0x20]
call dbg.sqlite3KeyInfoFromExprList
xor r9d, r9d
mov edx, 0x64
mov rcx, r15
mov r8d, dword [rsp + 0xf8]
mov dword [rsp + 0x20], 0
mov rbx, rax
call dbg.sqlite3VdbeAddOp3
mov r9d, 0xfffffff7
mov r8, rbx
mov rcx, r15
mov edx, eax
mov esi, eax
call sym.sqlite3VdbeChangeP4
movsxd rax, dword [r15 + 0x90]
mov dword [rsp + 0xfc], esi
test eax, eax
jle 0x8182dc
mov rdi, qword [r15 + 0x88]
lea rax, [rax + rax*2]
mov edx, 8
lea rax, [rdi + rax*8]
mov word [rax - 0x16], dx
mov byte [rsp + 0xf5], 3
jmp 0x816f20
movsx rax, word [rdx + 0x44]
test eax, eax
jns 0x8164e4
lea r9, str.rowid
jmp 0x8164ef
mov rax, qword [rsp + 0x200]
mov eax, dword [rax + 0xc]
mov dword [rsp + 0x60], eax
jmp 0x81784d
mov r8, qword [rdx]
lea rdx, str._s._s
mov rcx, r12
call dbg.sqlite3MPrintf
mov r9, rax
mov rax, qword [rdi]
cmp byte [rax + 0x61], 0
jne 0x8161a2
lea rax, [sym.sqlite3OomFault]
xor r8d, r8d
mov edx, ebp
mov qword [rsp + 0x20], rax
mov rcx, rdi
call sym.sqlite3VdbeSetColName.part.514
jmp 0x8161a2
mov qword [rsp + 0x100], 0
mov r8d, dword [rsp + 0x118]
test r8d, r8d
js 0x8175fd
mov rcx, qword [r15]
lea rdx, [r15 + 0x88]
call sym.sqlite3VdbeChangeToNoop.isra.359
jmp 0x8175fd
mov rcx, qword [rsp + 0x58]
mov edx, 5
call dbg.sqlite3VdbeAddOp3
jmp 0x817aca
mov rax, qword [rsp + 0x70]
mov dword [rsp + 0x20], 0
mov edx, 0x64
mov rcx, r15
mov r9d, dword [rax]
mov rax, qword [rsp + 0x200]
mov r8d, dword [rax + 4]
call dbg.sqlite3VdbeAddOp3
jmp 0x816ea2
mov rdx, qword [rsp + 0x70]
mov r8d, 0xffffffff
call sym.sqlite3ExprListCompare
test eax, eax
jne 0x8183e8
cmp qword [rbp + 0x70], 0
je 0x819517
mov rcx, qword [rsp + 0x100]
jmp 0x816e19
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x61], 0
jne 0x8174b7
mov rdx, rdi
mov rcx, rax
call sym.sqlite3DbFreeNN
mov eax, dword [rbp + 4]
mov dword [rsp + 0x58], eax
mov rax, qword [rbp + 0x50]
jmp 0x815f31
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x61], 0
jne 0x8174b7
mov rdx, rdi
mov rcx, rax
call sym.sqlite3DbFreeNN
jmp 0x8174c4
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x81845f
mov rax, qword [rax + 0x128]
test rax, rax
je 0x81845f
add dword [rax + 0x30], 1
mov dword [rax + 0x18], 7
mov r13d, 7
jmp 0x815ea7
mov word [rbp + 2], 0
mov dword [rsp + 0x58], 0
jmp 0x817d70
mov rax, qword [rbp + 0x48]
test rax, rax
je 0x819154
cmp qword [rdi + 0x48], 0
jne 0x81603d
jmp 0x8162d0
mov rcx, qword [rsp + 0x58]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x11
mov dword [rsp + 0x20], 0
mov dword [rsp + 0xb8], r10d
call dbg.sqlite3VdbeAddOp3
mov r10d, dword [rsp + 0xb8]
mov r9d, esi
mov edx, 0x72
mov r8d, dword [rsp + 0x68]
mov ebx, eax
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x20], r10d
call dbg.sqlite3VdbeAddOp3
test ebx, ebx
je 0x8178be
mov rax, qword [rsp + 0x58]
mov edx, dword [rax + 0x90]
jns 0x8184fd
lea ebx, [rdx - 1]
mov r10, qword [rsp + 0x58]
lea rax, [0x00ccbc80]
mov rcx, qword [r10]
cmp byte [rcx + 0x61], 0
jne 0x818520
movsxd rax, ebx
imul rax, rax, 0x18
add rax, qword [r10 + 0x88]
mov dword [rax + 8], edx
jmp 0x8178be
mov rbx, qword [rsp + 0x58]
mov dword [rsp + 0x20], 0
mov edx, 0xc
mov r8d, dword [rsp + 0x110]
mov rcx, rbx
call dbg.sqlite3VdbeAddOp3
mov rcx, rbx
xor r8d, r8d
mov edx, 0xb
mov r9d, dword [rsp + 0x80]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov edx, dword [rsp + 0x114]
mov rcx, rbx
call dbg.sqlite3VdbeResolveLabel
jmp 0x8177c4
mov esi, dword [rsp + 0x70]
mov edx, 0x24
mov dword [rsp + 0x20], 0
mov r9d, dword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
mov r8d, esi
call dbg.sqlite3VdbeAddOp3
mov edx, dword [rbp + 0xc]
add eax, 1
mov dword [rsp + 0xb8], eax
test edx, edx
jg 0x818ac8
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x90], ebx
mov dword [rsp + 0x68], eax
jmp 0x817925
mov rcx, qword [rsp + 0x58]
lea r8, [0x00c4f370]
mov edx, 0x98
call sym.sqlite3Expr
mov rcx, qword [r14]
xor edx, edx
mov r8, rax
call sym.sqlite3ExprListAppend.isra.381
mov rdx, rax
mov qword [rsp + 0x130], rax
jmp 0x817322
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov edx, 0x41
call dbg.sqlite3VdbeAddOp3
jmp 0x817adb
mov eax, dword [rbx + 0x34]
or r8d, 0xffffffff
mov rdx, rbp
mov rcx, r14
mov r9, qword [rsp + 0x98]
xor edi, edi
mov dword [rsp + 0x38], eax
mov eax, dword [rbx + 0x30]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xf4]
mov qword [rsp + 0x20], rax
call dbg.selectInnerLoop
mov rcx, rbx
call sym.sqlite3WhereEnd
jmp 0x8176f4
mov rcx, qword [rsp + 0x80]
or r8d, 0xffffffff
mov dword [rcx], eax
call sym.sqlite3ExprListCompare
test eax, eax
jne 0x81869f
mov rdx, qword [rbp + 0x48]
test rdx, rdx
je 0x818697
mov rcx, qword [rsp + 0x58]
call dbg.exprListDeleteNN
mov qword [rbp + 0x48], 0
mov rax, qword [rsp + 0x80]
mov dword [rax], ebx
jmp 0x816684
lea r9, str.DISTINCT
xor edx, edx
mov rcx, r14
lea r8, str.USE_TEMP_B_TREE_FOR__s
call dbg.sqlite3VdbeExplain
jmp 0x817702
mov rsi, qword [rsp + 0x88]
mov dword [rbx + 0xc], 0
mov rdx, qword [rsp + 0x70]
mov qword [rbx + 0x18], 0
mov rcx, rsi
call dbg.sqlite3ExprAnalyzeAggList
mov rdx, qword [rsp + 0x100]
mov rcx, rsi
call dbg.sqlite3ExprAnalyzeAggList
cmp qword [rsp + 0xa0], 0
jne 0x817eb1
jmp 0x817ec6
cmp qword [rbp + 0x30], 0
jne 0x8192dd
mov r8, qword [rbp + 0x20]
cmp dword [r8], 1
jne 0x8192dd
mov rcx, qword [rbp + 0x28]
cmp dword [rcx], 1
jne 0x8192dd
cmp qword [rcx + 0x30], 0
jne 0x8192dd
mov rsi, qword [rcx + 0x28]
mov rcx, qword [r8 + 8]
cmp dword [rsi + 0x54], 0
mov qword [rsp + 0x68], rsi
jne 0x8192dd
cmp byte [rcx], 0xa5
jne 0x8192dd
test eax, eax
je 0x8192dd
mov r8, qword [rbx + 0x30]
mov r8, qword [r8 + 8]
test byte [r8 + 5], 1
je 0x8192dd
test dword [rcx + 4], 0x1000002
jne 0x8192dd
mov rdx, qword [rsi + 0x70]
mov rcx, qword [r14]
test rdx, rdx
je 0x819bf0
call sym.sqlite3SchemaToIndex.part.216
mov dword [rsp + 0x58], eax
mov eax, dword [r14 + 0x34]
mov rcx, r14
mov rsi, qword [rsp + 0x68]
mov edx, dword [rsp + 0x58]
mov dword [rsp + 0xb0], eax
add eax, 1
mov dword [r14 + 0x34], eax
mov eax, dword [rsi + 0x38]
mov dword [rsp + 0x60], eax
call dbg.sqlite3CodeVerifySchema
mov rax, qword [rsi]
xor r9d, r9d
mov rcx, r14
mov r8d, dword [rsi + 0x38]
mov edx, dword [rsp + 0x58]
mov qword [rsp + 0x20], rax
call sym.sqlite3TableLock
test byte [rsi + 0x40], 0x80
je 0x818829
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x818829
movzx edx, byte [rax + 0x64]
mov rsi, rax
and edx, 3
cmp dl, 2
jne 0x818820
jmp 0x819488
movzx edx, byte [rsi + 0x64]
and edx, 3
cmp dl, 2
je 0x819488
mov rsi, qword [rsi + 0x28]
test rsi, rsi
jne 0x818810
mov rax, qword [rbp + 0x28]
test byte [rax + 0x48], 1
jne 0x8191a7
mov rax, qword [rsp + 0x68]
xor esi, esi
mov rax, qword [rax + 0x10]
test rax, rax
je 0x8191a7
test byte [rax + 0x64], 4
jne 0x81886b
mov rcx, qword [rsp + 0x68]
movzx edx, word [rax + 0x5c]
cmp dx, word [rcx + 0x4c]
jge 0x81886b
cmp qword [rax + 0x48], 0
je 0x8194b6
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x81884b
test rsi, rsi
je 0x8191a7
mov r9d, dword [rsi + 0x58]
mov rdx, rsi
mov rcx, r14
mov dword [rsp + 0x80], r9d
call dbg.sqlite3KeyInfoOfIndex
mov r9d, dword [rsp + 0x80]
mov edx, 0x60
mov rcx, r15
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0x58]
mov r8d, dword [rsp + 0xb0]
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
mov r10, qword [rsp + 0x60]
test r10, r10
je 0x8188e4
mov r9d, 0xfffffff7
mov r8, r10
or edx, 0xffffffff
mov rcx, r15
call sym.sqlite3VdbeChangeP4
mov rax, qword [rbx + 0x30]
mov edx, 0x5c
mov rcx, r15
mov ebx, dword [rsp + 0xb0]
mov r9d, dword [rax + 0x10]
mov dword [rsp + 0x20], 0
mov r8d, ebx
call dbg.sqlite3VdbeAddOp3
xor r9d, r9d
mov r8d, ebx
mov edx, 0x74
mov dword [rsp + 0x20], 0
mov rcx, r15
call dbg.sqlite3VdbeAddOp3
cmp byte [r14 + 0x11b], 2
je 0x8194ee
mov esi, dword [rsp + 0x90]
mov r9d, 0x10
mov rcx, r14
mov qword [rsp + 0x100], 0
mov rdx, qword [rsp + 0xa0]
mov r8d, esi
call sym.sqlite3ExprIfFalse
mov dword [rsp + 0x38], esi
xor r9d, r9d
or r8d, 0xffffffff
mov rax, qword [rsp + 0x200]
mov dword [rsp + 0x30], esi
mov rdx, rbp
mov rcx, r14
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], rax
call dbg.selectInnerLoop
mov edx, dword [rsp + 0x90]
mov rcx, r15
call dbg.sqlite3VdbeResolveLabel
jmp 0x8176f4
cmp qword [rbp + 0x40], 0
jne 0x817ede
cmp eax, 1
jne 0x817ede
mov rax, qword [rbx + 0x30]
mov rdx, qword [rax]
mov r9, qword [rdx + 0x20]
test r9, r9
je 0x817eea
mov esi, dword [r9]
cmp esi, 1
jne 0x817eea
test byte [rdx + 7], 1
jne 0x817eea
mov r11, qword [rdx + 8]
lea rcx, [0x00c5e360]
xor r10d, r10d
jmp 0x818a05
movzx r8d, byte [rcx + r8]
cmp byte [rcx + rdx], r8b
jne 0x819bfd
add r10, 1
lea r8, [0x00c50b9e]
movzx edx, byte [r11 + r10]
movzx r8d, byte [r8 + r10]
cmp edx, r8d
jne 0x8189f2
test edx, edx
jne 0x818a01
mov rcx, qword [r9 + 8]
call dbg.sqlite3ExprCanBeNull
movzx edi, byte [rsp + 0xb0]
test eax, eax
mov eax, 2
cmovne edi, eax
mov byte [rsp + 0xb0], dil
xor r8d, r8d
mov rdx, r9
mov rcx, r12
call dbg.sqlite3ExprListDup
test rax, rax
mov rdi, rax
je 0x818a63
movzx eax, byte [rsp + 0xb0]
mov byte [rdi + 0x18], al
mov byte [rsp + 0xb0], sil
mov eax, dword [rbx + 0x38]
jmp 0x817ede
test ecx, ecx
jle 0x818aa1
mov r9, qword [rsp + 0x68]
lea r8d, [rcx - 1]
mov eax, 0x18
shl r8, 5
add r8, 0x38
movzx ecx, byte [rdx + rax]
and ecx, 1
mov byte [r9 + rax], cl
add rax, 0x20
cmp r8, rax
jne 0x818a8d
mov rcx, qword [rsp + 0x68]
or r8d, 0xffffffff
call sym.sqlite3ExprListCompare
test eax, eax
sete al
movzx eax, al
mov dword [rsp + 0x58], eax
jmp 0x817d70
mov eax, dword [rbx + 0x30]
jmp 0x8175ee
mov r8d, dword [rsp + 0xa0]
mov rcx, qword [rsp + 0x58]
call sym.codeOffset.part.375
mov dword [rsp + 0x90], ebx
mov dword [rsp + 0x68], esi
jmp 0x817925
mov eax, dword [r14 + 0x38]
mov rcx, rsi
mov r8d, 1
lea r9d, [rax + 1]
add eax, 2
mov dword [rdi + 0x84], r9d
mov dword [r14 + 0x38], eax
mov dword [rdi + 0x88], eax
mov eax, dword [r14 + 0x34]
lea edx, [rax + 1]
mov dword [r14 + 0x34], edx
mov edx, 0x45
mov dword [rdi + 0x64], eax
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
xor r8d, r8d
mov rcx, rsi
mov edx, 0x45
mov r9d, dword [rdi + 0x88]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov r9d, dword [rdi + 0x58]
mov edx, 0x62
mov rcx, rsi
mov r8d, dword [rdi + 0x64]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
jmp 0x817546
mov esi, ebp
mov rbx, rdi
mov rbp, qword [rsp + 0x1f8]
mov rdi, r13
mov r13d, r14d
mov r14, qword [rsp + 0x1f0]
movzx eax, byte [r14 + 0x1f]
test al, al
je 0x819562
sub eax, 1
mov byte [r14 + 0x1f], al
movzx eax, al
mov r10d, dword [r14 + rax*4 + 0xd4]
mov dword [rsp + 0x20], r10d
mov r9d, esi
mov edx, 0x5b
mov rcx, r15
mov r8d, dword [rsp + 0xb0]
mov dword [rsp + 0x60], r10d
call dbg.sqlite3VdbeAddOp3
mov r10d, dword [rsp + 0x60]
mov edx, 0x84
mov rcx, r15
mov r8d, dword [rbx + 4]
mov dword [rsp + 0x20], 0
mov r9d, r10d
call dbg.sqlite3VdbeAddOp3
mov r10d, dword [rsp + 0x60]
test r10d, r10d
je 0x818c02
mov edx, r10d
mov rcx, r14
call sym.sqlite3ReleaseTempReg.part.180
cmp esi, 1
je 0x81954e
cmp dword [r14 + 0x28], esi
jge 0x818c20
mov eax, dword [rsp + 0xb0]
mov dword [r14 + 0x28], esi
mov dword [r14 + 0x2c], eax
mov rcx, qword [rsp + 0x80]
call sym.sqlite3WhereEnd
mov ecx, dword [r14 + 0x34]
lea eax, [rcx + 1]
mov dword [rsp + 0xb0], ecx
mov dword [r14 + 0x34], eax
mov dword [rbx + 8], ecx
movzx eax, byte [r14 + 0x1f]
test al, al
je 0x81953d
sub eax, 1
mov byte [r14 + 0x1f], al
movzx eax, al
mov r10d, dword [r14 + rax*4 + 0xd4]
mov r9d, r10d
mov edx, 0x72
mov rcx, r15
mov dword [rsp + 0x20], esi
mov r8d, dword [rsp + 0xb0]
mov dword [rsp + 0x60], r10d
call dbg.sqlite3VdbeAddOp3
mov r8d, dword [rbx + 4]
mov edx, 0x23
mov rcx, r15
mov r9d, dword [rsp + 0x90]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
cmp dword [rsp + 0x58], 0
mov byte [rbx + 1], 1
mov r10d, dword [rsp + 0x60]
je 0x818cbf
test byte [r12 + 0x5c], 4
je 0x819b8e
mov eax, dword [r15 + 0x90]
mov dword [rsp + 0x60], eax
mov r8d, dword [rbx + 4]
mov r9d, r10d
mov edx, 0x7e
mov rcx, r15
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0x20], eax
call dbg.sqlite3VdbeAddOp3
mov dword [rsp + 0x58], 1
mov rcx, qword [rsp + 0x68]
mov eax, dword [rcx]
test eax, eax
jle 0x818d71
xor esi, esi
mov qword [rsp + 0xe8], rdi
mov rdi, rsi
mov rsi, rbx
mov rbx, rcx
jmp 0x818d38
mov dword [rsp + 0x20], r8d
mov r9d, edi
mov edx, 0x59
mov rcx, r15
mov r8d, dword [rsp + 0xb0]
call dbg.sqlite3VdbeAddOp3
mov eax, dword [rbx]
add rdi, 1
cmp eax, edi
jle 0x818d66
mov r9d, dword [rsp + 0x58]
mov eax, dword [rsp + 0x88]
test r9d, r9d
lea r8d, [rax + rdi]
jne 0x818d11
mov rax, rdi
mov byte [rsi], 1
mov rcx, r14
shl rax, 5
mov rdx, qword [rbx + rax + 8]
call sym.sqlite3ExprCode
jmp 0x818d2e
mov rdi, qword [rsp + 0xe8]
mov rbx, rsi
mov rsi, qword [rsp + 0xc0]
test rsi, rsi
je 0x818d81
add dword [rsi], 1
mov r9d, dword [rsp + 0x88]
mov edx, 0x56
mov rcx, r15
mov dword [rsp + 0x20], eax
mov r8d, dword [rsp + 0xe0]
call dbg.sqlite3VdbeAddOp3
mov r8, qword [rsp + 0xc0]
mov r9d, 0xfffffff7
mov rcx, r15
mov edx, eax
call sym.sqlite3VdbeChangeP4
xor r9d, r9d
mov edx, 0x10
mov rcx, r15
mov esi, dword [r15 + 0x90]
lea r8d, [rsi + 1]
mov dword [rsp + 0x20], r8d
call dbg.sqlite3VdbeAddOp3
mov rax, qword [rsp + 0x68]
mov edx, 0x4c
mov rcx, qword [r14 + 0x10]
mov r9d, dword [rsp + 0xe0]
mov r8d, dword [rsp + 0x88]
mov eax, dword [rax]
mov dword [rsp + 0x20], eax
call dbg.sqlite3VdbeAddOp3
mov r9d, dword [rsp + 0xd0]
mov edx, 0xc
mov rcx, r15
mov r8d, dword [rsp + 0xa8]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov r9d, dword [rsp + 0x90]
mov edx, 0x30
mov rcx, r15
mov r8d, dword [rsp + 0xd8]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov r9d, dword [rsp + 0xc8]
mov rcx, r15
mov edx, 0xc
mov r8d, dword [rsp + 0xb8]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
test esi, esi
mov edx, dword [r15 + 0x90]
jns 0x818e80
lea esi, [rdx - 1]
mov rcx, qword [r15]
lea rax, [0x00ccbc80]
cmp byte [rcx + 0x61], 0
jne 0x818e9e
movsxd rax, esi
imul rax, rax, 0x18
add rax, qword [r15 + 0x88]
mov esi, dword [rsp + 0xb4]
mov dword [rax + 8], edx
mov r8, rbx
mov rcx, r14
mov edx, esi
call dbg.updateAccumulator
mov r9d, esi
mov edx, 0x45
mov rcx, r15
mov dword [rsp + 0x20], 0
mov r8d, 1
call dbg.sqlite3VdbeAddOp3
cmp dword [rsp + 0x58], 0
je 0x81911e
mov r8d, dword [rbx + 4]
mov edx, 3
mov rcx, r15
mov dword [rsp + 0x20], 0
mov r9d, dword [rsp + 0x60]
call dbg.sqlite3VdbeAddOp3
mov esi, dword [rsp + 0xa8]
mov rcx, r15
mov dword [rsp + 0x20], 0
mov edx, 0xc
mov r9d, dword [rsp + 0xd0]
mov r8d, esi
call dbg.sqlite3VdbeAddOp3
xor r8d, r8d
mov rcx, r15
mov edx, 0xb
mov r9d, dword [rsp + 0x90]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov r10d, dword [r15 + 0x90]
mov rcx, r15
mov dword [rsp + 0x20], 0
mov r9d, dword [rsp + 0xd8]
mov r8d, 1
mov edx, 0x45
mov dword [rsp + 0x58], r10d
call dbg.sqlite3VdbeAddOp3
xor r9d, r9d
mov r8d, esi
mov rcx, r15
mov dword [rsp + 0x20], 0
mov edx, 0x41
mov dword [rsp + 0xa8], esi
call dbg.sqlite3VdbeAddOp3
mov edx, dword [rsp + 0xd0]
mov rcx, r15
call dbg.sqlite3VdbeResolveLabel
mov esi, dword [r15 + 0x90]
mov rcx, r15
mov dword [rsp + 0x20], 0
mov r8d, dword [rsp + 0xb4]
mov edx, 0x30
lea r9d, [rsi + 2]
add esi, 1
call dbg.sqlite3VdbeAddOp3
xor r9d, r9d
mov rcx, r15
mov edx, 0x41
mov r8d, dword [rsp + 0xa8]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov rdx, qword [rbx + 0x30]
lea r8, [rbx + 0x38]
mov rcx, qword [r14 + 0x10]
call sym.finalizeAggFunctions.isra.371
mov rdx, qword [rsp + 0xa0]
mov r8d, esi
mov rcx, r14
mov r9d, 0x10
call sym.sqlite3ExprIfFalse
mov r10d, dword [rsp + 0x58]
mov rdx, rbp
mov rcx, r14
mov rax, qword [rsp + 0x200]
or r8d, 0xffffffff
mov dword [rsp + 0x30], esi
mov r9, qword [rsp + 0x98]
mov dword [rsp + 0x38], r10d
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xf4]
mov qword [rsp + 0x20], rax
call dbg.selectInnerLoop
xor r9d, r9d
mov rcx, r15
mov edx, 0x41
mov r8d, dword [rsp + 0xa8]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
mov edx, dword [rsp + 0xc8]
mov rcx, r15
call dbg.sqlite3VdbeResolveLabel
mov rdx, rbx
mov rcx, r14
call dbg.resetAccumulator
xor r8d, r8d
mov rcx, r15
mov edx, 0x45
mov r9d, dword [rsp + 0xb4]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
xor r9d, r9d
mov edx, 0x41
mov rcx, r15
mov r8d, dword [rsp + 0xb8]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
jmp 0x818990
mov edx, dword [rsp + 0xb0]
mov rcx, r14
call sym.sqlite3GetTempRange
mov dword [rsp + 0x60], eax
jmp 0x81784d
mov eax, dword [r14 + 0x38]
cmp cl, 0xc
lea r13d, [rax + 1]
mov dword [r14 + 0x38], r13d
jne 0x8190d6
mov dword [rsp + 0xb0], 0
mov eax, dword [r14 + 0x38]
add eax, 1
mov dword [rsp + 0x60], eax
mov dword [r14 + 0x38], eax
jmp 0x81784d
mov rcx, qword [rsp + 0x80]
call sym.sqlite3WhereEnd
mov rcx, qword [r15]
lea rdx, [r15 + 0x88]
mov r8d, dword [rsp + 0xe4]
call sym.sqlite3VdbeChangeToNoop.isra.359
jmp 0x818efc
test esi, esi
js 0x817a00
jmp 0x817970
cmp dword [rsp + 0x90], 0
je 0x8162d0
mov rax, qword [rdi + 0x48]
test rax, rax
jne 0x81603d
jmp 0x8162d0
mov r8d, dword [rsp + 0xa8]
mov dword [rsp + 0x20], ebx
mov r9d, esi
mov edx, 0x7a
mov rcx, qword [rsp + 0x58]
call dbg.sqlite3VdbeAddOp3
jmp 0x817ba1
mov eax, dword [r14 + 0x38]
lea esi, [rax + 1]
mov dword [r14 + 0x38], esi
jmp 0x817b48
mov esi, dword [rsp + 0xb0]
mov edx, 0x60
mov rcx, r15
mov dword [rsp + 0x28], 1
mov eax, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x60]
mov r8d, esi
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
mov rax, qword [rbx + 0x30]
mov r8d, esi
mov rcx, r15
mov edx, 0x5c
mov r9d, dword [rax + 0x10]
mov dword [rsp + 0x20], 0
call dbg.sqlite3VdbeAddOp3
xor r9d, r9d
mov r8d, esi
mov edx, 0x74
mov dword [rsp + 0x20], 0
mov rcx, r15
call dbg.sqlite3VdbeAddOp3
cmp byte [r14 + 0x11b], 2
jne 0x818934
lea rax, [0x00c4da6c]
mov rdx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x68]
lea r8, str.SCAN_TABLE__s_s_s
mov rcx, r14
mov qword [rsp + 0x20], rdx
xor edx, edx
mov r9, qword [rax]
call dbg.sqlite3VdbeExplain
jmp 0x818934
mov rax, qword [rsp + 0x200]
mov edx, 0x50
mov r9d, dword [rsp + 0xb0]
mov rcx, qword [rsp + 0x58]
mov r8d, dword [rax + 0xc]
call dbg.sqlite3VdbeAddOp3
jmp 0x817ba1
cmp dword [rsp + 0x58], 0
je 0x81949b
test byte [r12 + 0x5c], 4
jne 0x8192ba
mov rax, qword [rsp + 0x80]
test byte [rax + 0x44], 8
je 0x8192ba
mov r8d, dword [rsp + 0x118]
lea rdx, [r15 + 0x88]
mov qword [rsp + 0x100], 0
mov rcx, qword [r15]
call sym.sqlite3VdbeChangeToNoop.isra.359
mov eax, dword [r15 + 0x90]
mov dword [rsp + 0x58], 0
mov dword [rsp + 0xb0], 0
mov dword [rsp + 0x60], eax
jmp 0x818cf1
cmp dword [rbx + 0x2c], 0
je 0x81942a
test eax, eax
jle 0x819424
mov rcx, qword [rbx + 0x30]
xor r8d, r8d
mov r9, qword [rcx]
test byte [r9 + 7], 1
jne 0x81930f
mov r9, qword [rcx + 8]
test byte [r9 + 4], 0x20
jne 0x81942a
add r8d, 1
add rcx, 0x18
cmp r8d, eax
jne 0x8192f6
lea r10d, [rdx + 1]
xor r8d, r8d
mov edx, 0x45
mov dword [r14 + 0x38], r10d
mov r9d, r10d
mov rcx, r15
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x58], r10d
call dbg.sqlite3VdbeAddOp3
mov rdx, rbx
mov rcx, r14
call dbg.resetAccumulator
mov rdx, qword [rsp + 0x60]
mov r9, rdi
mov rcx, r14
movzx eax, byte [rsp + 0xb0]
mov dword [rsp + 0x30], 0
mov r8, qword [rsp + 0x80]
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x28], eax
call sym.sqlite3WhereBegin
test rax, rax
mov rsi, rax
je 0x817b05
mov r10d, dword [rsp + 0x58]
mov r8, rbx
mov rcx, r14
mov edx, r10d
call dbg.updateAccumulator
mov r10d, dword [rsp + 0x58]
test r10d, r10d
je 0x8193cb
mov dword [rsp + 0x20], 0
mov r9d, r10d
mov edx, 0x45
mov rcx, r15
mov r8d, 1
call dbg.sqlite3VdbeAddOp3
test byte [rsi + 0x44], 4
mov edx, dword [rsi + 0x30]
je 0x819406
movzx eax, byte [rsi + 0x40]
sub eax, 1
cdqe
imul rax, rax, 0x60
mov r9d, dword [rsi + rax + 0x370]
cmp r9d, edx
je 0x819406
mov dword [rsp + 0x20], 0
xor r8d, r8d
mov edx, 0xb
mov rcx, r15
call dbg.sqlite3VdbeAddOp3
mov rcx, rsi
call sym.sqlite3WhereEnd
mov rdx, qword [rbx + 0x30]
lea r8, [rbx + 0x38]
mov rcx, qword [r14 + 0x10]
call sym.finalizeAggFunctions.isra.371
jmp 0x818934
je 0x81931c
mov rdx, rbx
mov rcx, r14
call dbg.resetAccumulator
mov rdx, qword [rsp + 0x60]
mov r9, rdi
mov rcx, r14
movzx eax, byte [rsp + 0xb0]
mov dword [rsp + 0x30], 0
mov r8, qword [rsp + 0x80]
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x28], eax
call sym.sqlite3WhereBegin
test rax, rax
mov rsi, rax
je 0x817b05
mov r8, rbx
xor edx, edx
mov rcx, r14
call dbg.updateAccumulator
jmp 0x8193cb
mov rdx, qword [rbp + 0x28]
test byte [rdx + 0x48], 1
jne 0x81887d
jmp 0x81884b
mov eax, dword [r15 + 0x90]
mov dword [rsp + 0xb0], 0
mov dword [rsp + 0x60], eax
jmp 0x818cf1
test rsi, rsi
je 0x8194c5
cmp dx, word [rsi + 0x5c]
jge 0x81886b
mov rsi, rax
jmp 0x81886b
mov edx, dword [rsp + 0x60]
mov rcx, r14
call sym.sqlite3ReleaseTempRange.part.182
jmp 0x817a7b
mov dword [rsp + 0x80], 0
jmp 0x816327
mov rax, qword [rsp + 0x68]
test byte [rax + 0x40], 0x80
je 0x819508
movzx eax, byte [rsi + 0x64]
and eax, 3
cmp al, 2
je 0x81921c
mov rax, qword [rsi]
lea rdx, str._USING_COVERING_INDEX
jmp 0x819226
and dword [rbp + 4], 0xfffffffe
xor r8d, r8d
mov rcx, r12
mov rdx, qword [rsp + 0x70]
call dbg.sqlite3ExprListDup
or dword [rbp + 4], 8
mov qword [rsp + 0x68], rax
mov qword [rbp + 0x38], rax
jmp 0x8183e8
mov eax, dword [r14 + 0x38]
lea r10d, [rax + 1]
mov dword [r14 + 0x38], r10d
jmp 0x818c61
mov edx, dword [rsp + 0xb0]
mov rcx, r14
call sym.sqlite3ReleaseTempRange.part.182
jmp 0x818c20
mov eax, dword [r14 + 0x38]
lea r10d, [rax + 1]
mov dword [r14 + 0x38], r10d
jmp 0x818baa
mov r15, qword [rsp + 0x1f0]
mov ebx, dword [r15 + 0x30]
test ebx, ebx
jne 0x817227
mov rsi, qword [rbp + 0x28]
mov ebx, 0xffffffff
jmp 0x81603d
mov rsi, r12
mov r12, qword [rsp + 0x60]
mov ebx, r15d
mov r15, qword [rsp + 0x1f0]
imul rax, r12, 0x70
lea rdi, [rsi + rax]
mov qword [rsp + 0xa0], rax
mov rdx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x30]
test rdx, rdx
mov qword [rsp + 0x78], rax
je 0x8195d2
mov rcx, r13
call sym.sqlite3DbFreeNN
imul rax, r12, 0x70
mov rdx, qword [rsi + rax + 0x18]
test rdx, rdx
je 0x8195e8
mov rcx, r13
call sym.sqlite3DbFreeNN
imul rax, r12, 0x70
mov rdx, qword [rsi + rax + 0x20]
test rdx, rdx
je 0x8195fe
mov rcx, r13
call sym.sqlite3DbFreeNN
imul rax, r12, 0x70
mov qword [rdi + 0x10], 0
add rax, rsi
mov qword [rax + 0x18], 0
mov qword [rax + 0x20], 0
mov qword [rax + 0x30], 0
mov rax, qword [rax + 0x28]
test rax, rax
je 0x81964d
mov edx, dword [rax + 0x3c]
cmp edx, 1
je 0x819bcb
sub edx, 1
mov dword [rax + 0x3c], edx
imul rax, r12, 0x70
mov qword [rsi + rax + 0x28], 0
mov rax, qword [rsp + 0xa0]
lea rdi, [rsp + 0x160]
mov r14, rbp
mov qword [rsp + 0x1f8], rbp
mov qword [rsp + 0x60], rdi
imul rdi, r12, 0x70
mov dword [rsp + 0x88], 0xffffffff
mov qword [rsp + 0xc0], rsi
add rax, 8
mov dword [rsp + 0xe0], ebx
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xc8], r12
mov rbp, rax
mov r12, qword [r14 + 0x28]
mov rdi, qword [rbp + 0x28]
test r12, r12
mov ebx, dword [rdi]
je 0x819a33
mov rax, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xa8]
movzx esi, byte [rax + rsi + 0x44]
cmp ebx, 1
jg 0x8199fb
jne 0x8197ee
mov rax, qword [rsp + 0xa0]
lea r8, [rdi + 8]
xor r10d, r10d
mov qword [rsp + 0xd0], r14
mov qword [rsp + 0xd8], rbp
mov r14, r12
mov ebp, r10d
mov qword [rsp + 0x1f0], r15
mov r15d, esi
lea r9, [r12 + rax]
mov r12d, ebx
mov rbx, r8
mov rsi, r9
mov rdx, qword [rsi + 0x58]
test rdx, rdx
je 0x819734
mov rcx, r13
call sym.sqlite3IdListDelete.part.204
mov rax, qword [rbx]
add ebp, 1
mov rdi, rbx
mov ecx, 0xe
add rsi, 0x70
add rbx, 0x70
mov qword [rsi - 0x68], rax
mov rax, qword [rbx - 0x68]
mov qword [rsi - 0x60], rax
mov rax, qword [rbx - 0x60]
mov qword [rsi - 0x58], rax
mov rax, qword [rbx - 0x58]
mov qword [rsi - 0x50], rax
mov rax, qword [rbx - 0x50]
mov qword [rsi - 0x48], rax
mov rax, qword [rbx - 0x48]
mov qword [rsi - 0x40], rax
mov rax, qword [rbx - 0x40]
mov qword [rsi - 0x38], rax
mov rax, qword [rbx - 0x38]
mov qword [rsi - 0x30], rax
mov rax, qword [rbx - 0x30]
mov qword [rsi - 0x28], rax
mov rax, qword [rbx - 0x28]
mov qword [rsi - 0x20], rax
mov rax, qword [rbx - 0x20]
mov qword [rsi - 0x18], rax
mov rax, qword [rbx - 0x18]
mov qword [rsi - 0x10], rax
mov rax, qword [rbx - 0x10]
mov qword [rsi - 8], rax
mov rax, qword [rbx - 8]
mov qword [rsi], rax
mov eax, dword [rbx - 0x2c]
mov dword [rsp + 0x88], eax
xor eax, eax
cmp r12d, ebp
rep stosq qword [rdi], rax
jg 0x819723
mov ebx, r12d
mov esi, r15d
mov r12, r14
mov rbp, qword [rsp + 0xd8]
mov r14, qword [rsp + 0xd0]
mov r15, qword [rsp + 0x1f0]
mov rax, qword [rsp + 0xa8]
mov byte [r12 + rax + 0x44], sil
mov rax, qword [rbp + 0x48]
test rax, rax
je 0x81980f
test byte [r14 + 6], 0x40
je 0x819a5a
cmp dword [rsp + 0x80], 1
mov r8, qword [rbp + 0x30]
mov qword [rbp + 0x30], 0
jne 0x819834
mov edx, dword [rsp + 0x88]
mov rcx, r8
call dbg.sqlite3SetJoinExpr
test r8, r8
je 0x819857
mov r9, qword [r14 + 0x30]
test r9, r9
je 0x819a2a
mov edx, 0x2c
mov rcx, r15
call sym.sqlite3PExpr
mov qword [r14 + 0x30], rax
cmp byte [r13 + 0x61], 0
je 0x8199a8
mov eax, dword [rbp + 4]
and eax, 0x100
or dword [r14 + 4], eax
mov rax, qword [rbp + 0x60]
test rax, rax
je 0x819883
mov qword [r14 + 0x60], rax
mov qword [rbp + 0x60], 0
test ebx, ebx
jle 0x819920
mov rax, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x60]
lea rdi, [r12 + rax]
lea eax, [rbx - 1]
add rax, qword [rsp + 0xc8]
imul rax, rax, 0x70
lea rbx, [r12 + rax + 0x78]
cmp qword [rdi + 0x20], 0
je 0x819917
mov qword [rsi], 0
mov rdx, r14
mov rcx, rsi
lea rax, [sym.recomputeColumnsUsedExpr]
mov qword [rsi + 8], 0
mov qword [rsi + 0x10], 0
mov qword [rsi + 0x18], 0
mov qword [rsi + 0x20], 0
mov qword [rsp + 0x168], rax
lea rax, [sym.sqlite3SelectWalkNoop]
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x188], rdi
mov qword [rdi + 0x58], 0
call sym.sqlite3WalkSelect.part.162
add rdi, 0x70
cmp rbx, rdi
jne 0x8198b0
mov r14, qword [r14 + 0x50]
mov rbp, qword [rbp + 0x50]
test r14, r14
jne 0x8196af
mov rax, qword [rsp + 0x60]
mov ecx, 6
mov rbp, qword [rsp + 0x1f8]
lea rdx, [rax + 0x18]
xor eax, eax
cmp qword [rsp + 0x78], 0
mov rdi, rdx
rep stosd dword [rdi], eax
lea rax, [sym.agginfoPersistExprCb]
mov qword [rsp + 0x160], r15
mov qword [rsp + 0x168], rax
lea rax, [sym.sqlite3SelectWalkNoop]
mov qword [rsp + 0x170], rax
je 0x81957b
mov rsi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x60]
mov rdx, rsi
call sym.sqlite3WalkSelect.part.162
mov r8d, 1
mov rdx, rsi
mov rcx, r13
call dbg.clearSelect
jmp 0x81957b
mov eax, dword [rsp + 0xb4]
xor r8d, r8d
mov rdx, r14
mov qword [rsp + 0x160], r15
mov rcx, qword [rsp + 0x60]
mov dword [rsp + 0x168], eax
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x16c], eax
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x170], eax
mov rax, qword [rbp + 0x20]
mov qword [rsp + 0x178], rax
call sym.substSelect.part.503
jmp 0x819862
mov eax, dword [rsp + 0xe0]
lea r8d, [rbx - 1]
mov rdx, r12
mov rcx, r15
lea r9d, [rax + 1]
call dbg.sqlite3SrcListEnlarge
test rax, rax
mov r12, rax
je 0x819931
mov qword [r14 + 0x28], rax
jmp 0x8196e6
mov qword [r14 + 0x30], r8
jmp 0x819857
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r15
call dbg.sqlite3SrcListAppend
test rax, rax
mov r12, rax
je 0x819931
mov qword [r14 + 0x28], rax
xor esi, esi
jmp 0x8196d7
mov ecx, dword [rax]
xor edx, edx
jmp 0x819a73
mov r8, rdx
add rdx, 1
shl r8, 5
mov word [rax + r8 + 0x20], 0
cmp ecx, edx
jg 0x819a60
mov qword [r14 + 0x48], rax
mov qword [rbp + 0x48], 0
jmp 0x81980f
cmp eax, 1
mov r14, r15
mov qword [rsp + 0x60], rsi
mov r12, qword [rsp + 0x58]
mov r13d, dword [rsp + 0x68]
mov r15, qword [rsp + 0x70]
jle 0x816db9
cmp word [r12 + 0x5c], 0
js 0x81684f
lea rax, [rsp + 0x130]
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x130], r14
lea rbx, [rsp + 0x160]
mov r12, rax
lea rdi, [sym.propagateConstantExprRewrite]
lea rsi, [sym.sqlite3SelectWalkNoop]
jmp 0x819af6
mov r10d, dword [rsp + 0x13c]
test r10d, r10d
je 0x816dad
mov rdx, qword [rbp + 0x30]
mov rcx, r12
mov qword [rsp + 0x138], 0
mov qword [rsp + 0x140], 0
call dbg.findConstInWhere
mov r11d, dword [rsp + 0x138]
test r11d, r11d
je 0x819ae5
mov rdx, qword [rbp + 0x30]
mov qword [rbx + 0x18], 0
mov qword [rbx + 0x20], 0
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x168], rdi
test rdx, rdx
mov qword [rsp + 0x170], rsi
mov qword [rsp + 0x188], r12
je 0x819b68
mov rcx, rbx
call dbg.walkExpr
mov rdx, qword [rsp + 0x140]
test rdx, rdx
je 0x819ae5
mov rax, qword [rsp + 0x130]
mov rcx, qword [rax]
call sym.sqlite3DbFreeNN
jmp 0x819ae5
mov rcx, qword [r15]
lea rdx, [r15 + 0x88]
mov dword [rsp + 0x58], r10d
mov r8d, dword [rsp + 0x118]
mov qword [rsp + 0x100], 0
call sym.sqlite3VdbeChangeToNoop.isra.359
mov eax, dword [r15 + 0x90]
mov r10d, dword [rsp + 0x58]
mov dword [rsp + 0x60], eax
jmp 0x818cca
mov rdx, qword [r15 + 0xa0]
test rdx, rdx
cmove rdx, r15
mov rcx, qword [rdx + 0x180]
mov qword [rax + 0x78], rcx
mov qword [rdx + 0x180], rax
jmp 0x819640
mov dword [rsp + 0x58], 0xffff8000
jmp 0x8187a5
lea rsi, [0x00c50ba2]
xor r10d, r10d
jmp 0x819c1c
movzx r8d, byte [rcx + r8]
cmp byte [rcx + rdx], r8b
jne 0x817eea
add r10, 1
movzx edx, byte [r11 + r10]
movzx r8d, byte [rsi + r10]
cmp edx, r8d
jne 0x819c09
test edx, edx
jne 0x819c18
mov byte [rsp + 0xb0], 1
mov esi, 2
jmp 0x818a42
mov esi, r10d
jmp 0x8181ad