Function at 0x4838b9
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, 0x1d8
mov eax, dword [rsp + 0x250]
mov r15, qword [rcx + 0x10]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x68]
mov r13, rcx
mov rsi, r8
mov qword [rsp + 0x228], rdx
lea rdx, [rsp + 0x128]
mov rbp, r9
mov rdi, rdx
mov word [rsp + 0x4c], ax
mov rax, qword [rcx]
mov ecx, 0xe
mov qword [rsp + 0x50], rax
xor eax, eax
test r9, r9
rep stosd dword [rdi], eax
je 0x48391e
cmp dword [r9], 0x3f
jle 0x48391e
xor ebp, ebp
mov rax, qword [rsp + 0x228]
mov eax, dword [rax]
cmp eax, 0x40
mov dword [rsp + 0x80], eax
jle 0x48394e
lea rdx, str.at_most__d_tables_in_a_join
mov r8d, 0x40
mov rcx, r13
call sym.sqlite3ErrorMsg
jmp 0x486519
test byte [rsp + 0x68], 0x20
mov eax, 1
cmove eax, dword [rsp + 0x80]
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x80], eax
dec eax
imul eax, eax, 0x68
add eax, 0x3c8
movsxd r12, eax
lea rdx, [r12 + 0x70]
call sym.sqlite3DbMallocRawNN
mov rbx, rax
mov rax, qword [rsp + 0x50]
mov al, byte [rax + 0x67]
test al, al
mov byte [rsp + 0x58], al
je 0x4839a8
mov rcx, qword [rsp + 0x50]
mov rdx, rbx
call sym.sqlite3DbFree
jmp 0x486519
mov rax, qword [rsp + 0x228]
mov qword [rbx], r13
lea rdx, [rbx + 0x41]
mov ecx, 0x2f
mov qword [rbx + 0x10], rbp
mov rdi, rdx
mov r8d, 0x2c
mov qword [rbx + 0x28], 0xffffffffffffffff
mov qword [rbx + 8], rax
mov rax, qword [rsp + 0x240]
mov qword [rbx + 0x18], rax
mov al, byte [rsp + 0x80]
mov byte [rbx + 0x40], al
mov eax, dword [r13 + 0x44]
dec eax
mov dword [r13 + 0x44], eax
mov dword [rbx + 0x30], eax
mov dword [rbx + 0x34], eax
mov eax, dword [rsp + 0x68]
mov word [rbx + 0x3c], ax
mov eax, dword [rsp + 0x258]
mov word [rbx + 0x3e], ax
mov eax, dword [r13 + 0xd0]
mov dword [rbx + 0x38], eax
mov rax, qword [rsp + 0x248]
mov qword [rbx + 0x20], rax
mov al, byte [rsp + 0x58]
rep stosb byte [rdi], al
movsxd rcx, dword [rsp + 0x80]
lea rax, [rbx + 0x360]
mov qword [rsp + 0x60], rax
mov rdi, rax
mov al, byte [rsp + 0x58]
imul rcx, rcx, 0x68
add rcx, 0x70
rep stosb byte [rdi], al
mov eax, 0xffffff9d
mov qword [rsp + 0x128], rbx
lea rcx, [rbx + 0x70]
shl rax, 0x20
mov qword [rbx + 0x25c], rax
lea rax, [rbx + 0x70]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x130], rax
lea rax, [rbx + r12]
lea rdx, [rax + 0x58]
mov qword [rsp + 0x138], rax
mov qword [rax + 0x48], rdx
mov rdx, rsi
mov word [rax + 0x3c], 0
mov word [rax + 0x40], 3
mov dword [rax + 0x38], 0
lea rax, [rbx + 0x98]
mov qword [rbx + 0x70], rbx
mov byte [rbx + 0x81], 0
mov qword [rbx + 0x78], 0
mov dword [rbx + 0x84], 0
mov qword [rbx + 0x88], 8
mov qword [rbx + 0x90], rax
call sym.sqlite3WhereSplit
cmp dword [rsp + 0x80], 0
jne 0x483b26
test rbp, rbp
je 0x483af9
mov eax, dword [rbp]
mov byte [rbx + 0x41], al
bt dword [rsp + 0x68], 8
jae 0x483b10
mov rax, qword [rsp + 0x50]
test byte [rax + 0x60], 0x10
jne 0x483b10
mov byte [rbx + 0x43], 1
lea r8, str.SCAN_CONSTANT_ROW
xor edx, edx
mov rcx, r13
call sym.sqlite3VdbeExplain
jmp 0x483be7
mov rax, qword [rsp + 0x228]
mov dword [rsp + 0x70], 0
lea rsi, [rax + 0x28]
movsxd rax, dword [rbx + 0x25c]
mov edx, dword [rsi + 0x24]
mov rdi, qword [rsp + 0x228]
lea ecx, [rax + 1]
mov dword [rbx + 0x25c], ecx
mov dword [rbx + rax*4 + 0x260], edx
movsxd rax, dword [rsp + 0x70]
imul rax, rax, 0x68
test byte [rdi + rax + 0x48], 4
je 0x483bcb
mov rax, qword [rsi + 0x38]
test rax, rax
mov qword [rsp + 0x78], rax
je 0x483bcb
mov r14, qword [rsi]
xor r12d, r12d
xor edi, edi
mov rax, qword [rsp + 0x78]
mov r9d, r12d
cmp dword [rax], r12d
jle 0x483bcb
movsxd rax, edi
movsx edx, word [r14 + 0x36]
imul rax, rax, 0x18
cmp edi, edx
jge 0x483bb9
mov rcx, qword [r14 + 8]
mov cx, word [rcx + rax + 0x12]
add rax, 0x18
and cl, 2
jne 0x48680a
inc edi
jmp 0x483b9b
mov r8, qword [r14]
lea rdx, str.too_many_arguments_on__s_____max__d
mov rcx, r13
call sym.sqlite3ErrorMsg
mov rax, qword [rsp + 0x228]
add rsi, 0x68
inc dword [rsp + 0x70]
mov edi, dword [rsp + 0x70]
cmp dword [rax], edi
jg 0x483b3a
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x228]
call sym.sqlite3WhereExprAnalyze
cmp qword [rsp + 0x248], 0
je 0x483c26
mov rax, qword [rsp + 0x248]
cmp qword [rax + 0x60], 0
je 0x483c26
mov rcx, qword [rsp + 0xb0]
mov rdx, rax
call sym.sqlite3WhereAddLimit
cmp dword [r13 + 0x30], 0
jne 0x486502
lea rax, [rsp + 0x160]
xor esi, esi
mov qword [rsp + 0x70], rax
lea r14, [sym.sqlite3SelectWalkFail]
mov rax, qword [rsp + 0x130]
cmp dword [rax + 0x1c], esi
jle 0x483d13
imul rdx, rsi, 0x38
add rdx, qword [rax + 0x20]
test byte [rdx + 0x12], 2
mov r12, rdx
jne 0x483d0b
cmp qword [rdx + 0x30], 0
jne 0x483d0b
cmp dword [rsp + 0x80], 0
mov r10, qword [rdx]
jne 0x483c8e
test byte [r10 + 4], 2
jne 0x483ce1
jmp 0x483cef
mov rdi, qword [rsp + 0x70]
xor eax, eax
mov ecx, 0xc
mov rdx, r10
mov qword [rsp + 0x78], r10
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x70]
lea rax, [sym.exprNodeIsDeterministic]
mov word [rsp + 0x184], 1
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], r14
call sym.sqlite3WalkExpr
mov r10, qword [rsp + 0x78]
cmp word [rsp + 0x184], 0
jne 0x483c85
jmp 0x483d0b
mov rax, qword [rsp + 0x228]
test byte [rax + 0x44], 0x40
jne 0x483d0b
mov r8d, dword [rbx + 0x34]
mov r9d, 0x10
mov rdx, r10
mov rcx, r13
call sym.sqlite3ExprIfFalse
or word [r12 + 0x12], 4
inc rsi
jmp 0x483c47
bt dword [rsp + 0x68], 8
jae 0x483f00
mov rax, qword [rsp + 0x50]
test byte [rax + 0x60], 0x10
je 0x483d41
mov eax, dword [rsp + 0x68]
and word [rbx + 0x3c], 0xfeff
and ah, 0xfe
mov word [rsp + 0x4c], ax
jmp 0x483f00
mov rax, qword [rsp + 0x228]
cmp dword [rax], 1
je 0x483d6e
test rbp, rbp
jne 0x483f00
mov rax, qword [rsp + 0x240]
or word [rbx + 0x3c], 0x80
mov qword [rbx + 0x10], rax
jmp 0x483f00
mov rax, qword [rsp + 0x228]
xor r8d, r8d
mov edi, dword [rax + 0x4c]
mov r10, qword [rax + 0x28]
mov rax, qword [rsp + 0x240]
mov r9d, dword [rax]
cmp r9d, r8d
jle 0x483dce
mov rsi, qword [rsp + 0x240]
mov rax, r8
shl rax, 5
mov rcx, qword [rsi + rax + 8]
call sym.sqlite3ExprSkipCollateAndLikely
test rax, rax
je 0x483dc9
mov sil, byte [rax]
lea edx, [rsi + 0x59]
and dl, 0xfd
jne 0x483dc9
cmp edi, dword [rax + 0x2c]
jne 0x483dc9
cmp word [rax + 0x30], 0
js 0x483efc
inc r8
jmp 0x483d8b
mov r14, qword [r10 + 0x10]
test r14, r14
je 0x483d4e
cmp byte [r14 + 0x62], 0
jne 0x483de8
mov r14, qword [r14 + 0x28]
jmp 0x483dd2
xor r12d, r12d
cmp qword [r14 + 0x48], 0
jne 0x483de2
movzx eax, word [r14 + 0x5e]
mov dword [rsp + 0x70], r12d
cmp eax, r12d
jle 0x483eed
or r9, 0xffffffffffffffff
mov qword [rsp + 0x28], r14
mov r8d, r12d
mov edx, edi
mov rcx, qword [rsp + 0xb0]
mov dword [rsp + 0x20], 2
call sym.sqlite3WhereFindTerm
test rax, rax
je 0x483e32
inc r12
jmp 0x483df2
mov rax, qword [r14 + 0x40]
xor esi, esi
mov rax, qword [rax + r12*8]
mov qword [rsp + 0x78], rax
lea rax, [r12 + r12]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x240]
cmp dword [rax], esi
jle 0x483eed
mov rcx, qword [rsp + 0x240]
mov rax, rsi
shl rax, 5
mov r8, qword [rcx + rax + 8]
mov rcx, r8
call sym.sqlite3ExprSkipCollateAndLikely
test rax, rax
jne 0x483e80
inc rsi
jmp 0x483e4a
mov cl, byte [rax]
add ecx, 0x59
and cl, 0xfd
jne 0x483e7b
mov rdx, qword [r14 + 8]
mov rcx, qword [rsp + 0x68]
mov cx, word [rdx + rcx]
cmp word [rax + 0x30], cx
jne 0x483e7b
cmp edi, dword [rax + 0x2c]
jne 0x483e7b
mov rdx, r8
mov rcx, r13
call sym.sqlite3ExprNNCollSeq
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rax]
call sym.sqlite3StrICmp
test eax, eax
jne 0x483e7b
mov rax, qword [r14 + 8]
mov rsi, qword [rsp + 0x68]
movsx rax, word [rax + rsi]
movsx edx, ax
test edx, edx
js 0x4867fd
mov rdx, qword [r14 + 0x18]
imul rax, rax, 0x18
add rax, qword [rdx + 8]
test byte [rax + 8], 0xf
jne 0x483e2d
movzx eax, word [r14 + 0x5e]
cmp dword [rsp + 0x70], eax
jne 0x483de2
mov byte [rbx + 0x43], 1
cmp dword [rsp + 0x80], 1
jne 0x48408a
mov rbp, qword [rsp + 0x128]
test byte [rbp + 0x3c], 0x20
jne 0x48408a
mov r12, qword [rbp + 8]
mov r14, qword [r12 + 0x28]
cmp byte [r14 + 0x3f], 1
je 0x48408a
test byte [r12 + 0x48], 3
jne 0x48408a
mov eax, dword [r12 + 0x4c]
lea rdi, [rsp + 0x160]
or r9d, 0xffffffff
mov rsi, qword [rsp + 0x138]
mov rcx, rdi
mov dword [rsp + 0x68], eax
mov r8d, dword [rsp + 0x68]
lea rax, [rbp + 0x70]
mov dword [rsi + 0x38], 0
mov rdx, rax
mov word [rsi + 0x3e], 0
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x82
mov qword [rsp + 0x78], rax
call sym.whereScanInit
test rax, rax
je 0x4867ad
cmp qword [rax + 0x28], 0
je 0x486730
mov rcx, rdi
call sym.whereScanNext
jmp 0x483f94
mov rdi, qword [rdi + 0x28]
test rdi, rdi
je 0x48407f
cmp byte [rdi + 0x62], 0
je 0x483fb2
cmp qword [rdi + 0x48], 0
jne 0x483fb2
cmp word [rdi + 0x5e], 3
ja 0x483fb2
mov al, byte [rdi + 0x64]
and eax, 8
cmp al, 1
sbb r10d, r10d
xor r14d, r14d
and r10d, 0xffffff80
add r10d, 0x82
movzx eax, word [rdi + 0x5e]
mov dword [rsp + 0x84], r14d
cmp eax, r14d
jle 0x484037
mov r8d, dword [rsp + 0x68]
mov qword [rsp + 0x28], rdi
mov r9d, r14d
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x20], r10d
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0x88], r10d
call sym.whereScanInit
test rax, rax
mov r10d, dword [rsp + 0x88]
jne 0x4867c3
movzx eax, word [rdi + 0x5e]
cmp dword [rsp + 0x84], eax
jne 0x483fb2
test byte [rdi + 0x64], 0x20
mov dword [rsi + 0x38], 0x1201
jne 0x4867e1
mov rax, qword [r12 + 0x58]
test qword [rdi + 0x98], rax
je 0x4867e1
mov word [rsi + 0x3c], r14w
mov word [rsi + 0x18], r14w
mov qword [rsi + 0x20], rdi
mov word [rsi + 0x14], 0x27
mov eax, dword [rsi + 0x38]
test eax, eax
jne 0x486755
lea rsi, [rsp + 0x128]
mov rcx, rsi
call sym.whereLoopAddAll
test eax, eax
jne 0x486502
test byte [rsp + 0x155], 4
jne 0x4840c6
xor edx, edx
mov rcx, rbx
call sym.wherePathSolver
mov rax, qword [rsp + 0x50]
cmp byte [rax + 0x67], 0
je 0x484104
jmp 0x486502
mov rdi, qword [rbx + 0x58]
test rdi, rdi
je 0x4840f3
mov rax, qword [rdi + 0x50]
mov rdx, rdi
mov rcx, qword [rsp + 0x50]
mov qword [rbx + 0x58], rax
call sym.whereLoopClear
mov rcx, qword [rsp + 0x50]
mov rdx, rdi
call sym.sqlite3DbNNFreeNN
jmp 0x4840c6
mov rcx, rsi
call sym.whereLoopAddAll
test eax, eax
je 0x4840ac
jmp 0x486502
cmp qword [rbx + 0x10], 0
jne 0x484120
mov rax, qword [rsp + 0x50]
test byte [rax + 0x31], 0x10
je 0x484147
mov qword [rbx + 0x68], 0xffffffffffffffff
jmp 0x484147
mov eax, dword [rbx + 0x48]
mov rcx, rbx
lea edx, [rax + 1]
movsx edx, dx
call sym.wherePathSolver
mov rax, qword [rsp + 0x50]
cmp byte [rax + 0x67], 0
jne 0x486502
cmp qword [rbx + 0x10], 0
je 0x48410b
mov eax, dword [r13 + 0x30]
test eax, eax
mov dword [rsp + 0xa0], eax
jne 0x486502
cmp byte [rbx + 0x40], 1
jbe 0x4841a8
cmp qword [rsp + 0x240], 0
je 0x4841a8
test word [rsp + 0x4c], 0x400
mov qword [rsp + 0x98], 0xffffffffffffffff
jne 0x4841b4
mov rax, qword [rsp + 0x50]
test byte [rax + 0x61], 1
jne 0x4841b4
mov rcx, rbx
call sym.whereOmitNoopJoin.constprop.788
mov qword [rsp + 0x98], rax
movzx eax, byte [rbx + 0x40]
mov dword [rsp + 0x80], eax
jmp 0x4841b4
mov qword [rsp + 0x98], 0xffffffffffffffff
cmp byte [rbx + 0x40], 1
jbe 0x4841cd
mov rax, qword [rsp + 0x50]
test byte [rax + 0x62], 8
jne 0x4841cd
mov rcx, rbx
call sym.whereCheckIfBloomFilterIsUseful
mov rax, qword [rbx]
movsx edx, word [rbx + 0x48]
add dword [rax + 0xd0], edx
movzx eax, word [rsp + 0x4c]
test byte [rsp + 0x4c], 4
mov dword [rsp + 0x100], eax
je 0x48425e
mov rcx, qword [rbx + 0x3b8]
mov eax, dword [rcx + 0x38]
bt eax, 0xc
jb 0x484225
test byte [rsp + 0x4c], 8
je 0x48425e
mov rsi, qword [rsp + 0x228]
mov rdx, qword [rsi + 0x28]
cmp byte [rdx + 0x3f], 1
je 0x48425e
bt eax, 0xd
jae 0x484229
test byte [rsp + 0x4c], 0x10
je 0x48425e
jmp 0x484229
mov dl, 1
jmp 0x48422b
mov dl, 2
mov rsi, qword [rsp + 0x228]
mov byte [rbx + 0x42], dl
mov rdx, qword [rsi + 0x28]
test byte [rdx + 0x30], 0x80
jne 0x48425e
test al, 0x40
je 0x48425e
test byte [rsp + 0x4c], 8
mov dl, 8
mov sil, byte [rsp + 0x58]
cmovne esi, edx
and eax, 0xffffffbf
mov dword [rcx + 0x38], eax
mov byte [rsp + 0x58], sil
movzx eax, byte [rsp + 0x58]
mov dword [rsp + 0x68], 0
mov dword [rsp + 0x70], eax
mov esi, dword [rsp + 0x68]
cmp dword [rsp + 0x80], esi
jle 0x484693
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x50]
movzx eax, byte [rax + 0x38]
movsxd r10, eax
mov r14, rax
mov dword [rsp + 0x58], eax
imul r10, r10, 0x68
add r10, qword [rsp + 0x228]
mov rsi, qword [r10 + 0x28]
mov rdx, qword [rsi + 0x60]
call sym.sqlite3SchemaToIndex
test byte [rsi + 0x31], 0x40
mov edi, eax
mov rax, qword [rsp + 0x60]
mov rbp, qword [rax + 0x58]
jne 0x4843fd
mov dl, byte [rsi + 0x3f]
cmp dl, 2
je 0x4843fd
mov eax, dword [rbp + 0x38]
bt eax, 0xa
jae 0x484317
mov rdx, qword [rsi + 0x50]
mov rcx, qword [rsp + 0x50]
call sym.sqlite3GetVTable.isra.179
xor r9d, r9d
mov edx, 0xad
mov rcx, r15
mov dword [rsp + 0x30], 0xfffffff5
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
mov r8d, dword [r10 + 0x4c]
call sym.sqlite3VdbeAddOp4
jmp 0x4843fd
dec dl
je 0x4843fd
test al, 0x40
jne 0x48432a
test byte [rsp + 0x4c], 0x20
je 0x484346
movsxd rax, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x228]
imul rax, rax, 0x68
test byte [rcx + rax + 0x44], 0x50
je 0x4843e4
movsxd rax, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x228]
imul rax, rax, 0x68
cmp byte [rbx + 0x42], 0
mov edx, dword [rcx + rax + 0x4c]
mov eax, 0x70
je 0x48436e
mov dword [rbx + 0x28], edx
mov eax, 0x71
mov dword [rsp + 0x20], eax
mov r9, rsi
mov r8d, edi
mov rcx, r13
call sym.sqlite3OpenTable
cmp byte [rbx + 0x42], 0
jne 0x4843d6
cmp word [rsi + 0x36], 0x3f
jg 0x4843d6
test byte [rsi + 0x30], 0xe0
jne 0x4843d6
test dword [rbp + 0x38], 0x404000
jne 0x4843d6
movsxd rax, dword [rsp + 0x58]
xor r8d, r8d
mov rcx, qword [rsp + 0x228]
imul rax, rax, 0x68
mov rax, qword [rcx + rax + 0x58]
test rax, rax
je 0x4843c2
shr rax, 1
inc r8d
jmp 0x4843b5
mov r9d, 0xfffffffd
movsxd r8, r8d
or edx, 0xffffffff
mov rcx, r15
call sym.sqlite3VdbeChangeP4
mov edx, dword [rsp + 0x70]
mov rcx, r15
call sym.sqlite3VdbeChangeP5
jmp 0x4843fd
mov rax, qword [rsi]
xor r9d, r9d
mov edx, edi
mov rcx, r13
mov r8d, dword [rsi + 0x28]
mov qword [rsp + 0x20], rax
call sym.sqlite3TableLock
test byte [rbp + 0x39], 2
je 0x48455c
test byte [rsi + 0x30], 0x80
mov r12, qword [rbp + 0x20]
je 0x484434
mov al, byte [r12 + 0x64]
and eax, 3
cmp al, 2
jne 0x484434
test byte [rsp + 0x4c], 0x20
je 0x484434
mov rax, qword [rsp + 0x60]
xor r10d, r10d
mov eax, dword [rax + 4]
jmp 0x4844f3
cmp byte [rbx + 0x42], 0
je 0x484478
movsxd rax, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x228]
imul rax, rax, 0x68
mov rax, qword [rcx + rax + 0x28]
mov rdx, qword [rax + 0x10]
mov eax, dword [rsp + 0x258]
test rdx, rdx
je 0x48446d
cmp rdx, r12
je 0x48446d
inc eax
mov rdx, qword [rdx + 0x28]
jmp 0x48445b
mov dword [rbx + 0x2c], eax
mov r10d, 0x71
jmp 0x4844f3
cmp dword [rsp + 0x258], 0
je 0x484489
test byte [rsp + 0x4c], 0x20
jne 0x4844e6
mov eax, dword [r13 + 0x34]
mov r10d, 0x70
test byte [r12 + 0x65], 8
lea edx, [rax + 1]
mov dword [r13 + 0x34], edx
je 0x4844f3
mov rcx, qword [rsp + 0x50]
test byte [rcx + 0x63], 1
jne 0x4844f3
imul r14, r14, 0x68
mov r8d, eax
mov rdx, r12
mov dword [rsp + 0x78], eax
mov rcx, qword [rsp + 0x228]
mov dword [rsp + 0x84], r10d
lea r9, [rcx + r14 + 8]
mov rcx, r13
call sym.whereAddIndexedExpr
mov eax, dword [rsp + 0x78]
mov r10d, dword [rsp + 0x84]
jmp 0x4844f3
mov eax, dword [rsp + 0x258]
mov r10d, 0x65
mov rcx, qword [rsp + 0x60]
test r10d, r10d
mov dword [rcx + 8], eax
je 0x48455c
mov r9d, dword [r12 + 0x58]
mov edx, r10d
mov r8d, eax
mov rcx, r15
mov dword [rsp + 0x20], edi
call sym.sqlite3VdbeAddOp3
mov rdx, r12
mov rcx, r13
call sym.sqlite3VdbeSetP4KeyInfo
mov eax, dword [rbp + 0x38]
test al, 0xf
je 0x484549
test eax, 0x188002
jne 0x484549
test byte [rbx + 0x3c], 1
jne 0x484549
cmp byte [rbx + 0x43], 2
je 0x484549
mov edx, 2
mov rcx, r15
call sym.sqlite3VdbeChangeP5
mov r8, qword [r12]
lea rdx, [0x004e187e]
mov rcx, r15
call sym.sqlite3VdbeComment
test edi, edi
js 0x48456a
mov edx, edi
mov rcx, r13
call sym.sqlite3CodeVerifySchema
movsxd rdi, dword [rsp + 0x58]
mov rax, qword [rsp + 0x228]
imul rdi, rdi, 0x68
test byte [rax + rdi + 0x44], 0x10
je 0x484684
mov edx, 0x14
mov rcx, rbx
call sym.sqlite3WhereMalloc
mov rdi, rax
mov rax, qword [rsp + 0x60]
test rdi, rdi
mov qword [rax + 0x30], rdi
je 0x484684
mov eax, dword [r13 + 0x34]
mov r8d, 0x10000
mov rcx, r15
lea edx, [rax + 1]
mov dword [r13 + 0x34], edx
mov edx, 0x4d
mov dword [rdi], eax
mov eax, dword [r13 + 0x38]
lea r9d, [rax + 1]
mov dword [r13 + 0x38], r9d
mov dword [rdi + 4], r9d
call sym.sqlite3VdbeAddOp2
mov eax, dword [r13 + 0x38]
xor r8d, r8d
mov rcx, r15
mov edx, 0x4b
lea r9d, [rax + 1]
mov dword [r13 + 0x38], r9d
mov dword [rdi + 8], r9d
call sym.sqlite3VdbeAddOp2
test byte [rsi + 0x30], 0x80
jne 0x48464c
mov r8d, dword [rdi]
mov r9d, 1
mov edx, 0x76
mov rcx, r15
call sym.sqlite3VdbeAddOp2
mov rcx, qword [r13]
xor r8d, r8d
mov edx, 1
call sym.sqlite3KeyInfoAlloc
test rax, rax
je 0x484678
mov rdx, qword [rax + 0x18]
mov qword [rax + 0x20], 0
mov r8d, 0xfffffff8
mov rcx, r15
mov byte [rdx], 0
mov rdx, rax
call sym.sqlite3VdbeAppendP4
jmp 0x484678
mov rcx, qword [rsi + 0x10]
call sym.sqlite3PrimaryKeyIndex.isra.147
mov r8d, dword [rdi]
mov edx, 0x76
mov rcx, r15
movzx r9d, word [rax + 0x5e]
mov rsi, rax
call sym.sqlite3VdbeAddOp2
mov rdx, rsi
mov rcx, r13
call sym.sqlite3VdbeSetP4KeyInfo
and dword [rbp + 0x38], 0xffffffbf
mov byte [rbx + 0x41], 0
mov byte [rbx + 0x43], 3
inc dword [rsp + 0x68]
add qword [rsp + 0x60], 0x68
jmp 0x48426f
mov eax, dword [r15 + 0x90]
mov dword [rbx + 0x4c], eax
mov rax, qword [rsp + 0x50]
cmp byte [rax + 0x67], 0
jne 0x486502
lea r14, [rbx + 0x360]
mov qword [rsp + 0xf0], 0
mov esi, dword [rsp + 0xa0]
cmp dword [rsp + 0x80], esi
jle 0x4864f3
cmp dword [r13 + 0x30], 0
jne 0x486502
movzx ebp, byte [r14 + 0x38]
mov rax, qword [r14 + 0x58]
imul rbp, rbp, 0x68
add rbp, qword [rsp + 0x228]
mov esi, dword [rax + 0x38]
mov al, byte [rbp + 0x48]
test al, 0x10
je 0x484746
test al, 8
je 0x484718
mov r9d, dword [rbp + 0x38]
mov edx, 0xa
mov rcx, r15
mov r8d, dword [rbp + 0x3c]
call sym.sqlite3VdbeAddOp2
jmp 0x484746
mov edx, 0xf
mov rcx, r15
call sym.sqlite3VdbeAddOp0
mov r9d, dword [rbp + 0x38]
mov edx, 0xa
mov rcx, r15
mov r8d, dword [rbp + 0x3c]
mov edi, eax
call sym.sqlite3VdbeAddOp2
mov edx, edi
mov rcx, r15
call sym.sqlite3VdbeJumpHere
test esi, 0x404000
jne 0x484782
mov rax, qword [r13 + 0xa8]
test rax, rax
cmove rax, r13
cmp byte [rax + 0x133], 2
jne 0x4847cf
mov r9d, dword [rsp + 0x100]
mov r8, r14
mov rcx, r13
mov rdx, qword [rsp + 0x228]
call sym.sqlite3WhereExplainOneScan.part.410
jmp 0x4847cf
bt esi, 0xe
jae 0x4847a5
mov r8, qword [rsp + 0x98]
mov r9, r14
mov rcx, r13
mov rdx, qword [rsp + 0xb0]
call sym.constructAutomaticIndex
jmp 0x4847bf
mov r9, qword [rsp + 0x98]
mov r8, r14
mov rcx, rbx
mov edx, dword [rsp + 0xa0]
call sym.sqlite3ConstructBloomFilter
mov rax, qword [rsp + 0x50]
cmp byte [rax + 0x67], 0
je 0x48474e
jmp 0x486502
mov eax, dword [r15 + 0x90]
mov rsi, qword [r14 + 0x58]
mov dword [r14 + 0x20], eax
mov rax, qword [r13]
mov qword [rsp + 0x60], rax
mov rax, qword [rbx + 8]
mov qword [rsp + 0xb8], rax
movzx eax, byte [r14 + 0x38]
movsxd r10, eax
mov dword [rsp + 0xc0], eax
mov rdi, rax
imul r10, r10, 0x68
add r10, qword [rsp + 0xb8]
mov eax, dword [r10 + 0x4c]
mov dword [rsp + 0x4c], eax
mov edx, dword [rsp + 0x4c]
lea rax, [rbx + 0x258]
mov rcx, rax
mov qword [rsp + 0xf8], rax
call sym.sqlite3WhereGetMask
not rax
and rax, qword [rsp + 0x98]
mov qword [r14 + 0x60], rax
mov eax, dword [r13 + 0x44]
mov r12, qword [rbx + 0x68]
lea ebp, [rax - 1]
mov dword [r13 + 0x44], ebp
mov dword [r14 + 0x10], ebp
mov dword [r14 + 0xc], ebp
mov eax, dword [r13 + 0x44]
dec eax
mov dword [r13 + 0x44], eax
cmp byte [r14 + 0x38], 0
mov dword [rsp + 0xc4], eax
mov dword [r14 + 0x18], eax
je 0x4848ab
test byte [r10 + 0x44], 8
je 0x4848ab
mov eax, dword [r13 + 0x38]
mov edx, 0x47
mov rcx, r15
xor r8d, r8d
lea r9d, [rax + 1]
mov dword [r13 + 0x38], r9d
mov dword [r14], r9d
call sym.sqlite3VdbeAddOp2
lea rdx, str.init_LEFT_JOIN_no_match_flag
mov rcx, r15
call sym.sqlite3VdbeComment
mov rax, qword [rsp + 0xf0]
test eax, eax
movsxd rdx, eax
je 0x4848d8
imul rcx, rax, 0x68
cmp dword [rbx + rcx + 0x360], 0
jne 0x4848d8
cmp qword [rbx + rcx + 0x390], 0
jne 0x4848d8
dec rax
jmp 0x4848b3
movsxd rax, dword [rsp + 0xc0]
mov rcx, qword [rsp + 0xb8]
imul rax, rax, 0x68
lea r10, [rcx + rax]
mov r8b, byte [r10 + 0x48]
test r8b, 0x20
je 0x48495a
mov esi, dword [r10 + 0x3c]
xor r9d, r9d
mov edx, 0xb
mov rcx, r15
mov eax, dword [r10 + 0x38]
mov qword [rsp + 0x58], r10
mov r8d, esi
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov r9d, ebp
mov r8d, esi
mov edx, 0xc
mov rcx, r15
call sym.sqlite3VdbeAddOp2
mov r10, qword [rsp + 0x58]
lea rdx, str.next_row_of__s
mov rcx, r15
mov dword [r14 + 0x40], eax
mov rax, qword [r10 + 0x28]
mov r8, qword [rax]
call sym.sqlite3VdbeComment
mov byte [r14 + 0x39], 9
jmp 0x485fdf
mov cl, byte [rsp + 0xa0]
shr r12, cl
mov eax, r12d
and eax, 1
mov dword [rsp + 0x68], eax
mov eax, dword [rsi + 0x38]
bt eax, 0xa
jae 0x484cc3
movzx eax, word [rsi + 0x3c]
mov rcx, r13
xor ebp, ebp
lea edx, [rax + 2]
mov dword [rsp + 0x58], eax
call sym.sqlite3GetTempRange
mov r12d, dword [r14 + 0xc]
mov edi, eax
lea eax, [rax + 2]
mov dword [rsp + 0x70], eax
cmp dword [rsp + 0x58], ebp
mov ecx, ebp
mov r9d, ebp
jle 0x484ac8
mov eax, dword [rsp + 0x70]
lea r10d, [rax + rbp]
mov rax, qword [rsi + 0x48]
mov rax, qword [rax + rbp*8]
test rax, rax
je 0x484ac0
test byte [rax + 0x14], 1
je 0x484a6b
cmp ecx, 0x1f
jg 0x484a4a
mov edx, 1
shl edx, cl
test dword [rsi + 0x30], edx
je 0x484a4a
mov r11d, dword [r13 + 0x34]
mov dword [rsp + 0x88], r10d
mov ecx, dword [r13 + 0x38]
lea edx, [r11 + 1]
mov r8d, r11d
mov dword [rsp + 0x78], r11d
mov dword [r13 + 0x34], edx
mov rdx, qword [rax]
lea r9d, [rcx + 1]
mov rcx, r13
mov dword [r13 + 0x38], r9d
mov dword [rsp + 0x84], r9d
call sym.sqlite3CodeRhsOfIN
mov r9d, dword [rsp + 0x84]
mov edx, 0xae
mov rcx, r15
mov r10d, dword [rsp + 0x88]
mov r11d, dword [rsp + 0x78]
mov dword [rsp + 0x20], r9d
mov r9d, r10d
mov r8d, r11d
call sym.sqlite3VdbeAddOp3
jmp 0x484ac0
mov ecx, dword [rsp + 0x68]
mov dword [rsp + 0x28], r10d
mov r8, r14
mov rdx, rax
mov dword [rsp + 0x20], ecx
mov rcx, r13
call sym.codeEqualityTerm
mov r12d, dword [r14 + 0x10]
jmp 0x484ac0
mov rdx, qword [rax]
mov r9d, 1
mov r8d, r10d
mov rcx, r13
mov qword [rsp + 0x78], rax
mov rdx, qword [rdx + 0x18]
call sym.codeExprOrVector
mov rax, qword [rsp + 0x78]
cmp byte [rax + 0x17], 0x4a
jne 0x484ac0
test byte [rsi + 0x1c], 2
je 0x484ac0
mov rax, qword [rbx + 0x20]
mov edx, 0x47
mov rcx, r15
xor r8d, r8d
mov r9d, dword [rax + 0xc]
call sym.sqlite3VdbeAddOp2
lea rdx, str.Zero_OFFSET_counter
mov rcx, r15
call sym.sqlite3VdbeComment
inc rbp
jmp 0x48499d
mov r8d, dword [rsi + 0x18]
mov r9d, edi
mov edx, 0x47
mov rcx, r15
call sym.sqlite3VdbeAddOp2
mov r8d, dword [rsp + 0x58]
lea r9d, [rdi + 1]
mov rcx, r15
mov edx, 0x47
call sym.sqlite3VdbeAddOp2
mov al, byte [rsi + 0x1c]
mov r9d, r12d
mov edx, 6
mov r8d, dword [rsp + 0x4c]
mov rcx, r15
and eax, 1
cmp al, 1
sbb eax, eax
or eax, 0xfffffffa
mov dword [rsp + 0x30], eax
mov rax, qword [rsi + 0x28]
mov dword [rsp + 0x20], edi
mov qword [rsp + 0x28], rax
call sym.sqlite3VdbeAddOp4
mov rax, qword [rsp + 0x60]
and byte [rsi + 0x1c], 0xfe
cmp byte [rax + 0x67], 0
je 0x484b3c
mov qword [rsi + 0x28], 0
mov eax, dword [rsp + 0x4c]
mov dword [r14 + 0x3c], eax
cmp byte [rbx + 0x42], 1
sbb eax, eax
add edi, 2
xor ebp, ebp
and eax, 0xffffff87
sub eax, 0x48
mov byte [r14 + 0x39], al
mov eax, dword [r15 + 0x90]
mov dword [r14 + 0x40], eax
cmp dword [rsp + 0x58], ebp
mov ecx, ebp
mov eax, ebp
jle 0x485fdf
mov rdx, qword [rsi + 0x48]
cmp ebp, 0xf
mov r12, qword [rdx + rbp*8]
jg 0x484b98
movzx edx, word [rsi + 0x22]
bt edx, ecx
jae 0x484b98
mov rdx, r12
mov rcx, r14
call sym.disableTerm
jmp 0x484cb9
test byte [r12 + 0x14], 1
je 0x484cb9
cmp eax, 0x1f
jg 0x484bb9
mov eax, 1
shl eax, cl
test dword [rsi + 0x30], eax
jne 0x484cb9
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0x67], 0
jne 0x484cb9
mov r9d, dword [r14 + 0x48]
xor r10d, r10d
cmp r9d, r10d
jle 0x484c1c
imul rax, r10, 0x14
mov rcx, r15
add rax, qword [r14 + 0x50]
mov edx, dword [rax + 4]
call sym.sqlite3VdbeGetOp
movzx edx, byte [rax]
cmp dl, 0x5e
jne 0x484bf4
cmp dword [rax + 0xc], edi
jmp 0x484bfc
cmp dl, 0x87
jne 0x484c17
cmp dword [rax + 8], edi
jne 0x484c17
mov r9d, dword [rax + 8]
mov rcx, r15
mov r8d, dword [rax + 4]
mov eax, dword [rax + 0xc]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
jmp 0x484c1c
inc r10
jmp 0x484bcf
xor r9d, r9d
xor r8d, r8d
mov edx, 0x35
mov rcx, r13
call sym.sqlite3PExpr
mov r10, rax
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0x67], 0
jne 0x484cac
mov eax, dword [r12 + 0x24]
mov rdx, qword [r12]
test eax, eax
mov rdx, qword [rdx + 0x10]
jle 0x484c5e
dec eax
cdqe
shl rax, 5
add rax, qword [rdx + 0x20]
mov rdx, qword [rax + 8]
mov rcx, qword [rsp + 0x60]
mov qword [r10 + 0x10], rdx
xor r8d, r8d
mov edx, 0xb0
mov qword [rsp + 0x68], r10
call sym.sqlite3Expr
mov r10, qword [rsp + 0x68]
test rax, rax
mov qword [r10 + 0x18], rax
je 0x484ca4
mov r8d, dword [r14 + 0x18]
mov rdx, r10
mov dword [rax + 0x2c], edi
mov r9d, 0x10
mov rcx, r13
call sym.sqlite3ExprIfFalse
mov r10, qword [rsp + 0x68]
mov qword [r10 + 0x10], 0
mov rcx, qword [rsp + 0x60]
mov rdx, r10
call sym.sqlite3ExprDelete
inc rbp
inc edi
jmp 0x484b64
bt eax, 8
jae 0x484d90
test al, 5
je 0x484d90
mov rax, qword [rsi + 0x48]
xor r9d, r9d
mov r8, r14
mov rcx, r13
mov rdx, qword [rax]
mov eax, dword [r13 + 0x38]
lea esi, [rax + 1]
mov eax, dword [rsp + 0x68]
mov dword [r13 + 0x38], esi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], eax
call sym.codeEqualityTerm
cmp esi, eax
mov edi, eax
je 0x484d11
mov edx, esi
mov rcx, r13
call sym.sqlite3ReleaseTempReg
cmp dword [r14 + 0x2c], 0
mov esi, dword [r14 + 0x10]
je 0x484d72
mov r9d, esi
mov r8d, edi
mov edx, 0xd
mov rcx, r15
call sym.sqlite3VdbeAddOp2
mov r8d, dword [r14 + 0x2c]
mov r9d, esi
mov rcx, r15
mov edx, 0x40
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], edi
call sym.sqlite3VdbeAddOp4Int
mov r9d, esi
mov rdx, rbx
mov rcx, r13
mov rax, qword [rsp + 0x98]
mov r8d, dword [rsp + 0xa0]
mov qword [rsp + 0x20], rax
call sym.filterPullDown
mov r8d, dword [rsp + 0x4c]
mov dword [rsp + 0x20], edi
mov r9d, esi
mov rcx, r15
mov edx, 0x1e
call sym.sqlite3VdbeAddOp3
jmp 0x485f9c
imul rdx, rdx, 0x68
mov r9d, dword [rbx + rdx + 0x36c]
mov edx, eax
and edx, 0x102
cmp edx, 0x102
jne 0x484de5
test al, 0x20
je 0x484dbe
mov rdx, qword [rsi + 0x48]
mov rdi, qword [rdx]
mov edx, 1
jmp 0x484dc2
xor edx, edx
xor edi, edi
test al, 0x10
je 0x486520
mov rax, qword [rsi + 0x48]
cmp dword [rsp + 0x68], 0
mov r10, qword [rax + rdx*8]
mov rsi, r10
jne 0x486611
jmp 0x48652d
bt eax, 9
jae 0x485897
mov ecx, dword [rsi + 0x1c]
test al, 0x20
mov edi, dword [rsi + 0x18]
mov rbp, qword [rsi + 0x20]
mov word [rsp + 0xd0], cx
mov ecx, dword [r14 + 8]
mov word [rsp + 0xa8], di
movzx edi, word [rsi + 0x1a]
mov dword [rsp + 0x84], ecx
movzx ecx, word [rsp + 0xa8]
mov dword [rsp + 0x58], ecx
je 0x484e41
lea edx, [rcx + 1]
mov r8, qword [rsi + 0x48]
movzx r9d, di
movzx ecx, word [rsp + 0xa8]
mov r12, qword [r8 + rcx*8]
jmp 0x484e4b
mov edx, dword [rsp + 0x58]
xor r9d, r9d
xor r12d, r12d
test al, 0x10
je 0x484eb5
mov rcx, qword [rsi + 0x48]
movsxd rdx, edx
mov byte [rsp + 0x90], 0
mov rcx, qword [rcx + rdx*8]
movzx edx, word [rsp + 0xd0]
mov qword [rsp + 0x88], rcx
cmp r9d, edx
cmovl r9d, edx
test r12, r12
jne 0x484ec9
movzx edx, word [rsp + 0xa8]
mov rcx, qword [rbp + 8]
movsx rcx, word [rcx + rdx*2]
test ecx, ecx
mov rdx, rcx
js 0x484ea8
mov rcx, qword [rbp + 0x18]
imul rdx, rdx, 0x18
add rdx, qword [rcx + 8]
test byte [rdx + 8], 0xf
jmp 0x484eab
cmp ecx, 0xfffffffe
sete byte [rsp + 0x90]
jmp 0x484ec9
mov byte [rsp + 0x90], 0
mov qword [rsp + 0x88], 0
and eax, 0x80030
mov dword [rsp + 0x70], 0
cmp eax, 0x80000
jne 0x484f24
mov eax, dword [r13 + 0x38]
inc eax
cmp dword [r14], 0
mov dword [r13 + 0x38], eax
mov dword [rsp + 0x70], eax
mov dword [r14 + 0x24], eax
je 0x484f08
mov r9d, eax
xor r8d, r8d
mov edx, 0x47
mov rcx, r15
call sym.sqlite3VdbeAddOp2
mov eax, dword [r13 + 0x44]
mov byte [rsp + 0x90], 1
mov r9d, 1
dec eax
mov dword [r13 + 0x44], eax
mov dword [r14 + 0x28], eax
movzx eax, word [rsp + 0xa8]
mov byte [rsp + 0xec], 0
cmp ax, word [rbp + 0x60]
jae 0x484f8d
mov rdx, qword [rbp + 0x38]
cmp byte [rdx + rax], 0
sete al
movzx eax, al
cmp dword [rsp + 0x68], eax
jne 0x484f8d
movzx eax, dil
mov dil, byte [rsp + 0x90]
mov rdx, r12
mov byte [rsp + 0x90], 0
mov r12, qword [rsp + 0x88]
mov qword [rsp + 0x88], rdx
mov byte [rsp + 0xec], dil
movzx edi, word [rsp + 0xd0]
mov word [rsp + 0xd0], ax
cmp dword [rsp + 0xa0], 0
je 0x484fbc
test byte [rsi + 0x3a], 0x10
je 0x484fbc
mov r8d, dword [rsp + 0x84]
mov edx, 0x88
mov rcx, r15
mov dword [rsp + 0x78], r9d
call sym.sqlite3VdbeAddOp1
mov r9d, dword [rsp + 0x78]
mov r8d, dword [rsp + 0x68]
lea rax, [rsp + 0x160]
mov rdx, r14
mov rcx, r13
mov qword [rsp + 0x20], rax
call sym.codeAllEqualityTerms
mov rdx, qword [rsp + 0x160]
cmp word [rsp + 0xd0], 0
mov dword [rsp + 0x78], eax
je 0x485014
test rdx, rdx
je 0x485014
movzx eax, word [rsp + 0xa8]
mov rcx, qword [rsp + 0x60]
add rdx, rax
call sym.sqlite3DbStrDup
mov qword [rsp + 0xc8], rax
jmp 0x485020
mov qword [rsp + 0xc8], 0
cmp dword [rsp + 0x70], 0
je 0x48502d
mov eax, dword [r14 + 0x28]
jmp 0x485031
mov eax, dword [r14 + 0x10]
test r12, r12
mov dword [rsp + 0xa4], eax
mov dword [rsp + 0xd4], 1
je 0x48505a
xor eax, eax
test byte [r12 + 0x14], 0x28
setne al
mov dword [rsp + 0xd4], eax
cmp qword [rsp + 0x88], 0
mov dword [rsp + 0xd8], 1
je 0x485089
mov rax, qword [rsp + 0x88]
test byte [rax + 0x14], 0x28
setne al
movzx eax, al
mov dword [rsp + 0xd8], eax
test r12, r12
setne al
cmp word [rsp + 0xa8], 0
setne dl
or eax, edx
test r12, r12
movzx eax, al
mov dword [rsp + 0xe0], eax
je 0x485174
mov rax, qword [r12]
mov r9d, edi
mov rcx, r13
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x90], rax
mov eax, dword [rsp + 0x58]
add eax, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x90]
mov r8d, eax
mov dword [rsp + 0xe8], eax
call sym.codeExprOrVector
test byte [r12 + 0x12], 0x80
jne 0x48511b
mov rcx, qword [rsp + 0x90]
call sym.sqlite3ExprCanBeNull
test eax, eax
je 0x48511b
mov r9d, dword [rsp + 0xa4]
mov edx, 0x32
mov rcx, r15
mov r8d, dword [rsp + 0xe8]
call sym.sqlite3VdbeAddOp2
mov rax, qword [rsp + 0x160]
test rax, rax
je 0x485143
movzx r8d, word [rsp + 0xa8]
mov edx, edi
mov rcx, qword [rsp + 0x90]
add r8, rax
call sym.updateRangeAffinityStr
mov rcx, qword [rsp + 0x90]
add edi, dword [rsp + 0x58]
call sym.sqlite3ExprIsVector
test eax, eax
jne 0x4851e3
mov rdx, r12
mov rcx, r14
call sym.disableTerm
mov byte [rsp + 0x90], 0
jmp 0x4851f6
cmp byte [rsp + 0x90], 0
je 0x4851ac
mov r9d, dword [rsp + 0x58]
xor r8d, r8d
mov edx, 0x4b
mov rcx, r15
add r9d, dword [rsp + 0x78]
call sym.sqlite3VdbeAddOp2
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0xd4], 0
lea edi, [rax + 1]
jmp 0x4851d6
cmp dword [rsp + 0x70], 0
mov edi, dword [rsp + 0x58]
je 0x4851f6
mov r9d, dword [rsp + 0x78]
xor r8d, r8d
mov edx, 0x4b
mov rcx, r15
add r9d, edi
call sym.sqlite3VdbeAddOp2
mov eax, dword [rsp + 0x58]
lea edi, [rax + 1]
mov dword [rsp + 0xe0], 1
jmp 0x4851f6
mov byte [rsp + 0x90], 0
mov dword [rsp + 0xd4], 1
movzx eax, byte [rsp + 0x90]
mov r8d, edi
mov rcx, qword [r13 + 0x10]
mov r9, qword [rsp + 0x160]
mov edx, dword [rsp + 0x78]
sub r8d, eax
mov dword [rsp + 0xa8], eax
call sym.codeApplyAffinity.isra.408
movzx eax, word [rsi + 0x3e]
test ax, ax
je 0x48523c
mov dword [rsp + 0x90], 0
cmp edi, eax
je 0x4853f2
cmp dword [rsp + 0x70], 0
je 0x48526a
mov r9d, dword [rsp + 0x70]
mov edx, 0x47
mov rcx, r15
mov r8d, 1
call sym.sqlite3VdbeAddOp2
lea rdx, str.NULL_scan_pass_ctr
mov rcx, r15
call sym.sqlite3VdbeComment
mov r8d, dword [r14 + 0x2c]
test r8d, r8d
je 0x4852c0
mov eax, dword [rsp + 0x58]
mov edx, 0x40
mov rcx, r15
mov r9d, dword [rsp + 0xa4]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
mov rax, qword [rsp + 0x98]
mov rdx, rbx
mov rcx, r13
mov r9d, dword [rsp + 0xa4]
mov r8d, dword [rsp + 0xa0]
mov qword [rsp + 0x20], rax
call sym.filterPullDown
mov eax, dword [rsp + 0xd4]
lea rdx, [0x004ecaf0]
mov ecx, dword [rsp + 0xe0]
add eax, eax
lea eax, [rax + rcx*4]
add eax, dword [rsp + 0x68]
test byte [rsi + 0x3a], 0x10
cdqe
movzx eax, byte [rdx + rax]
mov dword [rsp + 0xe0], eax
je 0x48534f
cmp eax, 0x17
jne 0x48534f
mov rax, qword [rbp + 0x10]
mov ecx, 0xa
movsx eax, word [rax]
add eax, 9
cdq
idiv ecx
mov edx, 0x7c
mov rcx, r15
mov r8d, eax
call sym.sqlite3VdbeAddOp1
or r12, qword [rsp + 0x88]
mov dword [rsp + 0x90], eax
je 0x48535a
mov rcx, r15
mov edx, 1
call sym.sqlite3VdbeChangeP5
mov edx, dword [rsp + 0x90]
call sym.sqlite3VdbeGetOp
mov ecx, dword [r15 + 0x90]
lea edx, [rcx + 1]
mov dword [rax + 8], edx
mov dword [rsp + 0x90], 0
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x28], edi
mov rcx, r15
mov r9d, dword [rsp + 0xa4]
mov r8d, dword [rsp + 0x84]
mov edx, dword [rsp + 0xe0]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
cmp dword [rsp + 0x70], 0
je 0x4853f2
mov r9d, dword [r15 + 0x90]
xor r8d, r8d
mov edx, 9
mov rcx, r15
add r9d, 2
call sym.sqlite3VdbeAddOp2
xor eax, eax
cmp edi, 1
mov r9d, dword [rsp + 0xa4]
setg al
sub edi, dword [rsp + 0xd4]
mov rcx, r15
mov r8d, dword [rsp + 0x84]
lea eax, [rax*4 + 2]
add eax, dword [rsp + 0x68]
lea rdx, [0x004ecaf0]
mov dword [rsp + 0x28], edi
cdqe
movzx edx, byte [rdx + rax]
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
cmp qword [rsp + 0x88], 0
je 0x4854c9
mov rax, qword [rsp + 0x88]
mov rcx, r13
movzx edi, word [rsp + 0xd0]
mov rax, qword [rax]
mov r9d, edi
mov r12, qword [rax + 0x18]
mov eax, dword [rsp + 0x58]
add eax, dword [rsp + 0x78]
mov rdx, r12
mov r8d, eax
mov dword [rsp + 0xd0], eax
call sym.codeExprOrVector
mov rax, qword [rsp + 0x88]
test byte [rax + 0x12], 0x80
jne 0x48546f
mov rcx, r12
call sym.sqlite3ExprCanBeNull
test eax, eax
je 0x48546f
mov r9d, dword [rsp + 0xa4]
mov edx, 0x32
mov rcx, r15
mov r8d, dword [rsp + 0xd0]
call sym.sqlite3VdbeAddOp2
cmp qword [rsp + 0xc8], 0
je 0x4854a7
mov r8, qword [rsp + 0xc8]
mov edx, edi
mov rcx, r12
call sym.updateRangeAffinityStr
mov rcx, qword [r13 + 0x10]
mov r8d, edi
mov r9, qword [rsp + 0xc8]
mov edx, dword [rsp + 0xd0]
call sym.codeApplyAffinity.isra.408
mov rcx, r12
add edi, dword [rsp + 0x58]
call sym.sqlite3ExprIsVector
test eax, eax
jne 0x48550a
mov rdx, qword [rsp + 0x88]
mov rcx, r14
call sym.disableTerm
jmp 0x485515
cmp byte [rsp + 0xec], 0
mov edi, dword [rsp + 0x58]
je 0x485515
cmp dword [rsp + 0x70], 0
jne 0x485501
mov r9d, dword [rsp + 0x78]
xor r8d, r8d
mov edx, 0x4b
mov rcx, r15
add r9d, edi
call sym.sqlite3VdbeAddOp2
mov dword [rsp + 0xd8], 0
mov eax, dword [rsp + 0x58]
lea edi, [rax + 1]
jmp 0x485515
mov dword [rsp + 0xd8], 1
mov rdx, qword [rsp + 0x160]
test rdx, rdx
je 0x48552c
mov rcx, qword [rsp + 0x60]
call sym.sqlite3DbNNFreeNN
cmp qword [rsp + 0xc8], 0
je 0x485549
mov rdx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x60]
call sym.sqlite3DbNNFreeNN
mov r9d, dword [r15 + 0x90]
test edi, edi
mov dword [r14 + 0x40], r9d
je 0x4855e0
cmp dword [rsp + 0x70], 0
je 0x485588
mov r8d, dword [rsp + 0x70]
mov edx, 0x11
mov rcx, r15
add r9d, 3
call sym.sqlite3VdbeAddOp2
lea rdx, str.If_NULL_scan_2nd_pass
mov rcx, r15
call sym.sqlite3VdbeComment
mov ecx, dword [rsp + 0x68]
lea rdx, [0x004ecae9]
mov dword [rsp + 0x28], edi
mov eax, dword [rsp + 0xd8]
mov r9d, dword [rsp + 0xa4]
mov r8d, dword [rsp + 0x84]
lea eax, [rax + rcx*2]
mov rcx, r15
cdqe
movzx edx, byte [rdx + rax]
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
cmp dword [rsp + 0x90], 0
je 0x4855e0
mov edx, dword [rsp + 0x90]
mov rcx, r15
call sym.sqlite3VdbeJumpHere
cmp dword [rsp + 0x70], 0
je 0x485659
mov r9d, dword [r15 + 0x90]
mov edx, 0x10
mov rcx, r15
mov r8d, dword [rsp + 0x70]
add r9d, 2
call sym.sqlite3VdbeAddOp2
lea rdx, str.If_NULL_scan_1st_pass
mov rcx, r15
call sym.sqlite3VdbeComment
mov ecx, dword [rsp + 0x68]
lea rdx, [0x004ecae9]
mov eax, dword [rsp + 0xa8]
add edi, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa4]
mov r8d, dword [rsp + 0x84]
lea eax, [rax + rcx*2]
mov rcx, r15
cdqe
mov dword [rsp + 0x28], edi
movzx edx, byte [rdx + rax]
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
test byte [rsi + 0x3a], 4
je 0x48567f
mov eax, dword [rsp + 0x58]
mov edx, 0x7d
mov rcx, r15
mov r8d, dword [rsp + 0x84]
mov dword [rsp + 0x20], eax
mov r9d, eax
call sym.sqlite3VdbeAddOp3
test byte [rsi + 0x38], 0x40
je 0x485696
test word [rbx + 0x3c], 0x1020
mov edi, 1
je 0x485820
mov rax, qword [rbp + 0x18]
test byte [rax + 0x30], 0x80
jne 0x485785
mov rdi, qword [rbx]
xor r9d, r9d
mov edx, 0x8d
mov r8d, dword [rsp + 0x84]
mov rax, qword [rdi + 0x10]
or byte [rbx + 0x44], 1
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
test word [rbx + 0x3c], 0x1020
je 0x48581e
mov rax, qword [rdi + 0xa8]
test rax, rax
cmove rax, rdi
cmp dword [rax + 0x78], 0
jne 0x48581e
mov r12, qword [rbp + 0x18]
mov rcx, qword [rdi]
movsx edx, word [r12 + 0x36]
inc edx
movsxd rdx, edx
shl rdx, 2
call sym.sqlite3DbMallocZero
test rax, rax
mov r8, rax
je 0x48581e
movsx eax, word [r12 + 0x36]
movzx edi, word [rbp + 0x60]
mov dword [r8], eax
lea eax, [rdi - 1]
xor edi, edi
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], edi
jle 0x48576d
mov rax, qword [rbp + 8]
movsx edx, word [rax + rdi*2]
test dx, dx
js 0x485768
mov rcx, r12
mov qword [rsp + 0x70], r8
call sym.sqlite3TableColumnToStorage
mov r8, qword [rsp + 0x70]
lea edx, [rdi + 1]
movsx rax, ax
mov dword [r8 + rax*4 + 4], edx
inc rdi
jmp 0x485737
mov rcx, qword [rsp + 0x58]
mov r9d, 0xfffffff2
or edx, 0xffffffff
call sym.sqlite3VdbeChangeP4
jmp 0x48581e
mov ecx, dword [rsp + 0x84]
cmp dword [rsp + 0x4c], ecx
je 0x48581e
mov rcx, qword [rax + 0x10]
xor edi, edi
call sym.sqlite3PrimaryKeyIndex.isra.147
mov rcx, r13
movzx edx, word [rax + 0x5e]
mov r12, rax
call sym.sqlite3GetTempRange
mov dword [rsp + 0x58], eax
movzx eax, word [r12 + 0x5e]
cmp eax, edi
jle 0x4857f8
mov rax, qword [r12 + 8]
mov rcx, rbp
movsx edx, word [rax + rdi*2]
call sym.sqlite3TableColumnToIndex
mov ecx, dword [rsp + 0x58]
mov r8d, dword [rsp + 0x84]
movsx r9d, ax
lea edx, [rcx + rdi]
mov rcx, r15
inc rdi
mov dword [rsp + 0x20], edx
mov edx, 0x5e
call sym.sqlite3VdbeAddOp3
jmp 0x4857b4
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x58]
mov edx, 0x1c
mov rcx, r15
mov r9d, dword [rsp + 0xc4]
mov r8d, dword [rsp + 0x4c]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
xor edi, edi
cmp dword [r14], 0
jne 0x485840
mov rcx, qword [rbp + 0x48]
test rcx, rcx
je 0x485840
mov r8, qword [rsp + 0xb0]
mov edx, dword [rsp + 0x4c]
call sym.whereApplyPartialIndexConstraints
mov eax, dword [rsi + 0x38]
bt eax, 0xc
jae 0x485850
mov byte [r14 + 0x39], 0xb8
jmp 0x48585f
cmp dword [rsp + 0x68], 0
sete dl
add edx, 0x26
mov byte [r14 + 0x39], dl
mov esi, dword [rsp + 0x84]
mov edx, eax
shr edx, 0x10
and edx, 1
test al, 0xf
mov byte [r14 + 0x3a], dl
mov dword [r14 + 0x3c], esi
jne 0x48587f
mov byte [r14 + 0x3b], 1
test edi, edi
mov eax, 0
cmovne rbp, rax
cmp edi, 1
sbb esi, esi
add esi, 2
jmp 0x485fe6
bt eax, 0xd
jae 0x485f96
mov eax, dword [r13 + 0x34]
mov rcx, qword [rsp + 0xb8]
mov dword [rsp + 0xd0], eax
inc eax
mov dword [r13 + 0x34], eax
mov eax, dword [r13 + 0x38]
inc eax
mov dword [r13 + 0x38], eax
mov dword [rsp + 0xa4], eax
mov eax, dword [r13 + 0x44]
dec eax
mov dword [r13 + 0x44], eax
mov dword [rsp + 0xd4], eax
movsxd rax, dword [rsp + 0xc0]
imul rax, rax, 0x68
mov rax, qword [rcx + rax + 0x28]
mov qword [rsp + 0x70], rax
mov rax, qword [rsi + 0x48]
mov rax, qword [rax]
mov qword [rsp + 0xd8], rax
mov rax, qword [rax + 0x20]
mov byte [r14 + 0x39], 0x43
mov qword [rsp + 0xe0], rax
mov eax, dword [rsp + 0xa4]
mov dword [r14 + 0x3c], eax
movzx ebp, byte [rbx + 0x40]
cmp bpl, 1
jbe 0x4859c4
sub ebp, dword [rsp + 0xa0]
mov rcx, qword [rsp + 0x60]
dec ebp
movsxd rdx, ebp
imul rdx, rdx, 0x68
add rdx, 0x70
call sym.sqlite3DbMallocRawNN
test rax, rax
mov qword [rsp + 0x58], rax
je 0x4864d4
mov rsi, qword [rsp + 0x58]
lea eax, [rbp + 1]
mov ecx, 0x1a
imul rdi, rdi, 0x68
movzx eax, al
mov dword [rsi + 4], eax
mov dword [rsi], eax
mov rax, rsi
mov rsi, qword [rsp + 0xb8]
add rax, 8
lea rsi, [rsi + rdi + 8]
mov rdi, rax
rep movsd dword [rdi], dword [rsi]
mov rax, qword [rbx + 8]
lea r8, [rax + 8]
mov rax, qword [rsp + 0x58]
lea rdx, [rax + 0x70]
xor eax, eax
inc rax
cmp ebp, eax
jl 0x4859cd
imul rcx, rax, 0x68
mov rdi, rdx
add rdx, 0x68
movzx esi, byte [r14 + rcx + 0x38]
mov ecx, 0x1a
imul rsi, rsi, 0x68
add rsi, r8
rep movsd dword [rdi], dword [rsi]
jmp 0x48599c
mov rax, qword [rbx + 8]
mov qword [rsp + 0x58], rax
test byte [rbx + 0x3c], 0x10
jne 0x485a59
mov rax, qword [rsp + 0x70]
test byte [rax + 0x30], 0x80
jne 0x485a05
mov eax, dword [r13 + 0x38]
xor r8d, r8d
mov edx, 0x4b
mov rcx, r15
inc eax
mov dword [r13 + 0x38], eax
mov r9d, eax
mov dword [rsp + 0x68], eax
call sym.sqlite3VdbeAddOp2
jmp 0x485a46
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + 0x10]
call sym.sqlite3PrimaryKeyIndex.isra.147
mov edx, 0x76
mov rcx, r15
mov rsi, rax
mov eax, dword [r13 + 0x34]
movzx r9d, word [rsi + 0x5e]
mov dword [rsp + 0x68], eax
mov r8d, dword [rsp + 0x68]
inc eax
mov dword [r13 + 0x34], eax
call sym.sqlite3VdbeAddOp2
mov rdx, rsi
mov rcx, r13
call sym.sqlite3VdbeSetP4KeyInfo
mov eax, dword [r13 + 0x38]
inc eax
mov dword [rsp + 0x84], eax
mov dword [r13 + 0x38], eax
jmp 0x485a6c
mov dword [rsp + 0x84], 0
mov dword [rsp + 0x68], 0
mov r9d, dword [rsp + 0xa4]
xor r8d, r8d
mov edx, 0x47
mov rcx, r15
call sym.sqlite3VdbeAddOp2
cmp dword [rbx + 0x84], 1
mov dword [rsp + 0x104], eax
jg 0x485aa2
mov qword [rsp + 0x78], 0
jmp 0x485b22
xor esi, esi
xor r9d, r9d
imul rax, rsi, 0x38
add rax, qword [rbx + 0x90]
cmp qword [rsp + 0xd8], rax
je 0x485afd
test word [rax + 0x12], 0x8006
jne 0x485afd
test word [rax + 0x14], 0x3fff
je 0x485afd
mov rdx, qword [rax]
test byte [rdx + 6], 0x40
jne 0x485afd
mov rcx, qword [rsp + 0x60]
xor r8d, r8d
mov qword [rsp + 0x78], r9
call sym.sqlite3ExprDup
mov r9, qword [rsp + 0x78]
mov rcx, r13
mov r8, rax
mov rdx, r9
call sym.sqlite3ExprAnd
mov r9, rax
inc rsi
cmp dword [rbx + 0x84], esi
jg 0x485aa7
test r9, r9
je 0x485a94
xor r8d, r8d
mov edx, 0x1002c
mov rcx, r13
call sym.sqlite3PExpr
mov qword [rsp + 0x78], rax
lea r8, str.MULTI_INDEX_OR
mov edx, 1
mov rcx, r13
call sym.sqlite3VdbeExplain
mov dword [rsp + 0xe8], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0xc8], 0
mov rax, qword [rsp + 0xe0]
mov edi, dword [rsp + 0x88]
cmp dword [rax + 0x14], edi
mov esi, edi
mov dword [rsp + 0xec], edi
jle 0x485ee2
mov rcx, qword [rsp + 0xe0]
imul rax, qword [rsp + 0x88], 0x38
add rax, qword [rcx + 0x20]
mov ecx, dword [rsp + 0x4c]
cmp ecx, dword [rax + 0x1c]
je 0x485ba2
test byte [rax + 0x15], 4
je 0x485ed5
mov rdx, qword [rax]
xor r8d, r8d
mov rcx, qword [rsp + 0x60]
call sym.sqlite3ExprDup
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0x67], 0
je 0x485bd5
mov rdx, qword [rsp + 0xa8]
mov rcx, rax
jmp 0x485ed0
cmp qword [rsp + 0x78], 0
mov rbp, qword [rsp + 0xa8]
je 0x485bf1
mov rax, qword [rsp + 0x78]
mov qword [rax + 0x10], rbp
mov rbp, rax
lea r9d, [rdi + 1]
mov edx, 1
mov rcx, r13
lea r8, str.INDEX__d
call sym.sqlite3VdbeExplain
mov rdx, qword [rsp + 0x58]
xor r9d, r9d
mov r8, rbp
mov eax, dword [rsp + 0xd0]
mov rcx, r13
mov dword [rsp + 0x30], 0x20
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x38], eax
call sym.sqlite3WhereBegin
test rax, rax
mov rdi, rax
je 0x485ec3
mov rax, qword [r13 + 0xa8]
test rax, rax
cmove rax, r13
cmp byte [rax + 0x133], 2
jne 0x485c7b
mov rdx, qword [rsp + 0x58]
lea r8, [rdi + 0x360]
xor r9d, r9d
mov rcx, r13
call sym.sqlite3WhereExplainOneScan.part.410
xor r12d, r12d
test byte [rbx + 0x3c], 0x10
jne 0x485e15
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x14]
mov dword [rsp + 0x90], eax
dec eax
cmp eax, dword [rsp + 0xec]
mov eax, 0xffffffff
cmove esi, eax
mov rax, qword [rsp + 0x70]
test byte [rax + 0x30], 0x80
jne 0x485d03
mov eax, dword [rsp + 0x84]
or r9d, 0xffffffff
mov rcx, r15
mov r8d, dword [rsp + 0x4c]
mov rdx, qword [rsp + 0x70]
mov dword [rsp + 0x20], eax
call sym.sqlite3ExprCodeGetColumnOfTable
mov r8d, dword [rsp + 0x68]
xor r9d, r9d
mov rcx, r15
mov eax, dword [rsp + 0x84]
mov dword [rsp + 0x28], esi
mov edx, 0x2f
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
mov r12d, eax
jmp 0x485e15
mov rax, qword [rsp + 0x70]
xor r12d, r12d
mov rcx, qword [rax + 0x10]
call sym.sqlite3PrimaryKeyIndex.isra.147
mov rcx, r13
movzx ebp, word [rax + 0x5e]
mov qword [rsp + 0x108], rax
mov edx, ebp
call sym.sqlite3GetTempRange
mov dword [rsp + 0x90], eax
cmp ebp, r12d
mov r10, qword [rsp + 0x108]
jle 0x485d74
mov rax, qword [r10 + 8]
mov rcx, r15
mov qword [rsp + 0x108], r10
mov r8d, dword [rsp + 0x4c]
mov rdx, qword [rsp + 0x70]
movsx r9d, word [rax + r12*2]
mov eax, dword [rsp + 0x90]
add eax, r12d
inc r12
mov dword [rsp + 0x20], eax
call sym.sqlite3ExprCodeGetColumnOfTable
jmp 0x485d31
xor r12d, r12d
test esi, esi
je 0x485da6
mov r8d, dword [rsp + 0x68]
xor r9d, r9d
mov dword [rsp + 0x28], ebp
mov rcx, r15
mov eax, dword [rsp + 0x90]
mov edx, 0x1d
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
test esi, esi
mov r12d, eax
js 0x485e03
mov eax, dword [rsp + 0x84]
mov r9d, ebp
mov edx, 0x61
mov rcx, r15
mov r8d, dword [rsp + 0x90]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x28], ebp
mov rcx, r15
mov r9d, dword [rsp + 0x84]
mov edx, 0x8a
mov r8d, dword [rsp + 0x68]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
test esi, esi
je 0x485e03
mov edx, 0x10
mov rcx, r15
call sym.sqlite3VdbeChangeP5
mov edx, dword [rsp + 0x90]
mov r8d, ebp
mov rcx, r13
call sym.sqlite3ReleaseTempRange
mov r9d, dword [rsp + 0xd4]
mov edx, 0xa
mov rcx, r15
mov r8d, dword [rsp + 0xa4]
call sym.sqlite3VdbeAddOp2
test r12d, r12d
je 0x485e42
mov edx, r12d
mov rcx, r15
call sym.sqlite3VdbeJumpHere
test byte [rdi + 0x44], 2
mov eax, 1
cmove eax, dword [rsp + 0xe8]
xor esi, esi
mov dword [rsp + 0xe8], eax
mov rax, qword [rdi + 0x3b8]
test byte [rax + 0x39], 2
je 0x485ea1
cmp dword [rsp + 0xec], 0
mov rsi, qword [rax + 0x20]
je 0x485e81
cmp qword [rsp + 0xc8], rsi
jne 0x485e9f
mov rax, qword [rsp + 0x70]
test byte [rax + 0x30], 0x80
je 0x485ea1
mov al, byte [rsi + 0x64]
and eax, 3
cmp al, 2
mov eax, 0
cmove rsi, rax
jmp 0x485ea1
xor esi, esi
test byte [rdi + 0x44], 1
je 0x485eab
or byte [rbx + 0x44], 1
mov rcx, rdi
call sym.sqlite3WhereEnd
mov rcx, r13
call sym.sqlite3VdbeExplainPop
mov qword [rsp + 0xc8], rsi
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x60]
call sym.sqlite3ExprDelete
inc qword [rsp + 0x88]
jmp 0x485b59
mov rcx, r13
call sym.sqlite3VdbeExplainPop
mov rax, qword [rsp + 0xc8]
test rax, rax
mov qword [r14 + 0x48], rax
je 0x485f06
mov eax, dword [rsp + 0xd0]
mov dword [r14 + 8], eax
cmp qword [rsp + 0x78], 0
je 0x485f28
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x60]
mov qword [rax + 0x10], 0
mov rdx, rax
call sym.sqlite3ExprDelete
mov edx, dword [rsp + 0x104]
mov rcx, r15
mov r9d, dword [r15 + 0x90]
call sym.sqlite3VdbeGetOp
mov edx, dword [r14 + 0xc]
mov dword [rax + 4], r9d
call sym.sqlite3VdbeGoto
mov edx, dword [rsp + 0xd4]
mov rcx, r15
call sym.sqlite3VdbeResolveLabel
mov eax, dword [r15 + 0x90]
mov dword [r14 + 0x40], eax
cmp byte [rbx + 0x40], 1
jbe 0x485f7a
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
call sym.sqlite3DbFreeNN
cmp dword [rsp + 0xe8], 0
jne 0x485fdf
mov rdx, qword [rsp + 0xd8]
mov rcx, r14
call sym.disableTerm
jmp 0x485fdf
and r8b, 0x40
je 0x485fa3
mov byte [r14 + 0x39], 0xb8
jmp 0x485fdf
movsxd rax, dword [rsp + 0x68]
lea rdi, [0x004ecae7]
mov rcx, r15
mov esi, dword [rsp + 0x4c]
mov dl, byte [rdi + rax]
lea rdi, [0x004ecae5]
mov dword [r14 + 0x3c], esi
mov r8d, esi
mov byte [r14 + 0x39], dl
movzx edx, byte [rdi + rax]
call sym.sqlite3VdbeAddOp2
mov byte [r14 + 0x3b], 1
inc eax
mov dword [r14 + 0x40], eax
xor ebp, ebp
mov esi, 2
movsxd rax, dword [rsp + 0xc0]
imul rax, rax, 0x68
add rax, qword [rsp + 0xb8]
mov qword [rsp + 0x68], rax
mov eax, dword [rbx + 0x84]
mov dword [rsp + 0x58], 0
mov r12, qword [rbx + 0x90]
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0
jle 0x48615d
test byte [r12 + 0x12], 6
jne 0x486150
mov r10, qword [r14 + 0x60]
test qword [r12 + 0x30], r10
je 0x486043
or byte [rbx + 0x44], 2
jmp 0x486150
mov rax, qword [rsp + 0x68]
mov r11, qword [r12]
mov dl, byte [rax + 0x44]
test dl, 0x58
je 0x486091
mov eax, dword [r11 + 4]
test al, 3
je 0x486150
and dl, 8
je 0x48606d
test al, 1
je 0x486150
mov edx, dword [r11 + 0x34]
mov qword [rsp + 0x70], r11
mov rcx, qword [rsp + 0xf8]
call sym.sqlite3WhereGetMask
mov r11, qword [rsp + 0x70]
test r10, rax
jne 0x486150
cmp esi, 1
jne 0x486106
xor eax, eax
mov ecx, 0xa
mov edx, dword [r14 + 4]
mov qword [rsp + 0x70], r11
lea r8, [rsp + 0x160]
mov qword [rsp + 0x118], rbp
mov rdi, r8
rep stosd dword [rdi], eax
lea rax, [sym.exprIdxCover]
mov rcx, r8
mov dword [rsp + 0x120], edx
mov rdx, r11
mov qword [rsp + 0x168], rax
lea rax, [rsp + 0x118]
mov qword [rsp + 0x188], rax
call sym.sqlite3WalkExpr
mov r11, qword [rsp + 0x70]
cmp word [rsp + 0x184], 0
jne 0x486148
test byte [r12 + 0x13], 0x10
je 0x48611e
jmp 0x48610d
cmp esi, 3
je 0x48611e
jmp 0x4860fc
cmp dword [rsp + 0x58], 0
jne 0x486150
mov dword [rsp + 0x58], 3
jmp 0x486150
test byte [r12 + 0x13], 2
jne 0x486150
mov r8d, dword [rsp + 0xc4]
mov r9d, 0x10
mov rdx, r11
mov rcx, r13
call sym.sqlite3ExprIfFalse
or word [r12 + 0x12], 4
jmp 0x486150
mov dword [rsp + 0x58], 2
dec dword [rsp + 0x60]
add r12, 0x38
jmp 0x486018
mov esi, dword [rsp + 0x58]
test esi, esi
jne 0x485fff
movsxd r12, dword [rsp + 0xc0]
mov eax, dword [rbx + 0x8c]
mov rbp, qword [rbx + 0x90]
imul r12, r12, 0x68
add r12, qword [rsp + 0xb8]
mov dword [rsp + 0x60], eax
mov qword [rsp + 0x68], r12
cmp dword [rsp + 0x60], 0
jle 0x486287
test byte [rbp + 0x12], 6
jne 0x48627a
mov eax, dword [rbp + 0x14]
test al, 0x82
je 0x48627a
test ah, 8
je 0x48627a
mov eax, dword [rsp + 0x4c]
cmp eax, dword [rbp + 0x1c]
jne 0x48627a
mov rax, qword [rsp + 0x68]
test byte [rax + 0x44], 0x58
jne 0x48627a
mov r8d, dword [rbp + 0x20]
mov r9, qword [rsp + 0x98]
mov edx, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0xb0]
mov r12, qword [rbp]
mov dword [rsp + 0x20], 0x83
mov qword [rsp + 0x28], 0
call sym.sqlite3WhereFindTerm
test rax, rax
je 0x48627a
test byte [rax + 0x12], 4
jne 0x48627a
test byte [rax + 0x14], 1
mov rsi, qword [rax]
je 0x486231
test byte [rsi + 5], 0x10
je 0x486231
mov rdx, qword [rsi + 0x20]
mov rdx, qword [rdx + 0x20]
cmp dword [rdx], 1
jg 0x48627a
mov ecx, 0x12
mov r8d, dword [rsp + 0xc4]
mov qword [rsp + 0x70], rax
mov r9d, 0x10
lea rdi, [rsp + 0x160]
rep movsd dword [rdi], dword [rsi]
mov rcx, r13
mov rdx, qword [r12 + 0x10]
mov qword [rsp + 0x170], rdx
lea rdx, [rsp + 0x160]
call sym.sqlite3ExprIfFalse
mov rax, qword [rsp + 0x70]
or word [rax + 0x12], 4
dec dword [rsp + 0x60]
add rbp, 0x38
jmp 0x486193
mov rax, qword [r14 + 0x30]
test rax, rax
mov qword [rsp + 0x60], rax
je 0x4863f6
movzx eax, byte [r14 + 0x38]
imul rax, rax, 0x68
add rax, qword [rbx + 8]
mov rbp, qword [rax + 0x28]
test byte [rbp + 0x30], 0x80
jne 0x4862e0
mov edx, 2
mov rcx, r13
mov esi, 1
call sym.sqlite3GetTempRange
mov r8d, dword [r14 + 4]
or r9d, 0xffffffff
mov rdx, rbp
mov edi, eax
mov rcx, r15
lea eax, [rax + 1]
mov dword [rsp + 0x20], eax
call sym.sqlite3ExprCodeGetColumnOfTable
jmp 0x48633c
mov rcx, qword [rbp + 0x10]
xor r12d, r12d
call sym.sqlite3PrimaryKeyIndex.isra.147
mov rcx, r13
movzx esi, word [rax + 0x5e]
mov qword [rsp + 0x68], rax
lea edx, [rsi + 1]
call sym.sqlite3GetTempRange
mov edi, eax
inc r12
mov r10, qword [rsp + 0x68]
lea eax, [r12 - 1]
cmp esi, eax
jle 0x48633c
mov rax, qword [r10 + 8]
mov rdx, rbp
mov rcx, r15
mov qword [rsp + 0x68], r10
mov r8d, dword [rsp + 0x4c]
movsx r9d, word [rax + r12*2 - 2]
lea eax, [rdi + r12]
mov dword [rsp + 0x20], eax
call sym.sqlite3ExprCodeGetColumnOfTable
jmp 0x486302
mov rax, qword [rsp + 0x60]
lea r12d, [rdi + 1]
mov dword [rsp + 0x28], esi
xor r9d, r9d
mov dword [rsp + 0x20], r12d
mov edx, 0x1d
mov rcx, r15
mov r8d, dword [rax]
call sym.sqlite3VdbeAddOp4Int
mov r8, qword [rbp]
lea rdx, str.match_against__s
mov rcx, r15
mov dword [rsp + 0x4c], eax
call sym.sqlite3VdbeComment
mov r9d, esi
mov r8d, r12d
mov edx, 0x61
mov rcx, r15
mov dword [rsp + 0x20], edi
call sym.sqlite3VdbeAddOp3
mov rax, qword [rsp + 0x60]
mov r9d, edi
mov rcx, r15
mov dword [rsp + 0x28], esi
mov edx, 0x8a
mov dword [rsp + 0x20], r12d
mov r8d, dword [rax]
call sym.sqlite3VdbeAddOp4Int
mov rax, qword [rsp + 0x60]
xor r9d, r9d
mov rcx, r15
mov edx, 0xb4
mov r8d, dword [rax + 4]
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], r12d
call sym.sqlite3VdbeAddOp4Int
mov rcx, r15
mov edx, 0x10
call sym.sqlite3VdbeChangeP5
mov edx, dword [rsp + 0x4c]
call sym.sqlite3VdbeJumpHere
lea r8d, [rsi + 1]
mov edx, edi
mov rcx, r13
call sym.sqlite3ReleaseTempRange
mov r9d, dword [r14]
test r9d, r9d
jne 0x486409
mov rsi, qword [r14 + 0x30]
test rsi, rsi
jne 0x48643f
jmp 0x486488
mov eax, dword [r15 + 0x90]
mov r8d, 1
mov edx, 0x47
mov rcx, r15
mov dword [r14 + 0x1c], eax
call sym.sqlite3VdbeAddOp2
lea rdx, str.record_LEFT_JOIN_hit
mov rcx, r15
call sym.sqlite3VdbeComment
cmp qword [r14 + 0x30], 0
jne 0x4863fe
jmp 0x486461
mov r9d, dword [rsi + 8]
xor r8d, r8d
mov edx, 0x4a
mov rcx, r15
call sym.sqlite3VdbeAddOp2
mov eax, dword [r15 + 0x90]
mov dword [rsi + 0xc], eax
inc byte [r13 + 0x26]
movsxd rdi, dword [rsp + 0xc0]
mov rsi, qword [rbx + 0x90]
imul rdi, rdi, 0x68
add rdi, qword [rsp + 0xb8]
mov eax, dword [rsp + 0x58]
cmp eax, dword [rbx + 0x8c]
jl 0x486496
mov rax, qword [r14 + 0x60]
mov qword [rsp + 0x98], rax
jmp 0x4864d4
test byte [rsi + 0x12], 6
jne 0x4864ca
mov rax, qword [rsi + 0x30]
test qword [r14 + 0x60], rax
jne 0x4864ca
test byte [rdi + 0x44], 0x40
jne 0x4864ca
mov rdx, qword [rsi]
mov r9d, 0x10
mov rcx, r13
mov r8d, dword [rsp + 0xc4]
call sym.sqlite3ExprIfFalse
or word [rsi + 0x12], 4
inc dword [rsp + 0x58]
add rsi, 0x38
jmp 0x48647c
mov eax, dword [r14 + 0x18]
add r14, 0x68
inc dword [rsp + 0xa0]
inc qword [rsp + 0xf0]
mov dword [rbx + 0x30], eax
jmp 0x4846bf
mov eax, dword [r15 + 0x90]
mov dword [rbx + 0x50], eax
jmp 0x4868e6
mov eax, dword [rbx + 0x38]
mov rdx, rbx
mov rcx, qword [rsp + 0x50]
mov dword [r13 + 0xd0], eax
call sym.whereInfoFree
xor ebx, ebx
jmp 0x4868e6
xor esi, esi
cmp dword [rsp + 0x68], 0
jne 0x48661d
test rdi, rdi
mov r10, rdi
je 0x486723
mov dword [rsp + 0x160], 0x17151618
mov rdi, qword [r10]
mov qword [rsp + 0x58], r10
mov r9, qword [rdi + 0x18]
mov rcx, r9
call sym.sqlite3ExprIsVector
mov r10, qword [rsp + 0x58]
test eax, eax
je 0x48659e
mov rcx, r13
call sym.sqlite3GetTempReg
mov rdx, qword [rdi + 0x18]
mov r9d, 1
mov r8d, eax
mov r12d, eax
mov dword [rsp + 0x118], eax
call sym.codeExprOrVector
movzx edx, byte [rdi]
sub edx, 0x37
and edx, 2
or edx, 1
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x160]
jmp 0x4865d9
mov rdx, r9
mov rcx, r13
mov qword [rsp + 0x58], r10
lea r8, [rsp + 0x118]
call sym.sqlite3ExprCodeTemp
mov r10, qword [rsp + 0x58]
mov rcx, r14
mov r12d, eax
mov rdx, r10
call sym.disableTerm
movzx eax, byte [rdi]
sub eax, 0x36
cdqe
movzx edx, byte [rsp + rax + 0x160]
mov r8d, dword [rsp + 0x4c]
mov r9d, ebp
mov rcx, r15
mov dword [rsp + 0x20], r12d
mov rdi, rsi
call sym.sqlite3VdbeAddOp3
lea rdx, [0x004e3a24]
mov rcx, r15
call sym.sqlite3VdbeComment
mov edx, dword [rsp + 0x118]
mov rcx, r13
call sym.sqlite3ReleaseTempReg
jmp 0x48662f
test r10, r10
mov rsi, rdi
jne 0x486539
mov edx, 0x20
mov r8d, dword [rsp + 0x4c]
mov rcx, r15
call sym.sqlite3VdbeAddOp2
test rdi, rdi
je 0x4866a5
mov r12, qword [rdi]
mov r9d, 1
mov rcx, r13
mov eax, dword [r13 + 0x38]
mov rdx, qword [r12 + 0x18]
lea esi, [rax + 1]
mov r8d, esi
mov dword [r13 + 0x38], esi
call sym.codeExprOrVector
mov rcx, qword [r12 + 0x18]
call sym.sqlite3ExprIsVector
test eax, eax
jne 0x486684
mov dl, byte [r12]
sub edx, 0x36
and dl, 0xfd
jne 0x486684
cmp dword [rsp + 0x68], 1
sbb r12d, r12d
and r12d, 2
add r12d, 0x37
jmp 0x486698
cmp dword [rsp + 0x68], 1
sbb r12d, r12d
and r12d, 0xfffffffe
add r12d, 0x38
test eax, eax
jne 0x4866ad
mov rdx, rdi
mov rcx, r14
call sym.disableTerm
jmp 0x4866ad
xor esi, esi
mov r12d, 0xb8
cmp dword [rsp + 0x68], 0
mov edx, dword [r15 + 0x90]
sete al
add eax, 0x26
cmp r12d, 0xb8
mov dword [r14 + 0x40], edx
mov byte [r14 + 0x39], al
mov eax, dword [rsp + 0x4c]
mov dword [r14 + 0x3c], eax
je 0x485fdf
mov eax, dword [r13 + 0x38]
mov rcx, r15
mov edx, 0x87
mov r8d, dword [rsp + 0x4c]
lea edi, [rax + 1]
mov r9d, edi
mov dword [r13 + 0x38], edi
call sym.sqlite3VdbeAddOp2
mov edx, r12d
mov rcx, r15
mov dword [rsp + 0x20], edi
mov r9d, ebp
mov r8d, esi
call sym.sqlite3VdbeAddOp3
mov edx, 0x53
mov rcx, r15
call sym.sqlite3VdbeChangeP5
jmp 0x485fdf
mov rdi, rsi
mov edx, 0x24
jmp 0x486622
mov rdx, qword [rsi + 0x48]
mov dword [rsi + 0x38], 0x1101
mov qword [rdx], rax
mov word [rsi + 0x3c], 1
mov word [rsi + 0x18], 1
mov word [rsi + 0x14], 0x21
jmp 0x48407f
mov rdx, qword [rbp + 0x10]
mov word [rsi + 0x16], 1
mov edi, dword [rsp + 0x68]
mov qword [rbp + 0x3b8], rsi
mov qword [rsi + 8], 1
mov word [rbp + 0x48], 1
test rdx, rdx
mov dword [rbp + 0x364], edi
je 0x486788
mov edx, dword [rdx]
mov byte [rbp + 0x41], dl
test byte [rbp + 0x3d], 1
je 0x486792
mov byte [rbp + 0x43], 1
cmp byte [rsp + 0x189], 1
jbe 0x484140
or eax, 0x200000
mov dword [rsi + 0x38], eax
jmp 0x484140
lea rax, [rsp + 0x160]
mov rdi, qword [r14 + 0x10]
mov qword [rsp + 0x70], rax
jmp 0x483fb6
cmp qword [rax + 0x28], 0
je 0x4867ed
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0x88], r10d
call sym.whereScanNext
jmp 0x484026
mov dword [rsi + 0x38], 0x1241
jmp 0x48406b
mov rdx, qword [rsi + 0x48]
mov qword [rdx + r14*8], rax
inc r14
jmp 0x483fec
inc edx
jne 0x483eed
jmp 0x483e2d
mov rcx, qword [r13]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xa7
call sym.sqlite3ExprAlloc
test rax, rax
mov r10, rax
je 0x483bcb
mov eax, dword [rsi + 0x24]
mov rcx, r10
mov word [r10 + 0x30], di
mov qword [r10 + 0x40], r14
mov qword [rsp + 0x88], r10
mov dword [r10 + 0x2c], eax
lea eax, [rdi + 1]
mov dword [rsp + 0x84], eax
call sym.sqlite3ExprColUsed
mov rdi, qword [rsp + 0x78]
xor r8d, r8d
or qword [rsi + 0x30], rax
mov rax, r12
shl rax, 5
mov rcx, qword [r13]
mov rdx, qword [rdi + rax + 8]
call sym.sqlite3ExprDup
xor r9d, r9d
mov edx, 0xae
mov rcx, r13
mov r8, rax
call sym.sqlite3PExpr
mov r10, qword [rsp + 0x88]
mov edx, 0x35
mov rcx, r13
mov r9, rax
mov r8, r10
call sym.sqlite3PExpr
mov edx, dword [rsi + 0x24]
mov r9, rax
mov al, byte [rsi + 0x1c]
and eax, 0x18
cmp al, 1
sbb ecx, ecx
inc r12
not ecx
lea r8d, [rcx + 2]
mov rcx, r9
call sym.sqlite3SetJoinExpr
mov rcx, qword [rsp + 0xb0]
mov r8d, 1
mov rdx, r9
call sym.whereClauseInsert
mov edi, dword [rsp + 0x84]
jmp 0x483b82
mov rax, rbx
add rsp, 0x1d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret