Function at 0x60950460
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xec
push edi
push esi
push ebx
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
mov edx, dword [ebp + 0x10]
mov word [ebp - 0x20], dx
mov dword [ebp - 0x58], 0
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov dword [ebp - 0x4c], ecx
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x50], eax
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x1c]
mov dword [ebp - 0x44], edx
mov ecx, dword [ebp + 0xc]
lea eax, [ecx + ecx*4]
shl eax, 4
mov edx, dword [ebp + 8]
lea eax, [edx + eax + 0x30]
mov dword [ebp - 0x40], eax
movzx edx, byte [eax + 0x34]
mov eax, edx
shl eax, 3
sub eax, edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
lea eax, [edx + eax*8 + 8]
mov dword [ebp - 0x54], eax
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x40]
mov eax, dword [edx]
mov dword [ebp - 0x3c], eax
shr dword [ebp - 0x3c], 0x19
and dword [ebp - 0x3c], 1
mov dword [ebp - 0x38], 0
test eax, 0x800000
je 0x609504fb
mov ecx, dword [ebp - 0x20]
test cl, 0x40
sete al
movzx eax, al
mov dword [ebp - 0x38], eax
add esp, 0xfffffff4
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeMakeLabel
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x40]
mov dword [edx + 0x28], eax
mov ecx, dword [ebp - 0x5c]
mov dword [edx + 0x24], ecx
add esp, 0xfffffff4
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeMakeLabel
mov dword [ebp - 0x60], eax
mov edx, dword [ebp - 0x40]
mov dword [edx + 0x2c], eax
add esp, 0x20
cmp byte [edx + 0x34], 0
je 0x60950562
mov ecx, dword [ebp - 0x54]
test byte [ecx + 0x15], 8
je 0x60950562
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx + 0x48]
lea ecx, [eax + 1]
mov dword [edx + 0x48], ecx
mov eax, ecx
mov edx, dword [ebp - 0x40]
mov dword [edx + 0x18], eax
push eax
push 0
push 7
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeAddOp2
add esp, 0x10
mov eax, dword [ebp - 0x40]
mov edx, dword [eax]
test edx, 0x8000000
je 0x60950708
mov ebx, dword [eax + 0x10]
mov edx, dword [ebx]
mov dword [ebp - 0x68], edx
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebx + 4]
mov dword [ebp - 0x70], eax
add esp, 0xfffffff4
mov edx, dword [ebp - 0x4c]
push edx
call sym._sqlite3ExprCachePush
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x68]
add ecx, 2
mov dword [ebp - 0x74], ecx
push ecx
mov eax, dword [ebp - 0x4c]
push eax
call sym._sqlite3GetTempRange
mov dword [ebp - 0x64], eax
mov esi, 1
add esp, 0x20
cmp esi, dword [ebp - 0x68]
jg 0x60950618
mov edi, eax
add edi, 2
mov esi, esi
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x70]
add eax, 8
jmp 0x609505d6
add eax, 0xc
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x68]
cmp dword [ebp - 0x2c], edx
jge 0x6095060a
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x6c]
cmp dword [edx + ecx*8], esi
jne 0x609505d0
mov eax, dword [eax]
add esp, 0xfffffffc
push edi
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx + 0x1c]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*8]
push dword [eax + 0xc]
mov eax, dword [ebp - 0x4c]
push eax
call sym._sqlite3ExprCode
add esp, 0x10
mov edx, dword [ebp - 0x68]
cmp dword [ebp - 0x2c], edx
je 0x60950618
inc edi
inc esi
cmp esi, edx
jle 0x609505c0
mov ecx, dword [ebp - 0x64]
push ecx
push dword [ebx + 0x14]
push 7
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeAddOp2
mov eax, dword [ebp - 0x64]
inc eax
push eax
lea eax, [esi - 1]
push eax
push 7
mov edx, dword [ebp - 0x50]
push edx
call sym._sqlite3VdbeAddOp2
add esp, 0x20
add esp, 0xfffffffc
mov eax, 0xfffffffe
cmp dword [ebx + 0x1c], 0
je 0x60950654
mov eax, 0xfffffff5
push eax
push dword [ebx + 0x18]
mov ecx, dword [ebp - 0x64]
push ecx
mov eax, dword [ebp - 0x5c]
push eax
mov edx, dword [ebp - 0x30]
push edx
push pe_nt_image_headers32
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeAddOp4
mov dword [ebx + 0x1c], 0
xor esi, esi
add esp, 0x20
cmp esi, dword [ebp - 0x68]
jge 0x609506bd
mov ebx, dword [ebp - 0x70]
add ebx, 8
lea esi, [esi]
mov eax, dword [ebp - 0x6c]
cmp byte [eax + esi*8 + 4], 0
je 0x609506b4
mov eax, dword [ebx]
add esp, 0xfffffff8
lea eax, [eax + eax*4]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx + 0x1c]
lea eax, [edx + eax*8]
push eax
mov eax, dword [ebp - 0x40]
push eax
call sym._disableTerm
add esp, 0x10
add ebx, 0xc
inc esi
cmp esi, dword [ebp - 0x68]
jl 0x6095068c
mov edx, dword [ebp - 0x40]
mov byte [edx + 0x35], 0x83
mov ecx, dword [ebp - 0x30]
mov dword [edx + 0x38], ecx
add esp, 0xfffffff4
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeCurrentAddr
mov edx, dword [ebp - 0x40]
mov dword [edx + 0x3c], eax
add esp, 0xfffffffc
mov ecx, dword [ebp - 0x74]
push ecx
mov eax, dword [ebp - 0x64]
push eax
mov edx, dword [ebp - 0x4c]
push edx
call sym._sqlite3ReleaseTempRange
add esp, 0x20
add esp, 0xfffffff8
push 1
mov ecx, dword [ebp - 0x4c]
push ecx
call sym._sqlite3ExprCachePop
jmp 0x609512f9
test dh, 0x10
je 0x609507a8
add esp, 0xfffffff4
mov eax, dword [ebp - 0x4c]
push eax
call sym._sqlite3GetTempReg
mov dword [ebp - 0x58], eax
add esp, 0xfffffffc
push 0
push 3
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
push ecx
push edx
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x30]
push ecx
mov eax, dword [ebp - 0x44]
push eax
call sym._findTerm
mov dword [ebp - 0x48], eax
add esp, 0x30
mov edx, dword [ebp - 0x58]
push edx
mov ecx, dword [ebp - 0x40]
push ecx
push eax
mov edx, dword [ebp - 0x4c]
push edx
call sym._codeEqualityTerm
mov ebx, eax
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx + 0x28]
mov dword [ebp - 0x34], ecx
push ecx
push ebx
push 0x15
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeAddOp2
add esp, 0x20
add esp, 0xfffffff4
push ebx
mov edx, dword [ebp - 0x34]
push edx
mov ecx, dword [ebp - 0x30]
push ecx
push 0x34
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeAddOp3
add esp, 0x20
push ebx
push 0xffffffffffffffff
mov edx, dword [ebp - 0x30]
push edx
mov ecx, dword [ebp - 0x4c]
push ecx
call sym._sqlite3ExprCacheStore
mov eax, dword [ebp - 0x40]
mov byte [eax + 0x35], 0x89
jmp 0x609512f9
test dh, 0x20
je 0x609509f4
mov dword [ebp - 0x78], 0x89
mov dword [ebp - 0x7c], 0
add esp, 0xfffffffc
push 0
push 0x24
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
push ecx
push edx
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x30]
push ecx
mov eax, dword [ebp - 0x44]
push eax
call sym._findTerm
mov dword [ebp - 0x80], eax
add esp, 0x20
add esp, 0xfffffffc
push 0
push 0x18
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
push ecx
push edx
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x30]
push ecx
mov eax, dword [ebp - 0x44]
push eax
call sym._findTerm
mov edi, eax
add esp, 0x20
cmp dword [ebp - 0x3c], 0
je 0x60950817
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x80], edi
mov edi, edx
cmp dword [ebp - 0x80], 0
je 0x609508ac
mov dword [ebp - 8], 0
mov byte [ebp - 8], 0x2f
mov eax, dword [ebp - 8]
and eax, 0x2e2c2dff
or eax, 0x2e2c2d00
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x80]
mov ebx, dword [ecx]
add esp, 0xfffffffc
lea eax, [ebp - 4]
push eax
push dword [ebx + 0xc]
mov eax, dword [ebp - 0x4c]
push eax
call sym._sqlite3ExprCodeTemp
mov esi, eax
add esp, 0xfffffff4
push esi
mov edx, dword [ebp - 0x5c]
push edx
mov ecx, dword [ebp - 0x30]
push ecx
movzx eax, byte [ebx]
movzx eax, byte [eax + ebp - 0x55]
push eax
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeAddOp3
add esp, 0x30
add esp, 0xfffffffc
push 1
push esi
mov edx, dword [ebp - 0x4c]
push edx
call sym._sqlite3ExprCacheAffinityChange
add esp, 0xfffffff8
push dword [ebp - 4]
mov ecx, dword [ebp - 0x4c]
push ecx
call sym._sqlite3ReleaseTempReg
add esp, 0x20
add esp, 0xfffffff8
mov eax, dword [ebp - 0x80]
push eax
mov edx, dword [ebp - 0x40]
push edx
call sym._disableTerm
jmp 0x609508ce
mov ecx, dword [ebp - 0x5c]
push ecx
mov eax, dword [ebp - 0x30]
push eax
mov eax, 0x41
cmp dword [ebp - 0x3c], 0
je 0x609508c4
mov eax, 0x3f
push eax
mov edx, dword [ebp - 0x50]
push edx
call sym._sqlite3VdbeAddOp2
add esp, 0x10
test edi, edi
je 0x6095093c
mov ebx, dword [edi]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x48]
lea edx, [eax + 1]
mov dword [ecx + 0x48], edx
mov eax, edx
mov dword [ebp - 0x7c], eax
add esp, 0xfffffffc
push eax
push dword [ebx + 0xc]
push ecx
call sym._sqlite3ExprCode
mov al, byte [ebx]
add esp, 0x10
cmp al, 0x4f
je 0x60950902
cmp al, 0x4d
jne 0x60950918
mov dword [ebp - 0x78], 0x50
cmp dword [ebp - 0x3c], 0
je 0x6095092c
mov dword [ebp - 0x78], 0x4e
jmp 0x6095092c
mov dword [ebp - 0x78], 0x4d
cmp dword [ebp - 0x3c], 0
je 0x6095092c
mov dword [ebp - 0x78], 0x4f
add esp, 0xfffffff8
push edi
mov ecx, dword [ebp - 0x40]
push ecx
call sym._disableTerm
add esp, 0x10
add esp, 0xfffffff4
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeCurrentAddr
add esp, 0x10
cmp dword [ebp - 0x3c], 0
je 0x6095095c
mov edx, dword [ebp - 0x40]
mov byte [edx + 0x35], 0x42
jmp 0x60950963
mov ecx, dword [ebp - 0x40]
mov byte [ecx + 0x35], 0x43
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x40]
mov dword [edx + 0x38], ecx
mov dword [edx + 0x3c], eax
cmp dword [ebp - 0x80], 0
jne 0x6095097d
test edi, edi
jne 0x6095097d
mov byte [edx + 0x36], 1
cmp dword [ebp - 0x78], 0x89
je 0x609512fc
add esp, 0xfffffff4
mov eax, dword [ebp - 0x4c]
push eax
call sym._sqlite3GetTempReg
mov dword [ebp - 0x58], eax
push eax
mov edx, dword [ebp - 0x30]
push edx
push 0x3d
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeAddOp2
add esp, 0x20
mov eax, dword [ebp - 0x58]
push eax
push 0xffffffffffffffff
mov edx, dword [ebp - 0x30]
push edx
mov ecx, dword [ebp - 0x4c]
push ecx
call sym._sqlite3ExprCacheStore
add esp, 0xfffffff4
mov eax, dword [ebp - 0x58]
push eax
mov edx, dword [ebp - 0x5c]
push edx
mov ecx, dword [ebp - 0x7c]
push ecx
mov eax, dword [ebp - 0x78]
push eax
mov edx, dword [ebp - 0x50]
push edx
call sym._sqlite3VdbeAddOp3
add esp, 0x30
add esp, 0xfffffff8
push 0x6b
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeChangeP5
jmp 0x609512f9
test edx, 0x30000
je 0x60950f30
mov eax, dword [ebp - 0x40]
mov esi, dword [eax + 4]
xor edi, edi
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x8c], 0
xor ecx, ecx
mov ebx, dword [eax + 0x10]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebx + 8]
mov eax, dword [eax + esi*4]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
test al, 1
je 0x60950a4d
test edx, 0x1000000
je 0x60950a4d
cmp dword [ebx + 4], esi
jle 0x60950a4d
mov edi, 1
inc ecx
test edx, 0x100000
je 0x60950a82
add esp, 0xfffffffc
push ebx
push 0x18
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
push ecx
push edx
mov ecx, dword [ebp - 0x2c]
push ecx
mov eax, dword [ebp - 0x30]
push eax
mov edx, dword [ebp - 0x44]
push edx
call sym._findTerm
mov dword [ebp - 0x8c], eax
mov ecx, 1
add esp, 0x20
mov eax, dword [ebp - 0x40]
test byte [eax + 2], 0x20
je 0x60950ab8
add esp, 0xfffffffc
push ebx
push 0x24
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
push ecx
push edx
mov ecx, dword [ebp - 0x2c]
push ecx
mov eax, dword [ebp - 0x30]
push eax
mov edx, dword [ebp - 0x44]
push edx
call sym._findTerm
mov dword [ebp - 0x88], eax
mov ecx, 1
add esp, 0x20
add esp, 0xfffffffc
lea eax, [ebp - 0xc]
push eax
push ecx
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
push edx
push eax
mov edx, dword [ebp - 0x44]
push edx
mov ecx, dword [ebp - 0x40]
push ecx
mov eax, dword [ebp - 0x4c]
push eax
call sym._codeAllEqualityTerms
mov dword [ebp - 0x84], eax
add esp, 0x20
add esp, 0xfffffff8
push dword [ebp - 0xc]
mov edx, dword [ebp - 0x4c]
push dword [edx]
call sym._sqlite3DbStrDup
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx + 0x28]
mov dword [ebp - 0x34], ecx
add esp, 0x10
cmp esi, dword [ebx + 4]
jge 0x60950b33
mov eax, dword [ebx + 0x28]
cmp byte [esi + eax], 0
sete al
movzx eax, al
cmp dword [ebp - 0x3c], eax
jne 0x60950b33
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x90], 0
cmp dword [ebp - 0x88], 0
je 0x60950b52
mov ecx, dword [ebp - 0x88]
test byte [ecx + 0x10], 0x28
je 0x60950b5c
mov dword [ebp - 0x90], 1
mov dword [ebp - 0x94], 0
cmp dword [ebp - 0x8c], 0
je 0x60950b7b
mov eax, dword [ebp - 0x8c]
test byte [eax + 0x10], 0x28
je 0x60950b85
mov dword [ebp - 0x94], 1
mov dword [ebp - 0x98], 0
cmp dword [ebp - 0x88], 0
jne 0x60950b9c
test esi, esi
jle 0x60950ba6
mov dword [ebp - 0x98], 1
mov ebx, esi
cmp dword [ebp - 0x88], 0
je 0x60950c2c
mov edx, dword [ebp - 0x88]
mov eax, dword [edx]
mov edi, dword [eax + 0xc]
add esp, 0xfffffffc
mov ebx, dword [ebp - 0x84]
add ebx, esi
push ebx
push edi
mov ecx, dword [ebp - 0x4c]
push ecx
call sym._sqlite3ExprCode
mov eax, dword [ebp - 0x34]
push eax
push ebx
push edi
mov edx, dword [ebp - 0x50]
push edx
call sym._sqlite3ExprCodeIsNullJump
add esp, 0x20
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x60950c26
add esp, 0xfffffff8
movsx eax, byte [esi + eax]
push eax
push edi
call sym._sqlite3CompareAffinity
add esp, 0x10
cmp al, 0x62
jne 0x60950c07
mov eax, dword [ebp - 0xc]
mov byte [esi + eax], 0x62
add esp, 0xfffffff8
mov eax, dword [ebp - 0xc]
movsx eax, byte [esi + eax]
push eax
push edi
call sym._sqlite3ExprNeedsNoAffinityChange
add esp, 0x10
test eax, eax
je 0x60950c26
mov eax, dword [ebp - 0xc]
mov byte [esi + eax], 0x62
lea ebx, [esi + 1]
jmp 0x60950c60
test edi, edi
je 0x60950c60
mov eax, dword [ebp - 0x84]
add eax, esi
push eax
push 0
push 0xa
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeAddOp2
lea ebx, [esi + 1]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x98], 1
add esp, 0x10
push dword [ebp - 0xc]
push ebx
mov eax, dword [ebp - 0x84]
push eax
mov edx, dword [ebp - 0x4c]
push edx
call sym._codeApplyAffinity
shl dword [ebp - 0x90], 1
mov ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0x90]
lea eax, [edx + ecx*4]
mov ecx, dword [ebp - 0x3c]
movzx eax, byte [ecx + eax + 0x6095044e]
add esp, 0xfffffff8
push ebx
mov edx, dword [ebp - 0x84]
push edx
mov ecx, dword [ebp - 0x34]
push ecx
mov edx, dword [ebp - 0x9c]
push edx
push eax
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeAddOp4Int
mov ebx, esi
add esp, 0x30
cmp dword [ebp - 0x8c], 0
je 0x60950d7c
mov edx, dword [ebp - 0x8c]
mov eax, dword [edx]
mov edi, dword [eax + 0xc]
add esp, 0xfffffffc
push 1
mov ebx, dword [ebp - 0x84]
add ebx, esi
push ebx
mov ecx, dword [ebp - 0x4c]
push ecx
call sym._sqlite3ExprCacheRemove
add esp, 0xfffffffc
push ebx
push edi
mov eax, dword [ebp - 0x4c]
push eax
call sym._sqlite3ExprCode
add esp, 0x20
mov edx, dword [ebp - 0x34]
push edx
push ebx
push edi
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3ExprCodeIsNullJump
add esp, 0x10
cmp dword [ebp - 0xa0], 0
je 0x60950d5e
add esp, 0xfffffff8
mov edx, dword [ebp - 0xa0]
movsx eax, byte [esi + edx]
push eax
push edi
call sym._sqlite3CompareAffinity
add esp, 0x10
cmp al, 0x62
jne 0x60950d39
mov ecx, dword [ebp - 0xa0]
mov byte [esi + ecx], 0x62
add esp, 0xfffffff8
mov edx, dword [ebp - 0xa0]
movsx eax, byte [esi + edx]
push eax
push edi
call sym._sqlite3ExprNeedsNoAffinityChange
add esp, 0x10
test eax, eax
je 0x60950d5e
mov ecx, dword [ebp - 0xa0]
mov byte [esi + ecx], 0x62
mov eax, dword [ebp - 0xa0]
push eax
lea ebx, [esi + 1]
push ebx
mov edx, dword [ebp - 0x84]
push edx
mov ecx, dword [ebp - 0x4c]
push ecx
call sym._codeApplyAffinity
add esp, 0x10
add esp, 0xfffffff8
push dword [ebp - 0xc]
mov eax, dword [ebp - 0x4c]
push dword [eax]
call sym._sqlite3DbFree
add esp, 0xfffffff8
mov edx, dword [ebp - 0xa0]
push edx
mov ecx, dword [ebp - 0x4c]
push dword [ecx]
call sym._sqlite3DbFree
add esp, 0x20
add esp, 0xfffffff4
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeCurrentAddr
mov edx, dword [ebp - 0x40]
mov dword [edx + 0x3c], eax
add esp, 0x10
xor edx, edx
cmp dword [ebp - 0x8c], 0
jne 0x60950dc7
test esi, esi
je 0x60950dcc
mov edx, 1
mov eax, dword [ebp - 0x3c]
inc eax
imul edx, eax
movzx eax, byte [edx + 0x60950456]
cmp eax, 0x89
je 0x60950e23
add esp, 0xfffffff8
push ebx
mov ecx, dword [ebp - 0x84]
push ecx
mov edx, dword [ebp - 0x34]
push edx
mov ecx, dword [ebp - 0x9c]
push ecx
push eax
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeAddOp4Int
add esp, 0x20
add esp, 0xfffffff8
mov edx, dword [ebp - 0x3c]
cmp dword [ebp - 0x94], edx
setne al
movzx eax, al
push eax
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeChangeP5
add esp, 0x10
add esp, 0xfffffff4
mov eax, dword [ebp - 0x4c]
push eax
call sym._sqlite3GetTempReg
mov ebx, eax
add esp, 0x10
mov edx, dword [ebp - 0x40]
test byte [edx + 2], 0x30
je 0x60950e6a
add esp, 0xfffffff4
push ebx
push esi
mov ecx, dword [ebp - 0x9c]
push ecx
push 0x1c
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeAddOp3
add esp, 0x20
mov edx, dword [ebp - 0x60]
push edx
push ebx
push 0x49
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeAddOp2
add esp, 0x10
add esp, 0xfffffff8
push ebx
mov eax, dword [ebp - 0x4c]
push eax
call sym._sqlite3ReleaseTempReg
add esp, 0xfffffff8
mov edx, dword [ebp - 0x88]
push edx
mov ecx, dword [ebp - 0x40]
push ecx
call sym._disableTerm
add esp, 0x20
add esp, 0xfffffff8
mov eax, dword [ebp - 0x8c]
push eax
mov edx, dword [ebp - 0x40]
push edx
call sym._disableTerm
add esp, 0x10
cmp dword [ebp - 0x38], 0
jne 0x60950ef7
add esp, 0xfffffff4
mov ecx, dword [ebp - 0x4c]
push ecx
call sym._sqlite3GetTempReg
mov dword [ebp - 0x58], eax
push eax
mov eax, dword [ebp - 0x9c]
push eax
push 0x48
mov edx, dword [ebp - 0x50]
push edx
call sym._sqlite3VdbeAddOp2
add esp, 0x20
mov ecx, dword [ebp - 0x58]
push ecx
push 0xffffffffffffffff
mov eax, dword [ebp - 0x30]
push eax
mov edx, dword [ebp - 0x4c]
push edx
call sym._sqlite3ExprCacheStore
mov ecx, dword [ebp - 0x58]
push ecx
mov eax, dword [ebp - 0x30]
push eax
push 0x30
mov edx, dword [ebp - 0x50]
push edx
call sym._sqlite3VdbeAddOp2
add esp, 0x20
mov ecx, dword [ebp - 0x40]
test byte [ecx + 3], 4
je 0x60950f08
mov byte [ecx + 0x35], 0x89
jmp 0x60950f1f
cmp dword [ebp - 0x3c], 0
je 0x60950f18
mov eax, dword [ebp - 0x40]
mov byte [eax + 0x35], 0x42
jmp 0x60950f1f
mov edx, dword [ebp - 0x40]
mov byte [edx + 0x35], 0x43
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0x38], eax
jmp 0x609512fc
test edx, 0x10000000
je 0x609512c0
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx + 0x48]
lea ecx, [eax + 1]
mov dword [edx + 0x48], ecx
mov eax, ecx
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xb4], 0
add esp, 0xfffffff4
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeMakeLabel
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xc0], 0
mov edx, dword [ebp - 0x40]
mov edx, dword [edx + 0x10]
mov dword [ebp - 0x48], edx
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0xa4], ecx
mov eax, dword [ebp - 0x40]
mov byte [eax + 0x35], 3
mov edx, dword [ebp - 0xac]
mov dword [eax + 0x38], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x18]
add esp, 0x10
cmp eax, 1
jle 0x60951080
sub eax, dword [ebp + 0xc]
dec eax
mov dword [ebp - 0xc4], eax
add esp, 0xfffffff8
shl eax, 3
sub eax, dword [ebp - 0xc4]
lea eax, [eax*8 + 0x40]
push eax
mov eax, dword [ebp - 0x4c]
push dword [eax]
call sym._sqlite3DbMallocRaw
mov dword [ebp - 0xa8], eax
add esp, 0x10
test eax, eax
je 0x60951436
mov eax, dword [ebp - 0xc4]
inc eax
mov edx, dword [ebp - 0xa8]
mov word [edx + 2], ax
mov word [edx], ax
mov edi, edx
add edi, 8
mov esi, dword [ebp - 0x54]
cld
mov ecx, 0xe
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 8]
add edx, 8
mov dword [ebp - 0xc8], edx
cmp dword [ebp - 0xc4], 0
jle 0x6095108c
mov ebx, dword [ebp - 0x40]
add ebx, 0x84
mov ecx, dword [ebp - 0xa8]
add ecx, 0x40
mov dword [ebp - 0xd4], ecx
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x2c], eax
mov esi, esi
movzx edx, byte [ebx]
mov eax, edx
shl eax, 3
sub eax, edx
mov edi, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xc8]
lea esi, [edx + eax*8]
cld
mov ecx, 0xe
rep movsd dword es:[edi], dword [esi]
add ebx, 0x50
add dword [ebp - 0xd4], 0x38
dec dword [ebp - 0x2c]
jne 0x6095104c
jmp 0x6095108c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov dword [ebp - 0xa8], eax
mov edx, dword [ebp - 0x20]
and edx, 8
mov word [ebp - 0xca], dx
jne 0x609510cf
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x48]
lea edx, [eax + 1]
mov dword [ebp - 0xb0], edx
lea edx, [eax + 2]
mov dword [ecx + 0x48], edx
mov eax, edx
mov dword [ebp - 0xb4], eax
mov ecx, dword [ebp - 0xb0]
push ecx
push 0
push 0xa
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeAddOp2
add esp, 0x10
mov edx, dword [ebp - 0xac]
push edx
push 0
push 7
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeAddOp2
mov dword [ebp - 0xbc], eax
xor edi, edi
add esp, 0x10
mov eax, dword [ebp - 0xa4]
cmp edi, dword [eax + 0x14]
jge 0x60951239
mov dword [ebp - 0xd0], 0
nop
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xa4]
add eax, dword [edx + 0x1c]
mov ecx, dword [ebp - 0x30]
cmp dword [eax + 8], ecx
je 0x6095112b
cmp word [eax + 0x10], 0x200
jne 0x60951222
add esp, 0xfffffff4
push 0xf0
push 0
push dword [eax]
mov eax, dword [ebp - 0xa8]
push eax
mov edx, dword [ebp - 0x4c]
push edx
call sym._sqlite3WhereBegin
mov ebx, eax
add esp, 0x20
test ebx, ebx
je 0x60951222
add esp, 0xfffffff8
push 0
mov ecx, dword [ebp - 0x40]
movzx eax, byte [ecx + 0x34]
push eax
mov eax, dword [ebp + 0xc]
push eax
lea eax, [ebx + 0x30]
push eax
mov edx, dword [ebp - 0xa8]
push edx
mov ecx, dword [ebp - 0x4c]
push ecx
call sym._explainOneScan
add esp, 0x20
cmp word [ebp - 0xca], 0
jne 0x609511ea
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx + 0x14]
dec eax
mov esi, 0xffffffff
cmp edi, eax
je 0x6095119b
mov esi, edi
add esp, 0xfffffff4
mov ecx, dword [ebp - 0xb4]
push ecx
mov eax, dword [ebp - 0x30]
push eax
push 0xffffffffffffffff
mov edx, dword [ebp - 0x54]
push dword [edx + 0xc]
mov ecx, dword [ebp - 0x4c]
push ecx
call sym._sqlite3ExprCodeGetColumn
add esp, 0x20
add esp, 0xfffffff8
push esi
push eax
add esp, 0xfffffff4
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeCurrentAddr
add esp, 0x10
add eax, 2
push eax
mov edx, dword [ebp - 0xb0]
push edx
push 0x6b
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeAddOp4Int
add esp, 0x20
mov eax, dword [ebp - 0xb8]
push eax
mov edx, dword [ebp - 0xac]
push edx
push 2
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeAddOp2
add esp, 0x10
cmp byte [ebx + 7], 0
je 0x60951216
mov dword [ebp - 0xc0], 1
add esp, 0xfffffff4
push ebx
call sym._sqlite3WhereEnd
add esp, 0x10
add dword [ebp - 0xd0], 0x28
inc edi
mov eax, dword [ebp - 0xa4]
cmp edi, dword [eax + 0x14]
jl 0x60951108
add esp, 0xfffffffc
add esp, 0xfffffff4
mov edx, dword [ebp - 0x50]
push edx
call sym._sqlite3VdbeCurrentAddr
push eax
mov ecx, dword [ebp - 0xbc]
push ecx
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeChangeP1
add esp, 0x20
mov edx, dword [ebp - 0x40]
push dword [edx + 0x24]
push 0
push 1
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeAddOp2
add esp, 0xfffffff8
mov eax, dword [ebp - 0xb8]
push eax
mov edx, dword [ebp - 0x50]
push edx
call sym._sqlite3VdbeResolveLabel
add esp, 0x20
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x18], 1
jle 0x609512a5
add esp, 0xfffffff8
mov eax, dword [ebp - 0xa8]
push eax
mov edx, dword [ebp - 0x4c]
push dword [edx]
call sym._sqlite3DbFree
add esp, 0x10
cmp dword [ebp - 0xc0], 0
jne 0x609512fc
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x48]
push ecx
mov eax, dword [ebp - 0x40]
push eax
call sym._disableTerm
jmp 0x609512f9
mov edx, dword [ebp - 0x3c]
mov al, byte [edx + 0x60950459]
mov ecx, dword [ebp - 0x40]
mov byte [ecx + 0x35], al
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0x38], eax
mov edx, dword [ebp - 0x5c]
push edx
push eax
mov ecx, dword [ebp - 0x3c]
movzx eax, byte [ecx + 0x6095045b]
push eax
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeAddOp2
inc eax
mov edx, dword [ebp - 0x40]
mov dword [edx + 0x3c], eax
mov byte [edx + 0x36], 1
add esp, 0x10
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x30]
push ecx
mov eax, dword [ebp - 0x44]
push dword [eax + 4]
call sym._getMask
mov ecx, eax
mov ebx, edx
not eax
not edx
and dword [ebp - 0x28], eax
and dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + 0x1c]
mov dword [ebp - 0x48], edx
mov ecx, dword [ebp - 0x44]
mov esi, dword [ecx + 0x14]
add esp, 0x10
test esi, esi
jle 0x6095138f
mov esi, esi
mov eax, dword [ebp - 0x48]
test byte [eax + 0x12], 6
jne 0x60951386
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
and edx, dword [eax + 0x20]
and ecx, dword [eax + 0x24]
mov eax, edx
or eax, ecx
je 0x60951358
mov edx, dword [ebp + 8]
mov byte [edx + 7], 1
jmp 0x60951386
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x40]
cmp dword [edx + 0x18], 0
je 0x6095136c
test byte [eax + 2], 1
je 0x60951386
push 8
mov ecx, dword [ebp - 0x60]
push ecx
push eax
mov eax, dword [ebp - 0x4c]
push eax
call sym._sqlite3ExprIfFalse
mov edx, dword [ebp - 0x48]
or byte [edx + 0x12], 4
add esp, 0x10
dec esi
add dword [ebp - 0x48], 0x28
test esi, esi
jg 0x60951334
mov ecx, dword [ebp - 0x40]
cmp dword [ecx + 0x18], 0
je 0x60951426
add esp, 0xfffffff4
mov eax, dword [ebp - 0x50]
push eax
call sym._sqlite3VdbeCurrentAddr
mov edx, dword [ebp - 0x40]
mov dword [edx + 0x30], eax
push dword [edx + 0x18]
push 1
push 7
mov ecx, dword [ebp - 0x50]
push ecx
call sym._sqlite3VdbeAddOp2
add esp, 0x20
add esp, 0xfffffff4
mov eax, dword [ebp - 0x4c]
push eax
call sym._sqlite3ExprCacheClear
mov edx, dword [ebp - 0x44]
mov edx, dword [edx + 0x1c]
mov dword [ebp - 0x48], edx
xor esi, esi
add esp, 0x10
jmp 0x6095141e
mov eax, dword [ebp - 0x48]
test byte [eax + 0x12], 6
jne 0x60951419
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
and edx, dword [eax + 0x20]
and ecx, dword [eax + 0x24]
mov eax, edx
or eax, ecx
jne 0x60951419
push 8
mov edx, dword [ebp - 0x60]
push edx
mov ecx, dword [ebp - 0x48]
push dword [ecx]
mov eax, dword [ebp - 0x4c]
push eax
call sym._sqlite3ExprIfFalse
mov edx, dword [ebp - 0x48]
or byte [edx + 0x12], 4
add esp, 0x10
inc esi
add dword [ebp - 0x48], 0x28
mov ecx, dword [ebp - 0x44]
cmp esi, dword [ecx + 0x14]
jl 0x609513e0
add esp, 0xfffffff8
mov eax, dword [ebp - 0x58]
push eax
mov edx, dword [ebp - 0x4c]
push edx
call sym._sqlite3ReleaseTempReg
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
lea esp, [ebp - 0xf8]
pop ebx
pop esi
pop edi
leave
ret