Function at 0x665cb2e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
mov edi, eax
push esi
push ebx
mov esi, ecx
sub esp, 0xfc
mov ebx, dword [edi + 8]
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x44], edx
mov dword [esp + 0x60], ebx
mov ebx, dword [edi]
test ecx, ecx
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
mov word [esp + 0x3c], ax
mov dword [esp + 0xe4], 0
mov dword [esp + 0x40], ebx
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
je 0x665cb36a
mov ebx, dword [esp + 0x110]
mov edx, 0
cmp dword [ebx], 0x40
cmovl edx, ebx
mov dword [esp + 0x110], edx
mov edi, dword [esp + 0x40]
and ah, 0xfb
mov ebx, dword [esp + 0x110]
test byte [edi + 0x3c], 0x20
mov dword [esp + 0xe4], ebx
cmove ax, word [esp + 0x3c]
mov word [esp + 0x3c], ax
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
cmp eax, 0x40
mov dword [esp + 0x50], eax
jg 0x665cc210
movzx eax, word [esp + 0x3c]
and ax, 0x40
mov word [esp + 0x64], ax
je 0x665cb3f0
mov edx, 0x378
xor ecx, ecx
mov ebx, 0x330
mov dword [esp + 0x50], 1
mov edi, dword [esp + 0x40]
mov eax, edi
call sym._sqlite3DbMallocZero
cmp byte [edi + 0x41], 0
mov dword [esp + 0x2c], eax
je 0x665cb408
mov edx, eax
mov eax, edi
call sym._sqlite3DbFree
xor eax, eax
add esp, 0xfc
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x50]
xor ecx, ecx
lea ebx, [eax + eax*4 - 5]
shl ebx, 4
add ebx, 0x330
lea edx, [ebx + 0x48]
jmp 0x665cb3c5
movzx eax, byte [esp + 0x50]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
mov dword [edi + 0x40], 0xffffffff
mov dword [edi + 0x3c], 0xffffffff
add ebx, edi
mov byte [edi + 0x29], al
mov eax, edi
mov dword [eax], ebp
mov dword [edi + 4], edx
mov edx, dword [esp + 0x110]
mov eax, dword [esp + 0x60]
mov dword [edi + 8], edx
mov edx, dword [esp + 0x114]
mov dword [edi + 0xc], edx
mov eax, dword [eax + 0x18]
call sym._sqlite3VdbeMakeLabel.isra.428
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], eax
mov ecx, 0x48
mov eax, dword [ebp + 0x1a8]
movzx edx, word [esp + 0x3c]
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xdc], edi
mov dword [edi + 0x38], eax
lea eax, [edi + 0x148]
mov word [edi + 0x22], dx
mov dword [ebx + 0x24], 0
mov edx, esi
mov ebp, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0xe0], eax
lea eax, [ebx + 0x38]
xor esi, esi
mov dword [ebx + 0x30], eax
xor eax, eax
mov word [ebx + 0x28], ax
mov eax, 3
mov word [ebx + 0x2c], ax
lea eax, [edi + 0x160]
mov dword [edi + 0x44], 0
mov dword [edi + 0x148], edi
mov dword [edi + 0x14c], 0
xor ebx, ebx
mov dword [edi + 0x15c], eax
mov dword [edi + 0x154], 0
mov eax, ebp
mov dword [edi + 0x158], 8
call sym._whereSplit
mov eax, dword [esp + 0xe0]
mov edx, dword [eax + 0xc]
test edx, edx
jle 0x665cb566
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x2c]
nop
lea esi, [esi]
test edi, edi
je 0x665cb531
mov eax, dword [eax + 0x14]
xor ecx, ecx
mov edx, 2
mov eax, dword [eax + ebx]
call sym._exprIsConst
test eax, eax
mov eax, dword [esp + 0xe0]
je 0x665cb55b
mov eax, dword [eax + 0x14]
mov ecx, dword [ebp + 0x34]
mov edx, dword [eax + ebx]
mov eax, dword [esp + 0x28]
mov dword [esp], 0x10
call sym._sqlite3ExprIfFalse
mov eax, dword [esp + 0xe0]
mov edx, dword [eax + 0x14]
add edx, ebx
or word [edx + 0x14], 4
add esi, 1
add ebx, 0x30
cmp dword [eax + 0xc], esi
jg 0x665cb510
mov esi, dword [esp + 0x50]
test esi, esi
jne 0x665cb596
mov ebx, dword [esp + 0x110]
test ebx, ebx
je 0x665cb589
mov eax, dword [esp + 0x110]
mov esi, dword [esp + 0x2c]
mov eax, dword [eax]
mov byte [esi + 0x24], al
test word [esp + 0x3c], 0x400
jne 0x665cb76d
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
test ecx, ecx
jle 0x665cb5cc
mov eax, dword [esp + 0x44]
lea edx, [eax + 0x34]
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x44]
lea ebx, [eax + esi*4]
xor eax, eax
mov edi, dword [edx]
add edx, 0x48
mov dword [ebx + eax*4 + 0x48], edi
add eax, 1
cmp eax, ecx
jne 0x665cb5b3
add eax, esi
mov esi, dword [esp + 0x2c]
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x154]
mov ebx, eax
mov dword [esp + 0x24], eax
sub ebx, 1
js 0x665cb603
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
lea esi, [esi]
mov ecx, ebx
mov edx, esi
mov eax, edi
sub ebx, 1
call sym._exprAnalyze
cmp ebx, 0xffffffff
jne 0x665cb5f0
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x41], 0
jne 0x665cb746
movzx eax, word [esp + 0x3c]
and ax, 0x400
mov word [esp + 0x68], ax
jne 0x665cb77a
cmp dword [esp + 0x50], 1
je 0x665cb7af
mov ebx, dword [esp + 0xdc]
mov eax, dword [ebx + 4]
mov dword [esp + 0x24], eax
mov eax, dword [ebx]
mov ebp, dword [esp + 0xe8]
mov edx, 3
mov esi, dword [esp + 0x24]
mov eax, dword [eax]
add esi, 8
mov dword [esp + 0x4c], eax
movzx eax, byte [ebx + 0x29]
mov word [ebp + 0x2c], dx
mov dword [ebp + 0x24], 0
mov edi, eax
mov dword [esp + 0x5c], eax
lea eax, [ebp + 0x38]
mov dword [ebp + 0x30], eax
xor eax, eax
test edi, edi
mov word [ebp + 0x28], ax
je 0x665cb936
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
xor edi, edi
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x24], 0
lea esi, [esi]
movzx eax, byte [esp + 0x24]
mov byte [ebp + 0x10], al
mov eax, dword [ebx + 0x44]
mov edx, dword [esi + 0x2c]
test eax, eax
jle 0x665cb6e1
cmp edx, dword [ebx + 0x48]
je 0x665cbdb1
xor ecx, ecx
jmp 0x665cb6da
cmp edx, dword [ebx + ecx*4 + 0x48]
je 0x665cb920
add ecx, 1
cmp ecx, eax
jne 0x665cb6d0
xor eax, eax
xor edx, edx
mov dword [ebp + 0xc], edx
mov dword [ebp + 8], eax
movzx eax, byte [esi + 0x24]
mov edx, eax
mov byte [esp + 0x48], al
mov eax, edi
or eax, edx
mov edi, dword [esp + 0x30]
and eax, 0xa
mov eax, dword [esp + 0x34]
cmovne eax, dword [esp + 0x58]
cmovne edi, dword [esp + 0x54]
mov ecx, eax
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x30], edi
test byte [eax + 0x2a], 0x10
je 0x665cb8b0
lea eax, [esp + 0xdc]
mov edx, edi
call sym._whereLoopAddVirtual
test eax, eax
je 0x665cb8cc
mov eax, dword [esp + 0x4c]
mov edx, ebp
call sym._whereLoopClear
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov eax, dword [edx + 0x38]
mov dword [esi + 0x1a8], eax
mov eax, dword [esp + 0x40]
call sym._whereInfoFree
add esp, 0xfc
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x2c]
mov byte [eax + 0x28], 1
jmp 0x665cb596
mov eax, dword [esp + 0x44]
cmp dword [eax], 1
je 0x665ccdc7
mov edi, dword [esp + 0x110]
test edi, edi
jne 0x665cb625
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x114]
or word [eax + 0x22], 0x200
mov dword [eax + 8], esi
jmp 0x665cb625
mov edi, dword [esp + 0xdc]
test byte [edi + 0x22], 0x20
mov eax, dword [edi + 4]
mov dword [esp + 0x24], eax
jne 0x665cbdbd
mov ebp, dword [eax + 0x18]
mov ebx, edi
test byte [ebp + 0x2a], 0x10
jne 0x665cb63e
mov esi, dword [eax + 0x48]
test esi, esi
jne 0x665cb63e
mov eax, dword [eax + 0x34]
mov esi, dword [esp + 0xe8]
xor ecx, ecx
mov edx, eax
mov dword [esp + 0x30], eax
lea eax, [edi + 0x148]
mov word [esi + 0x2a], cx
mov dword [esi + 0x24], 0
mov ecx, 0xffffffff
mov dword [esp + 0xc], 0
mov dword [esp + 8], 2
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 0x34], eax
call sym._findTerm
test eax, eax
je 0x665cdcdd
mov edx, dword [esi + 0x30]
mov dword [esi + 0x24], 0x1101
mov ecx, 1
mov ebx, 0x21
mov dword [edx], eax
mov edx, 1
mov word [esi + 0x18], cx
mov word [esi + 0x28], dx
mov word [esi + 0x14], bx
mov eax, dword [edi + 0x44]
mov ebp, 1
mov word [esi + 0x16], bp
mov dword [edi + 0x320], esi
test eax, eax
jle 0x665cb8a5
mov ebx, dword [esp + 0x30]
cmp ebx, dword [edi + 0x48]
je 0x665cdcd4
xor ecx, ecx
jmp 0x665cb89e
mov ebx, dword [esp + 0x30]
cmp ebx, dword [edi + ecx*4 + 0x48]
je 0x665cdc8b
add ecx, 1
cmp ecx, eax
jne 0x665cb890
xor eax, eax
xor edx, edx
jmp 0x665cdc9c
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0xdc]
call sym._whereLoopAddBtree
test eax, eax
jne 0x665cb73b
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0xdc]
call sym._whereLoopAddOr
mov edx, dword [ebp + 8]
or dword [esp + 0x54], edx
mov edx, dword [ebp + 0xc]
or dword [esp + 0x58], edx
test eax, eax
jne 0x665cb73b
mov eax, dword [esp + 0x4c]
cmp byte [eax + 0x41], 0
jne 0x665cb936
add dword [esp + 0x24], 1
add esi, 0x48
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x5c], eax
je 0x665cb936
movzx edi, byte [esp + 0x48]
jmp 0x665cb6b0
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
jmp 0x665cb6e5
mov eax, dword [esp + 0x4c]
mov edx, ebp
call sym._whereLoopClear
mov eax, dword [esp + 0x2c]
xor edx, edx
call sym._wherePathSolver
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x41], 0
jne 0x665cb746
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x665cbdc4
mov eax, dword [esp + 0x2c]
movzx esi, word [eax + 0x20]
lea edx, [esi + 1]
mov word [esp + 0x24], si
movsx edx, dx
call sym._wherePathSolver
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x41], 0
jne 0x665cb746
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 8]
test esi, esi
je 0x665cbdc4
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x40]
test ecx, ecx
jne 0x665cb746
mov esi, dword [esp + 0x40]
cmp byte [esi + 0x41], 0
jne 0x665cb746
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x114]
movzx eax, byte [eax + 0x29]
test edx, edx
mov byte [esp + 0x24], al
je 0x665cb9e0
cmp al, 1
jbe 0x665cb9e0
test byte [esi + 0x3d], 4
je 0x665cdae0
mov esi, dword [esp + 0x2c]
mov eax, dword [esi]
movsx edx, word [esi + 0x20]
add dword [eax + 0x1a8], edx
test byte [esp + 0x3c], 4
je 0x665cba18
mov eax, dword [esi + 0x320]
test byte [eax + 0x25], 0x10
je 0x665cba18
mov byte [esi + 0x26], 1
mov esi, dword [esp + 0x44]
mov edx, dword [esi + 0x18]
test byte [edx + 0x2a], 0x20
jne 0x665cba18
and dword [eax + 0x24], 0xffffffbf
mov eax, dword [esp + 0x2c]
add eax, 0x2e0
mov esi, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x665cead4
lea eax, [eax + eax*4]
mov dword [esp + 0x24], esi
shl eax, 4
mov edi, eax
add edi, esi
movzx esi, word [esp + 0x3c]
mov dword [esp + 0xb8], edi
mov eax, esi
and ax, 0x1000
mov word [esp + 0x4c], ax
mov eax, esi
and eax, 0x10
mov word [esp + 0x50], ax
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x44]
movzx eax, byte [eax + 0x2c]
mov dword [esp + 0x30], eax
lea eax, [eax + eax*8]
mov edi, dword [esi + eax*8 + 0x18]
mov edx, dword [edi + 0x40]
test edx, edx
je 0x665ccfef
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + 0x14]
test ebx, ebx
jle 0x665cd0c4
mov eax, dword [eax + 0x10]
cmp edx, dword [eax + 0xc]
je 0x665cd0c4
add eax, 0x1c
xor ecx, ecx
jmp 0x665cbabc
add eax, 0x10
cmp edx, dword [eax - 0x10]
je 0x665cbeb1
add ecx, 1
cmp ebx, ecx
jne 0x665cbab0
movzx edx, byte [edi + 0x2a]
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 0x40]
test dl, 2
jne 0x665cbe04
mov eax, dword [edi + 0xc]
test eax, eax
mov eax, dword [esi + 0x24]
je 0x665cd400
test ah, 2
je 0x665cbb1c
test byte [edi + 0x2a], 0x20
mov ebp, dword [esi + 0x1c]
je 0x665cbe0c
movzx eax, byte [ebp + 0x34]
and eax, 3
cmp al, 2
jne 0x665cbe0c
cmp word [esp + 0x64], 0
je 0x665cbe0c
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 4]
mov dword [esi + 8], eax
test ebx, ebx
js 0x665cbb2b
mov eax, dword [esp + 0x28]
mov edx, ebx
call sym._sqlite3CodeVerifySchema
add dword [esp + 0x24], 0x50
mov eax, dword [esp + 0x24]
cmp dword [esp + 0xb8], eax
jne 0x665cba62
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x41], 0
jne 0x665cb746
lea eax, [esi + 0x330]
mov dword [esp + 0x88], 0
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x48], eax
lea eax, [esi + 0x328]
mov dword [esp + 0x6c], eax
movzx eax, word [esp + 0x3c]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax - 0x10]
test byte [eax + 0x25], 0x40
jne 0x665cc730
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x1c2], 2
je 0x665cd08d
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
movzx ebx, byte [esi - 0x24]
mov dword [esi - 0x30], eax
mov eax, dword [edx]
mov ebp, dword [edx + 4]
mov edi, dword [eax + 8]
mov dword [esp + 0x34], eax
mov eax, dword [eax]
mov dword [esp + 0x30], edi
mov edi, dword [esi - 0x10]
mov dword [esp + 0x5c], eax
lea eax, [ebx + ebx*8]
mov eax, dword [ebp + eax*8 + 0x34]
mov esi, eax
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 0x44]
test eax, eax
jle 0x665cbc23
cmp esi, dword [edx + 0x48]
je 0x665cd95d
xor ecx, ecx
jmp 0x665cbc1c
cmp esi, dword [edx + ecx*4 + 0x48]
je 0x665cbeb8
add ecx, 1
cmp ecx, eax
jne 0x665cbc12
mov ecx, 0xffffffff
mov eax, 0xffffffff
and ecx, dword [esp + 0x70]
and eax, dword [esp + 0x74]
mov esi, dword [esp + 0x24]
mov dword [esi - 8], ecx
mov dword [esi - 4], eax
mov esi, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x88]
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x665cbc5f
mov eax, edx
xor edx, edx
mov dword [esp + 0xb0], eax
and eax, 1
test byte [edi + 0x24], 0x40
mov dword [esp + 0xb4], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0xa4], 0
je 0x665cbc9f
movzx eax, word [esi + 0x22]
mov word [esp + 0x50], ax
shr ax, 5
xor eax, 1
and eax, 1
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x18]
call sym._sqlite3VdbeMakeLabel.isra.428
mov edx, dword [esp + 0x30]
mov esi, eax
mov eax, dword [esp + 0x24]
mov dword [eax - 0x40], esi
mov dword [eax - 0x44], esi
mov eax, dword [edx + 0x18]
call sym._sqlite3VdbeMakeLabel.isra.428
mov edx, eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x24]
cmp byte [eax - 0x24], 0
mov dword [eax - 0x38], edx
je 0x665cbce7
lea eax, [ebx + ebx*8]
test byte [ebp + eax*8 + 0x2c], 8
jne 0x665cd025
lea eax, [ebx + ebx*8]
lea eax, [ebp + eax*8]
movzx ecx, byte [eax + 0x30]
test cl, 4
jne 0x665cc6e4
mov eax, dword [edi + 0x24]
test ah, 4
je 0x665cbed6
movzx ebp, word [edi + 0x28]
mov eax, dword [esp + 0x34]
add dword [eax + 0x64], 1
lea esi, [ebp + 2]
mov ecx, esi
mov dword [esp + 0x58], esi
mov esi, eax
mov eax, dword [eax + 0x38]
cmp ecx, eax
jg 0x665cd077
mov ebx, esi
mov esi, dword [esi + 0x3c]
mov edx, ecx
sub eax, ecx
mov dword [ebx + 0x38], eax
add edx, esi
mov dword [ebx + 0x3c], edx
mov eax, dword [esp + 0x24]
test ebp, ebp
mov eax, dword [eax - 0x44]
mov dword [esp + 0x50], eax
je 0x665cc331
lea eax, [esi + 2]
xor ebx, ebx
mov dword [esp + 0x54], eax
jmp 0x665cbd8a
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
call sym._codeEqualityTerm
mov eax, dword [esp + 0x24]
mov eax, dword [eax - 0x40]
mov dword [esp + 0x50], eax
add ebx, 1
cmp ebp, ebx
je 0x665cc27f
mov eax, dword [esp + 0x54]
lea ecx, [eax + ebx]
mov eax, dword [edi + 0x30]
mov edx, dword [eax + ebx*4]
test edx, edx
je 0x665cbd7f
test byte [edx + 0x12], 1
jne 0x665cbd58
mov eax, dword [edx]
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x34]
call sym._sqlite3ExprCode
jmp 0x665cbd7f
mov eax, 1
xor edx, edx
jmp 0x665cb6e5
mov ebx, edi
jmp 0x665cb63e
mov eax, dword [esp + 0x40]
test byte [eax + 0x1a], 2
je 0x665cb99e
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x1c], 0xffffffff
jmp 0x665cb99e
mov eax, dword [edi]
mov ecx, dword [edi + 0x1c]
mov edx, ebx
mov dword [esp], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
call sym._sqlite3TableLock
mov eax, dword [esi + 0x24]
jmp 0x665cbae5
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x26], 0
jne 0x665cc6a2
cmp word [esp + 0x64], 0
je 0x665ccfd8
mov edx, dword [esp + 0x11c]
test edx, edx
je 0x665ccfd8
cmp word [esp + 0x4c], 1
mov ecx, dword [esp + 0x11c]
sbb edx, edx
not edx
add edx, 0x36
mov eax, dword [esp + 0x24]
mov dword [eax + 8], ecx
mov dword [esp + 4], ebx
mov eax, dword [ebp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
call sym._sqlite3VdbeAddOp3
mov eax, dword [esp + 0x28]
mov edx, ebp
call sym._sqlite3VdbeSetP4KeyInfo
mov eax, dword [esi + 0x24]
test al, 0xf
je 0x665cbb1c
test eax, 0x8002
jne 0x665cbb1c
mov eax, dword [esp + 0x2c]
test byte [eax + 0x22], 1
jne 0x665cbb1c
mov esi, dword [esp + 0x60]
mov eax, dword [esi + 4]
test eax, eax
je 0x665cbb1c
mov edx, dword [esi + 0x20]
lea edx, [edx + edx*4]
mov byte [eax + edx*4 - 0x11], 2
jmp 0x665cbb1c
mov ebx, ecx
jmp 0x665cbac3
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
mov ecx, eax
mov eax, edx
not ecx
not eax
jmp 0x665cbc2d
test ah, 1
je 0x665cbee3
test al, 5
jne 0x665cd34a
mov edx, dword [edi + 0x24]
and edx, 0x102
cmp edx, 0x102
je 0x665cd107
test ah, 2
je 0x665cd0e8
mov edx, dword [esp + 0x24]
movzx esi, word [edi + 0x18]
mov byte [esp + 0xd8], 0
mov ebx, dword [edi + 0x1c]
mov edx, dword [edx - 0x48]
mov word [esp + 0x90], si
mov dword [esp + 0x94], ebx
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x2c]
test byte [edx + 0x22], 1
je 0x665cd0dc
cmp byte [edx + 0x24], 0
jle 0x665cd0dc
cmp si, word [ebx + 0x2e]
setb cl
setb byte [esp + 0x68]
movzx ecx, cl
movzx esi, word [esp + 0x90]
test al, 0x20
mov dword [esp + 0x50], esi
mov dword [esp + 0xa0], esi
je 0x665cd0cb
mov ecx, dword [edi + 0x30]
lea edx, [esi + 1]
mov esi, dword [ecx + esi*4]
mov ecx, 1
mov dword [esp + 0x54], esi
test al, 0x10
mov dword [esp + 0x84], 0
je 0x665cbfb8
mov eax, dword [edi + 0x30]
mov eax, dword [eax + edx*4]
test byte [eax + 0x15], 1
mov dword [esp + 0x84], eax
jne 0x665ceb3a
mov esi, dword [esp + 0x54]
mov ecx, 1
test esi, esi
je 0x665ceaf7
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
mov ebx, dword [ebx - 0x10]
mov eax, dword [esi + 8]
movzx edx, word [ebx + 0x2a]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x48]
mov word [esp + 0x9c], dx
mov edx, dword [ebx + 0x1c]
lea ebp, [eax + 1]
movzx ebx, word [ebx + 0x18]
mov dword [esp + 0xac], ebp
mov dword [esp + 0x64], ebp
add ecx, ebx
mov dword [esp + 0xa8], ebx
add eax, ecx
mov dword [esp + 0xc0], ecx
mov dword [esi + 0x48], eax
mov eax, dword [esp + 0x58]
call sym._sqlite3IndexAffinityStr
mov edx, eax
mov eax, dword [esi]
call sym._sqlite3DbStrDup
test eax, eax
mov esi, eax
je 0x665cdad1
xor ebx, ebx
cmp word [esp + 0x9c], 0
je 0x665cc14f
mov eax, dword [esp + 0x24]
mov eax, dword [eax - 0x48]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x665cd8ff
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x98]
mov edx, 0x6c
mov dword [esp + 4], 0
mov dword [esp], 0
mov eax, ebx
call sym._sqlite3VdbeAddOp3
mov edx, 0x10
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
mov eax, ebx
call sym._sqlite3VdbeAddOp3
mov ebp, eax
movzx eax, word [esp + 0x9c]
mov edx, 0x41
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x98]
mov dword [esp], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
call sym._sqlite3VdbeAddOp3
mov ecx, dword [esp + 0x9c]
mov ebx, eax
mov edx, eax
mov eax, dword [esp + 0x58]
mov dword [esp], 0xfffffff2
call sym._sqlite3VdbeChangeP4
mov edx, dword [esp + 0x24]
mov dword [edx - 0x3c], ebx
mov ebx, dword [esp + 0x58]
mov eax, dword [ebx + 0x20]
cmp ebp, eax
jae 0x665cc107
lea edx, [ebp + ebp*4]
mov ebp, dword [ebx + 4]
lea edx, [ebp + edx*4]
mov dword [edx + 8], eax
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x50]
sub eax, 1
mov edx, dword [ebx + 0x18]
xor ebx, ebx
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x98]
mov edx, 0x2f
mov dword [esp], ebx
add eax, ebx
add ebx, 1
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
call sym._sqlite3VdbeAddOp3
cmp ebx, dword [esp + 0x9c]
jne 0x665cc11a
mov dword [esp + 0x50], ebp
cmp dword [esp + 0xa8], ebx
jle 0x665cd4ab
lea eax, [ebx*4]
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x98], eax
jmp 0x665cc1a3
test edi, edi
jne 0x665cd05d
mov edi, eax
test byte [ebp + 0x12], 0x81
je 0x665cc233
add ebx, 1
add dword [esp + 0x98], 4
cmp dword [esp + 0xa8], ebx
je 0x665cd4a0
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 0x30]
mov ebp, dword [eax + edx]
lea eax, [edi + ebx]
mov edx, dword [esp + 0x4c]
mov dword [esp], ebx
mov dword [esp + 0x64], eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], edx
mov edx, ebp
call sym._codeEqualityTerm
cmp dword [esp + 0x64], eax
mov ecx, eax
je 0x665cc181
cmp dword [esp + 0xc0], 1
je 0x665cc177
mov eax, dword [esp + 0x64]
mov dword [esp + 4], 0
mov edx, 0x22
mov dword [esp], eax
mov eax, dword [esp + 0x58]
call sym._sqlite3VdbeAddOp3
jmp 0x665cc181
mov eax, dword [esp + 0x28]
mov dword [esp + 8], 0x40
mov dword [esp + 4], str.at_most__d_tables_in_a_join
mov dword [esp], eax
call sym._sqlite3ErrorMsg
xor eax, eax
jmp 0x665cb3e5
mov eax, dword [ebp]
mov ebp, dword [eax + 0x10]
mov eax, ebp
call sym._sqlite3ExprCanBeNull
test eax, eax
jne 0x665cd478
test esi, esi
je 0x665cc18b
movsx edx, byte [esi + ebx]
mov eax, ebp
call sym._sqlite3CompareAffinity
cmp al, 0x41
je 0x665cd46a
movsx edx, byte [esi + ebx]
mov eax, ebp
call sym._sqlite3ExprNeedsNoAffinityChange
test eax, eax
je 0x665cc18b
mov byte [esi + ebx], 0x41
jmp 0x665cc18b
mov ebx, dword [esp + 0x30]
mov ecx, dword [edi + 0x18]
mov edx, 0x19
mov dword [esp + 4], 0
mov dword [esp], esi
mov eax, ebx
call sym._sqlite3VdbeAddOp3
lea eax, [esi + 1]
mov dword [esp + 4], 0
mov ecx, ebp
mov edx, 0x19
mov dword [esp], eax
mov eax, ebx
call sym._sqlite3VdbeAddOp3
cmp byte [edi + 0x1c], 0
je 0x665ccff9
mov eax, dword [esp + 0x50]
mov ebx, dword [edi + 0x20]
mov edx, 0xe
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._sqlite3VdbeAddOp3
mov dword [esp], 0xfffffff5
mov edx, eax
mov eax, dword [esp + 0x30]
mov ecx, ebx
xor ebx, ebx
call sym._sqlite3VdbeChangeP4
mov byte [edi + 0x1c], 0
jmp 0x665cc313
add ebx, 1
cmp ebp, ebx
jle 0x665cc3ad
cmp ebx, 0xf
jg 0x665cc3ad
movzx eax, word [edi + 0x1e]
bt eax, ebx
jae 0x665cc2ff
mov eax, dword [edi + 0x30]
mov edx, dword [esp + 0x6c]
mov ecx, dword [eax + ebx*4]
mov eax, dword [esp + 0x48]
call sym._disableTerm.isra.210
jmp 0x665cc2ff
mov ebx, dword [esp + 0x30]
mov ecx, dword [edi + 0x18]
mov edx, 0x19
mov dword [esp + 4], 0
mov dword [esp], esi
mov eax, ebx
call sym._sqlite3VdbeAddOp3
lea eax, [esi + 1]
xor ecx, ecx
mov dword [esp + 4], 0
mov edx, 0x19
mov dword [esp], eax
mov eax, ebx
call sym._sqlite3VdbeAddOp3
cmp byte [edi + 0x1c], 0
jne 0x665cdfab
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x30]
mov edx, 0xe
mov ecx, dword [esp + 0x3c]
mov ebx, dword [edi + 0x20]
mov dword [esp + 4], esi
mov dword [esp], eax
mov eax, ebp
call sym._sqlite3VdbeAddOp3
mov dword [esp], 0xfffffffe
mov edx, eax
mov ecx, ebx
mov eax, ebp
call sym._sqlite3VdbeChangeP4
mov byte [edi + 0x1c], 0
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x3c]
mov edx, esi
mov eax, dword [esp + 0x30]
mov dword [edi - 0x20], ebx
mov byte [edi - 0x23], 0x97
mov eax, dword [eax + 0x20]
mov ebx, dword [esp + 0x58]
mov dword [edi - 0x1c], eax
mov edi, dword [esp + 0x34]
mov ecx, ebx
mov eax, edi
call sym._sqlite3ExprCacheRemove
mov eax, edi
cmp ebx, dword [eax + 0x38]
jle 0x665cc3ee
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x58]
mov dword [eax + 0x3c], esi
mov dword [eax + 0x38], edi
mov eax, dword [esp + 0x34]
call sym._sqlite3ExprCachePop
mov eax, dword [esp + 0x2c]
mov ebp, dword [eax + 0x154]
mov ebx, dword [eax + 0x15c]
mov eax, dword [esp + 0x24]
test ebp, ebp
mov edi, dword [eax - 0x50]
jle 0x665cc512
mov esi, eax
jmp 0x665cc42a
mov eax, dword [esp + 0x2c]
mov byte [eax + 0x27], 1
add ebx, 0x30
sub ebp, 1
je 0x665cc486
movzx eax, word [ebx + 0x14]
test al, 6
jne 0x665cc422
mov edx, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
and edx, dword [esi - 8]
and ecx, dword [esi - 4]
or ecx, edx
jne 0x665cc41a
mov edx, dword [ebx]
test edi, edi
mov dword [esp + 0x4c], edx
je 0x665cc452
test byte [edx + 4], 1
je 0x665cc422
test ah, 2
jne 0x665cc579
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x34]
mov dword [esp], 0x10
call sym._sqlite3ExprIfFalse
or word [ebx + 0x14], 4
add ebx, 0x30
sub ebp, 1
mov edi, dword [esi - 0x50]
jne 0x665cc42a
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x154]
mov ebp, dword [eax + 0x15c]
test esi, esi
jg 0x665cc4a8
jmp 0x665cc512
add ebp, 0x30
sub esi, 1
je 0x665cc512
test byte [ebp + 0x14], 6
jne 0x665cc4a0
cmp word [ebp + 0x12], 0x402
jne 0x665cc4a0
mov eax, dword [esp + 0x3c]
cmp eax, dword [ebp + 8]
jne 0x665cc4a0
test edi, edi
jne 0x665cc4a0
mov eax, dword [ebp]
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
call sym._findTerm
test eax, eax
mov edi, eax
je 0x665cc509
test byte [eax + 0x14], 4
je 0x665cea3f
mov eax, dword [esp + 0x24]
mov edi, dword [eax - 0x50]
jmp 0x665cc4a0
test edi, edi
jne 0x665cc5e7
mov eax, dword [esp + 0x24]
mov esi, dword [eax - 8]
mov eax, dword [eax - 4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], eax
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
add dword [esp + 0x48], 0x50
add dword [esp + 0x88], 1
mov eax, dword [esi - 0x38]
add dword [esp + 0x6c], 0x50
mov dword [edi + 0x30], eax
mov eax, esi
add eax, 0x50
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0xb8]
jne 0x665cbba0
mov eax, edi
jmp 0x665cb3e5
mov ecx, dword [esi - 0x2c]
mov eax, dword [esp + 0x30]
mov edx, 0x2e
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._sqlite3VdbeAddOp3
mov ecx, dword [esp + 0x8c]
mov edi, eax
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x34]
mov dword [esp], 0x10
call sym._sqlite3ExprIfFalse
test edi, edi
je 0x665cc476
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x20]
cmp edi, eax
jae 0x665cc5d5
lea edx, [edi + edi*4]
shl edx, 2
add edx, dword [ecx + 4]
mov dword [edx + 8], eax
mov edi, dword [esp + 0x30]
sub eax, 1
mov edx, dword [edi + 0x18]
mov dword [edx + 0x58], eax
jmp 0x665cc476
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
mov ecx, 1
mov edx, 0x19
mov eax, dword [esi + 0x20]
mov dword [edi - 0x34], eax
mov dword [esp + 4], 0
mov eax, dword [edi - 0x50]
mov dword [esp], eax
mov eax, esi
call sym._sqlite3VdbeAddOp3
mov eax, dword [esp + 0x34]
call sym._sqlite3ExprCacheClear
mov eax, dword [esp + 0x2c]
mov ebp, dword [eax + 0x154]
mov ebx, dword [eax + 0x15c]
test ebp, ebp
jle 0x665cc51a
mov esi, dword [esp + 0x24]
mov eax, dword [esi - 8]
mov edi, dword [esi - 4]
xor esi, esi
mov ebp, esi
mov esi, dword [esp + 0x2c]
jmp 0x665cc657
add ebp, 1
add ebx, 0x30
cmp ebp, dword [esi + 0x154]
jge 0x665cc695
test byte [ebx + 0x14], 6
jne 0x665cc649
mov edx, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
and edx, eax
and ecx, edi
or ecx, edx
jne 0x665cc649
mov dword [esp], 0x10
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x8c]
mov edx, dword [ebx]
call sym._sqlite3ExprIfFalse
mov edi, dword [esp + 0x24]
or word [ebx + 0x14], 4
mov eax, dword [edi - 8]
mov edi, dword [edi - 4]
jmp 0x665cc649
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edi
jmp 0x665cc538
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x11c]
lea eax, [eax + eax*8]
mov eax, dword [edi + eax*8 + 0x18]
mov eax, dword [eax + 8]
cmp ebp, eax
je 0x665cc6d3
test eax, eax
jne 0x665cc6c9
jmp 0x665cc6d3
cmp ebp, eax
je 0x665cc6d3
mov eax, dword [eax + 0x14]
add ecx, 1
test eax, eax
jne 0x665cc6c5
mov eax, dword [esp + 0x2c]
mov edx, 0x37
mov dword [eax + 0x40], ecx
jmp 0x665cbe49
mov ebx, dword [eax + 0x24]
mov edi, dword [esp + 0x30]
mov edx, 0x14
mov eax, dword [eax + 0x20]
mov dword [esp], 0
mov ecx, ebx
mov dword [esp + 4], eax
mov eax, edi
call sym._sqlite3VdbeAddOp3
mov dword [esp], esi
mov dword [esp + 4], 0
mov ecx, ebx
mov edx, 0x16
mov eax, edi
call sym._sqlite3VdbeAddOp3
mov esi, dword [esp + 0x24]
mov dword [esi - 0x1c], eax
mov byte [esi - 0x23], 0x10
jmp 0x665cc3f7
mov ebx, dword [esp + 0x24]
movzx eax, byte [ebx - 0x24]
mov dword [esp + 0x68], eax
lea edi, [eax + eax*8]
mov eax, dword [esp + 0x44]
lea esi, [eax + edi*8]
lea eax, [esi + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 8]
mov dword [esp + 0x30], edx
call sym._sqlite3CodeOnce
mov dword [esp + 0x84], eax
mov eax, dword [esi + 0x18]
mov ebx, dword [ebx - 0x10]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x2c]
mov ebp, dword [eax + 0x15c]
mov eax, dword [eax + 0x154]
lea eax, [eax + eax*2]
shl eax, 4
add eax, ebp
mov esi, eax
mov dword [esp + 0x4c], eax
cmp ebp, esi
jae 0x665cdc0c
mov dword [esp + 0x34], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov byte [esp + 0x64], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x8c], edi
jmp 0x665cc7cf
add ebp, 0x30
cmp dword [esp + 0x4c], ebp
jbe 0x665cc960
mov eax, dword [ebx + 4]
or eax, dword [ebx]
jne 0x665cc7e9
test byte [ebp + 0x14], 2
jne 0x665cc7e9
mov esi, dword [ebp]
test byte [esi + 4], 1
je 0x665cc8cf
mov eax, dword [esp + 0x3c]
mov esi, dword [ebp + 8]
cmp dword [eax + 0x2c], esi
jne 0x665cc7c2
test byte [ebp + 0x12], 2
je 0x665cc7c2
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
and eax, dword [ebp + 0x20]
and edx, dword [ebp + 0x24]
or edx, eax
jne 0x665cc7c2
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x10]
mov eax, ebp
call sym._termCanDriveIndex.isra.207.part.208
test eax, eax
je 0x665cc7c2
mov ecx, dword [ebp + 0xc]
xor esi, esi
mov edi, 0x80000000
cmp ecx, 0x3f
jg 0x665cc83f
mov edi, ecx
shr edi, 5
and edi, 1
mov esi, edi
shl edi, cl
xor esi, 1
shl esi, cl
cmp byte [esp + 0x64], 0
je 0x665cc898
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
and eax, esi
and edx, edi
or edx, eax
jne 0x665cc7c2
mov eax, dword [esp + 0x34]
add eax, 1
mov edx, eax
mov dword [esp + 0x80], eax
movzx eax, word [ebx + 0x2c]
cmp edx, eax
jg 0x665cc91e
mov eax, dword [ebx + 0x30]
mov edx, dword [esp + 0x34]
or dword [esp + 0x58], esi
or dword [esp + 0x5c], edi
mov dword [eax + edx*4], ebp
mov eax, dword [esp + 0x80]
mov dword [esp + 0x34], eax
jmp 0x665cc7c2
mov edx, dword [esp + 0x54]
lea eax, [ecx + ecx*2]
shl eax, 3
add eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [edx]
mov dword [esp + 4], str.automatic_index_on__s__s_
mov dword [esp], 0x11c
mov dword [esp + 8], eax
call sym.libsqlite3_0.dll_sqlite3_log
mov byte [esp + 0x64], 1
jmp 0x665cc846
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x8c]
mov edx, 3
mov ecx, dword [eax + edi*8 + 0x34]
mov eax, esi
call sym._exprIsConst
test eax, eax
je 0x665cc7e9
mov edx, esi
mov esi, dword [esp + 0x28]
mov dword [esp], 0
xor ecx, ecx
mov eax, dword [esi]
call sym._exprDup
mov edx, dword [esp + 0x50]
mov ecx, eax
mov eax, dword [esi]
call sym._sqlite3ExprAnd
mov dword [esp + 0x50], eax
jmp 0x665cc7e9
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x80]
mov edx, ebx
mov eax, dword [eax]
call sym._whereLoopResize.part.307
test eax, eax
je 0x665cc876
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
mov eax, dword [eax]
call sym._sqlite3ExprDelete
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x41], 0
je 0x665cbbb1
jmp 0x665cb746
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
movzx edx, word [esp + 0x34]
not ecx
not eax
or ecx, 0x80000000
mov esi, dword [esp + 0x68]
mov word [ebx + 0x18], dx
mov word [ebx + 0x28], dx
mov dword [ebx + 0x24], 0x4241
lea edx, [esi + esi*8]
mov esi, dword [esp + 0x44]
lea edx, [esi + edx*8]
and eax, dword [edx + 0x40]
mov edi, dword [edx + 0x44]
and ecx, edi
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x7c], ecx
movzx esi, word [eax + 0x22]
mov eax, 0x3f
cmp si, 0x3f
cmovle eax, esi
movsx edx, ax
test ax, ax
mov word [esp + 0x80], ax
mov dword [esp + 0x58], edx
jle 0x665cc9fc
mov ebp, dword [esp + 0x34]
xor ecx, ecx
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x665cc9e6
mov eax, edx
and eax, 1
cmp eax, 1
sbb ebp, 0xffffffff
add ecx, 1
cmp dword [esp + 0x58], ecx
jne 0x665cc9d2
mov dword [esp + 0x34], ebp
test edi, edi
jns 0x665cca0f
movsx eax, si
mov esi, dword [esp + 0x34]
lea eax, [esi + eax - 0x3f]
mov dword [esp + 0x34], eax
movzx eax, word [esp + 0x34]
xor ecx, ecx
lea edx, [eax + 1]
lea eax, [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
movsx edx, dx
mov eax, dword [eax]
call sym._sqlite3AllocateIndexObject
test eax, eax
mov edi, eax
je 0x665cc93a
mov dword [ebx + 0x1c], eax
mov dword [eax], str.auto_index
mov eax, dword [esp + 0x54]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x15c]
cmp dword [esp + 0x4c], esi
jbe 0x665ce3ed
xor ebp, ebp
mov dword [esp + 0x5c], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x90], ebx
jmp 0x665cca87
add esi, 0x30
cmp dword [esp + 0x4c], esi
jbe 0x665ccb3a
mov eax, dword [esp + 0x3c]
mov ebx, dword [esi + 8]
cmp dword [eax + 0x2c], ebx
jne 0x665cca7a
test byte [esi + 0x12], 2
je 0x665cca7a
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
and eax, dword [esi + 0x20]
and edx, dword [esi + 0x24]
or edx, eax
jne 0x665cca7a
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x10]
mov eax, esi
call sym._termCanDriveIndex.isra.207.part.208
test eax, eax
je 0x665cca7a
mov ebx, dword [esi + 0xc]
xor eax, eax
mov edx, 0x80000000
cmp ebx, 0x3f
mov dword [esp + 0x8c], ebx
jg 0x665ccae6
xor eax, eax
xor edx, edx
test bl, 0x20
mov ecx, ebx
sete al
setne dl
shl edx, cl
shl eax, cl
mov ebx, dword [esp + 0x5c]
and ebx, eax
mov ecx, ebx
mov ebx, dword [esp + 0x64]
and ebx, edx
or ecx, ebx
jne 0x665cca7a
or dword [esp + 0x64], edx
movzx edx, word [esp + 0x8c]
mov ebx, dword [esi]
or dword [esp + 0x5c], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x10]
mov word [eax + ebp*2], dx
mov edx, dword [ebx + 0xc]
mov eax, dword [esp + 0x28]
call sym._sqlite3BinaryCompareCollSeq
mov edx, dword [edi + 0x20]
test eax, eax
lea edx, [edx + ebp*4]
je 0x665cd2fd
mov eax, dword [eax]
mov dword [edx], eax
add ebp, 1
jmp 0x665cca7a
mov ebx, dword [esp + 0x90]
lea edx, [ebp + ebp]
lea eax, [ebp*4]
cmp word [esp + 0x80], 0
jle 0x665ccb9b
xor ecx, ecx
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
and eax, 1
test eax, eax
je 0x665ccb87
mov eax, dword [edi + 4]
mov word [eax + ebp*2], cx
mov eax, dword [edi + 0x20]
mov dword [eax + ebp*4], str.BINARY
add ebp, 1
add ecx, 1
cmp dword [esp + 0x58], ecx
jne 0x665ccb59
lea edx, [ebp + ebp]
lea eax, [ebp*4]
mov esi, dword [esp + 0x68]
lea ecx, [esi + esi*8]
mov esi, dword [esp + 0x44]
mov ecx, dword [esi + ecx*8 + 0x44]
test ecx, ecx
js 0x665cd2a5
mov ecx, dword [edi + 4]
mov esi, 0xffffffff
mov ebp, dword [esp + 0x30]
mov word [ecx + edx], si
mov esi, dword [esp + 0x28]
mov edx, dword [edi + 0x20]
mov ecx, dword [esi + 0x44]
mov dword [edx + eax], str.BINARY
mov edx, 0x38
lea eax, [ecx + 1]
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x24]
mov dword [eax - 0x48], ecx
mov eax, dword [esp + 0x34]
mov dword [esp + 4], 0
add eax, 1
mov dword [esp], eax
mov eax, ebp
call sym._sqlite3VdbeAddOp3
mov eax, esi
mov edx, edi
call sym._sqlite3VdbeSetP4KeyInfo
mov edx, dword [esp + 0x24]
add dword [esi + 0x64], 1
mov eax, ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], ebp
xor ebp, ebp
mov ecx, dword [edx - 0x4c]
mov edx, 0x6c
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._sqlite3VdbeAddOp3
mov esi, eax
mov eax, dword [esp + 0x50]
test eax, eax
je 0x665ccc6c
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x18]
call sym._sqlite3VdbeMakeLabel.isra.428
mov edx, dword [esp + 0x50]
mov ecx, eax
mov ebp, eax
mov eax, dword [esp + 0x28]
mov dword [esp], 0x10
call sym._sqlite3ExprIfFalse
or dword [ebx + 0x24], 0x20000
mov ebx, dword [esp + 0x28]
movzx eax, byte [ebx + 0x13]
test al, al
jne 0x665cd8e9
mov eax, ebx
mov ebx, dword [ebx + 0x48]
mov dword [esp + 0x34], ebx
add ebx, 1
mov dword [eax + 0x48], ebx
mov eax, dword [esp + 0x24]
mov edx, edi
mov ecx, dword [eax - 0x4c]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym._sqlite3GenerateIndexKey
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov edx, 0x6e
mov ecx, dword [eax - 0x48]
mov dword [esp + 4], 0
mov eax, edi
mov dword [esp], ebx
call sym._sqlite3VdbeAddOp3
mov eax, dword [edi + 4]
test eax, eax
je 0x665cccf4
mov edx, dword [edi + 0x20]
lea edx, [edx + edx*4]
mov byte [eax + edx*4 - 0x11], 0x10
mov eax, dword [esp + 0x50]
test eax, eax
je 0x665ccd26
mov edi, dword [esp + 0x30]
xor ebp, 0xffffffff
mov eax, dword [edi + 0x18]
js 0x665ccd15
mov edx, dword [eax + 0x70]
test edx, edx
je 0x665ccd15
mov ecx, dword [edi + 0x20]
mov dword [edx + ebp*4], ecx
mov edi, dword [esp + 0x30]
mov edi, dword [edi + 0x20]
lea edx, [edi - 1]
mov dword [esp + 0x34], edi
mov dword [eax + 0x58], edx
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov edx, 9
mov ecx, dword [eax - 0x4c]
lea eax, [esi + 1]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, edi
call sym._sqlite3VdbeAddOp3
mov edx, dword [edi + 4]
test edx, edx
je 0x665ccd60
mov eax, dword [edi + 0x20]
lea eax, [eax + eax*4]
mov byte [edx + eax*4 - 0x11], 3
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
cmp esi, eax
jae 0x665ccd72
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4 + 8], eax
mov esi, dword [esp + 0x30]
sub eax, 1
test ebx, ebx
mov edx, dword [esi + 0x18]
mov dword [edx + 0x58], eax
je 0x665ccd8e
mov eax, dword [esp + 0x28]
mov edx, ebx
call sym._sqlite3ReleaseTempReg.part.166
mov eax, dword [esp + 0x28]
call sym._sqlite3ExprCachePop
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x84]
mov eax, dword [esi + 0x20]
cmp edi, eax
jae 0x665ccdb5
lea edx, [edi + edi*4]
mov edi, dword [esi + 4]
lea edx, [edi + edx*4]
mov dword [edx + 8], eax
mov esi, dword [esp + 0x30]
sub eax, 1
mov edx, dword [esi + 0x18]
mov dword [edx + 0x58], eax
jmp 0x665cc93a
mov esi, dword [eax + 0x34]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x24], esi
mov esi, dword [eax]
test esi, esi
jle 0x665cce38
mov ecx, dword [eax + 4]
xor ebx, ebx
mov eax, dword [ecx]
lea esi, [esi]
test eax, eax
je 0x665cce10
mov edx, dword [eax + 4]
test dh, 0x10
je 0x665cce25
and edx, 0x40000
je 0x665cce20
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test eax, eax
jne 0x665ccdf4
movzx eax, byte [pe_dos_header]
ud2
mov eax, dword [eax + 0xc]
jmp 0x665ccdf0
cmp byte [eax], 0x9a
je 0x665ccfb3
add ebx, 1
add ecx, 0x18
cmp ebx, esi
jne 0x665ccde7
mov eax, dword [esp + 0x4c]
mov edi, dword [eax + 8]
test edi, edi
je 0x665cb787
mov ebp, edi
mov edi, dword [esp + 0x114]
cmp byte [ebp + 0x32], 0
je 0x665ccf41
cmp word [ebp + 0x2e], 0
je 0x665ccfcb
xor esi, esi
jmp 0x665cce7f
movzx eax, word [ebp + 0x2e]
add esi, 1
cmp esi, eax
jge 0x665ccf39
lea eax, [esi + esi]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 4]
movsx eax, word [eax + esi*2]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 2
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
mov dword [esp + 0x34], eax
mov ecx, eax
mov eax, dword [esp + 0x38]
call sym._findTerm
test eax, eax
jne 0x665cce70
mov eax, dword [ebp + 0x20]
mov ecx, dword [edi]
mov eax, dword [eax + esi*4]
test ecx, ecx
mov dword [esp + 0x54], eax
jle 0x665ccfad
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x30]
xor ebx, ebx
lea esi, [esi]
mov edx, dword [edi + 4]
lea eax, [ebx + ebx*2]
lea eax, [edx + eax*8]
mov edx, dword [eax]
test edx, edx
je 0x665cce10
mov ecx, dword [edx + 4]
mov eax, edx
test ch, 0x10
jne 0x665ccf18
jmp 0x665ccf25
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test eax, eax
je 0x665cce10
mov ecx, dword [eax + 4]
test ch, 0x10
je 0x665ccf25
and ecx, 0x40000
jne 0x665ccf00
mov eax, dword [eax + 0xc]
jmp 0x665ccf08
cmp byte [eax], 0x9a
je 0x665ccf51
add ebx, 1
cmp ebx, dword [edi]
jl 0x665ccee0
movzx eax, word [ebp + 0x2e]
mov esi, dword [esp + 0x48]
cmp esi, eax
je 0x665ccfcb
mov ebp, dword [ebp + 0x14]
test ebp, ebp
jne 0x665cce50
jmp 0x665cb787
mov ecx, dword [ebp + 4]
movzx ecx, word [ecx + esi]
cmp word [eax + 0x20], cx
jne 0x665ccf2a
mov ecx, dword [esp + 0x24]
cmp ecx, dword [eax + 0x1c]
jne 0x665ccf2a
mov eax, dword [esp + 0x28]
call sym._sqlite3ExprCollSeq
test eax, eax
je 0x665ccf2a
mov edx, dword [esp + 0x54]
mov dword [esp + 4], edx
mov eax, dword [eax]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_stricmp
test eax, eax
jne 0x665ccf2a
test ebx, ebx
mov esi, dword [esp + 0x48]
js 0x665ccfad
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
lea eax, [eax + eax*2]
shl eax, 3
add eax, dword [ebx + 4]
cmp byte [eax + 0x14], 0
jne 0x665cce70
movzx eax, word [ebp + 0x2e]
jmp 0x665ccf39
mov edi, dword [esp + 0x24]
cmp edi, dword [eax + 0x1c]
jne 0x665cce2e
cmp word [eax + 0x20], 0
jns 0x665cce2e
mov eax, dword [esp + 0x2c]
mov byte [eax + 0x28], 1
jmp 0x665cb625
mov edi, dword [esp + 0x28]
mov edx, 0x36
mov ecx, dword [edi + 0x44]
lea eax, [ecx + 1]
mov dword [edi + 0x44], eax
jmp 0x665cbe49
mov ebx, 0xfff0bdc0
jmp 0x665cbac3
mov eax, dword [esp + 0x50]
mov ebx, dword [edi + 0x20]
mov edx, 0xe
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._sqlite3VdbeAddOp3
mov dword [esp], 0xfffffffe
jmp 0x665cc2ea
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov eax, dword [edx + 0x48]
mov dword [esp + 0x50], eax
add eax, 1
mov dword [edx + 0x48], eax
mov edx, dword [esp + 0x24]
mov dword [edx - 0x50], eax
mov dword [esp], eax
mov edx, 0x19
mov eax, dword [esp + 0x30]
mov dword [esp + 4], 0
call sym._sqlite3VdbeAddOp3
jmp 0x665cbce7
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x34]
mov edx, edi
call sym._sqlite3ReleaseTempReg.part.166
mov ecx, dword [esp + 0x64]
mov edi, ecx
jmp 0x665cc181
mov ebx, dword [esp + 0x34]
mov eax, dword [ebx + 0x48]
lea esi, [eax + 1]
add eax, dword [esp + 0x58]
mov dword [ebx + 0x48], eax
jmp 0x665cbd3a
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
movzx eax, byte [eax - 0x24]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call sym._explainOneScan.part.433
jmp 0x665cbbc2
xor ebx, ebx
jmp 0x665cbac3
mov edx, dword [esp + 0x50]
mov dword [esp + 0x54], 0
jmp 0x665cbf81
mov byte [esp + 0x68], 0
xor ecx, ecx
jmp 0x665cbf54
test ah, 0x20
jne 0x665ce173
and ecx, 8
je 0x665ce130
mov eax, dword [esp + 0x24]
mov byte [eax - 0x23], 0x9c
jmp 0x665cc3f7
test al, 0x20
je 0x665cd341
mov edx, dword [edi + 0x30]
mov ebx, dword [edx]
mov edx, 1
test al, 0x10
je 0x665cd307
mov eax, dword [edi + 0x30]
mov edi, dword [eax + edx*4]
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x665cd315
test edi, edi
je 0x665cdc2d
mov eax, ebx
mov ebx, edi
mov edi, eax
mov byte [esp + 0xd8], 0x41
mov byte [esp + 0xd9], 0x3f
lea ecx, [esp + 0xd4]
mov byte [esp + 0xda], 0x3e
mov byte [esp + 0xdb], 0x40
mov ebp, dword [ebx]
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 0x10]
call sym._sqlite3ExprCodeTemp
mov ecx, eax
movzx eax, byte [ebp]
mov ebp, ecx
movzx edx, byte [esp + eax + 0x88]
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
mov dword [esp], esi
call sym._sqlite3VdbeAddOp3
mov eax, dword [esp + 0x34]
mov edx, ebp
mov ecx, 1
call sym._sqlite3ExprCacheRemove
mov edx, dword [esp + 0xd4]
test edx, edx
jne 0x665ce104
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x48]
mov ecx, ebx
mov ebx, edi
call sym._disableTerm.isra.210
test ebx, ebx
je 0x665ce0de
mov eax, dword [esp + 0x34]
mov edi, dword [ebx]
mov edx, dword [eax + 0x48]
lea ebp, [edx + 1]
mov dword [esp + 0x50], edx
mov edx, dword [edi + 0x10]
mov dword [eax + 0x48], ebp
mov ecx, ebp
call sym._sqlite3ExprCode
movzx eax, byte [edi]
and eax, 0xfffffffd
cmp al, 0x50
jne 0x665ce0cc
mov eax, dword [esp + 0x4c]
mov edi, 0x53
test eax, eax
jne 0x665ce09a
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x48]
mov ecx, ebx
call sym._disableTerm.isra.210
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
mov eax, dword [eax + 0x20]
mov byte [ebx - 0x23], 9
mov dword [ebx - 0x20], edx
mov dword [ebx - 0x1c], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov edx, 0x67
mov ebx, dword [eax + 0x48]
mov dword [esp + 0x34], eax
add ebx, 1
mov dword [eax + 0x48], ebx
mov eax, dword [esp + 0x30]
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym._sqlite3VdbeAddOp3
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
test byte [eax + 0x3c], 2
je 0x665ce3f8
mov dword [esp], esi
mov esi, dword [esp + 0x30]
mov ecx, ebp
mov dword [esp + 4], ebx
mov edx, edi
mov eax, esi
call sym._sqlite3VdbeAddOp3
mov eax, dword [esi + 4]
test eax, eax
je 0x665cc3f7
mov edx, dword [esi + 0x20]
lea edx, [edx + edx*4]
mov byte [eax + edx*4 - 0x11], 0x53
jmp 0x665cc3f7
mov esi, dword [esp + 0x54]
cmp word [esi + 0x22], 0x3f
jle 0x665ccbb2
lea edx, [ebp + ebp]
lea esi, [ebp*4]
mov eax, 0x3f
mov ecx, dword [edi + 4]
add ebp, 1
mov word [ecx + edx], ax
mov ecx, dword [edi + 0x20]
add eax, 1
add edx, 2
mov dword [ecx + esi], str.BINARY
mov ecx, dword [esp + 0x54]
add esi, 4
movsx ecx, word [ecx + 0x22]
cmp eax, ecx
jl 0x665cd2c4
lea edx, [ebp + ebp]
lea eax, [ebp*4]
jmp 0x665ccbb2
mov eax, str.BINARY
jmp 0x665ccb30
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x665cdc2d
xor edi, edi
test ebx, ebx
jne 0x665cd141
mov ebx, edi
mov edx, 0x6c
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
mov dword [esp + 4], 0
mov dword [esp], esi
call sym._sqlite3VdbeAddOp3
jmp 0x665cd1ca
xor ebx, ebx
xor edx, edx
jmp 0x665cd119
mov eax, dword [edi + 0x30]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
mov esi, dword [edi + 0x48]
mov edx, dword [eax]
mov eax, edi
lea ebx, [esi + 1]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x4c]
mov dword [edi + 0x48], ebx
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], 0
call sym._codeEqualityTerm
test ebx, ebx
mov esi, eax
je 0x665cd38c
cmp ebx, eax
jne 0x665cdea8
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov ecx, esi
mov edx, 0x26
mov ebx, dword [eax - 0x40]
mov eax, edi
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym._sqlite3VdbeAddOp3
mov ecx, dword [esp + 0x3c]
mov edx, 0x46
mov eax, edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._sqlite3VdbeAddOp3
mov edi, dword [esp + 0x34]
mov ecx, 1
mov edx, esi
mov eax, edi
call sym._sqlite3ExprCacheRemove
mov eax, dword [edi]
test byte [eax + 0x3c], 2
jne 0x665cd0fa
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov ecx, 0xffffffff
mov dword [esp], esi
call sym._sqlite3ExprCacheStore.part.163
jmp 0x665cd0fa
test ah, 4
je 0x665cd96c
mov ebp, dword [edi + 0x38]
test ebp, ebp
jne 0x665cd419
jmp 0x665cd422
mov ebp, dword [ebp + 0x18]
test ebp, ebp
je 0x665cd422
mov eax, dword [esp + 0x40]
cmp eax, dword [ebp]
jne 0x665cd412
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], 0
mov dword [esp], 0
lea eax, [eax + eax*8]
mov ecx, dword [edx + eax*8 + 0x34]
mov eax, dword [esp + 0x60]
mov edx, 0x95
call sym._sqlite3VdbeAddOp3
mov edx, eax
mov eax, dword [esp + 0x60]
mov dword [esp], 0xfffffff6
mov ecx, ebp
call sym._sqlite3VdbeChangeP4
mov eax, dword [esi + 0x24]
jmp 0x665cbae5
mov byte [esi + ebx], 0x41
mov edx, 0x41
jmp 0x665cc267
mov eax, dword [esp + 0x24]
mov dword [esp + 4], 0
lea ecx, [edi + ebx]
mov edx, 0x4c
mov eax, dword [eax - 0x44]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
call sym._sqlite3VdbeAddOp3
jmp 0x665cc248
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x9c]
test esi, esi
je 0x665cd4be
mov eax, dword [esp + 0x50]
movzx eax, byte [esi + eax]
mov byte [esp + 0xd8], al
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x94]
mov eax, dword [eax - 0x40]
mov dword [esp + 0x58], eax
movzx eax, word [ebx + 0x2e]
cmp word [esp + 0x90], ax
jae 0x665cd4f9
mov edx, dword [ebx + 0x1c]
mov ebx, dword [esp + 0x50]
cmp byte [edx + ebx], 0
sete dl
movzx edx, dl
cmp dword [esp + 0x4c], edx
je 0x665ce020
cmp word [esp + 0x90], ax
jne 0x665cd516
movzx eax, byte [esp + 0xb0]
and eax, 1
test al, al
jne 0x665ce020
movzx ebx, byte [esp + 0x68]
mov eax, dword [esp + 0x84]
mov byte [esp + 0x68], 0
mov dword [esp + 0x98], ebx
mov edx, ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x54], eax
mov dword [esp + 0x84], ebx
mov eax, dword [esp + 0x84]
test eax, eax
je 0x665cdfe3
test byte [eax + 0x12], 0x28
mov ebx, dword [esp + 0x54]
setne al
test ebx, ebx
movzx eax, al
mov dword [esp + 0xa8], eax
je 0x665cdfd9
mov eax, dword [esp + 0x54]
xor ebx, ebx
test byte [eax + 0x12], 0x28
setne bl
mov ebp, dword [esp + 0x84]
mov edx, dword [esp + 0x64]
add edx, dword [esp + 0x50]
mov eax, dword [ebp]
mov dword [esp + 0x9c], edx
mov ecx, edx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x90], eax
mov edx, eax
mov eax, dword [esp + 0x34]
call sym._sqlite3ExprCode
test byte [ebp + 0x15], 1
jne 0x665cddd4
mov eax, dword [esp + 0x90]
call sym._sqlite3ExprCanBeNull
test eax, eax
jne 0x665cddab
test esi, esi
je 0x665cd61a
mov eax, dword [esp + 0x50]
lea ecx, [esi + eax]
mov eax, dword [esp + 0x90]
movsx edx, byte [ecx]
mov dword [esp + 0x9c], ecx
call sym._sqlite3CompareAffinity
cmp al, 0x41
mov ecx, dword [esp + 0x9c]
je 0x665ce032
movsx edx, byte [ecx]
mov eax, dword [esp + 0x90]
mov dword [esp + 0x9c], ecx
call sym._sqlite3ExprNeedsNoAffinityChange
test eax, eax
je 0x665cd61a
mov ecx, dword [esp + 0x9c]
mov byte [ecx], 0x41
mov eax, dword [esp + 0x50]
mov ecx, 4
add eax, 1
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xa8]
lea eax, [ecx + eax*2]
mov ebp, eax
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x34]
mov dword [esp], esi
call sym._codeApplyAffinity
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x64]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x58]
movzx edx, byte [edx + ebp + 0x66622704]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], ecx
mov ecx, dword [esp + 0x80]
call sym._sqlite3VdbeAddOp4Int
mov edx, dword [esp + 0x54]
test edx, edx
je 0x665cdd76
mov eax, dword [edx]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x50]
mov ebp, ecx
mov ecx, 1
mov edx, eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x34]
call sym._sqlite3ExprCacheRemove
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x34]
mov edx, ebp
call sym._sqlite3ExprCode
mov edx, dword [esp + 0x54]
test byte [edx + 0x15], 1
jne 0x665cde6d
mov eax, ebp
call sym._sqlite3ExprCanBeNull
test eax, eax
jne 0x665cde47
movsx edx, byte [esp + 0xd8]
mov eax, ebp
call sym._sqlite3CompareAffinity
cmp al, 0x41
je 0x665cd712
movsx edx, byte [esp + 0xd8]
mov eax, ebp
call sym._sqlite3ExprNeedsNoAffinityChange
test eax, eax
je 0x665cdeb6
mov eax, dword [esp + 0x50]
add eax, 1
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x5c]
mov edx, esi
call sym._sqlite3DbFree
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
mov dword [esi - 0x1c], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x80]
movzx edx, byte [ebx + eax*2 + str.trqs]
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._sqlite3VdbeAddOp4Int
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x84]
mov edx, ebx
mov eax, esi
call sym._disableTerm.isra.210
mov ecx, dword [esp + 0x54]
mov eax, esi
mov edx, ebx
call sym._disableTerm.isra.210
mov eax, dword [esp + 0xa4]
test eax, eax
jne 0x665cd8ac
mov eax, dword [esp + 0x94]
mov eax, dword [eax + 0xc]
test byte [eax + 0x2a], 0x20
je 0x665cda5f
mov ebx, dword [esp + 0x80]
cmp dword [esp + 0x3c], ebx
je 0x665cd8ac
mov esi, dword [eax + 8]
test esi, esi
jne 0x665cd7df
jmp 0x665cda40
mov esi, dword [esi + 0x14]
test esi, esi
je 0x665cda40
movzx eax, byte [esi + 0x34]
and eax, 3
cmp al, 2
jne 0x665cd7d4
mov ebx, dword [esp + 0x34]
movzx eax, word [esi + 0x2e]
mov edx, dword [ebx + 0x3c]
mov ecx, edx
mov dword [esp + 0x50], edx
mov edx, dword [ebx + 0x38]
cmp eax, edx
jg 0x665cdc46
add ecx, eax
sub edx, eax
mov dword [ebx + 0x3c], ecx
mov dword [ebx + 0x38], edx
test eax, eax
je 0x665cd884
xor ebp, ebp
mov eax, dword [esi + 4]
movzx edx, word [eax + ebp*2]
mov eax, dword [esp + 0x94]
movzx ecx, word [eax + 0x30]
test ecx, ecx
je 0x665cd851
mov ebx, dword [eax + 4]
xor eax, eax
cmp dx, word [ebx]
jne 0x665cd84a
jmp 0x665cd856
cmp dx, word [ebx + eax*2]
je 0x665cdc40
add eax, 1
cmp eax, ecx
jne 0x665cd840
mov eax, 0xffffffff
mov ebx, dword [esp + 0x50]
mov dword [esp], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x30]
lea edx, [ebx + ebp]
add ebp, 1
mov dword [esp + 4], edx
mov edx, 0x2f
call sym._sqlite3VdbeAddOp3
movzx eax, word [esi + 0x2e]
cmp ebp, eax
jl 0x665cd816
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov edx, 0x44
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._sqlite3VdbeAddOp4Int
test byte [edi + 0x25], 0x10
je 0x665cda49
mov eax, dword [esp + 0x24]
mov byte [eax - 0x23], 0x9c
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x80]
mov dword [esi - 0x20], ebx
movzx eax, word [edi + 0x26]
and eax, 1
mov byte [esi - 0x22], al
test byte [edi + 0x24], 0xf
jne 0x665cc3f7
mov byte [esi - 0x21], 1
jmp 0x665cc3f7
mov ebx, dword [esp + 0x28]
sub eax, 1
mov byte [ebx + 0x13], al
movzx eax, al
mov ebx, dword [ebx + eax*4 + 0x18]
jmp 0x665ccc8b
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x98]
mov edx, 0x69
mov dword [esp + 4], 0
mov dword [esp], 0
mov eax, ebx
call sym._sqlite3VdbeAddOp3
mov edx, 0x10
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
mov eax, ebx
call sym._sqlite3VdbeAddOp3
mov ebp, eax
movzx eax, word [esp + 0x9c]
mov edx, 0x3e
mov dword [esp + 0x9c], eax
jmp 0x665cc0aa
mov ecx, 0xfffffffe
mov eax, 0xffffffff
jmp 0x665cbc2d
and edx, 0x10
jne 0x665cbae5
test al, 0x40
jne 0x665cbde9
cmp word [esp + 0x50], 0
jne 0x665cbde9
mov edx, dword [esp + 0x2c]
mov eax, 0x36
cmp byte [edx + 0x26], 0
je 0x665cd9af
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*8]
mov eax, dword [ecx + eax*8 + 0x34]
mov dword [edx + 0x3c], eax
mov eax, 0x37
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], edi
mov eax, dword [esp + 0x28]
lea edx, [edx + edx*8]
lea ebp, [ecx + edx*8]
mov ecx, ebx
mov edx, dword [ebp + 0x34]
call sym._sqlite3OpenTable
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x26], 0
jne 0x665cbe04
cmp word [edi + 0x22], 0x3f
jg 0x665cbe04
test byte [edi + 0x2a], 0x20
jne 0x665cdc5e
mov edx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x40]
mov ecx, edx
or ecx, eax
mov ecx, 0
je 0x665cda15
shrd eax, edx, 1
shr edx, 1
add ecx, 1
mov ebp, edx
or ebp, eax
jne 0x665cda06
mov eax, dword [esp + 0x60]
mov edx, dword [eax + 0x20]
mov dword [esp], 0xfffffff2
mov dword [esp + 0x48], edx
sub edx, 1
call sym._sqlite3VdbeChangeP4
mov eax, dword [esi + 0x24]
jmp 0x665cbae5
movzx eax, word [0x2e]
ud2
movzx eax, byte [esp + 0x4c]
mov esi, dword [esp + 0x24]
neg eax
add eax, 9
mov byte [esi - 0x23], al
jmp 0x665cd8be
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x80]
mov edx, 0x70
mov esi, dword [eax + 0x48]
lea ebx, [esi + 1]
mov dword [esp + 0x50], esi
mov esi, eax
mov dword [eax + 0x48], ebx
mov eax, dword [esp + 0x30]
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym._sqlite3VdbeAddOp3
mov eax, dword [esi]
test byte [eax + 0x3c], 2
jne 0x665cdaaf
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov ecx, 0xffffffff
mov dword [esp], ebx
call sym._sqlite3ExprCacheStore.part.163
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
mov edx, 0x42
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym._sqlite3VdbeAddOp3
jmp 0x665cd8ac
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov byte [eax + 0x41], 1
jmp 0x665cc026
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x114]
lea ebx, [eax + 0x44]
mov eax, ebx
call sym._exprListTableUsage
mov edi, edx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xe4]
mov esi, eax
mov dword [esp + 0x30], eax
test edx, edx
je 0x665cdb21
mov eax, ebx
call sym._exprListTableUsage
or esi, eax
mov eax, edi
or eax, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], eax
movzx eax, byte [esp + 0x24]
mov esi, dword [esp + 0x2c]
lea eax, [eax + eax*4 - 5]
shl eax, 4
mov eax, dword [esi + eax + 0x320]
mov esi, dword [esi + 4]
movzx edx, byte [eax + 0x10]
mov dword [esp + 0x48], esi
lea edx, [edx + edx*8]
test byte [esi + edx*8 + 0x2c], 8
je 0x665cb9e0
mov ebp, dword [esp + 0xe0]
cmp word [esp + 0x68], 0
jne 0x665cdb6a
test byte [eax + 0x25], 0x10
je 0x665cb9e0
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
and edx, edi
and eax, esi
or edx, eax
jne 0x665cb9e0
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
lea edx, [edx + edx*2]
shl edx, 4
add edx, eax
cmp eax, edx
jae 0x665cdbb3
mov ecx, dword [eax + 0x28]
mov ebx, dword [eax + 0x2c]
and ecx, esi
and ebx, edi
or ebx, ecx
je 0x665cdbac
mov ecx, dword [eax]
test byte [ecx + 4], 1
je 0x665cdc03
add eax, 0x30
cmp edx, eax
ja 0x665cdb96
sub byte [esp + 0x24], 1
mov esi, dword [esp + 0x2c]
movzx eax, byte [esp + 0x24]
sub dword [esp + 0x50], 1
cmp al, 1
mov byte [esi + 0x29], al
je 0x665cb9e0
movzx eax, byte [esp + 0x24]
mov esi, dword [esp + 0x2c]
lea eax, [eax + eax*4 - 5]
shl eax, 4
mov eax, dword [esi + eax + 0x320]
mov esi, dword [esp + 0x48]
movzx edx, byte [eax + 0x10]
lea edx, [edx + edx*8]
test byte [esi + edx*8 + 0x2c], 8
jne 0x665cdb58
jmp 0x665cb9e0
cmp edx, eax
jbe 0x665cdbb3
jmp 0x665cb9e0
mov eax, 0xffffffff
mov ecx, 0xffffffff
xor edx, edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x50], 0
jmp 0x665cc977
mov edx, 0x69
jmp 0x665cd324
cwde
jmp 0x665cd856
mov ebx, dword [esp + 0x34]
mov edx, dword [ebx + 0x48]
lea ecx, [edx + 1]
add edx, eax
mov dword [ebx + 0x48], edx
mov dword [esp + 0x50], ecx
jmp 0x665cd810
test byte [esi + 0x25], 2
je 0x665cbb1c
mov ebp, dword [esi + 0x1c]
movzx eax, byte [ebp + 0x34]
and eax, 3
cmp al, 2
jne 0x665cbe1a
cmp word [esp + 0x64], 0
jne 0x665cbb12
jmp 0x665cbe1a
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
mov dword [esi + 8], eax
mov eax, dword [esp + 0x30]
mov ecx, 1
mov dword [esi + 0xc], edx
mov word [edi + 0x20], cx
mov dword [edi + 0x2e4], eax
mov eax, dword [edi + 8]
test eax, eax
je 0x665cdcc1
mov eax, dword [eax]
mov byte [edi + 0x24], al
test byte [edi + 0x23], 4
je 0x665cb98f
mov byte [edi + 0x28], 1
jmp 0x665cb98f
mov eax, 1
xor edx, edx
jmp 0x665cdc9c
mov ebp, dword [ebp + 8]
test ebp, ebp
jne 0x665cdcf7
jmp 0x665cdd66
mov ebp, dword [ebp + 0x14]
test ebp, ebp
je 0x665cdd66
cmp byte [ebp + 0x32], 0
je 0x665cdcf0
mov eax, dword [ebp + 0x24]
test eax, eax
jne 0x665cdcf0
movzx eax, word [ebp + 0x2e]
cmp ax, 3
ja 0x665cdcf0
test ax, ax
je 0x665cdf9e
xor ebx, ebx
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x30]
movsx ecx, word [eax + ebx*2]
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 2
mov dword [esp], 0
mov dword [esp + 4], 0
call sym._findTerm
test eax, eax
je 0x665cded7
mov edx, dword [esi + 0x30]
mov dword [edx + ebx*4], eax
movzx eax, word [ebp + 0x2e]
add ebx, 1
cmp ebx, eax
jl 0x665cdd19
jmp 0x665cdedb
mov eax, dword [esi + 0x24]
test eax, eax
jne 0x665cb860
jmp 0x665cb630
cmp byte [esp + 0x68], 0
jne 0x665cde0f
mov eax, dword [esp + 0x5c]
mov edx, esi
call sym._sqlite3DbFree
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
mov dword [esi - 0x1c], eax
mov eax, dword [esp + 0x50]
test eax, eax
je 0x665cd76f
jmp 0x665cd739
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x9c]
mov edx, 0x4c
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._sqlite3VdbeAddOp3
jmp 0x665cd5c6
mov ebp, dword [esp + 0x30]
mov edx, 0x6663c028
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp]
mov dword [esp + 0xac], eax
sub eax, 1
cmp byte [ecx + 0x41], 0
jne 0x665cddfc
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea edx, [eax + edx*4]
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x24]
mov byte [edx + 3], 1
mov dword [edx + 0xc], eax
jmp 0x665cd5b2
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x64]
xor ecx, ecx
mov dword [esp + 4], 0
mov edx, 0x1c
add eax, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._sqlite3VdbeAddOp3
mov eax, ebx
xor ebx, ebx
add eax, 1
mov dword [esp + 0xa0], eax
jmp 0x665cd720
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x68]
mov edx, 0x4c
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._sqlite3VdbeAddOp3
jmp 0x665cd6e8
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x20]
mov ecx, dword [edx]
mov dword [esp + 0x30], edx
mov edx, 0x6663c028
sub eax, 1
cmp byte [ecx + 0x41], 0
jne 0x665cde95
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
lea edx, [eax + edx*4]
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x24]
mov byte [edx + 3], 1
mov dword [edx + 0xc], eax
jmp 0x665cd6d9
mov edx, ebx
mov eax, edi
call sym._sqlite3ReleaseTempReg.part.166
jmp 0x665cd38c
lea eax, [esp + 0xd8]
mov edx, dword [esp + 0x68]
mov ecx, 1
mov dword [esp], eax
mov eax, dword [esp + 0x34]
call sym._codeApplyAffinity
jmp 0x665cd712
movzx eax, word [ebp + 0x2e]
cmp ebx, eax
jne 0x665cdcf0
mov dword [esp + 0x34], eax
mov dword [esi + 0x24], 0x1201
test byte [ebp + 0x34], 0x20
jne 0x665cdf7a
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x40]
mov eax, dword [eax + 0x44]
mov dword [esp + 0x54], ebx
movzx ebx, word [ebp + 0x30]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 4]
test bx, bx
mov dword [esp + 0x4c], eax
je 0x665cdf64
mov dword [esp + 0x24], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x4c]
movsx ecx, word [eax + ebx*2 - 2]
cmp ecx, 0x3e
ja 0x665cdf51
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
or dword [esp + 0x48], edx
or dword [esp + 0x24], eax
sub ebx, 1
jne 0x665cdf2a
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x48]
not eax
not edx
jmp 0x665cdf6e
mov eax, 0xffffffff
mov edx, 0xffffffff
and eax, dword [esp + 0x54]
and edx, dword [esp + 0x58]
or edx, eax
jne 0x665cdf81
mov dword [esi + 0x24], 0x1241
mov eax, dword [esp + 0x34]
mov dword [esi + 0x1c], ebp
mov word [esi + 0x28], ax
mov word [esi + 0x18], ax
mov eax, 0x27
mov word [esi + 0x14], ax
jmp 0x665cb860
mov dword [esp + 0x34], 0
jmp 0x665cdee7
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x30]
mov edx, 0xe
mov ecx, dword [esp + 0x3c]
mov ebx, dword [edi + 0x20]
mov dword [esp + 4], esi
mov dword [esp], eax
mov eax, ebp
call sym._sqlite3VdbeAddOp3
mov dword [esp], 0xfffffff5
jmp 0x665cc39e
mov ebx, 1
jmp 0x665cd578
mov ecx, dword [esp + 0x54]
test ecx, ecx
jne 0x665ce07a
xor eax, eax
cmp word [esp + 0x90], 0
mov ebx, 1
setne al
test dl, dl
jne 0x665ce03f
mov edx, 2
lea eax, [edx + eax*4]
mov ebp, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x90], eax
jmp 0x665cd639
mov dword [esp + 0x98], 0
xor edx, edx
jmp 0x665cd53f
mov byte [ecx], 0x41
mov edx, 0x41
jmp 0x665cd5f9
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x64]
xor ecx, ecx
mov dword [esp + 4], 0
mov edx, 0x1c
add eax, ebp
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._sqlite3VdbeAddOp3
mov eax, ebp
mov ebp, 4
add eax, 1
mov dword [esp + 0x90], eax
jmp 0x665cd639
mov eax, dword [esp + 0x54]
xor ebx, ebx
test byte [eax + 0x12], 0x28
setne bl
xor eax, eax
cmp word [esp + 0x90], 0
setne al
jmp 0x665ce002
mov edi, 0x51
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x48]
mov ecx, ebx
call sym._disableTerm.isra.210
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
mov eax, dword [eax + 0x20]
mov byte [ebx - 0x23], 8
mov dword [ebx - 0x20], edx
mov dword [ebx - 0x1c], eax
jmp 0x665cd236
mov edi, dword [esp + 0x4c]
test edi, edi
jne 0x665ce112
mov edi, 0x50
jmp 0x665cd20e
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x30]
test ebx, ebx
mov eax, dword [eax + 0x20]
je 0x665ce119
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x3c]
mov byte [esi - 0x23], 8
mov dword [esi - 0x20], edi
mov dword [esi - 0x1c], eax
jmp 0x665cc3f7
mov eax, dword [esp + 0x34]
call sym._sqlite3ReleaseTempReg.part.166
jmp 0x665cd1b9
mov edi, 0x52
jmp 0x665ce09f
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x3c]
mov byte [esi - 0x23], 9
mov dword [esi - 0x20], edi
mov dword [esi - 0x1c], eax
jmp 0x665cc3f7
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
movzx eax, byte [ebx + 0x666226fb]
movzx edx, byte [ebx + str.li_t_b]
mov dword [edi - 0x20], ecx
mov byte [edi - 0x23], al
mov eax, dword [esp + 0x30]
mov dword [esp + 4], 0
mov dword [esp], esi
call sym._sqlite3VdbeAddOp3
add eax, 1
mov byte [edi - 0x21], 1
mov dword [edi - 0x1c], eax
jmp 0x665cc3f7
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov eax, dword [esi + 0x44]
mov dword [esp + 0xb0], eax
add eax, 1
mov dword [esi + 0x44], eax
mov eax, esi
mov esi, dword [esi + 0x48]
mov dword [esp + 0x4c], esi
add esi, 1
mov dword [eax + 0x48], esi
mov eax, dword [edx + 0x18]
mov dword [esp + 0x68], esi
call sym._sqlite3VdbeMakeLabel.isra.428
mov dword [esp + 0x84], eax
lea eax, [ebx + ebx*8]
lea esi, [ebp + eax*8]
mov eax, dword [edi + 0x30]
mov ebx, dword [esi + 0x18]
mov edi, dword [eax]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x50], ebx
mov dword [esp + 0xbc], edi
mov edi, dword [edi + 0xc]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x24]
mov dword [edi - 0x20], eax
mov eax, dword [esp + 0x2c]
mov byte [edi - 0x23], 0x12
movzx eax, byte [eax + 0x29]
cmp al, 1
jbe 0x665ce412
sub eax, dword [esp + 0x88]
xor ecx, ecx
lea ebx, [eax - 1]
mov dword [esp + 0x4c], eax
lea eax, [ebx + ebx*8]
lea edx, [eax*8 + 0x50]
mov eax, dword [esp + 0x5c]
call sym._sqlite3DbMallocRaw
test eax, eax
mov ebp, eax
je 0x665cc538
lea eax, [ebx + 1]
lea edi, [ebp + 0xc]
lea edx, [esi + 8]
movzx eax, al
and edi, 0xfffffffc
mov dword [ebp + 4], eax
mov dword [ebp], eax
lea eax, [ebp + 8]
mov ecx, dword [esi + 8]
sub eax, edi
sub edx, eax
add eax, 0x48
mov dword [ebp + 8], ecx
mov ecx, dword [esi + 0x4c]
mov esi, edx
mov dword [ebp + 0x4c], ecx
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x2c]
mov edi, dword [edi + 4]
add edi, 8
test ebx, ebx
mov dword [esp + 0x54], edi
jle 0x665ce2ad
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
lea eax, [ebp + 0x50]
lea ecx, [esi + esi*8]
lea edx, [edi + 0x7c]
lea ebx, [ebp + ecx*8 + 8]
movzx ecx, byte [edx]
mov esi, dword [esp + 0x54]
lea edi, [eax + 4]
add edx, 0x50
and edi, 0xfffffffc
lea ecx, [ecx + ecx*8]
lea esi, [esi + ecx*8]
mov ecx, dword [esi]
mov dword [eax], ecx
mov ecx, dword [esi + 0x44]
mov dword [eax + 0x44], ecx
mov ecx, eax
add eax, 0x48
sub ecx, edi
sub esi, ecx
add ecx, 0x48
shr ecx, 2
cmp eax, ebx
rep movsd dword es:[edi], dword [esi]
jne 0x665ce278
mov eax, dword [esp + 0x2c]
test byte [eax + 0x22], 8
jne 0x665cebc8
mov eax, dword [esp + 0x50]
test byte [eax + 0x2a], 0x20
je 0x665ceb93
mov eax, dword [esp + 0x50]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x665ce2eb
jmp 0x665cebe0
mov ebx, dword [ebx + 0x14]
test ebx, ebx
je 0x665cebe0
movzx eax, byte [ebx + 0x34]
and eax, 3
cmp al, 2
jne 0x665ce2e0
mov esi, dword [esp + 0x34]
mov edx, 0x39
mov eax, dword [esi + 0x44]
mov ecx, eax
mov dword [esp + 0x58], eax
add eax, 1
mov dword [esi + 0x44], eax
mov dword [esp + 4], 0
movzx eax, word [ebx + 0x2e]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._sqlite3VdbeAddOp3
mov edx, ebx
mov eax, esi
call sym._sqlite3VdbeSetP4KeyInfo
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 0x48]
mov dword [esp + 0x4c], esi
add esi, 1
mov dword [esp + 0x80], esi
mov dword [eax + 0x48], esi
mov eax, dword [esp + 0x68]
xor ecx, ecx
mov dword [esp + 4], 0
mov edx, 0x19
xor esi, esi
xor ebx, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._sqlite3VdbeAddOp3
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x2c]
cmp dword [eax + 0x154], 1
jg 0x665ce39f
jmp 0x665ce41e
add ebx, 1
cmp ebx, dword [edi + 0x154]
jge 0x665cea10
lea eax, [ebx + ebx*2]
shl eax, 4
add eax, dword [edi + 0x15c]
cmp dword [esp + 0xbc], eax
je 0x665ce390
mov edx, dword [eax]
test byte [edx + 4], 1
jne 0x665ce390
test byte [eax + 0x14], 2
jne 0x665ce390
test word [eax + 0x12], 0xfff
je 0x665ce390
mov eax, dword [esp + 0x5c]
xor ecx, ecx
mov dword [esp], 0
call sym._exprDup
mov ecx, eax
mov eax, dword [esp + 0x5c]
mov edx, esi
call sym._sqlite3ExprAnd
mov esi, eax
jmp 0x665ce390
xor eax, eax
xor edx, edx
xor ebp, ebp
jmp 0x665ccb4c
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov ecx, 0xffffffff
mov dword [esp], ebx
call sym._sqlite3ExprCacheStore.part.163
jmp 0x665cd274
mov eax, dword [esp + 0x2c]
mov ebp, dword [eax + 4]
jmp 0x665ce2ad
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x665ce9f5
xor esi, esi
mov ebx, dword [esp + 0x34]
mov eax, 0xf0
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x94], 0
mov word [esp + 0x98], ax
mov dword [esp + 0x64], 0
mov dword [esp + 0xac], ebp
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x90]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [edi + 0x14]
mov edi, dword [esp + 0x3c]
cmp edi, dword [eax + 8]
je 0x665ce497
test byte [eax + 0x13], 2
je 0x665ce738
mov ecx, dword [eax]
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x665ce4af
test byte [ecx + 4], 1
jne 0x665ce4af
mov dword [eax + 0xc], ecx
mov ecx, eax
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xac]
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 0xc], eax
movzx eax, word [esp + 0x98]
mov dword [esp + 8], eax
mov eax, ebx
call sym._sqlite3WhereBegin
test eax, eax
mov dword [esp + 0xa4], eax
je 0x665ce738
cmp byte [ebx + 0x1c2], 2
je 0x665ce963
mov eax, dword [esp + 0x2c]
test byte [eax + 0x22], 8
jne 0x665ce85a
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x64]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x4c], eax
sub eax, 1
cmp eax, edi
mov eax, 0xffffffff
cmovne eax, edi
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x50]
test byte [eax + 0x2a], 0x20
je 0x665ce8a7
mov eax, dword [esp + 0x50]
mov ebp, dword [eax + 8]
test ebp, ebp
jne 0x665ce55c
jmp 0x665cda40
mov ebp, dword [ebp + 0x14]
test ebp, ebp
je 0x665cda40
movzx eax, byte [ebp + 0x34]
and eax, 3
cmp al, 2
jne 0x665ce551
movzx edi, word [ebp + 0x2e]
mov eax, dword [ebx + 0x38]
cmp edi, eax
jg 0x665ce893
mov edx, dword [ebx + 0x3c]
sub eax, edi
mov dword [ebx + 0x38], eax
mov dword [esp + 0x4c], edx
add edx, edi
mov dword [ebx + 0x3c], edx
mov eax, dword [esp + 0x4c]
test edi, edi
mov dword [esp + 0x9c], 0
mov dword [esp + 0xc0], eax
lea eax, [edi + edi]
mov dword [esp + 0xc8], eax
je 0x665ce5fe
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x9c]
movsx ecx, word [eax + edx]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x50]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, ebx
call sym._sqlite3ExprCodeGetColumn
add dword [esp + 0x9c], 2
add dword [esp + 0xc0], 1
mov edx, dword [esp + 0x9c]
cmp dword [esp + 0xc8], edx
jne 0x665ce5ab
mov ebp, dword [esp + 0xa8]
test ebp, ebp
jne 0x665ce90a
mov ebp, dword [esp + 0x80]
mov ecx, dword [esp + 0x4c]
mov edx, 0x31
mov dword [esp], edi
mov eax, esi
mov dword [esp + 4], ebp
call sym._sqlite3VdbeAddOp3
mov ecx, dword [esp + 0x58]
mov edx, 0x6e
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, esi
call sym._sqlite3VdbeAddOp3
mov edx, dword [esp + 0x4c]
mov ecx, edi
mov eax, ebx
call sym._sqlite3ExprCacheRemove
cmp dword [ebx + 0x38], edi
jge 0x665ce85a
xor ebp, ebp
mov eax, dword [esp + 0x4c]
mov dword [ebx + 0x38], edi
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x68]
mov edx, 0x11
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, esi
call sym._sqlite3VdbeAddOp3
test ebp, ebp
je 0x665ce6a9
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 4]
cmp ebp, eax
jae 0x665ce6a0
lea ecx, [ebp + ebp*4]
mov dword [edx + ecx*4 + 8], eax
mov edx, dword [esi + 0x18]
sub eax, 1
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0xa4]
mov edi, 1
cmp byte [eax + 0x27], 0
mov eax, dword [eax + 0x320]
cmove edi, dword [esp + 0x94]
test byte [eax + 0x25], 2
mov dword [esp + 0x94], edi
je 0x665ce84d
mov edx, dword [esp + 0x64]
test edx, edx
jne 0x665ce840
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x50]
test byte [eax + 0x2a], 0x20
je 0x665ce881
mov edi, dword [esp + 0x54]
mov edx, 0
movzx eax, byte [edi + 0x34]
mov byte [esp + 0x4c], al
and eax, 3
cmp al, 2
mov eax, 0x10f0
cmove ax, word [esp + 0x98]
cmovne edx, edi
mov dword [esp + 0x54], edx
mov word [esp + 0x98], ax
mov eax, dword [esp + 0xa4]
call sym._sqlite3WhereEnd
mov edi, dword [esp + 0x90]
add dword [esp + 0x64], 1
mov eax, dword [esp + 0x64]
cmp eax, dword [edi + 0xc]
jl 0x665ce470
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0xac]
test esi, esi
mov dword [eax - 0x18], esi
je 0x665ce771
mov esi, dword [esp + 0xb0]
mov dword [eax - 0x48], esi
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x665ce78e
mov dword [eax + 0xc], 0
mov edx, eax
mov eax, dword [esp + 0x5c]
call sym._sqlite3ExprDelete
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 4]
mov esi, dword [esp + 0xc4]
cmp esi, eax
jae 0x665ce7aa
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 4], 0
mov edx, 0x10
mov eax, dword [eax - 0x44]
mov dword [esp], eax
mov eax, esi
call sym._sqlite3VdbeAddOp3
mov ecx, dword [esp + 0x84]
mov edx, dword [esi + 0x18]
xor ecx, 0xffffffff
js 0x665ce7ea
mov eax, dword [edx + 0x70]
test eax, eax
je 0x665ce7ea
mov ebx, dword [esi + 0x20]
mov dword [eax + ecx*4], ebx
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x4c], eax
sub eax, 1
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x29], 1
jbe 0x665ce810
mov eax, dword [esp + 0x5c]
mov edx, ebp
call sym._sqlite3DbFree
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x665cc3f7
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x48]
call sym._disableTerm.isra.210
jmp 0x665cc3f7
mov edi, dword [esp + 0x54]
cmp dword [eax + 0x1c], edi
je 0x665ce6eb
mov dword [esp + 0x54], 0
jmp 0x665ce72c
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x68]
mov edx, 0x11
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, esi
call sym._sqlite3VdbeAddOp3
jmp 0x665ce6a9
mov eax, 0x10f0
mov word [esp + 0x98], ax
jmp 0x665ce72c
mov eax, dword [ebx + 0x48]
lea edx, [eax + 1]
add eax, edi
mov dword [ebx + 0x48], eax
mov dword [esp + 0x4c], edx
jmp 0x665ce587
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x50]
mov ecx, 0xffffffff
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, ebx
call sym._sqlite3ExprCodeGetColumn
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], eax
mov edx, 0x82
mov dword [esp], 0
mov eax, esi
call sym._sqlite3VdbeAddOp3
mov ecx, dword [esp + 0xa8]
mov ebp, eax
mov edx, eax
mov dword [esp], 0xfffffff2
mov eax, esi
call sym._sqlite3VdbeChangeP4
jmp 0x665ce668
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x58]
mov edx, 0x45
mov dword [esp], 0
mov dword [esp + 4], eax
mov eax, esi
call sym._sqlite3VdbeAddOp3
mov ecx, edi
mov edx, eax
mov ebp, eax
mov dword [esp], 0xfffffff2
mov eax, esi
call sym._sqlite3VdbeChangeP4
mov ecx, dword [esp + 0xa8]
test ecx, ecx
jns 0x665ce99a
mov edx, dword [esp + 0x4c]
mov ecx, edi
mov eax, ebx
call sym._sqlite3ExprCacheRemove
cmp edi, dword [ebx + 0x38]
jle 0x665ce668
jmp 0x665ce65e
lea ecx, [eax + 0x2e0]
mov eax, dword [esp + 0x24]
mov dword [esp + 8], 0
mov edx, dword [esp + 0xac]
movzx eax, byte [eax - 0x24]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov eax, ebx
call sym._explainOneScan.part.433
jmp 0x665ce4ff
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x4c]
mov edx, 0x31
mov dword [esp], edi
mov dword [esp + 4], eax
mov eax, esi
call sym._sqlite3VdbeAddOp3
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x58]
mov edx, 0x6e
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, esi
call sym._sqlite3VdbeAddOp3
mov eax, dword [esi + 4]
test eax, eax
je 0x665ce948
mov edx, dword [esi + 0x20]
lea edx, [edx + edx*4]
mov byte [eax + edx*4 - 0x11], 0x10
jmp 0x665ce948
mov eax, dword [esp + 0x24]
mov dword [esp + 0x94], 0
mov dword [eax - 0x18], 0
jmp 0x665ce771
test esi, esi
je 0x665ce41e
mov eax, dword [esp + 0x34]
mov dword [esp + 4], 0
xor ecx, ecx
mov dword [esp], esi
mov edx, 0x48
call sym._sqlite3PExpr
mov dword [esp + 0xa0], eax
jmp 0x665ce429
mov eax, dword [esp + 0x5c]
xor ecx, ecx
mov edx, 0x30
call sym._sqlite3DbMallocRaw
test eax, eax
mov ebx, eax
je 0x665cc509
mov eax, dword [edi]
mov ecx, dword [esp + 0x8c]
mov edx, dword [eax]
mov dword [ebx], edx
mov edx, dword [eax + 4]
mov dword [ebx + 4], edx
mov edx, dword [eax + 8]
mov dword [ebx + 8], edx
mov edx, dword [eax + 0xc]
mov dword [ebx + 0xc], edx
mov edx, dword [eax + 0x10]
mov dword [ebx + 0x10], edx
mov edx, dword [eax + 0x14]
mov dword [ebx + 0x14], edx
mov edx, dword [eax + 0x18]
mov dword [ebx + 0x18], edx
mov edx, dword [eax + 0x1c]
mov dword [ebx + 0x1c], edx
mov edx, dword [eax + 0x20]
mov dword [ebx + 0x20], edx
mov edx, dword [eax + 0x24]
mov dword [ebx + 0x24], edx
mov edx, dword [eax + 0x28]
mov dword [ebx + 0x28], edx
mov eax, dword [eax + 0x2c]
mov edx, ebx
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp], 0x10
call sym._sqlite3ExprIfFalse
mov eax, dword [esp + 0x5c]
mov edx, ebx
call sym._sqlite3DbFree
jmp 0x665cc509
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x41], 0
jne 0x665cb746
mov eax, esi
jmp 0x665cb3e5
mov esi, dword [esp + 0x94]
mov ebx, dword [esp + 0x50]
mov eax, dword [esi + 4]
movsx eax, word [eax + ebx*2]
test ax, ax
js 0x665cbfb8
mov edx, dword [esi + 0xc]
lea eax, [eax + eax*2]
movzx esi, byte [esp + 0x68]
mov ebx, dword [edx + 4]
lea eax, [ebx + eax*8]
cmp byte [eax + 0x14], 0
mov eax, 1
cmove esi, eax
mov eax, esi
mov byte [esp + 0x68], al
jmp 0x665cbfb8
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x94]
xor ecx, ecx
mov eax, dword [esi + 0x48]
mov dword [esp + 0x58], eax
add eax, 1
mov dword [esi + 0x48], eax
mov esi, dword [esp + 0x24]
mov dword [esi - 0x2c], eax
mov edx, dword [ebx + 0x1c]
mov ebx, dword [esp + 0x50]
cmp byte [edx + ebx], 1
mov ebx, dword [esp + 0x30]
mov edx, 0x19
mov dword [esp], eax
mov dword [esp + 4], 0
mov eax, ebx
sete cl
xor ecx, dword [esp + 0x4c]
call sym._sqlite3VdbeAddOp3
mov eax, dword [ebx + 0x20]
mov dword [esi - 0x28], eax
jmp 0x665cbfa7
mov esi, dword [esp + 0x34]
xor ecx, ecx
mov edx, 0x1c
mov eax, dword [esi + 0x48]
mov dword [esp + 0x4c], eax
add eax, 1
mov dword [esi + 0x48], eax
mov dword [esp + 0x58], eax
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], 0
call sym._sqlite3VdbeAddOp3
jmp 0x665ce32f
mov dword [esp + 0x80], 0
mov dword [esp + 0x58], 0
jmp 0x665ce347
mov ebp, dword [esp + 0x34]
movzx eax, word [0x2e]
add dword [ebp + 0x44], 1
ud2