Function at 0x476650
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, 0x1b8
mov rax, qword [rcx]
mov rbp, rdx
mov rbx, rcx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x210], r8
call sym.sqlite3GetVdbe
test rbp, rbp
mov qword [rsp + 0x58], rax
jne 0x476692
mov esi, 1
jmp 0x479ee5
cmp dword [rbx + 0x30], 0
jne 0x476688
xor r9d, r9d
xor r8d, r8d
mov edx, 0x15
mov qword [rsp + 0x20], 0
mov rcx, rbx
call sym.sqlite3AuthCheck
test eax, eax
jne 0x476688
mov rax, qword [rsp + 0x210]
cmp byte [rax], 6
ja 0x4766f3
mov r8, qword [rbp + 0x48]
test r8, r8
je 0x4766e5
lea rdx, [sym.sqlite3ExprListDelete]
mov rcx, rbx
call sym.sqlite3ParserAddCleanup
mov qword [rbp + 0x48], 0
mov eax, dword [rbp + 4]
and eax, 0xfffffffe
or eax, 0x400000
mov dword [rbp + 4], eax
xor r8d, r8d
mov rdx, rbp
mov rcx, rbx
call sym.sqlite3SelectPrep
mov eax, dword [rbx + 0x30]
test eax, eax
mov dword [rsp + 0xd0], eax
jne 0x476ce9
mov r11d, dword [rbp + 4]
bt r11d, 0x17
jae 0x476761
mov rsi, qword [rbp + 0x28]
lea rcx, [rsi + 8]
mov rdx, rsi
call sym.sameSrcAlias
test eax, eax
je 0x476756
mov r8, qword [rsi + 0x20]
test r8, r8
jne 0x476742
mov rax, qword [rsi + 0x28]
mov r8, qword [rax]
lea rdx, str.target_object_alias_may_not_appear_in_FROM_clause:__s
mov rcx, rbx
call sym.sqlite3ErrorMsg
jmp 0x476ce9
and r11d, 0xff7fffff
mov dword [rbp + 4], r11d
mov rax, qword [rsp + 0x210]
cmp byte [rax], 9
jne 0x476779
mov rdx, rbp
mov rcx, rbx
call sym.sqlite3GenerateColumnNames
cmp qword [rbp + 0x70], 0
jne 0x4767be
mov eax, dword [rbp + 4]
lea rdx, [rsp + 0x120]
mov ecx, 0xa
mov dword [rsp + 0x68], 0
mov rdi, rdx
mov r13, qword [rbp + 0x28]
and eax, 8
mov dword [rsp + 0x80], eax
xor eax, eax
rep stosd dword [rdi], eax
mov rax, qword [rbp + 0x48]
mov qword [rsp + 0x118], rax
jmp 0x476c83
cmp qword [rbp + 0x50], 0
jne 0x476780
mov eax, dword [rbp + 4]
and eax, 0x100000
mov dword [rsp + 0x90], eax
jne 0x476780
cmp byte [rbx + 0x134], 1
ja 0x476780
mov rcx, rbx
call sym.sqlite3GetVdbe
mov r13, qword [rbx]
mov edx, 0x68
mov qword [rsp + 0x148], 0
mov qword [rsp + 0x68], rax
mov rax, qword [rbp + 0x30]
mov r14, qword [rbp + 0x28]
mov rsi, qword [rbp + 0x70]
mov rcx, r13
mov qword [rsp + 0x70], rax
mov rax, qword [rbp + 0x38]
mov qword [rsp + 0x78], rax
mov rax, qword [rbp + 0x40]
mov qword [rsp + 0x80], rax
mov eax, dword [rbp + 4]
mov dword [rsp + 0x8c], eax
call sym.sqlite3DbMallocZero
test rax, rax
mov r12, rax
jne 0x476854
mov edx, 7
mov rcx, r13
call sym.sqlite3ErrorToParser
mov esi, eax
jmp 0x476c6a
mov eax, dword [rsp + 0x90]
lea rdx, [rsp + 0x190]
mov ecx, 6
lea r15, [rsp + 0x178]
mov rdi, rdx
mov rdx, rbp
rep stosd dword [rdi], eax
lea rax, [sym.agginfoPersistExprCb]
mov rcx, r15
mov qword [rsp + 0x178], rbx
mov qword [rsp + 0x180], rax
lea rax, [sym.sqlite3SelectWalkNoop]
mov qword [rsp + 0x188], rax
call sym.sqlite3WalkSelect
test byte [rbp + 4], 8
jne 0x4768d3
mov rdx, qword [rbp + 0x48]
mov rcx, r15
mov qword [rsp + 0x188], 0
lea rax, [sym.disallowAggregatesInOrderByCb]
mov qword [rsp + 0x180], rax
call sym.sqlite3WalkExprList
mov eax, dword [rbp + 4]
xor edx, edx
mov r9d, 1
mov rcx, rbx
mov r8, qword [rsi + 0x10]
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 sym.exprListAppendList
mov r8, qword [rsi + 0x18]
mov r9d, 1
mov rcx, rbx
mov rdx, rax
call sym.exprListAppendList
test rax, rax
mov rdi, rax
je 0x47696e
mov rdx, qword [rbp + 0x48]
test rdx, rdx
je 0x47696e
mov eax, dword [rdx]
mov r15d, dword [rdi]
cmp eax, r15d
jg 0x47696e
or r8d, 0xffffffff
mov dword [rdi], eax
mov rcx, rdi
call sym.sqlite3ExprListCompare
test eax, eax
jne 0x47696b
mov rdx, qword [rbp + 0x48]
mov rcx, r13
call sym.sqlite3ExprListDelete
mov qword [rbp + 0x48], 0
mov dword [rdi], r15d
mov eax, dword [rbx + 0x34]
mov r8, r14
mov rdx, rsi
mov rcx, rbx
lea r15, [rsp + 0x148]
mov dword [rsi + 0x58], eax
add eax, 4
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r12
mov r9, qword [rbp + 0x20]
mov dword [rbx + 0x34], eax
call sym.selectWindowRewriteEList
mov qword [rsp + 0x28], r15
mov rdx, rsi
mov r8, r14
mov qword [rsp + 0x20], r12
mov r9, qword [rbp + 0x48]
mov rcx, rbx
call sym.selectWindowRewriteEList
mov rdx, qword [rsp + 0x148]
xor eax, eax
test rdx, rdx
je 0x4769cb
mov eax, dword [rdx]
mov r8, qword [rsi + 0x10]
xor r9d, r9d
mov rcx, rbx
mov dword [rsi + 0x78], eax
mov r15, rsi
call sym.exprListAppendList
xor r9d, r9d
mov rcx, rbx
mov qword [rsp + 0x148], rax
mov r8, qword [rsi + 0x18]
mov rdx, rax
call sym.exprListAppendList
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov qword [rsp + 0x90], rax
mov rax, qword [r15 + 0x70]
mov r8, qword [rax + 0x20]
mov rax, qword [r15 + 0x50]
test byte [rax + 6], 0x10
je 0x476a66
mov r9, r8
mov rdx, rsi
mov qword [rsp + 0x20], r12
mov r8, r14
mov rax, qword [rsp + 0x90]
mov rcx, rbx
mov qword [rsp + 0x28], rax
call sym.selectWindowRewriteEList
mov rdx, qword [rsp + 0x148]
xor eax, eax
test rdx, rdx
je 0x476a58
mov eax, dword [rdx]
mov dword [r15 + 0x7c], eax
mov byte [r15 + 0x8c], 1
jmp 0x476a8e
mov rdx, qword [rsp + 0x148]
xor eax, eax
test rdx, rdx
je 0x476a77
mov eax, dword [rdx]
mov dword [r15 + 0x7c], eax
xor r9d, r9d
mov rcx, rbx
call sym.exprListAppendList
mov qword [rsp + 0x148], rax
mov rdx, qword [r15 + 0x48]
test rdx, rdx
je 0x476abd
xor r8d, r8d
mov rcx, r13
call sym.sqlite3ExprDup
mov rdx, qword [rsp + 0x148]
mov rcx, rbx
mov r8, rax
call sym.sqlite3ExprListAppend.isra.403
mov qword [rsp + 0x148], rax
mov eax, dword [rbx + 0x38]
xor r8d, r8d
mov edx, 0x4b
mov rcx, qword [rsp + 0x68]
lea r9d, [rax + 1]
add eax, 2
mov dword [r15 + 0x5c], r9d
mov dword [rbx + 0x38], eax
mov dword [r15 + 0x60], eax
call sym.sqlite3VdbeAddOp2
mov r15, qword [r15 + 0x40]
test r15, r15
jne 0x476a12
cmp qword [rsp + 0x148], 0
jne 0x476b23
lea r8, [0x004e1263]
mov edx, 0x9b
mov rcx, r13
call sym.sqlite3Expr
mov rcx, rbx
mov rdx, rax
call sym.sqlite3ExprListAppend.isra.403.part.404
mov qword [rsp + 0x148], rax
mov r9, qword [rsp + 0x70]
mov r8, r14
mov rcx, rbx
mov qword [rsp + 0x30], rdi
mov rax, qword [rsp + 0x80]
mov dword [rsp + 0x38], 0
mov rdx, qword [rsp + 0x148]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x20], rax
call sym.sqlite3SelectNew
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
mov r14, rax
call sym.sqlite3SrcListAppend
test rax, rax
mov qword [rbp + 0x28], rax
je 0x476c3e
or byte [rax + 0x48], 8
mov rdx, rax
mov qword [rax + 0x30], r14
mov rcx, rbx
mov esi, 7
call sym.sqlite3SrcListAssignCursors
mov r8d, 0x40
mov rdx, r14
mov rcx, rbx
or dword [r14 + 4], 0x8000040
call sym.sqlite3ResultSetOfSelect
mov r15, rax
mov eax, dword [rsp + 0x8c]
and eax, 8
or dword [r14 + 4], eax
test r15, r15
je 0x476c4b
mov rdi, r12
mov ecx, 0x1a
mov rsi, r15
rep movsd dword [rdi], dword [rsi]
lea r8, [rsp + 0x178]
mov ecx, 0xc
mov rdx, r14
mov rdi, r8
mov rax, qword [rbp + 0x28]
or dword [r12 + 0x30], 0x4000
mov qword [rax + 0x28], r12
xor eax, eax
mov r12, r15
rep stosd dword [rdi], eax
lea rax, [sym.sqlite3WindowExtraAggFuncDepth]
mov rcx, r8
mov qword [rsp + 0x180], rax
lea rax, [sym.sqlite3WalkerDepthIncrease]
mov qword [rsp + 0x188], rax
lea rax, [sym.sqlite3WalkerDepthDecrease]
mov qword [rsp + 0x190], rax
call sym.sqlite3WalkSelect
jmp 0x476c49
mov rdx, r14
mov rcx, r13
call sym.sqlite3SelectDelete
xor esi, esi
cmp byte [r13 + 0x67], 0
mov eax, 7
mov r8, r12
mov rcx, rbx
lea rdx, [sym.sqlite3DbFree]
cmovne esi, eax
call sym.sqlite3ParserAddCleanup
test esi, esi
jne 0x476ce9
jmp 0x476780
mov eax, dword [r14 + 4]
test al, 8
je 0x476d3b
inc dword [rsp + 0x68]
cmp qword [rbp + 0x50], 0
jne 0x479557
mov eax, dword [rsp + 0x68]
cmp dword [r13], eax
jle 0x476dc3
movsxd rsi, dword [rsp + 0x68]
imul r12, rsi, 0x68
add r12, r13
mov al, byte [r12 + 0x44]
mov r14, qword [r12 + 0x30]
mov rdi, qword [r12 + 0x28]
and eax, 0x18
cmp al, 8
je 0x476cfc
test r14, r14
je 0x476c7f
mov rax, qword [r14 + 0x20]
movsx r8d, word [rdi + 0x36]
mov eax, dword [rax]
cmp r8d, eax
je 0x476c73
mov dword [rsp + 0x20], eax
mov r9, qword [rdi]
lea rdx, str.expected__d_columns_for__s_but_got__d
mov rcx, rbx
call sym.sqlite3ErrorMsg
mov qword [rsp + 0x70], 0
mov esi, 1
jmp 0x477185
mov rcx, qword [rbp + 0x30]
mov edx, dword [r12 + 0x4c]
call sym.sqlite3ExprImpliesNonNullRow
test eax, eax
je 0x476cbe
mov rax, qword [rsp + 0x60]
test byte [rax + 0x61], 0x20
jne 0x476cbe
and byte [r12 + 0x44], 0xd7
mov r8b, byte [r13 + 0x44]
mov rcx, qword [rbp + 0x30]
mov edx, dword [r12 + 0x4c]
and r8d, 0x40
movzx r8d, r8b
call sym.unsetJoinExpr
jmp 0x476cbe
mov r8, qword [r14 + 0x48]
test r8, r8
je 0x47957c
cmp qword [rbp + 0x48], 0
jne 0x476d56
cmp dword [r13], 1
jle 0x476d90
cmp qword [r14 + 0x60], 0
jne 0x476d90
bt eax, 0x1b
jb 0x476d90
test byte [rbp + 7], 8
jne 0x476d90
mov rax, qword [rsp + 0x60]
test byte [rax + 0x62], 4
jne 0x476d90
lea rdx, [sym.sqlite3ExprListDelete]
mov rcx, rbx
call sym.sqlite3ParserAddCleanup
mov qword [r14 + 0x48], 0
jmp 0x47957c
cmp dword [rsp + 0x68], 0
jne 0x47957c
test byte [rbp + 6], 4
je 0x47957c
cmp dword [r13], 1
je 0x476c7f
test byte [r13 + 0xac], 0x22
je 0x47957c
jmp 0x476c7f
mov rax, qword [rbp + 0x30]
test rax, rax
je 0x476dd5
cmp byte [rax], 0x2c
je 0x4771a1
mov rax, qword [rsp + 0x60]
test dword [rax + 0x60], 0x201
je 0x4772af
lea rax, [rsp + 0x178]
xor esi, esi
lea r15, [r13 + 8]
mov qword [rsp + 0x68], rax
cmp dword [r13], esi
jg 0x47748c
mov rax, qword [rbp + 0x20]
mov r15, qword [rbp + 0x30]
mov r12, qword [rbp + 0x38]
mov qword [rsp + 0x68], rax
mov rax, qword [rbp + 0x40]
mov qword [rsp + 0xb8], rax
mov eax, dword [rbp + 4]
mov byte [rsp + 0x10c], al
and eax, 9
and byte [rsp + 0x10c], 1
dec eax
je 0x477a7a
mov rdx, qword [rsp + 0x118]
test rdx, rdx
je 0x477ad1
mov rax, qword [rsp + 0x68]
xor r8d, r8d
mov rcx, rbx
mov r9d, dword [rax]
call sym.sqlite3KeyInfoFromExprList
mov r8d, dword [rbx + 0x34]
mov rdi, qword [rsp + 0x68]
lea edx, [r8 + 1]
mov dword [rsp + 0x124], r8d
mov dword [rbx + 0x34], edx
mov rdx, qword [rsp + 0x118]
mov ecx, dword [rdx]
mov edx, dword [rdi]
mov dword [rsp + 0x30], 0xfffffff8
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
lea r9d, [rcx + rdx + 1]
mov rcx, qword [rsp + 0x58]
mov edx, 0x76
call sym.sqlite3VdbeAddOp4
mov dword [rsp + 0x130], eax
mov rax, qword [rsp + 0x210]
cmp byte [rax], 0xc
je 0x477ae1
mov eax, dword [rbx + 0x44]
dec eax
mov dword [rbx + 0x44], eax
test byte [rbp + 5], 0x40
mov dword [rsp + 0xe4], eax
jne 0x476ee2
mov word [rbp + 2], 0x140
cmp qword [rbp + 0x60], 0
je 0x476efc
mov r8d, dword [rsp + 0xe4]
mov rdx, rbp
mov rcx, rbx
call sym.computeLimitRegisters
cmp dword [rbp + 8], 0
je 0x477ba3
test byte [rbp + 4], 1
je 0x477bcc
mov eax, dword [rbx + 0x34]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbx
lea edx, [rax + 1]
mov dword [rsp + 0x110], eax
mov dword [rbx + 0x34], edx
mov rdx, qword [rbp + 0x20]
call sym.sqlite3KeyInfoFromExprList
mov r8d, dword [rsp + 0x110]
xor r9d, r9d
mov edx, 0x76
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x30], 0xfffffff8
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
call sym.sqlite3VdbeAddOp4
mov rcx, qword [rsp + 0x58]
mov edx, 8
mov dword [rsp + 0x114], eax
call sym.sqlite3VdbeChangeP5
mov byte [rsp + 0x10d], 3
cmp dword [rsp + 0x80], 0
jne 0x477f42
test r12, r12
jne 0x477f42
cmp byte [rsp + 0x10c], 1
mov edx, dword [rbp + 4]
mov rsi, qword [rbp + 0x70]
sbb eax, eax
not eax
and dx, 0x4000
and ax, 0x100
or edx, eax
test rsi, rsi
mov word [rsp + 0x70], dx
jne 0x477bd9
movsx eax, word [rbp + 2]
mov qword [rsp + 0x28], rbp
mov r8, r15
mov rdx, r13
mov r9, qword [rsp + 0x118]
mov rcx, rbx
mov dword [rsp + 0x38], eax
movzx eax, word [rsp + 0x70]
mov dword [rsp + 0x30], eax
mov rax, qword [rbp + 0x20]
mov qword [rsp + 0x20], rax
call sym.sqlite3WhereBegin
test rax, rax
mov rdi, rax
je 0x476ce9
mov ax, word [rax + 0x48]
cmp word [rbp + 2], ax
jle 0x477011
mov word [rbp + 2], ax
cmp byte [rsp + 0x10c], 0
jne 0x477e62
mov rcx, qword [rsp + 0x118]
test rcx, rcx
jne 0x477e79
mov edx, dword [rsp + 0x130]
test edx, edx
jns 0x477ed8
test rsi, rsi
je 0x477ef6
mov esi, dword [rbx + 0x44]
mov r8, rdi
mov rdx, rbp
mov rcx, rbx
mov eax, dword [rbx + 0x38]
lea r14d, [rsi - 1]
lea r13d, [rax + 1]
mov dword [rsp + 0x20], r14d
lea r12d, [rsi - 2]
sub esi, 3
mov r9d, r13d
mov dword [rbx + 0x38], r13d
mov dword [rbx + 0x44], esi
call sym.sqlite3WindowCodeStep
mov rcx, qword [rsp + 0x58]
mov r9d, esi
xor r8d, r8d
mov edx, 9
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
mov edx, r14d
call sym.sqlite3VdbeResolveLabel
mov rcx, qword [rsp + 0x58]
lea rdx, str.inner_loop_subroutine
call sym.sqlite3VdbeNoopComment
or r8d, 0xffffffff
mov rdx, rbp
mov rcx, rbx
mov rax, qword [rsp + 0x210]
lea r9, [rsp + 0x118]
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x138], 0
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x10c]
mov qword [rsp + 0x20], rax
call sym.selectInnerLoop
mov rcx, qword [rsp + 0x58]
mov edx, r12d
call sym.sqlite3VdbeResolveLabel
mov rcx, qword [rsp + 0x58]
mov r8d, r13d
mov edx, 0x43
call sym.sqlite3VdbeAddOp1
mov rcx, qword [rsp + 0x58]
lea rdx, str.end_inner_loop_subroutine
call sym.sqlite3VdbeComment
mov rcx, qword [rsp + 0x58]
mov edx, esi
call sym.sqlite3VdbeResolveLabel
mov qword [rsp + 0x70], 0
cmp byte [rsp + 0x10d], 3
jne 0x477159
lea r9, str.DISTINCT
xor edx, edx
mov rcx, rbx
lea r8, str.USE_TEMP_B_TREE_FOR__s
call sym.sqlite3VdbeExplain
mov r13, qword [rsp + 0x118]
test r13, r13
jne 0x478fe6
mov edx, dword [rsp + 0xe4]
xor esi, esi
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeResolveLabel
cmp dword [rbx + 0x30], 0
setg sil
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x60]
call sym.sqlite3ExprListDelete
mov rcx, rbx
call sym.sqlite3VdbeExplainPop
jmp 0x479ee5
mov rax, qword [rsp + 0x60]
test byte [rax + 0x61], 0x80
jne 0x476dd5
mov rax, qword [rbx]
lea rsi, [rsp + 0x178]
mov qword [rsp + 0x148], rbx
lea r12, [rsi + 0x18]
lea r14, [sym.propagateConstantExprRewrite]
add rax, 0x67
mov qword [rsp + 0x150], rax
mov rdx, qword [rbp + 0x28]
mov eax, 1
mov qword [rsp + 0x168], 0
mov qword [rsp + 0x158], 0
mov dword [rsp + 0x160], 0
test rdx, rdx
je 0x477220
cmp dword [rdx], 0
jle 0x477220
mov al, byte [rdx + 0x44]
and eax, 0x40
cmp al, 1
sbb eax, eax
and eax, 0xfffffffe
add eax, 3
mov rdx, qword [rbp + 0x30]
lea r15, [rsp + 0x148]
mov dword [rsp + 0x164], eax
mov rcx, r15
call sym.findConstInWhere
cmp dword [rsp + 0x158], 0
je 0x47729c
xor eax, eax
mov ecx, 4
mov rdi, r12
mov rdx, qword [rbp + 0x30]
rep stosd dword [rdi], eax
lea rax, [sym.sqlite3SelectWalkNoop]
mov rcx, rsi
mov qword [rsp + 0x178], rbx
mov qword [rsp + 0x180], r14
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x1a0], r15
call sym.sqlite3WalkExpr
mov rax, qword [rsp + 0x148]
mov rdx, qword [rsp + 0x168]
mov rcx, qword [rax]
call sym.sqlite3DbFree
cmp dword [rsp + 0x15c], 0
jne 0x4771da
jmp 0x476dd5
test byte [rbp + 4], 8
je 0x476de7
mov rax, qword [rbp + 0x20]
cmp dword [rax], 1
jne 0x476de7
cmp qword [rbp + 0x30], 0
jne 0x476de7
cmp qword [rbp + 0x40], 0
jne 0x476de7
cmp qword [rbp + 0x38], 0
jne 0x476de7
cmp qword [rbp + 0x48], 0
jne 0x476de7
mov rdi, qword [rax + 8]
cmp byte [rdi], 0xa8
jne 0x476de7
mov rcx, qword [rdi + 8]
lea rdx, str.count
call sym.sqlite3_stricmp
test eax, eax
jne 0x476de7
cmp qword [rdi + 0x20], 0
jne 0x476de7
mov rdx, qword [rbp + 0x28]
cmp dword [rdx], 1
jne 0x476de7
test byte [rdi + 7], 1
jne 0x476de7
mov r14, qword [rdx + 0x30]
test r14, r14
je 0x476de7
cmp qword [r14 + 0x50], 0
je 0x476de7
test byte [r14 + 7], 4
jne 0x476de7
mov rax, r14
cmp byte [rax], 0x87
je 0x47736f
cmp qword [rax + 0x50], 0
jne 0x476de7
cmp qword [rax + 0x30], 0
jne 0x476de7
mov rsi, qword [rax + 0x60]
test rsi, rsi
jne 0x476de7
test byte [rax + 4], 8
jne 0x476de7
mov rax, qword [rax + 0x50]
test rax, rax
jne 0x47735f
mov r12, qword [rbx]
mov qword [rdx + 0x30], 0
mov rcx, r12
call sym.sqlite3SrcListDelete
mov rcx, qword [rbx]
mov edx, 0x70
call sym.sqlite3DbMallocZero
mov qword [rbp + 0x28], rax
mov eax, dword [r14 + 4]
mov qword [r14 + 0x58], 0
mov rcx, r12
mov r13, qword [r14 + 0x50]
mov word [r14 + 2], 0
mov rdx, qword [r14 + 0x20]
mov qword [r14 + 0x50], 0
and ah, 0xfe
or eax, 8
mov dword [r14 + 4], eax
call sym.sqlite3ExprListDelete
test r13, r13
mov rax, rdi
je 0x477409
xor r8d, r8d
mov rdx, rdi
mov rcx, r12
call sym.sqlite3ExprDup
mov rdx, rax
mov rcx, rbx
call sym.sqlite3ExprListAppend.isra.403.part.404
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8a
mov rcx, rbx
mov qword [r14 + 0x20], rax
call sym.sqlite3PExpr
mov r8, r14
mov rcx, rbx
mov rdx, rax
mov r15, rax
call sym.sqlite3PExprAddSelect
test rsi, rsi
je 0x477459
mov r9, rsi
mov r8, r15
mov edx, 0x6a
mov rcx, rbx
call sym.sqlite3PExpr
mov rsi, rax
jmp 0x47745c
mov rsi, r15
test r13, r13
mov r14, r13
jne 0x4773be
mov rax, qword [rbp + 0x20]
mov qword [rax + 8], rsi
mov rax, qword [rsp + 0x60]
and dword [rbp + 4], 0xfffffff7
cmp byte [rax + 0x67], 0
jne 0x476ce9
mov r13, qword [rbp + 0x28]
jmp 0x476de7
cmp qword [r15 + 0x50], 0
jne 0x4774b9
mov r8, qword [r15 + 0x10]
test r8, r8
je 0x4774b9
mov rax, qword [r15 + 8]
lea r9, [0x004e0719]
mov edx, 0x14
mov rcx, rbx
mov qword [rsp + 0x20], rax
call sym.sqlite3AuthCheck
mov rdi, qword [r15 + 0x28]
test rdi, rdi
je 0x477a6f
mov rdx, qword [rsp + 0x68]
mov rcx, rbp
movsxd r12, esi
mov dword [rsp + 0x178], 0
call sym.heightOfSelect
mov eax, dword [rsp + 0x178]
add dword [rbx + 0x13c], eax
mov rax, qword [rsp + 0x60]
test byte [rax + 0x61], 0x10
jne 0x47752a
imul rax, r12, 0x68
test byte [r13 + rax + 0x49], 1
je 0x477514
mov rax, qword [r15 + 0x60]
cmp byte [rax + 0x12], 0
je 0x47752a
cmp dword [rax], 1
jg 0x47752a
mov dword [rsp + 0x20], esi
mov r8, qword [rbp + 0x30]
mov r9, r13
mov rdx, rdi
mov rcx, rbx
call sym.pushDownWhereTerms
mov rax, qword [rsp + 0x60]
test byte [rax + 0x63], 4
je 0x477567
mov rax, qword [rbx + 0x178]
mov qword [rsp + 0x70], rax
mov rax, qword [r15 + 0x10]
mov qword [rbx + 0x178], rax
movsxd rax, esi
imul rax, rax, 0x68
mov r12b, byte [r13 + rax + 0x49]
and r12b, 1
jne 0x477659
jmp 0x477675
imul r12, r12, 0x68
test word [r13 + r12 + 0x48], 0x108
jne 0x477535
mov rax, qword [r15 + 0x28]
test byte [rax + 4], 9
jne 0x477535
mov rdx, rax
mov rcx, qword [rdx + 0x50]
test rcx, rcx
je 0x477590
cmp byte [rdx], 0x87
jne 0x477535
cmp qword [rdx + 0x70], 0
jne 0x477535
test rcx, rcx
mov rdx, rcx
jne 0x477582
mov r9, qword [rax + 0x48]
mov r8, qword [r15 + 0x50]
test r9, r9
je 0x4775e9
mov r11d, dword [r9]
mov r12d, 0x3f
mov r14d, 1
cmp r11d, edx
jle 0x4775e9
mov rcx, rdx
shl rcx, 5
mov ecx, dword [r9 + rcx + 0x20]
test cx, cx
je 0x4775e4
dec ecx
mov r10, r14
cmp cx, 0x3f
cmova ecx, r12d
shl r10, cl
or r8, r10
inc rdx
jmp 0x4775bb
mov rdx, qword [r15 + 0x20]
xor ecx, ecx
mov r12d, 1
movsx r11d, word [rdx + 0x36]
cmp r11d, ecx
jle 0x477535
mov edx, 1
shl rdx, 0x3f
cmp ecx, 0x3e
jg 0x477617
mov rdx, r12
shl rdx, cl
test r8, rdx
je 0x477620
inc ecx
jmp 0x4775fa
movsxd r14, ecx
mov rdx, rax
shl r14, 5
mov r9, qword [rdx + 0x20]
add r9, r14
mov r9, qword [r9 + 8]
cmp byte [r9], 0x79
je 0x47764e
and dword [r9 + 4], 0xfff7dfff
mov byte [r9], 0x79
or dword [rdx + 4], 0x1000000
mov rdx, qword [rdx + 0x50]
test rdx, rdx
jne 0x47762a
jmp 0x47761c
mov rdx, qword [r15 + 0x60]
mov al, byte [rdx + 0x12]
test al, al
je 0x4777fd
cmp dword [rdx], 1
jle 0x477675
cmp al, 2
jne 0x4777fd
test byte [r13 + 0x44], 0x40
jne 0x4777f8
mov rax, qword [rbx]
test byte [rax + 0x63], 2
jne 0x4777f8
mov r14d, dword [r13]
lea r8d, [rsi + 1]
mov rdx, r15
mov rcx, r13
mov r9d, r14d
call sym.isSelfJoinView
test rax, rax
jne 0x4777f8
test esi, esi
mov eax, dword [rbp + 4]
jne 0x4776ce
dec r14d
je 0x4776fd
test byte [r13 + 0xac], 2
jne 0x4776fd
bt eax, 0x1c
jb 0x4777f8
jmp 0x4776fd
bt eax, 0x1c
jb 0x4777f8
mov rax, r15
mov edx, esi
test byte [rax + 0x3c], 0x22
jne 0x4777f8
test edx, edx
je 0x4776fd
sub rax, 0x68
dec edx
cmp qword [rax + 0x28], 0
je 0x4776dd
jmp 0x4777f8
mov rax, qword [rsp + 0x58]
xor r9d, r9d
mov edx, 0xb
mov rcx, qword [rsp + 0x58]
mov r12d, dword [rax + 0x90]
mov eax, dword [rbx + 0x38]
lea r14d, [r12 + 1]
lea r8d, [rax + 1]
mov dword [rbx + 0x38], r8d
mov dword [r15 + 0x34], r8d
mov dword [rsp + 0x20], r14d
call sym.sqlite3VdbeAddOp3
mov rcx, qword [rsp + 0x58]
mov r8, r15
lea rdx, [0x004e345c]
call sym.sqlite3VdbeComment
mov eax, dword [r15 + 0x34]
mov dword [r15 + 0x30], r14d
mov r9, r15
lea r8, str.CO_ROUTINE___S
mov edx, 1
mov rcx, rbx
mov byte [rsp + 0x178], 0xd
mov qword [rsp + 0x190], 0
mov qword [rsp + 0x180], 0
mov dword [rsp + 0x17c], eax
mov dword [rsp + 0x188], 0
call sym.sqlite3VdbeExplain
mov r8, qword [rsp + 0x68]
mov rdx, rdi
mov rcx, rbx
call sym.sqlite3Select
mov dx, word [rdi + 2]
mov rax, qword [r15 + 0x20]
mov rcx, qword [rsp + 0x58]
mov word [rax + 0x3a], dx
movsxd rax, esi
imul rax, rax, 0x68
or byte [r13 + rax + 0x48], 0x20
mov eax, dword [rsp + 0x184]
mov edx, dword [r15 + 0x34]
mov dword [r15 + 0x38], eax
call sym.sqlite3VdbeEndCoroutine
mov rcx, qword [rsp + 0x58]
mov edx, r12d
call sym.sqlite3VdbeJumpHere
mov byte [rbx + 0x1f], 0
mov dword [rbx + 0x28], 0
jmp 0x477a2c
test r12b, r12b
je 0x477857
mov r12, qword [r15 + 0x60]
mov r9d, dword [r12 + 4]
test r9d, r9d
jle 0x477857
mov r8d, dword [r12 + 8]
mov edx, 0xa
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeAddOp2
mov r8d, dword [r15 + 0x44]
mov r9d, dword [r12 + 0xc]
cmp r8d, r9d
je 0x477850
mov rcx, qword [rsp + 0x58]
mov edx, 0x73
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
mov r8, r15
lea rdx, [0x004e345c]
call sym.sqlite3VdbeComment
mov eax, dword [r12 + 0x10]
jmp 0x4778ad
xor r8d, r8d
mov r9d, esi
mov rdx, r15
mov rcx, r13
call sym.isSelfJoinView
test rax, rax
mov r12, rax
je 0x4778b6
mov r9d, dword [rax + 0x30]
test r9d, r9d
je 0x47788c
mov r8d, dword [rax + 0x34]
mov edx, 0xa
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeAddOp2
mov r9d, dword [r12 + 0x44]
mov edx, 0x73
mov r8d, dword [r15 + 0x44]
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeAddOp2
mov rax, qword [r12 + 0x28]
mov ax, word [rax + 2]
mov word [rdi + 2], ax
jmp 0x477a2c
mov eax, dword [rbx + 0x38]
mov edx, 9
mov rcx, qword [rsp + 0x58]
inc eax
mov dword [rbx + 0x38], eax
mov dword [r15 + 0x34], eax
call sym.sqlite3VdbeAddOp0
mov r14d, eax
lea eax, [rax + 1]
mov dword [r15 + 0x30], eax
mov dword [rsp + 0x78], eax
movsxd rax, esi
imul rax, rax, 0x68
lea rdx, [r13 + rax + 0x30]
mov al, byte [rdx + 0x18]
or eax, 0x10
test al, 8
mov byte [rdx + 0x18], al
jne 0x477920
mov rcx, qword [rsp + 0x58]
mov edx, 0xf
call sym.sqlite3VdbeAddOp0
mov rcx, qword [rsp + 0x58]
mov r8, r15
lea rdx, str.materialize___S
mov r12d, eax
call sym.sqlite3VdbeComment
jmp 0x477937
mov rcx, qword [rsp + 0x58]
lea rdx, str.materialize___S
mov r8, r15
xor r12d, r12d
call sym.sqlite3VdbeNoopComment
mov eax, dword [r15 + 0x44]
mov r9, r15
mov edx, 1
mov rcx, rbx
lea r8, str.MATERIALIZE___S
mov byte [rsp + 0x178], 0xc
mov qword [rsp + 0x190], 0
mov qword [rsp + 0x180], 0
mov dword [rsp + 0x17c], eax
mov dword [rsp + 0x188], 0
call sym.sqlite3VdbeExplain
mov r8, qword [rsp + 0x68]
mov rdx, rdi
mov rcx, rbx
call sym.sqlite3Select
mov rax, qword [r15 + 0x20]
test r12d, r12d
mov dx, word [rdi + 2]
mov word [rax + 0x3a], dx
je 0x4779b2
mov rcx, qword [rsp + 0x58]
mov edx, r12d
call sym.sqlite3VdbeJumpHere
mov r8d, dword [r15 + 0x34]
lea r9d, [r14 + 1]
mov edx, 0x43
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
mov r8, r15
lea rdx, str.end___S
call sym.sqlite3VdbeComment
mov rcx, qword [rsp + 0x58]
mov edx, r14d
call sym.sqlite3VdbeJumpHere
movsxd rax, esi
mov byte [rbx + 0x1f], 0
imul rax, rax, 0x68
mov dword [rbx + 0x28], 0
mov eax, dword [r13 + rax + 0x48]
and ax, 0x108
cmp ax, 0x100
jne 0x477a2c
mov edx, dword [r15 + 0x30]
mov rax, qword [r15 + 0x60]
mov dword [rax + 4], edx
mov edx, dword [r15 + 0x34]
mov dword [rax + 8], edx
mov edx, dword [r15 + 0x44]
mov dword [rax + 0xc], edx
mov dx, word [rdi + 2]
mov word [rax + 0x10], dx
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0x67], 0
jne 0x476ce9
lea rdx, [rsp + 0x148]
mov rcx, rbp
mov dword [rsp + 0x148], 0
call sym.heightOfSelect
mov eax, dword [rsp + 0x148]
sub dword [rbx + 0x13c], eax
mov rax, qword [rsp + 0x70]
mov qword [rbx + 0x178], rax
inc esi
add r15, 0x68
jmp 0x476dfa
mov rdx, qword [rsp + 0x68]
or r8d, 0xffffffff
mov rcx, qword [rsp + 0x118]
call sym.sqlite3ExprListCompare
test eax, eax
jne 0x476e3e
cmp qword [rbp + 0x70], 0
jne 0x476e3e
and dword [rbp + 4], 0xfffffffe
xor r8d, r8d
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
call sym.sqlite3ExprListDup
mov byte [rsp + 0x10c], 2
or dword [rbp + 4], 8
mov r12, rax
mov qword [rbp + 0x38], rax
jmp 0x476e3e
mov dword [rsp + 0x130], 0xffffffff
jmp 0x476eb6
mov rax, qword [rsp + 0x68]
mov edx, 0x76
mov rcx, qword [rsp + 0x58]
mov r9d, dword [rax]
mov rax, qword [rsp + 0x210]
mov r8d, dword [rax + 4]
call sym.sqlite3VdbeAddOp2
test byte [rbp + 5], 8
je 0x476ec7
mov rax, qword [rsp + 0x68]
movsxd rsi, dword [rax]
lea edi, [rsi - 1]
shl rsi, 5
test edi, edi
jle 0x477b6b
mov rcx, qword [rsp + 0x68]
movsxd rax, edi
sub rsi, 0x20
shl rax, 5
test byte [rcx + rax + 0x1c], 0x40
jne 0x477b6b
mov rax, qword [rsp + 0x68]
dec edi
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rax + rsi + 8]
call sym.sqlite3ExprDelete
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rax + rsi + 0x10]
call sym.sqlite3DbFree
mov rax, qword [rsp + 0x68]
dec dword [rax]
jmp 0x477b1d
mov rax, qword [rsp + 0x68]
mov ecx, dword [rax]
xor eax, eax
cmp ecx, eax
jle 0x476ec7
mov rdi, qword [rsp + 0x68]
movsxd rdx, eax
shl rdx, 5
test byte [rdi + rdx + 0x1c], 0x40
jne 0x477b9e
mov rdx, rax
shl rdx, 5
mov rdx, qword [rdi + rdx + 8]
mov byte [rdx], 0x79
inc rax
jmp 0x477b74
mov edx, dword [rsp + 0x130]
test edx, edx
js 0x476f06
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeGetOp
mov byte [rax], 0x77
or byte [rsp + 0x13c], 1
jmp 0x476f06
mov byte [rsp + 0x10d], 0
jmp 0x476f7f
mov rax, qword [rbp + 0x28]
mov rcx, rbx
mov rax, qword [rax + 0x30]
mov rax, qword [rax + 0x20]
mov r9d, dword [rax]
mov dword [rsp + 0x78], r9d
call sym.sqlite3GetVdbe
mov r9d, dword [rsp + 0x78]
mov edx, 0x76
mov r8d, dword [rsi + 0x58]
mov rcx, rax
mov rdi, rax
call sym.sqlite3VdbeAddOp2
mov eax, dword [rsi + 0x58]
mov edx, 0x73
mov rcx, rdi
lea r8d, [rax + 1]
mov r9d, eax
call sym.sqlite3VdbeAddOp2
mov eax, dword [rsi + 0x58]
mov edx, 0x73
mov rcx, rdi
lea r8d, [rax + 2]
mov r9d, eax
call sym.sqlite3VdbeAddOp2
mov eax, dword [rsi + 0x58]
mov edx, 0x73
mov rcx, rdi
lea r8d, [rax + 3]
mov r9d, eax
call sym.sqlite3VdbeAddOp2
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x477c87
mov edx, dword [rax]
xor r8d, r8d
mov rcx, rdi
mov eax, dword [rbx + 0x38]
lea r9d, [rax + 1]
add eax, edx
mov dword [rsi + 0x6c], r9d
mov dword [rbx + 0x38], eax
lea eax, [rdx + r9 - 1]
mov edx, 0x4b
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov eax, dword [rbx + 0x38]
mov r8d, 1
mov rcx, rdi
mov r12, rsi
mov edx, 0x47
lea r9d, [rax + 1]
mov dword [rbx + 0x38], r9d
mov dword [rsi + 0x80], r9d
call sym.sqlite3VdbeAddOp2
cmp byte [rsi + 0x24], 0
je 0x477d7d
mov eax, dword [rbx + 0x38]
mov rcx, rdi
mov r8d, 1
lea r9d, [rax + 1]
add eax, 2
mov dword [rsi + 0x84], r9d
mov dword [rbx + 0x38], eax
mov dword [rsi + 0x88], eax
mov eax, dword [rbx + 0x34]
lea edx, [rax + 1]
mov dword [rbx + 0x34], edx
mov edx, 0x47
mov dword [rsi + 0x64], eax
call sym.sqlite3VdbeAddOp2
xor r8d, r8d
mov rcx, rdi
mov edx, 0x47
mov r9d, dword [rsi + 0x88]
call sym.sqlite3VdbeAddOp2
mov r9d, dword [rsi + 0x58]
mov edx, 0x73
mov rcx, rdi
mov r8d, dword [rsi + 0x64]
call sym.sqlite3VdbeAddOp2
jmp 0x476fc2
cmp byte [r12 + 0x21], 0x5a
jne 0x477d8a
mov rax, qword [rax + 0x38]
lea rcx, str.nth_value
cmp rax, rcx
je 0x477e19
lea rcx, str.first_value
cmp rax, rcx
je 0x477e19
lea rcx, [0x004f32c0]
cmp rax, rcx
je 0x477e3c
lea rdx, str.lead
cmp rax, rdx
je 0x477e3c
mov r12, qword [r12 + 0x40]
test r12, r12
je 0x476fc2
mov rax, qword [r12 + 0x50]
test byte [rax + 5], 0x10
je 0x477d2b
jmp 0x477d23
mov rax, qword [r12 + 0x70]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbx
mov rdx, qword [rax + 0x20]
call sym.sqlite3KeyInfoFromExprList
mov r14, rax
mov eax, dword [rbx + 0x34]
lea edx, [rax + 1]
mov dword [rbx + 0x34], edx
mov dword [r12 + 0x64], eax
mov eax, dword [rbx + 0x38]
lea edx, [rax + 1]
add eax, 3
test r14, r14
mov dword [r12 + 0x68], edx
mov dword [rbx + 0x38], eax
je 0x477dde
mov rax, qword [r12 + 0x50]
mov rax, qword [rax + 0x38]
cmp byte [rax + 1], 0x69
jne 0x477dde
mov rax, qword [r14 + 0x18]
mov byte [rax], 1
mov r8d, dword [r12 + 0x64]
mov r9d, 2
mov edx, 0x76
mov rcx, rdi
call sym.sqlite3VdbeAddOp2
mov r8d, 0xfffffff8
mov rdx, r14
mov rcx, rdi
call sym.sqlite3VdbeAppendP4
mov r9d, dword [r12 + 0x68]
xor r8d, r8d
mov edx, 0x47
inc r9d
jmp 0x477e55
mov eax, dword [rbx + 0x38]
mov r8d, dword [rbx + 0x34]
lea edx, [rax + 1]
add eax, 2
mov dword [r12 + 0x68], edx
lea edx, [r8 + 1]
mov dword [rbx + 0x34], edx
mov dword [r12 + 0x64], r8d
mov dword [rbx + 0x38], eax
jmp 0x477e4c
mov r8d, dword [rbx + 0x34]
lea eax, [r8 + 1]
mov dword [rbx + 0x34], eax
mov dword [r12 + 0x64], r8d
mov r9d, dword [rsi + 0x58]
mov edx, 0x73
mov rcx, rdi
call sym.sqlite3VdbeAddOp2
jmp 0x477d6f
mov al, byte [rdi + 0x43]
test al, al
je 0x47701f
mov byte [rsp + 0x10d], al
jmp 0x47701f
movsx edx, byte [rdi + 0x41]
mov eax, 0
test dl, dl
cmovs edx, eax
test byte [rdi + 0x44], 4
mov dword [rsp + 0x120], edx
je 0x477ead
movzx eax, byte [rdi + 0x40]
dec eax
cdqe
imul rax, rax, 0x68
add rax, rdi
cmp qword [rax + 0x390], 0
je 0x477eb2
mov eax, dword [rdi + 0x30]
jmp 0x477eb8
mov eax, dword [rax + 0x370]
cmp dword [rcx], edx
mov dword [rsp + 0x138], eax
jne 0x477030
mov qword [rsp + 0x118], 0
jmp 0x477030
cmp qword [rsp + 0x118], 0
jne 0x47703f
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeChangeToNoop
jmp 0x47703f
mov eax, dword [rdi + 0x34]
mov rcx, rbx
or r8d, 0xffffffff
mov rdx, rbp
lea r9, [rsp + 0x118]
mov dword [rsp + 0x38], eax
mov eax, dword [rdi + 0x30]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x10c]
mov qword [rsp + 0x20], rax
call sym.selectInnerLoop
mov rcx, rdi
call sym.sqlite3WhereEnd
jmp 0x47712e
test r12, r12
je 0x477fec
mov rax, qword [rbp + 0x20]
mov edx, dword [rax]
add rax, 8
test edx, edx
jle 0x477f67
mov word [rax + 0x1a], 0
dec edx
add rax, 0x20
jmp 0x477f55
mov ecx, dword [r12]
lea rdx, [r12 + 8]
mov eax, ecx
test eax, eax
jle 0x477f84
mov word [rdx + 0x1a], 0
dec eax
add rdx, 0x20
jmp 0x477f72
cmp word [rbp + 2], 0x42
jle 0x477f91
mov word [rbp + 2], 0x42
mov rdx, qword [rsp + 0x118]
mov dword [rsp + 0xa0], 0
test rdx, rdx
je 0x477ffd
cmp dword [rdx], ecx
jne 0x477ffd
xor r8d, r8d
mov eax, 0x18
cmp r8d, ecx
jge 0x477fcf
mov r9b, byte [rdx + rax]
inc r8d
and r9d, 1
mov byte [r12 + rax], r9b
add rax, 0x20
jmp 0x477fb5
or r8d, 0xffffffff
mov rcx, r12
call sym.sqlite3ExprListCompare
test eax, eax
sete al
movzx eax, al
mov dword [rsp + 0xa0], eax
jmp 0x477ffd
mov word [rbp + 2], 0
mov dword [rsp + 0xa0], 0
mov eax, dword [rbx + 0x44]
mov edx, 0x38
mov rcx, qword [rsp + 0x60]
dec eax
mov dword [rbx + 0x44], eax
mov dword [rsp + 0x8c], eax
call sym.sqlite3DbMallocZero
test rax, rax
mov rsi, rax
je 0x478035
lea rdx, [sym.agginfoFree]
mov r8, rax
mov rcx, rbx
call sym.sqlite3ParserAddCleanup
mov qword [rsp + 0x70], 0
mov rax, qword [rsp + 0x60]
mov r14b, byte [rax + 0x67]
test r14b, r14b
jne 0x476cf2
mov eax, dword [rbp + 0x10]
lea r8, [rsp + 0x178]
mov ecx, 8
lea rdx, [r8 + 0x18]
mov rdi, rdx
mov dword [rsi + 0x34], eax
xor eax, eax
test r12, r12
rep stosd dword [rdi], eax
mov qword [rsp + 0x178], rbx
mov qword [rsp + 0x180], r13
mov qword [rsp + 0x188], rsi
je 0x47808f
mov eax, dword [r12]
mov rdx, qword [rsp + 0x68]
mov rcx, r8
mov word [rsi + 2], ax
mov qword [rsi + 0x10], r12
mov qword [rsp + 0x70], r8
call sym.sqlite3ExprAnalyzeAggList
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x118]
mov rcx, r8
call sym.sqlite3ExprAnalyzeAggList
cmp qword [rsp + 0xb8], 0
je 0x47812e
test r12, r12
je 0x478119
lea rdx, [rsp + 0x158]
xor eax, eax
mov ecx, 6
lea r8, [rsp + 0x148]
mov rdi, rdx
mov rdx, qword [rbp + 0x40]
rep stosd dword [rdi], eax
lea rax, [sym.havingToWhereExprCb]
mov rcx, r8
mov qword [rsp + 0x148], rbx
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x170], rbp
call sym.sqlite3WalkExpr
mov r15, qword [rbp + 0x30]
mov rdx, qword [rsp + 0xb8]
lea rcx, [rsp + 0x178]
call sym.sqlite3ExprAnalyzeAggregates
mov eax, dword [rsi + 0x20]
mov dword [rsi + 0x24], eax
mov rax, qword [rbp + 0x38]
test rax, rax
mov qword [rsp + 0x70], rax
jne 0x478202
cmp qword [rbp + 0x40], 0
jne 0x47820b
cmp dword [rsi + 0x30], 1
jne 0x47820b
mov rax, qword [rsi + 0x28]
mov rax, qword [rax]
mov r11, qword [rax + 0x20]
test r11, r11
je 0x47820b
mov edi, dword [r11]
cmp edi, 1
jne 0x47820b
test byte [rax + 7], 1
jne 0x47820b
mov rcx, qword [rsp + 0x60]
test byte [rcx + 0x62], 1
jne 0x47820b
mov r8, qword [rax + 8]
lea rdx, [0x004e34c7]
mov rcx, r8
mov qword [rsp + 0x78], r8
call sym.sqlite3StrICmp
mov r8, qword [rsp + 0x78]
test eax, eax
jne 0x4781c4
mov rcx, qword [r11 + 8]
call sym.sqlite3ExprCanBeNull
test eax, eax
mov al, 2
cmovne r14d, eax
jmp 0x4781df
lea rdx, [0x004e34cb]
mov rcx, r8
call sym.sqlite3StrICmp
test eax, eax
jne 0x47820b
mov r14b, 1
mov edi, 2
mov rcx, qword [rsp + 0x60]
xor r8d, r8d
mov rdx, r11
call sym.sqlite3ExprListDup
test rax, rax
mov qword [rsp + 0x70], rax
je 0x4781fd
mov byte [rax + 0x18], r14b
mov r14d, edi
jmp 0x47820b
mov qword [rsp + 0x70], 0
lea rdx, [rsp + 0x178]
mov rcx, rsi
call sym.analyzeAggFuncArgs
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0x67], 0
jne 0x476cf2
test r12, r12
mov edx, dword [rsi + 0x30]
je 0x478bb4
dec edx
jne 0x4782c6
mov rax, qword [rsi + 0x28]
cmp dword [rax + 0x10], 0
js 0x4782c6
mov rax, qword [rax]
test rax, rax
je 0x4782c6
test byte [rax + 5], 0x10
jne 0x4782c6
mov word [rsp + 0x80], 0
mov rax, qword [rax + 0x20]
test rax, rax
mov qword [rsp + 0x78], rax
je 0x4782d9
mov rdx, qword [rax + 8]
xor r8d, r8d
mov rcx, qword [rsp + 0x60]
call sym.sqlite3ExprDup
mov rcx, qword [rsp + 0x60]
xor r8d, r8d
mov rdx, r12
mov rdi, rax
call sym.sqlite3ExprListDup
mov r8, rdi
mov rcx, rbx
mov rdx, rax
call sym.sqlite3ExprListAppend.isra.403
cmp rax, 1
mov qword [rsp + 0x78], rax
sbb eax, eax
mov dword [rsp + 0x80], eax
not word [rsp + 0x80]
and word [rsp + 0x80], 0x500
jmp 0x4782d9
mov word [rsp + 0x80], 0
mov qword [rsp + 0x78], 0
mov eax, dword [rbx + 0x34]
xor r8d, r8d
mov rcx, rbx
mov r9d, dword [rsi + 0x20]
lea edx, [rax + 1]
mov dword [rbx + 0x34], edx
mov rdx, r12
mov dword [rsi + 4], eax
call sym.sqlite3KeyInfoFromExprList
movzx r9d, word [rsi + 2]
mov edx, 0x77
mov r8d, dword [rsi + 4]
mov dword [rsp + 0x30], 0xfffffff8
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
mov qword [rsp + 0xc0], rax
call sym.sqlite3VdbeAddOp4
mov edx, dword [rbx + 0x44]
xor r8d, r8d
mov dword [rsp + 0xf4], eax
mov eax, dword [rbx + 0x38]
mov rcx, qword [rsp + 0x58]
lea edi, [rax + 1]
mov dword [rsp + 0xa8], edi
lea edi, [rax + 2]
mov dword [rsp + 0xd8], edi
lea edi, [rax + 3]
mov r9d, dword [rsp + 0xd8]
mov dword [rsp + 0x98], edi
lea edi, [rdx - 1]
mov dword [rsp + 0xe8], edi
lea edi, [rax + 4]
add eax, 5
mov dword [rsp + 0xb0], edi
lea edi, [rdx - 2]
mov edx, 0x47
mov dword [rbx + 0x44], edi
mov dword [rsp + 0xd4], edi
mov edi, dword [rsp + 0xb0]
mov dword [rsp + 0xc8], eax
mov eax, dword [r12]
add edi, eax
mov dword [rsp + 0xe0], edi
add eax, dword [rsp + 0xe0]
inc edi
mov dword [rsp + 0xf0], edi
mov dword [rbx + 0x38], eax
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
lea rdx, str.clear_abort_flag
call sym.sqlite3VdbeComment
mov eax, dword [rsp + 0xc8]
xor r8d, r8d
mov edx, 0x4b
add eax, dword [r12]
mov r9d, dword [rsp + 0xc8]
mov rcx, qword [rsp + 0x58]
dec eax
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov rcx, qword [rsp + 0x58]
mov edx, 0xa
mov r9d, dword [rsp + 0xd4]
mov r8d, dword [rsp + 0xb0]
call sym.sqlite3VdbeAddOp2
mov edx, 0x40
mov r9, r12
mov r8, r15
cmp byte [rsp + 0x10c], 2
mov eax, pe_nt_image_headers64
mov qword [rsp + 0x28], rbp
mov rcx, rbx
mov dword [rsp + 0x38], 0
cmovne eax, edx
mov edx, dword [rsp + 0xa0]
or eax, dword [rsp + 0x80]
neg edx
and dx, 0x200
or eax, edx
mov rdx, r13
cwde
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x20], rax
call sym.sqlite3WhereBegin
test rax, rax
mov qword [rsp + 0x90], rax
jne 0x478498
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x60]
call sym.sqlite3ExprListDelete
jmp 0x476cf2
cmp qword [rbx + 0x60], 0
je 0x4784e9
mov r8d, dword [rsi + 0x24]
cmp word [rsi + 2], 0
mov dword [rsi + 0x20], r8d
je 0x4784d9
mov rax, qword [rbp + 0x38]
xor edx, edx
mov eax, dword [rax]
dec eax
cmp r8d, edx
jle 0x4784d3
imul rcx, rdx, 0x18
add rcx, qword [rsi + 0x18]
movsx ecx, word [rcx + 0x16]
cmp eax, ecx
cmovl eax, ecx
inc rdx
jmp 0x4784b8
inc eax
mov word [rsi + 2], ax
lea rdx, [rsp + 0x178]
mov rcx, rsi
call sym.analyzeAggFuncArgs
mov edx, dword [rbx + 0x38]
lea eax, [rdx + 1]
mov dword [rsi + 0xc], eax
mov eax, dword [rsi + 0x30]
add eax, dword [rsi + 0x20]
add eax, edx
mov edx, 0
mov dword [rbx + 0x38], eax
mov rax, qword [rsp + 0x90]
movzx eax, byte [rax + 0x43]
mov dword [rsp + 0xec], eax
mov rax, qword [rsp + 0x90]
movsx eax, byte [rax + 0x41]
test al, al
cmovs eax, edx
cmp dword [r12], eax
je 0x4786ab
cmp byte [rsp + 0x10c], 0
lea r9, str.GROUP_BY
je 0x478550
test byte [rbp + 4], 1
lea rax, str.DISTINCT
cmove r9, rax
mov rcx, rbx
xor edx, edx
lea r8, str.USE_TEMP_B_TREE_FOR__s
call sym.sqlite3VdbeExplain
mov r14d, dword [r12]
xor eax, eax
mov ecx, dword [rsi + 0x20]
mov edi, r14d
cmp ecx, eax
jle 0x478588
imul rdx, rax, 0x18
add rdx, qword [rsi + 0x18]
movsx edx, word [rdx + 0x16]
cmp edx, edi
jl 0x478583
inc edi
inc rax
jmp 0x47856d
mov edx, edi
mov rcx, rbx
xor r15d, r15d
call sym.sqlite3GetTempRange
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov rdx, r12
mov r8d, eax
mov r13d, eax
call sym.sqlite3ExprCodeExprList
mov byte [rsi], 1
cmp dword [rsi + 0x20], r15d
jle 0x4785e0
imul rax, r15, 0x18
add rax, qword [rsi + 0x18]
movsx edx, word [rax + 0x16]
cmp edx, r14d
jl 0x4785db
mov rdx, qword [rax + 8]
lea r8d, [r14 + r13]
mov rcx, rbx
inc r14d
call sym.sqlite3ExprCode
inc r15
jmp 0x4785b1
mov rcx, rbx
mov byte [rsi], 0
call sym.sqlite3GetTempReg
mov rcx, qword [rsp + 0x58]
mov r8d, r13d
mov r9d, edi
mov edx, 0x61
mov dword [rsp + 0x20], eax
mov r14d, eax
call sym.sqlite3VdbeAddOp3
mov r8d, dword [rsi + 4]
mov r9d, r14d
mov edx, 0x8b
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeAddOp2
mov edx, r14d
mov rcx, rbx
mov r14d, 1
call sym.sqlite3ReleaseTempReg
mov edx, r13d
mov r8d, edi
call sym.sqlite3ReleaseTempRange
mov rcx, qword [rsp + 0x90]
call sym.sqlite3WhereEnd
mov r13d, dword [rbx + 0x34]
mov rcx, rbx
lea eax, [r13 + 1]
mov dword [rbx + 0x34], eax
mov dword [rsi + 8], r13d
call sym.sqlite3GetTempReg
mov rcx, qword [rsp + 0x58]
mov r8d, r13d
mov dword [rsp + 0x20], edi
mov r9d, eax
mov edx, 0x79
mov r15d, eax
call sym.sqlite3VdbeAddOp3
mov r8d, dword [rsi + 4]
mov edx, 0x22
mov r9d, dword [rsp + 0x8c]
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
lea rdx, str.GROUP_BY_sort
call sym.sqlite3VdbeComment
mov byte [rsi + 1], 1
jmp 0x4786b4
xor r15d, r15d
xor r13d, r13d
xor r14d, r14d
cmp qword [rbx + 0x60], 0
je 0x47870a
lea rdx, [rsp + 0x148]
xor eax, eax
mov ecx, 0xc
mov rdi, rdx
mov qword [rsp + 0xf8], rdx
rep stosd dword [rdi], eax
lea rax, [sym.aggregateIdxEprRefToColCallback]
xor edi, edi
mov qword [rsp + 0x150], rax
cmp dword [rsi + 0x30], edi
jle 0x47870a
imul rax, rdi, 0x18
mov rcx, qword [rsp + 0xf8]
inc rdi
add rax, qword [rsi + 0x28]
mov rdx, qword [rax]
call sym.sqlite3WalkExpr
jmp 0x4786e8
cmp dword [rsp + 0xa0], 0
je 0x47874f
mov rax, qword [rsp + 0x60]
test byte [rax + 0x60], 4
jne 0x47874f
test r14d, r14d
jne 0x478732
mov rax, qword [rsp + 0x90]
test byte [rax + 0x44], 8
je 0x47874f
mov edx, dword [rsp + 0x130]
mov qword [rsp + 0x118], 0
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeChangeToNoop
mov rax, qword [rsp + 0x58]
test r14d, r14d
mov eax, dword [rax + 0x90]
mov dword [rsp + 0xa0], eax
je 0x478781
mov r8d, dword [rsi + 4]
mov r9d, r15d
mov dword [rsp + 0x20], r13d
mov edx, 0x85
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeAddOp3
mov r15d, dword [rsp + 0xe0]
xor edi, edi
inc r15d
mov eax, dword [r12]
cmp eax, edi
jle 0x4787d7
lea r8d, [r15 + rdi]
test r14d, r14d
je 0x4787bb
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x20], r8d
mov r9d, edi
mov r8d, r13d
mov edx, 0x5e
call sym.sqlite3VdbeAddOp3
jmp 0x4787d2
mov rax, rdi
mov byte [rsi], 1
mov rcx, rbx
shl rax, 5
mov rdx, qword [r12 + rax + 8]
call sym.sqlite3ExprCode
inc rdi
jmp 0x47878e
cmp qword [rsp + 0xc0], 0
je 0x4787ec
mov rdi, qword [rsp + 0xc0]
inc dword [rdi]
mov rcx, qword [rsp + 0x58]
mov edx, 0x5a
mov dword [rsp + 0x20], eax
mov rdi, qword [rsp + 0xc0]
mov r9d, dword [rsp + 0xf0]
mov dword [rsp + 0x30], 0xfffffff8
mov r8d, dword [rsp + 0xc8]
mov qword [rsp + 0x28], rdi
call sym.sqlite3VdbeAddOp4
mov rax, qword [rsp + 0x58]
xor r9d, r9d
mov edx, 0xe
mov r13d, dword [rax + 0x90]
mov rcx, rax
lea r8d, [r13 + 1]
mov dword [rsp + 0x20], r8d
call sym.sqlite3VdbeAddOp3
mov eax, dword [r12]
mov edx, 0x4f
mov rcx, qword [rbx + 0x10]
mov r9d, dword [rsp + 0xc8]
mov r8d, dword [rsp + 0xf0]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov rcx, qword [rsp + 0x58]
mov edx, 0xa
mov r9d, dword [rsp + 0xe8]
mov r8d, dword [rsp + 0x98]
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
lea rdx, str.output_one_row
call sym.sqlite3VdbeComment
mov rcx, qword [rsp + 0x58]
mov edx, 0x3b
mov r9d, dword [rsp + 0x8c]
mov r8d, dword [rsp + 0xd8]
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
lea rdx, str.check_abort_flag
call sym.sqlite3VdbeComment
mov rcx, qword [rsp + 0x58]
mov edx, 0xa
mov r9d, dword [rsp + 0xd4]
mov r8d, dword [rsp + 0xb0]
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
lea rdx, str.reset_accumulator
call sym.sqlite3VdbeComment
mov rcx, qword [rsp + 0x58]
mov edx, r13d
call sym.sqlite3VdbeJumpHere
mov r9d, dword [rsp + 0xec]
mov r8, rsi
mov rcx, rbx
mov edx, dword [rsp + 0xa8]
call sym.updateAccumulator
mov rcx, qword [rsp + 0x58]
mov r8d, 1
mov edx, 0x47
mov r9d, dword [rsp + 0xa8]
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
lea rdx, str.indicate_data_in_accumulator
call sym.sqlite3VdbeComment
test r14d, r14d
je 0x478976
mov r9d, dword [rsp + 0xa0]
mov edx, 0x25
mov r8d, dword [rsi + 4]
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeAddOp2
jmp 0x478994
mov rcx, qword [rsp + 0x90]
call sym.sqlite3WhereEnd
mov edx, dword [rsp + 0xf4]
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeChangeToNoop
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x60]
call sym.sqlite3ExprListDelete
mov rcx, qword [rsp + 0x58]
mov edx, 0xa
mov r9d, dword [rsp + 0xe8]
mov r8d, dword [rsp + 0x98]
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
lea rdx, str.output_final_row
call sym.sqlite3VdbeComment
mov edx, dword [rsp + 0x8c]
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeGoto
mov rax, qword [rsp + 0x58]
mov r8d, 1
mov edx, 0x47
mov r9d, dword [rsp + 0xd8]
mov rcx, rax
mov r12d, dword [rax + 0x90]
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
lea rdx, str.set_abort_flag
call sym.sqlite3VdbeComment
mov rcx, qword [rsp + 0x58]
mov edx, 0x43
mov r8d, dword [rsp + 0x98]
call sym.sqlite3VdbeAddOp1
mov edx, dword [rsp + 0xe8]
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeResolveLabel
mov rax, qword [rsp + 0x58]
mov edx, 0x3b
mov r8d, dword [rsp + 0xa8]
mov edi, dword [rax + 0x90]
mov rcx, rax
lea r9d, [rdi + 2]
inc edi
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
lea rdx, str.Groupby_result_generator_entry_point
call sym.sqlite3VdbeComment
mov rcx, qword [rsp + 0x58]
mov edx, 0x43
mov r8d, dword [rsp + 0x98]
call sym.sqlite3VdbeAddOp1
mov rcx, qword [rbx + 0x10]
mov rdx, rsi
call sym.finalizeAggFunctions.isra.412
mov rdx, qword [rsp + 0xb8]
mov r8d, edi
mov rcx, rbx
mov r9d, 0x10
call sym.sqlite3ExprIfFalse
or r8d, 0xffffffff
mov rdx, rbp
mov rcx, rbx
mov rax, qword [rsp + 0x210]
lea r9, [rsp + 0x118]
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x10c]
mov qword [rsp + 0x20], rax
call sym.selectInnerLoop
mov rcx, qword [rsp + 0x58]
mov edx, 0x43
mov r8d, dword [rsp + 0x98]
call sym.sqlite3VdbeAddOp1
mov rcx, qword [rsp + 0x58]
lea rdx, str.end_groupby_result_generator
call sym.sqlite3VdbeComment
mov edx, dword [rsp + 0xd4]
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeResolveLabel
mov rdx, rsi
mov rcx, rbx
call sym.resetAccumulator
mov r9d, dword [rsp + 0xa8]
xor r8d, r8d
mov edx, 0x47
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
lea rdx, str.indicate_accumulator_empty
call sym.sqlite3VdbeComment
mov rcx, qword [rsp + 0x58]
mov edx, 0x43
mov r8d, dword [rsp + 0xb0]
call sym.sqlite3VdbeAddOp1
cmp word [rsp + 0x80], 0
je 0x478fd0
cmp dword [rsp + 0xec], 0
je 0x478fd0
mov rax, qword [rsi + 0x28]
mov rcx, rbx
mov edx, dword [rsp + 0xec]
mov r9d, dword [rax + 0x14]
mov r8d, dword [rax + 0x10]
call sym.fixDistinctOpenEph
jmp 0x478fd0
cmp qword [rbp + 0x30], 0
jne 0x478dcf
mov rcx, qword [rbp + 0x20]
cmp dword [rcx], 1
jne 0x478dcf
mov rax, qword [rbp + 0x28]
cmp dword [rax], 1
jne 0x478dcf
cmp qword [rax + 0x30], 0
jne 0x478dcf
cmp edx, 1
jne 0x478dcf
cmp qword [rbp + 0x40], 0
jne 0x478dcf
mov rdi, qword [rax + 0x28]
cmp byte [rdi + 0x3f], 0
jne 0x478dcf
mov rax, qword [rcx + 8]
cmp byte [rax], 0xa8
jne 0x478dcf
cmp rsi, qword [rax + 0x38]
jne 0x478dcf
mov rcx, qword [rsi + 0x28]
mov rcx, qword [rcx + 8]
test byte [rcx + 5], 1
je 0x478dcf
test dword [rax + 4], 0x1000004
jne 0x478dcf
mov rdx, qword [rdi + 0x60]
xor r15d, r15d
mov rcx, qword [rbx]
call sym.sqlite3SchemaToIndex
mov r12d, dword [rbx + 0x34]
mov rcx, rbx
mov r13d, eax
mov r14d, dword [rdi + 0x28]
mov edx, r13d
lea eax, [r12 + 1]
mov dword [rbx + 0x34], eax
call sym.sqlite3CodeVerifySchema
mov rax, qword [rdi]
xor r9d, r9d
mov edx, r13d
mov r8d, dword [rdi + 0x28]
mov rcx, rbx
mov qword [rsp + 0x20], rax
call sym.sqlite3TableLock
test byte [rdi + 0x30], 0x80
je 0x478c95
mov rcx, qword [rdi + 0x10]
call sym.sqlite3PrimaryKeyIndex.isra.147
mov r15, rax
mov rax, qword [rbp + 0x28]
test byte [rax + 0x48], 1
jne 0x478cd3
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x478cd3
test byte [rax + 0x64], 4
jne 0x478ccd
mov edx, dword [rax + 0x5c]
cmp dx, word [rdi + 0x3c]
jge 0x478ccd
cmp qword [rax + 0x48], 0
jne 0x478ccd
test r15, r15
je 0x478cca
cmp dx, word [r15 + 0x5c]
jge 0x478ccd
mov r15, rax
mov rax, qword [rax + 0x28]
jmp 0x478ca3
xor r10d, r10d
test r15, r15
je 0x478ced
mov rdx, r15
mov rcx, rbx
mov r14d, dword [r15 + 0x58]
call sym.sqlite3KeyInfoOfIndex
mov r10, rax
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x20], r13d
mov r9d, r14d
mov r8d, r12d
mov dword [rsp + 0x28], 1
mov edx, 0x70
mov qword [rsp + 0x78], r10
call sym.sqlite3VdbeAddOp4Int
mov r10, qword [rsp + 0x78]
test r10, r10
je 0x478d34
mov rcx, qword [rsp + 0x58]
mov r9d, 0xfffffff8
mov r8, r10
or edx, 0xffffffff
call sym.sqlite3VdbeChangeP4
mov edx, dword [rbx + 0x38]
mov r8d, r12d
mov rcx, qword [rsp + 0x58]
lea eax, [rdx + 1]
mov dword [rsi + 0xc], eax
mov eax, dword [rsi + 0x30]
add eax, dword [rsi + 0x20]
add eax, edx
mov edx, 0x62
mov dword [rbx + 0x38], eax
mov r9d, dword [rsi + 0xc]
add r9d, dword [rsi + 0x20]
call sym.sqlite3VdbeAddOp2
mov rcx, qword [rsp + 0x58]
mov r8d, r12d
mov edx, 0x7a
call sym.sqlite3VdbeAddOp1
cmp byte [rbx + 0x133], 2
jne 0x478f6f
lea rax, [0x004e0719]
test r15, r15
mov rdx, rax
je 0x478dac
test byte [rdi + 0x30], 0x80
je 0x478da2
mov cl, byte [r15 + 0x64]
and ecx, 3
cmp cl, 2
je 0x478dac
mov rax, qword [r15]
lea rdx, str._USING_COVERING_INDEX
mov qword [rsp + 0x20], rdx
lea r8, str.SCAN__s_s_s
xor edx, edx
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov r9, qword [rdi]
call sym.sqlite3VdbeExplain
jmp 0x478f6f
mov edi, dword [rsi + 0x24]
test edi, edi
je 0x478e21
xor eax, eax
cmp edx, eax
jle 0x478dfd
imul rcx, rax, 0x18
add rcx, qword [rsi + 0x28]
mov r8, qword [rcx]
test byte [r8 + 7], 1
jne 0x478df8
mov rcx, qword [rcx + 8]
test byte [rcx + 4], 0x20
jne 0x478e46
inc rax
jmp 0x478dd8
cmp eax, edx
jne 0x478e46
mov eax, dword [rbx + 0x38]
xor r8d, r8d
mov edx, 0x47
mov rcx, qword [rsp + 0x58]
lea edi, [rax + 1]
mov dword [rbx + 0x38], edi
mov r9d, edi
call sym.sqlite3VdbeAddOp2
jmp 0x478e48
xor eax, eax
dec edx
jne 0x478e4a
mov rdx, qword [rsi + 0x28]
cmp dword [rdx + 0x10], 0
js 0x478e4a
mov rax, qword [rdx]
mov r12, qword [rax + 0x20]
cmp r12, 1
sbb eax, eax
not eax
and ax, 0x500
jmp 0x478e4a
xor edi, edi
xor eax, eax
mov ecx, dword [rbx + 0x38]
mov dword [rsp + 0x78], eax
lea edx, [rcx + 1]
mov dword [rsi + 0xc], edx
mov edx, dword [rsi + 0x30]
add edx, dword [rsi + 0x20]
add edx, ecx
mov rcx, rbx
mov dword [rbx + 0x38], edx
mov rdx, rsi
call sym.resetAccumulator
mov eax, dword [rsp + 0x78]
movzx edx, r14b
mov r8, r15
mov r9, qword [rsp + 0x70]
mov qword [rsp + 0x20], r12
mov rcx, rbx
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x28], rbp
or eax, edx
mov rdx, r13
movzx eax, ax
mov dword [rsp + 0x30], eax
call sym.sqlite3WhereBegin
test rax, rax
mov r12, rax
je 0x476cf2
movzx r13d, byte [rax + 0x43]
mov r8, rsi
mov edx, edi
mov rcx, rbx
mov r9d, r13d
call sym.updateAccumulator
test r13d, r13d
je 0x478ee5
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x478ee5
mov r9d, dword [rax + 0x14]
mov edx, r13d
mov rcx, rbx
mov r8d, dword [rax + 0x10]
call sym.fixDistinctOpenEph
test edi, edi
je 0x478f01
mov rcx, qword [rsp + 0x58]
mov r9d, edi
mov r8d, 1
mov edx, 0x47
call sym.sqlite3VdbeAddOp2
test r14b, r14b
je 0x478f5b
test byte [r12 + 0x44], 4
je 0x478f5b
cmp byte [r12 + 0x41], 0
je 0x478f5b
movzx eax, byte [r12 + 0x40]
dec eax
cdqe
cmp rax, 0xffffffffffffffff
movsxd rdx, eax
je 0x478f4c
imul rcx, rax, 0x68
dec rax
mov rcx, qword [r12 + rcx + 0x3b8]
test byte [rcx + 0x38], 4
je 0x478f20
imul rdx, rdx, 0x68
mov edx, dword [r12 + rdx + 0x370]
jmp 0x478f51
mov edx, dword [r12 + 0x34]
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeGoto
mov rcx, r12
call sym.sqlite3WhereEnd
mov rcx, qword [rbx + 0x10]
mov rdx, rsi
call sym.finalizeAggFunctions.isra.412
mov r8d, dword [rsp + 0x8c]
mov r9d, 0x10
mov rcx, rbx
mov qword [rsp + 0x118], 0
mov rdx, qword [rsp + 0xb8]
call sym.sqlite3ExprIfFalse
xor r9d, r9d
or r8d, 0xffffffff
mov rdx, rbp
mov eax, dword [rsp + 0x8c]
mov rcx, rbx
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x28], rax
call sym.selectInnerLoop
mov edx, dword [rsp + 0x8c]
mov rcx, qword [rsp + 0x58]
call sym.sqlite3VdbeResolveLabel
jmp 0x477137
mov rax, qword [rsp + 0x68]
lea r9, str.RIGHT_PART_OF
mov rcx, rbx
lea r8, str.USE_TEMP_B_TREE_FOR__sORDER_BY
mov rsi, qword [rbx + 0x10]
mov r12d, dword [rax]
mov eax, dword [rsp + 0x134]
mov dword [rsp + 0x80], eax
mov eax, dword [rbx + 0x44]
dec eax
cmp dword [rsp + 0x120], 0
mov dword [rbx + 0x44], eax
mov dword [rsp + 0x98], eax
mov rax, qword [rsp + 0x210]
movzx eax, byte [rax]
mov byte [rsp + 0x8c], al
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 4]
mov dword [rsp + 0x78], eax
mov rax, qword [rbp + 0x20]
mov qword [rsp + 0xa0], rax
lea rax, [0x004e0719]
cmovle r9, rax
xor edx, edx
call sym.sqlite3VdbeExplain
mov r9d, dword [rsp + 0x12c]
test r9d, r9d
je 0x4790ae
mov r8d, dword [rsp + 0x128]
mov edx, 0xa
mov rcx, rsi
call sym.sqlite3VdbeAddOp2
mov edx, dword [rsp + 0x80]
mov rcx, rsi
call sym.sqlite3VdbeGoto
mov edx, dword [rsp + 0x12c]
mov rcx, rsi
call sym.sqlite3VdbeResolveLabel
mov eax, dword [rsp + 0x124]
mov dword [rsp + 0x68], eax
mov al, byte [rsp + 0x8c]
sub eax, 9
cmp al, 1
jbe 0x4790d1
cmp dword [rsp + 0x90], 0xd
jne 0x47910d
cmp dword [rsp + 0x90], 0xa
jne 0x4790fd
cmp dword [rbp + 0xc], 0
je 0x4790fd
mov rax, qword [rsp + 0x210]
xor r8d, r8d
mov edx, 0x4b
mov rcx, rsi
mov r9d, dword [rax + 0xc]
call sym.sqlite3VdbeAddOp2
mov rax, qword [rsp + 0x210]
xor r14d, r14d
mov edi, dword [rax + 0xc]
jmp 0x47913c
mov rcx, rbx
call sym.sqlite3GetTempReg
mov r14d, eax
mov al, byte [rsp + 0x8c]
and eax, 0xfffffffd
cmp al, 0xc
jne 0x479132
call sym.sqlite3GetTempReg
xor r12d, r12d
mov edi, eax
jmp 0x47913c
mov edx, r12d
call sym.sqlite3GetTempRange
mov edi, eax
mov r15d, dword [r13]
sub r15d, dword [rsp + 0x120]
test byte [rsp + 0x13c], 1
je 0x479201
mov eax, dword [rbx + 0x38]
mov ebp, dword [rbx + 0x34]
mov r10d, dword [rsp + 0x12c]
lea r13d, [rax + 1]
lea eax, [rbp + 1]
mov dword [rbx + 0x38], r13d
test r10d, r10d
mov dword [rbx + 0x34], eax
je 0x479187
mov edx, 0xf
mov rcx, rsi
call sym.sqlite3VdbeAddOp0
mov r10d, eax
lea eax, [r12 + r15 + 1]
mov r9d, r13d
mov r8d, ebp
mov dword [rsp + 0xa8], r10d
mov dword [rsp + 0x20], eax
mov edx, 0x79
mov rcx, rsi
call sym.sqlite3VdbeAddOp3
mov r10d, dword [rsp + 0xa8]
test r10d, r10d
je 0x4791c3
mov edx, r10d
mov rcx, rsi
call sym.sqlite3VdbeJumpHere
mov r9d, dword [rsp + 0x80]
mov rcx, rsi
mov edx, 0x22
mov r8d, dword [rsp + 0x68]
call sym.sqlite3VdbeAddOp2
mov r8d, dword [rsp + 0x68]
mov r9d, r13d
mov rcx, rsi
inc eax
mov dword [rsp + 0x20], ebp
mov edx, 0x85
mov dword [rsp + 0xa8], eax
call sym.sqlite3VdbeAddOp3
jmp 0x479261
mov r9d, dword [rsp + 0x80]
mov edx, 0x23
mov rcx, rsi
mov r8d, dword [rsp + 0x68]
call sym.sqlite3VdbeAddOp2
mov edx, dword [rbp + 0xc]
mov rcx, rsi
mov r8d, dword [rsp + 0x98]
inc eax
mov dword [rsp + 0xa8], eax
call sym.codeOffset
cmp dword [rbp + 0xc], 0
jle 0x479252
mov r8d, dword [rbp + 8]
or r9d, 0xffffffff
mov edx, 0x56
mov rcx, rsi
call sym.sqlite3VdbeAddOp2
mov dword [rsp + 0xd0], 1
mov ebp, dword [rsp + 0x68]
add r15d, dword [rsp + 0xd0]
xor eax, eax
lea r10d, [r15 - 1]
cmp r12d, eax
jle 0x479293
mov rcx, qword [rsp + 0xa0]
mov rdx, rax
shl rdx, 5
cmp word [rcx + rdx + 0x20], 0
jne 0x47928e
inc r10d
inc rax
jmp 0x47926f
lea r13d, [r12 - 1]
movsxd r13, r13d
test r13d, r13d
js 0x479326
mov rax, qword [rsp + 0xa0]
mov r11, r13
shl r11, 5
movzx r9d, word [rax + r11 + 0x20]
test r9w, r9w
je 0x4792c4
dec r9d
jmp 0x4792ca
mov r9d, r10d
dec r10d
lea eax, [rdi + r13]
mov r8d, ebp
mov edx, 0x5e
mov dword [rsp + 0xd0], r10d
mov rcx, rsi
mov dword [rsp + 0x20], eax
dec r13
mov qword [rsp + 0xb0], r11
call sym.sqlite3VdbeAddOp3
mov rax, qword [rsp + 0xa0]
lea rdx, [0x004e187e]
mov rcx, rsi
mov r11, qword [rsp + 0xb0]
mov r8, qword [rax + r11 + 0x10]
call sym.sqlite3VdbeComment
mov r10d, dword [rsp + 0xd0]
jmp 0x47929b
mov al, byte [rsp + 0x8c]
sub eax, 0xa
cmp al, 5
ja case.0x479349.3
lea rdx, [0x004e35fc]
movzx eax, al
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov r9d, r15d
mov r8d, ebp
mov rcx, rsi
mov dword [rsp + 0x20], edi
mov edx, 0x5e
call sym.sqlite3VdbeAddOp3
mov r8d, dword [rsp + 0x78]
mov r9d, r14d
mov rcx, rsi
mov edx, 0x7f
call sym.sqlite3VdbeAddOp2
mov r8d, dword [rsp + 0x78]
mov rcx, rsi
mov r9d, edi
mov dword [rsp + 0x20], r14d
mov edx, pe_nt_image_headers64
call sym.sqlite3VdbeAddOp3
mov edx, 8
mov rcx, rsi
call sym.sqlite3VdbeChangeP5
jmp case.0x479349.0
mov dword [rsp + 0x30], r12d
mov r9d, r12d
mov r8d, edi
mov edx, 0x61
mov rax, qword [rsp + 0x210]
mov rcx, rsi
mov rax, qword [rax + 0x18]
mov dword [rsp + 0x20], r14d
mov qword [rsp + 0x28], rax
call sym.sqlite3VdbeAddOp4
mov r8d, dword [rsp + 0x78]
mov r9d, r14d
mov rcx, rsi
mov dword [rsp + 0x28], r12d
mov edx, 0x8a
mov dword [rsp + 0x20], edi
call sym.sqlite3VdbeAddOp4Int
test r14d, r14d
je 0x4794f1
mov r8d, r12d
mov edx, edi
mov rcx, rbx
call sym.sqlite3ReleaseTempRange
jmp 0x4794e6
mov rax, qword [rsp + 0x210]
mov rcx, rbx
mov ebp, dword [rax + 8]
call sym.sqlite3GetTempReg
mov r9d, r12d
mov edx, 0x61
mov rcx, rsi
mov r13d, eax
mov dword [rsp + 0x20], r13d
mov eax, ebp
shr eax, 0x1f
lea r8d, [rdi + rax]
sub r9d, eax
call sym.sqlite3VdbeAddOp3
test ebp, ebp
jns 0x479463
mov r8d, dword [rsp + 0x78]
mov dword [rsp + 0x20], edi
mov r9d, r13d
mov rcx, rsi
mov edx, pe_nt_image_headers64
call sym.sqlite3VdbeAddOp3
jmp 0x479ed7
mov r8d, dword [rsp + 0x78]
mov dword [rsp + 0x28], ebp
mov r9d, r13d
mov rcx, rsi
mov dword [rsp + 0x20], edi
mov edx, 0x8a
call sym.sqlite3VdbeAddOp4Int
jmp 0x479ed7
cmp dword [rsp + 0x90], 9
jne 0x4794b0
mov rax, qword [rsp + 0x210]
mov r9d, r12d
mov edx, 0x54
mov rcx, rsi
mov r8d, dword [rax + 0xc]
call sym.sqlite3VdbeAddOp2
jmp 0x479ed7
mov rax, qword [rsp + 0x210]
mov edx, 0xc
mov rcx, rsi
mov r8d, dword [rax + 4]
call sym.sqlite3VdbeAddOp1
test r14d, r14d
je 0x4794f1
cmp dword [rsp + 0x90], 0xb
je 0x4793f8
mov edx, edi
mov rcx, rbx
call sym.sqlite3ReleaseTempReg
mov edx, r14d
mov rcx, rbx
call sym.sqlite3ReleaseTempReg
mov edx, dword [rsp + 0x98]
mov rcx, rsi
call sym.sqlite3VdbeResolveLabel
mov r8d, dword [rsp + 0x68]
mov edx, 0x25
test byte [rsp + 0x13c], 1
mov r9d, dword [rsp + 0xa8]
jne 0x479521
mov edx, 0x27
mov rcx, rsi
call sym.sqlite3VdbeAddOp2
mov r8d, dword [rsp + 0x128]
test r8d, r8d
je 0x479543
mov edx, 0x43
mov rcx, rsi
call sym.sqlite3VdbeAddOp1
mov edx, dword [rsp + 0x80]
mov rcx, rsi
call sym.sqlite3VdbeResolveLabel
jmp 0x47716a
mov r8, qword [rsp + 0x210]
mov rdx, rbp
mov rcx, rbx
call sym.multiSelect
cmp qword [rbp + 0x58], 0
mov esi, eax
jne 0x479ee5
jmp 0x477194
mov rax, qword [rbx]
test byte [rax + 0x60], 1
mov qword [rsp + 0x70], rax
jne 0x479ea2
cmp qword [rbp + 0x70], 0
jne 0x479ea2
imul rsi, rsi, 0x68
mov r12, qword [rbp + 0x28]
mov r15, qword [r12 + rsi + 0x30]
cmp qword [r15 + 0x70], 0
jne 0x479ea2
mov rax, qword [r15 + 0x60]
test rax, rax
je 0x4795d0
cmp qword [rbp + 0x60], 0
jne 0x479ea2
cmp qword [rax + 0x18], 0
jne 0x479ea2
mov edx, dword [rbp + 4]
bt edx, 8
jae 0x4795e2
test rax, rax
jne 0x479ea2
mov r8, qword [r15 + 0x28]
mov r9d, dword [r8]
test r9d, r9d
je 0x479ea2
mov r10d, dword [r15 + 4]
test r10b, 1
jne 0x479ea2
test rax, rax
je 0x47961e
cmp dword [r12], 1
jg 0x479ea2
cmp dword [rsp + 0x80], 0
jne 0x479ea2
mov rcx, qword [rbp + 0x48]
test rcx, rcx
jne 0x479631
cmp dword [rsp + 0x80], 0
je 0x47963c
cmp qword [r15 + 0x48], 0
jne 0x479ea2
test rax, rax
je 0x479655
cmp qword [rbp + 0x30], 0
jne 0x479ea2
test dl, 1
jne 0x479ea2
bt r10d, 0xd
jb 0x479ea2
movsxd rax, dword [rsp + 0x68]
imul rax, rax, 0x68
mov al, byte [r12 + rax + 0x44]
test al, 0x60
je 0x4796a8
dec r9d
jg 0x479ea2
mov r9, qword [r8 + 0x28]
cmp byte [r9 + 0x3f], 1
je 0x479ea2
test dl, 1
jne 0x479ea2
test al, 0x10
jne 0x479ea2
mov dword [rsp + 0x8c], 1
jmp 0x4796b3
mov dword [rsp + 0x8c], 0
cmp dword [rsp + 0x68], 0
jle 0x4796c5
test byte [r8 + 0x44], 0x40
jne 0x479ea2
movsxd rax, dword [rsp + 0x68]
imul r8, rax, 0x68
add r8, r12
test byte [r8 + 0x49], 1
je 0x4796e7
mov r8, qword [r8 + 0x68]
cmp byte [r8 + 0x12], 0
je 0x479ea2
imul rax, rax, 0x68
cmp qword [r15 + 0x50], 0
mov r13, qword [rbx + 0x178]
mov eax, dword [r12 + rax + 0x4c]
mov dword [rsp + 0xb8], eax
jne 0x47970d
xor r14d, r14d
jmp 0x479871
cmp qword [r15 + 0x48], 0
jne 0x479ea2
cmp dword [rsp + 0x80], 0
jne 0x479ea2
test dl, 1
jne 0x479ea2
cmp dword [rsp + 0x8c], 1
je 0x479ea2
mov rax, r15
test byte [rax + 4], 9
jne 0x479ea2
mov r8, qword [rax + 0x50]
test r8, r8
je 0x47975c
cmp byte [rax], 0x87
jne 0x479ea2
mov r9, qword [rax + 0x28]
cmp dword [r9], 0
jle 0x479ea2
cmp qword [rax + 0x70], 0
jne 0x479ea2
cmp dword [rsp + 0x68], 0
jle 0x479787
test byte [r9 + 0x44], 0x40
jne 0x479ea2
test r8, r8
mov rax, r8
jne 0x479740
test rcx, rcx
je 0x4797b3
mov r8d, dword [rcx]
cmp r8d, eax
jle 0x4797b3
inc rax
mov r9, rax
shl r9, 5
cmp word [rcx + r9], 0
jne 0x479797
jmp 0x479ea2
bt edx, 0xd
jb 0x479ea2
mov rdi, qword [r15 + 0x20]
xor r14d, r14d
cmp dword [rdi], r14d
movsxd rsi, r14d
jle 0x479823
mov rax, r14
shl rsi, 5
shl rax, 5
mov rcx, qword [rdi + rax + 8]
call sym.sqlite3ExprAffinity
mov rdx, qword [r15 + 0x50]
mov byte [rsp + 0x78], al
test rdx, rdx
je 0x47981e
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0x90], rdx
add rax, rsi
mov rcx, qword [rax + 8]
call sym.sqlite3ExprAffinity
cmp byte [rsp + 0x78], al
jne 0x479ea2
mov rdx, qword [rsp + 0x90]
mov rdx, qword [rdx + 0x50]
jmp 0x4797e9
inc r14
jmp 0x4797c4
cmp dword [r12], 1
jle 0x479705
cmp dword [rbx + 0x8c], 0x1f4
jg 0x479ea2
mov rax, qword [rsp + 0x70]
test byte [rax + 0x62], 0x80
jne 0x479ea2
movsxd rax, dword [rbx + 0x34]
mov rcx, qword [rsp + 0x70]
lea rdx, [rax*4 + 4]
call sym.sqlite3DbMallocZero
test rax, rax
mov r14, rax
je 0x479871
mov eax, dword [rbx + 0x34]
mov dword [r14], eax
movsxd rdi, dword [rsp + 0x68]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x15
mov rcx, rbx
imul rax, rdi, 0x68
lea rsi, [r12 + rax]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x20], 0
mov qword [rbx + 0x178], rax
call sym.sqlite3AuthCheck
mov rax, qword [rsi + 0x30]
mov qword [rbx + 0x178], r13
mov rdx, qword [rsi + 0x10]
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x90], rax
call sym.sqlite3DbFree
mov rdx, qword [rsi + 0x18]
mov rcx, qword [rsp + 0x70]
call sym.sqlite3DbFree
mov rdx, qword [rsi + 0x20]
mov rcx, qword [rsp + 0x70]
call sym.sqlite3DbFree
mov r10, qword [r15 + 0x50]
mov qword [rsi + 0x10], 0
mov qword [rsi + 0x18], 0
mov qword [rsi + 0x20], 0
mov qword [rsi + 0x30], 0
mov qword [rsp + 0x78], rdi
test r10, r10
je 0x479a56
mov r9, qword [rbp + 0x48]
xor r8d, r8d
mov rdx, rbp
mov qword [rsp + 0xa8], r10
mov r11, qword [rbp + 0x60]
mov rcx, qword [rsp + 0x70]
mov rdi, qword [rsi + 0x28]
mov r15, qword [rbp + 0x50]
mov qword [rsi + 0x28], 0
mov qword [rbp + 0x48], 0
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x60], 0
mov qword [rsp + 0xa0], r9
mov qword [rsp + 0x98], r11
call sym.sqlite3SelectDup
mov r11, qword [rsp + 0x98]
mov byte [rbp], 0x87
mov r9, qword [rsp + 0xa0]
test rax, rax
mov r13, rax
mov r10, qword [rsp + 0xa8]
mov qword [rbp + 0x60], r11
mov qword [rbp + 0x48], r9
mov qword [rsi + 0x28], rdi
jne 0x4799ad
mov qword [rbp + 0x50], r15
jmp 0x479a4d
mov eax, dword [rbx + 0x8c]
inc eax
test r14, r14
mov dword [rbx + 0x8c], eax
mov dword [r13 + 0x10], eax
je 0x479a38
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x67], 0
jne 0x479a38
mov r9d, dword [rsp + 0x68]
mov rdx, r14
mov rcx, rbx
mov qword [rsp + 0x98], r10
mov r8, qword [r13 + 0x28]
call sym.srclistRenumberCursors
xor eax, eax
mov ecx, 0xa
mov rdx, r13
lea r8, [rsp + 0x178]
mov rdi, r8
rep stosd dword [rdi], eax
lea rax, [sym.renumberCursorsCb]
mov rcx, r8
mov qword [rsp + 0x1a0], r14
mov qword [rsp + 0x180], rax
lea rax, [sym.sqlite3SelectWalkNoop]
mov qword [rsp + 0x188], rax
call sym.sqlite3WalkSelect
mov r10, qword [rsp + 0x98]
test r15, r15
mov qword [r13 + 0x50], r15
je 0x479a45
mov qword [r15 + 0x58], r13
mov qword [r13 + 0x58], rbp
mov qword [rbp + 0x50], r13
mov r10, qword [r10 + 0x50]
jmp 0x479913
mov rcx, qword [rsp + 0x70]
mov rdx, r14
call sym.sqlite3DbFree
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x67], 0
je 0x479a86
imul rax, qword [rsp + 0x78], 0x68
mov rdi, qword [rsp + 0x90]
mov qword [r12 + rax + 0x30], rdi
jmp 0x479e90
movsxd rax, dword [rsp + 0x68]
imul rax, rax, 0x68
mov r8, qword [r12 + rax + 0x28]
test r8, r8
je 0x479ad6
mov eax, dword [r8 + 0x2c]
cmp eax, 1
jne 0x479abe
mov rcx, qword [rbx + 0xa8]
lea rdx, [sym.sqlite3DeleteTable]
test rcx, rcx
cmove rcx, rbx
call sym.sqlite3ParserAddCleanup
jmp 0x479ac4
dec eax
mov dword [r8 + 0x2c], eax
movsxd rax, dword [rsp + 0x68]
imul rax, rax, 0x68
mov qword [r12 + rax + 0x28], 0
movsxd rax, dword [rsp + 0x68]
mov r13, rbp
mov dword [rsp + 0xa0], 0xffffffff
mov r14, qword [rsp + 0x90]
imul rax, rax, 0x68
mov qword [rsp + 0xa8], rax
add rax, r12
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0xa8]
mov byte [rsp + 0xb0], 0
mov rsi, qword [r14 + 0x28]
mov r15b, byte [r12 + rax + 0x44]
mov eax, dword [rsi]
mov r12, qword [r13 + 0x28]
and r15d, 0x40
cmp rbp, r13
mov dword [rsp + 0x98], eax
jne 0x479b49
mov rax, qword [rsp + 0xc8]
mov al, byte [rax + 0x44]
mov byte [rsp + 0xb0], al
cmp dword [rsp + 0x98], 1
jle 0x479bea
mov eax, dword [rsp + 0x68]
mov rdx, r12
mov rcx, rbx
lea r9d, [rax + 1]
mov eax, dword [rsp + 0x98]
lea r8d, [rax - 1]
call sym.sqlite3SrcListEnlarge
test rax, rax
mov r12, rax
jne 0x479be6
lea rdx, [rsp + 0x190]
xor eax, eax
mov ecx, 6
lea r8, [rsp + 0x178]
mov rdi, rdx
mov rdx, qword [rsp + 0x90]
rep stosd dword [rdi], eax
lea rax, [sym.agginfoPersistExprCb]
mov rcx, r8
mov qword [rsp + 0x178], rbx
mov qword [rsp + 0x180], rax
lea rax, [sym.sqlite3SelectWalkNoop]
mov qword [rsp + 0x188], rax
call sym.sqlite3WalkSelect
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x70]
call sym.sqlite3SelectDelete
jmp 0x479e90
mov qword [r13 + 0x28], rax
mov rax, qword [rsp + 0xc0]
lea r8, [rsi + 8]
xor r11d, r11d
add rax, r12
mov qword [rsp + 0x78], rax
mov r9, rax
xor eax, eax
cmp dword [rsp + 0x98], r11d
jle 0x479ca2
mov edi, dword [rsp + 0x68]
lea edx, [r11 + rdi]
movsxd rdx, edx
imul rdx, rdx, 0x68
test byte [r12 + rdx + 0x49], 4
je 0x479c6b
mov rdx, qword [r9 + 0x50]
mov qword [rsp + 0xd8], r8
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0xd4], r11d
mov qword [rsp + 0xa0], r9
call sym.sqlite3IdListDelete
mov r8, qword [rsp + 0xd8]
xor eax, eax
mov r11d, dword [rsp + 0xd4]
mov r9, qword [rsp + 0xa0]
lea rdi, [r9 + 8]
mov rsi, r8
mov ecx, 0x1a
rep movsd dword [rdi], dword [rsi]
mov ecx, 0x1a
inc r11d
or byte [r9 + 0x44], r15b
add r9, 0x68
mov edi, dword [r8 + 0x44]
mov dword [rsp + 0xa0], edi
mov rdi, r8
add r8, 0x68
rep stosd dword [rdi], eax
jmp 0x479c06
mov rax, qword [rsp + 0xa8]
or r15d, dword [rsp + 0xb0]
lea rdx, [r12 + rax]
mov al, byte [rdx + 0x44]
and eax, 0x40
or r15d, eax
mov byte [rdx + 0x44], r15b
mov rax, qword [r14 + 0x48]
test rax, rax
je 0x479cfb
test byte [r13 + 6], 0x40
jne 0x479cfb
mov ecx, dword [rax]
xor edx, edx
cmp ecx, edx
jle 0x479cef
mov r8, rdx
inc rdx
shl r8, 5
mov word [rax + r8 + 0x20], 0
jmp 0x479cd7
mov qword [r13 + 0x48], rax
mov qword [r14 + 0x48], 0
cmp dword [rsp + 0x8c], 1
mov r11, qword [r14 + 0x30]
mov qword [r14 + 0x30], 0
jne 0x479d26
mov edx, dword [rsp + 0xa0]
mov r8d, 1
mov rcx, r11
call sym.sqlite3SetJoinExpr
test r11, r11
je 0x479d4e
mov r9, qword [r13 + 0x30]
test r9, r9
je 0x479d4a
mov r8, r11
mov edx, 0x2c
mov rcx, rbx
call sym.sqlite3PExpr
mov qword [r13 + 0x30], rax
jmp 0x479d4e
mov qword [r13 + 0x30], r11
mov rax, qword [rsp + 0x70]
cmp byte [rax + 0x67], 0
jne 0x479dc7
mov eax, dword [rsp + 0xb8]
mov qword [rsp + 0x178], rbx
mov dword [rsp + 0x180], eax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x184], eax
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0x188], eax
mov rax, qword [r14 + 0x20]
mov qword [rsp + 0x190], rax
mov rax, r14
mov rdx, qword [rax + 0x50]
test rdx, rdx
je 0x479da8
mov rax, rdx
jmp 0x479d9a
mov rax, qword [rax + 0x20]
lea rcx, [rsp + 0x178]
xor r8d, r8d
mov rdx, r13
mov qword [rsp + 0x198], rax
call sym.substSelect.part.470
mov eax, dword [r14 + 4]
and eax, 0x100
or dword [r13 + 4], eax
mov rax, qword [r14 + 0x60]
test rax, rax
je 0x479de9
mov qword [r13 + 0x60], rax
mov qword [r14 + 0x60], 0
lea rax, [rsp + 0x178]
xor r15d, r15d
mov qword [rsp + 0xb0], rax
lea rsi, [sym.sqlite3SelectWalkNoop]
cmp dword [rsp + 0x98], r15d
jle 0x479e7a
mov rax, qword [rsp + 0x78]
cmp qword [rax + 0x28], 0
je 0x479e6f
mov rdi, qword [rsp + 0xb0]
xor eax, eax
mov ecx, 0xa
mov rdx, r13
rep stosd dword [rdi], eax
lea rax, [sym.recomputeColumnsUsedExpr]
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x188], rsi
mov qword [rsp + 0x180], rax
mov rax, qword [rsp + 0x78]
add rax, 8
mov qword [rsp + 0x1a0], rax
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x58], 0
call sym.sqlite3WalkSelect
add qword [rsp + 0x78], 0x68
inc r15d
jmp 0x479e03
mov r13, qword [r13 + 0x50]
mov r14, qword [r14 + 0x50]
test r13, r13
jne 0x479b08
jmp 0x479b7d
cmp dword [rbx + 0x30], 0
jne 0x476ce9
mov dword [rsp + 0x68], 0xffffffff
mov rax, qword [rsp + 0x60]
mov r13, qword [rbp + 0x28]
cmp byte [rax + 0x67], 0
jne 0x476ce9
mov rax, qword [rsp + 0x210]
cmp byte [rax], 8
jbe 0x476c7f
mov rax, qword [rbp + 0x48]
mov qword [rsp + 0x118], rax
jmp 0x476c7f
test r14d, r14d
jne 0x4794dc
jmp 0x4794f1
mov eax, esi
add rsp, 0x1b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret